Loading app/src/main/assets/languages/iso_639_1.json +105 −1 Original line number Diff line number Diff line Loading @@ -381,7 +381,7 @@ }, { "code": "lo", "language": "ພາສາ" "language": "ລາວ" }, { "code": "lt", Loading Loading @@ -726,5 +726,109 @@ { "code": "zu", "language": "isiZulu" }, { "code": "ast", "language": "Asturianu" }, { "code": "ckb", "language": "سۆرانی" }, { "code": "cnr", "language": "crnogorski" }, { "code": "jbo", "language": "la .lojban." }, { "code": "kab", "language": "Taqbaylit" }, { "code": "kmr", "language": "Kurmancî" }, { "code": "ldn", "language": "Láadan" }, { "code": "lfn", "language": "lingua franca nova" }, { "code": "sco", "language": "Scots" }, { "code": "sma", "language": "Åarjelsaemien Gïele" }, { "code": "smj", "language": "Julevsámegiella" }, { "code": "szl", "language": "ślůnsko godka" }, { "code": "tai", "language": "ภาษาไท or ภาษาไต" }, { "code": "tok", "language": "toki pona" }, { "code": "zba", "language": "باليبلن" }, { "code": "zgh", "language": "ⵜⴰⵎⴰⵣⵉⵖⵜ" }, { "code": "en-GB", "language": "English (British)" }, { "code": "es-AR", "language": "Español (Argentina)" }, { "code": "es-MX", "language": "Español (México)" }, { "code": "fr-QC", "language": "Français (Canadien)" }, { "code": "pt-BR", "language": "Português (Brasil)" }, { "code": "pt-PT", "language": "Português (Portugal)" }, { "code": "sr-Latn", "language": "Srpski (latinica)" }, { "code": "zh-CN", "language": "简体中文" }, { "code": "zh-HK", "language": "繁體中文(香港)" }, { "code": "zh-TW", "language": "繁體中文(臺灣)" } ] No newline at end of file app/src/main/java/app/fedilab/android/mastodon/helper/CustomEmoji.java +4 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ import app.fedilab.android.mastodon.client.entities.api.Status; public class CustomEmoji extends ReplacementSpan { private final float scale; private float scale; private final WeakReference<View> viewWeakReference; private Drawable imageDrawable; private boolean callbackCalled; Loading @@ -40,6 +40,9 @@ public class CustomEmoji extends ReplacementSpan { this.viewWeakReference = viewWeakReference; SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(mContext); scale = sharedpreferences.getFloat(mContext.getString(R.string.SET_FONT_SCALE), 1.1f); if (scale > 1.3f) { scale = 1.3f; } callbackCalled = false; } Loading app/src/main/java/app/fedilab/android/mastodon/jobs/ComposeWorker.java +2 −3 Original line number Diff line number Diff line Loading @@ -230,7 +230,6 @@ public class ComposeWorker extends Worker { LocalBroadcastManager.getInstance(context).sendBroadcast(intentBD); return; } String language = sharedPreferences.getString(context.getString(R.string.SET_COMPOSE_LANGUAGE) + dataPost.userId + dataPost.instance, null); if (statuses.get(i).local_only) { statuses.get(i).text += " \uD83D\uDC41"; } Loading Loading @@ -258,11 +257,11 @@ public class ComposeWorker extends Worker { if (dataPost.scheduledDate == null) { if (dataPost.statusEditId == null) { statusCall = mastodonStatusesService.createStatus(null, dataPost.token, statuses.get(i).text, attachmentIds, poll_options, poll_expire_in, poll_multiple, poll_hide_totals, statuses.get(i).quote_id == null ? in_reply_to_status : null, statuses.get(i).sensitive, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), language, statuses.get(i).quote_id, statuses.get(i).content_type); poll_multiple, poll_hide_totals, statuses.get(i).quote_id == null ? in_reply_to_status : null, statuses.get(i).sensitive, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), statuses.get(i).language, statuses.get(i).quote_id, statuses.get(i).content_type); } else { //Status is edited statusCall = mastodonStatusesService.updateStatus(null, dataPost.token, dataPost.statusEditId, statuses.get(i).text, attachmentIds, poll_options, poll_expire_in, poll_multiple, poll_hide_totals, statuses.get(i).quote_id == null ? in_reply_to_status : null, statuses.get(i).sensitive, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), language, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), statuses.get(i).language, media_edit_id, media_edit_description, media_edit_focus); } try { Loading app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -1695,7 +1695,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder if (statusDraft.language == null || statusDraft.language.isEmpty()) { String currentCode = sharedpreferences.getString(context.getString(R.string.SET_COMPOSE_LANGUAGE) + account.user_id + account.instance, Locale.getDefault().getLanguage()); if (currentCode == null || currentCode.isEmpty()) { if (currentCode.isEmpty()) { currentCode = "EN"; } statusDraft.language = currentCode; Loading app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentComposeSettings.java +39 −0 Original line number Diff line number Diff line Loading @@ -18,11 +18,16 @@ import android.content.SharedPreferences; import android.os.Bundle; import androidx.preference.EditTextPreference; import androidx.preference.MultiSelectListPreference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceManager; import java.util.List; import java.util.Set; import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; import app.fedilab.android.mastodon.client.entities.app.Languages; public class FragmentComposeSettings extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { Loading @@ -40,6 +45,40 @@ public class FragmentComposeSettings extends PreferenceFragmentCompat implements String val = sharedPreferences.getString(getString(R.string.SET_WATERMARK_TEXT) + BaseMainActivity.currentUserID + BaseMainActivity.currentInstance, sharedPreferences.getString(getString(R.string.SET_WATERMARK_TEXT), null)); SET_WATERMARK_TEXT.setText(val); } MultiSelectListPreference SET_SELECTED_LANGUAGE = findPreference(getString(R.string.SET_SELECTED_LANGUAGE)); if (SET_SELECTED_LANGUAGE != null) { Set<String> storedLanguages = sharedPreferences.getStringSet(getString(R.string.SET_SELECTED_LANGUAGE), null); String[] selectedValue = new String[0]; if (storedLanguages != null && storedLanguages.size() > 0) { if (storedLanguages.size() == 1 && storedLanguages.toArray()[0] == null) { sharedPreferences.edit().remove(getString(R.string.SET_SELECTED_LANGUAGE)).commit(); } else { selectedValue = storedLanguages.toArray(new String[0]); } } List<Languages.Language> languages = Languages.get(requireActivity()); if (languages != null) { String[] codesArr = new String[languages.size()]; String[] languagesArr = new String[languages.size()]; int i = 0; for (Languages.Language language : languages) { codesArr[i] = language.code; languagesArr[i] = language.language; i++; } SET_SELECTED_LANGUAGE.setEntries(languagesArr); SET_SELECTED_LANGUAGE.setEntryValues(codesArr); if (selectedValue.length > 0) { SET_SELECTED_LANGUAGE.setDefaultValue(selectedValue); } } } } @Override Loading Loading
app/src/main/assets/languages/iso_639_1.json +105 −1 Original line number Diff line number Diff line Loading @@ -381,7 +381,7 @@ }, { "code": "lo", "language": "ພາສາ" "language": "ລາວ" }, { "code": "lt", Loading Loading @@ -726,5 +726,109 @@ { "code": "zu", "language": "isiZulu" }, { "code": "ast", "language": "Asturianu" }, { "code": "ckb", "language": "سۆرانی" }, { "code": "cnr", "language": "crnogorski" }, { "code": "jbo", "language": "la .lojban." }, { "code": "kab", "language": "Taqbaylit" }, { "code": "kmr", "language": "Kurmancî" }, { "code": "ldn", "language": "Láadan" }, { "code": "lfn", "language": "lingua franca nova" }, { "code": "sco", "language": "Scots" }, { "code": "sma", "language": "Åarjelsaemien Gïele" }, { "code": "smj", "language": "Julevsámegiella" }, { "code": "szl", "language": "ślůnsko godka" }, { "code": "tai", "language": "ภาษาไท or ภาษาไต" }, { "code": "tok", "language": "toki pona" }, { "code": "zba", "language": "باليبلن" }, { "code": "zgh", "language": "ⵜⴰⵎⴰⵣⵉⵖⵜ" }, { "code": "en-GB", "language": "English (British)" }, { "code": "es-AR", "language": "Español (Argentina)" }, { "code": "es-MX", "language": "Español (México)" }, { "code": "fr-QC", "language": "Français (Canadien)" }, { "code": "pt-BR", "language": "Português (Brasil)" }, { "code": "pt-PT", "language": "Português (Portugal)" }, { "code": "sr-Latn", "language": "Srpski (latinica)" }, { "code": "zh-CN", "language": "简体中文" }, { "code": "zh-HK", "language": "繁體中文(香港)" }, { "code": "zh-TW", "language": "繁體中文(臺灣)" } ] No newline at end of file
app/src/main/java/app/fedilab/android/mastodon/helper/CustomEmoji.java +4 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ import app.fedilab.android.mastodon.client.entities.api.Status; public class CustomEmoji extends ReplacementSpan { private final float scale; private float scale; private final WeakReference<View> viewWeakReference; private Drawable imageDrawable; private boolean callbackCalled; Loading @@ -40,6 +40,9 @@ public class CustomEmoji extends ReplacementSpan { this.viewWeakReference = viewWeakReference; SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(mContext); scale = sharedpreferences.getFloat(mContext.getString(R.string.SET_FONT_SCALE), 1.1f); if (scale > 1.3f) { scale = 1.3f; } callbackCalled = false; } Loading
app/src/main/java/app/fedilab/android/mastodon/jobs/ComposeWorker.java +2 −3 Original line number Diff line number Diff line Loading @@ -230,7 +230,6 @@ public class ComposeWorker extends Worker { LocalBroadcastManager.getInstance(context).sendBroadcast(intentBD); return; } String language = sharedPreferences.getString(context.getString(R.string.SET_COMPOSE_LANGUAGE) + dataPost.userId + dataPost.instance, null); if (statuses.get(i).local_only) { statuses.get(i).text += " \uD83D\uDC41"; } Loading Loading @@ -258,11 +257,11 @@ public class ComposeWorker extends Worker { if (dataPost.scheduledDate == null) { if (dataPost.statusEditId == null) { statusCall = mastodonStatusesService.createStatus(null, dataPost.token, statuses.get(i).text, attachmentIds, poll_options, poll_expire_in, poll_multiple, poll_hide_totals, statuses.get(i).quote_id == null ? in_reply_to_status : null, statuses.get(i).sensitive, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), language, statuses.get(i).quote_id, statuses.get(i).content_type); poll_multiple, poll_hide_totals, statuses.get(i).quote_id == null ? in_reply_to_status : null, statuses.get(i).sensitive, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), statuses.get(i).language, statuses.get(i).quote_id, statuses.get(i).content_type); } else { //Status is edited statusCall = mastodonStatusesService.updateStatus(null, dataPost.token, dataPost.statusEditId, statuses.get(i).text, attachmentIds, poll_options, poll_expire_in, poll_multiple, poll_hide_totals, statuses.get(i).quote_id == null ? in_reply_to_status : null, statuses.get(i).sensitive, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), language, statuses.get(i).spoilerChecked ? statuses.get(i).spoiler_text : null, statuses.get(i).visibility.toLowerCase(), statuses.get(i).language, media_edit_id, media_edit_description, media_edit_focus); } try { Loading
app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -1695,7 +1695,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder if (statusDraft.language == null || statusDraft.language.isEmpty()) { String currentCode = sharedpreferences.getString(context.getString(R.string.SET_COMPOSE_LANGUAGE) + account.user_id + account.instance, Locale.getDefault().getLanguage()); if (currentCode == null || currentCode.isEmpty()) { if (currentCode.isEmpty()) { currentCode = "EN"; } statusDraft.language = currentCode; Loading
app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentComposeSettings.java +39 −0 Original line number Diff line number Diff line Loading @@ -18,11 +18,16 @@ import android.content.SharedPreferences; import android.os.Bundle; import androidx.preference.EditTextPreference; import androidx.preference.MultiSelectListPreference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceManager; import java.util.List; import java.util.Set; import app.fedilab.android.BaseMainActivity; import app.fedilab.android.R; import app.fedilab.android.mastodon.client.entities.app.Languages; public class FragmentComposeSettings extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { Loading @@ -40,6 +45,40 @@ public class FragmentComposeSettings extends PreferenceFragmentCompat implements String val = sharedPreferences.getString(getString(R.string.SET_WATERMARK_TEXT) + BaseMainActivity.currentUserID + BaseMainActivity.currentInstance, sharedPreferences.getString(getString(R.string.SET_WATERMARK_TEXT), null)); SET_WATERMARK_TEXT.setText(val); } MultiSelectListPreference SET_SELECTED_LANGUAGE = findPreference(getString(R.string.SET_SELECTED_LANGUAGE)); if (SET_SELECTED_LANGUAGE != null) { Set<String> storedLanguages = sharedPreferences.getStringSet(getString(R.string.SET_SELECTED_LANGUAGE), null); String[] selectedValue = new String[0]; if (storedLanguages != null && storedLanguages.size() > 0) { if (storedLanguages.size() == 1 && storedLanguages.toArray()[0] == null) { sharedPreferences.edit().remove(getString(R.string.SET_SELECTED_LANGUAGE)).commit(); } else { selectedValue = storedLanguages.toArray(new String[0]); } } List<Languages.Language> languages = Languages.get(requireActivity()); if (languages != null) { String[] codesArr = new String[languages.size()]; String[] languagesArr = new String[languages.size()]; int i = 0; for (Languages.Language language : languages) { codesArr[i] = language.code; languagesArr[i] = language.language; i++; } SET_SELECTED_LANGUAGE.setEntries(languagesArr); SET_SELECTED_LANGUAGE.setEntryValues(codesArr); if (selectedValue.length > 0) { SET_SELECTED_LANGUAGE.setDefaultValue(selectedValue); } } } } @Override Loading