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,19 +77,23 @@ 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();
if (!max_char.isEmpty()) {
SharedPreferences.Editor editor = sharedpreferences.edit(); try {
if (!max_char.isEmpty()) { editor.putInt(getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, Integer.parseInt(max_char));
try { editor.apply();
editor.putInt(getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, Integer.parseInt(max_char)); } catch (Exception ignored) {
}
} else {
editor.putInt(getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, -1);
editor.apply(); editor.apply();
} catch (Exception ignored) {
} }
}
}
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) { SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
max_car = instanceInfo.max_toot_chars != null ? Integer.parseInt(instanceInfo.max_toot_chars) : instanceInfo.configuration.statusesConf.max_characters; int val = sharedpreferences.getInt(context.getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, -1);
if (val != -1) {
return val;
} else { } else {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); if (instanceInfo != null) {
int val = sharedpreferences.getInt(context.getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, -1); max_car = instanceInfo.max_toot_chars != null ? Integer.parseInt(instanceInfo.max_toot_chars) : instanceInfo.configuration.statusesConf.max_characters;
if (val != -1) {
return val;
} else { } else {
max_car = 500; max_car = 500;
} }