Fix custom instance max length not working

This commit is contained in:
Thomas 2023-08-26 18:11:26 +02:00
parent 2e4c3bf119
commit 1bc12d3202
2 changed files with 20 additions and 19 deletions

View file

@ -50,7 +50,6 @@ import app.fedilab.android.mastodon.viewmodel.mastodon.InstancesVM;
public class InstanceActivity extends DialogFragment { public class InstanceActivity extends DialogFragment {
ActivityInstanceBinding binding; ActivityInstanceBinding binding;
private boolean applyMaxChar = false;
@NonNull @NonNull
@Override @Override
@ -78,10 +77,12 @@ public class InstanceActivity extends DialogFragment {
binding.about.setOnClickListener(v -> Helper.openBrowser(requireActivity(), "https://" + MainActivity.currentInstance + "/about")); binding.about.setOnClickListener(v -> Helper.openBrowser(requireActivity(), "https://" + MainActivity.currentInstance + "/about"));
binding.privacy.setOnClickListener(v -> Helper.openBrowser(requireActivity(), "https://" + MainActivity.currentInstance + "/privacy-policy")); binding.privacy.setOnClickListener(v -> Helper.openBrowser(requireActivity(), "https://" + MainActivity.currentInstance + "/privacy-policy"));
int maxCharCustom = sharedpreferences.getInt(getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, -1);
if (maxCharCustom != -1) {
binding.maxChar.setText(String.valueOf(maxCharCustom));
}
binding.close.setOnClickListener(view -> { binding.close.setOnClickListener(view -> {
if (applyMaxChar) {
String max_char = binding.maxChar.getText().toString(); String max_char = binding.maxChar.getText().toString();
SharedPreferences.Editor editor = sharedpreferences.edit(); SharedPreferences.Editor editor = sharedpreferences.edit();
if (!max_char.isEmpty()) { if (!max_char.isEmpty()) {
try { try {
@ -89,7 +90,9 @@ public class InstanceActivity extends DialogFragment {
editor.apply(); editor.apply();
} catch (Exception ignored) { } catch (Exception ignored) {
} }
} } else {
editor.putInt(getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, -1);
editor.apply();
} }
requireDialog().dismiss(); requireDialog().dismiss();
} }
@ -107,8 +110,6 @@ public class InstanceActivity extends DialogFragment {
if (val != -1) { if (val != -1) {
binding.maxChar.setText(String.valueOf(val)); binding.maxChar.setText(String.valueOf(val));
} }
applyMaxChar = true;
} else { } else {
Instance instance = instanceInfo.info; Instance instance = instanceInfo.info;

View file

@ -553,13 +553,13 @@ public class MastodonHelper {
public static int getInstanceMaxChars(Context context) { public static int getInstanceMaxChars(Context context) {
int max_car; int max_car;
if (instanceInfo != null) {
max_car = instanceInfo.max_toot_chars != null ? Integer.parseInt(instanceInfo.max_toot_chars) : instanceInfo.configuration.statusesConf.max_characters;
} else {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
int val = sharedpreferences.getInt(context.getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, -1); int val = sharedpreferences.getInt(context.getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, -1);
if (val != -1) { if (val != -1) {
return val; return val;
} else {
if (instanceInfo != null) {
max_car = instanceInfo.max_toot_chars != null ? Integer.parseInt(instanceInfo.max_toot_chars) : instanceInfo.configuration.statusesConf.max_characters;
} else { } else {
max_car = 500; max_car = 500;
} }