diff options
author | Thomas <tschneider.ac@gmail.com> | 2022-12-27 17:43:00 +0100 |
---|---|---|
committer | Thomas <tschneider.ac@gmail.com> | 2022-12-27 17:43:00 +0100 |
commit | 7dfedbdaa4da1bdb6ba53ee59a565c5b60aaa12f (patch) | |
tree | cd036cc3fb6e0e7c5896bf520e15a1a8cffa31c6 | |
parent | 089d6b9ba81a22cd1ce10b9da081145a1ee918c5 (diff) | |
parent | eb78c809251ed3829bfb3e03563d3f058ae28085 (diff) |
Merge branch 'develop'
20 files changed, 334 insertions, 160 deletions
diff --git a/app/build.gradle b/app/build.gradle index ccc80bdbc..566df8e74 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { defaultConfig { minSdk 21 targetSdk 33 - versionCode 454 - versionName "3.13.0" + versionCode 455 + versionName "3.13.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } flavorDimensions "default" diff --git a/app/src/main/assets/release_notes/notes.json b/app/src/main/assets/release_notes/notes.json index c44d304a9..2d2d1bbad 100644 --- a/app/src/main/assets/release_notes/notes.json +++ b/app/src/main/assets/release_notes/notes.json @@ -1,5 +1,10 @@ [ { + "version": "3.13.1", + "code": "455", + "note": "Added:\n- DeepL translation support free/pro keys\n\nChanged:\n- Hide buttons for media when editing\n\nFixed:\n- GIF loaded as static images\n- Suggested accounts cannot be followed" + }, + { "version": "3.13.0", "code": "454", "note": "Added:\n- Post random quotes\n- Group reblogs in home timeline\n- Rename Nitter timelines\n- Android 13 support\n- Pagination with search / trending\n- Allow to remove left margin in messages (default: disabled)\n\nChanged:\n- Display translate button only when language is different\n- Respect blank spaces between words in messages\n- Focus button more accessible when editing media\n- Visual feedback for block on account list\n- Visual changes with compose / top bar\n- Use custom Nitter timeline name in manage timelines\n\nFixed:\n- Behavior with cw toggle\n- Truncated gimini links\n- Nav buttons not visible with media (Light theme)\n- Status bar with Android 5\n- Fix links not clickable\n- Fix deep links\n- Fix remote threads not fetched for some instances\n- Adding description to shared media\n- Open with another accounts\n- Chars size not respected for Android 5-6\n- Wrong instance fetched for instances.social\n- Bouncing Timeline on refresh\n- Links to mentions, tags, urls, not visible.\n- Custom channel sounds not applied\n- users with short username are not linked\n- Fix crashes" diff --git a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java index 608f6f359..a93697f68 100644 --- a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java @@ -21,14 +21,12 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Point; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Handler; -import android.text.Html; import android.view.Display; import android.view.Menu; import android.view.MenuItem; @@ -44,15 +42,8 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; -import androidx.preference.PreferenceManager; import androidx.viewpager.widget.ViewPager; -import com.github.stom79.mytransl.MyTransL; -import com.github.stom79.mytransl.client.HttpsConnectionException; -import com.github.stom79.mytransl.client.Results; -import com.github.stom79.mytransl.translate.Params; -import com.github.stom79.mytransl.translate.Translate; - import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -63,6 +54,7 @@ import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.databinding.ActivityMediaPagerBinding; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MediaHelper; +import app.fedilab.android.helper.TranslateHelper; import app.fedilab.android.interfaces.OnDownloadInterface; import app.fedilab.android.ui.fragment.media.FragmentMedia; import es.dmoral.toasty.Toasty; @@ -157,40 +149,14 @@ public class MediaActivity extends BaseTransparentActivity implements OnDownload binding.mediaDescription.setText(description); binding.translate.setOnClickListener(v -> { String descriptionToTranslate = attachments.get(mediaPosition - 1).description; - MyTransL.translatorEngine et = MyTransL.translatorEngine.LIBRETRANSLATE; - final MyTransL myTransL = MyTransL.getInstance(et); - myTransL.setObfuscation(true); - Params params = new Params(); - params.setSplit_sentences(false); - params.setFormat(Params.fType.TEXT); - params.setSource_lang("auto"); - myTransL.setLibretranslateDomain("translate.fedilab.app"); - String statusToTranslate; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) - statusToTranslate = Html.fromHtml(descriptionToTranslate, Html.FROM_HTML_MODE_LEGACY).toString(); - else - statusToTranslate = Html.fromHtml(descriptionToTranslate).toString(); - SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(MediaActivity.this); - String translate = sharedpreferences.getString(getString(R.string.SET_LIVE_TRANSLATE), MyTransL.getLocale()); - if (translate != null && translate.equalsIgnoreCase("default")) { - translate = MyTransL.getLocale(); - } - myTransL.translate(statusToTranslate, translate, params, new Results() { - @Override - public void onSuccess(Translate translate) { - if (translate.getTranslatedContent() != null) { - attachments.get(mediaPosition - 1).translation = translate.getTranslatedContent(); - binding.mediaDescriptionTranslated.setText(translate.getTranslatedContent()); - binding.mediaDescriptionTranslated.setVisibility(View.VISIBLE); - binding.mediaDescription.setVisibility(View.GONE); - } else { - Toasty.error(MediaActivity.this, getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); - } - } - - @Override - public void onFail(HttpsConnectionException httpsConnectionException) { - + TranslateHelper.translate(MediaActivity.this, descriptionToTranslate, translated -> { + if (translated != null) { + attachments.get(mediaPosition - 1).translation = translated; + binding.mediaDescriptionTranslated.setText(translated); + binding.mediaDescriptionTranslated.setVisibility(View.VISIBLE); + binding.mediaDescription.setVisibility(View.GONE); + } else { + Toasty.error(MediaActivity.this, getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); } }); }); @@ -222,40 +188,14 @@ public class MediaActivity extends BaseTransparentActivity implements OnDownload } binding.translate.setOnClickListener(v -> { String descriptionToTranslate = attachments.get(position).description; - MyTransL.translatorEngine et = MyTransL.translatorEngine.LIBRETRANSLATE; - final MyTransL myTransL = MyTransL.getInstance(et); - myTransL.setObfuscation(true); - Params params = new Params(); - params.setSplit_sentences(false); - params.setFormat(Params.fType.TEXT); - params.setSource_lang("auto"); - myTransL.setLibretranslateDomain("translate.fedilab.app"); - String statusToTranslate; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) - statusToTranslate = Html.fromHtml(descriptionToTranslate, Html.FROM_HTML_MODE_LEGACY).toString(); - else - statusToTranslate = Html.fromHtml(descriptionToTranslate).toString(); - SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(MediaActivity.this); - String translate = sharedpreferences.getString(getString(R.string.SET_LIVE_TRANSLATE), MyTransL.getLocale()); - if (translate != null && translate.equalsIgnoreCase("default")) { - translate = MyTransL.getLocale(); - } - myTransL.translate(statusToTranslate, translate, params, new Results() { - @Override - public void onSuccess(Translate translate) { - if (translate.getTranslatedContent() != null) { - attachments.get(position).translation = translate.getTranslatedContent(); - binding.mediaDescriptionTranslated.setText(translate.getTranslatedContent()); - binding.mediaDescriptionTranslated.setVisibility(View.VISIBLE); - binding.mediaDescription.setVisibility(View.GONE); - } else { - Toasty.error(MediaActivity.this, getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); - } - } - - @Override - public void onFail(HttpsConnectionException httpsConnectionException) { - + TranslateHelper.translate(MediaActivity.this, descriptionToTranslate, translated -> { + if (translated != null) { + attachments.get(position).translation = translated; + binding.mediaDescriptionTranslated.setText(translated); + binding.mediaDescriptionTranslated.setVisibility(View.VISIBLE); + binding.mediaDescription.setVisibility(View.GONE); + } else { + Toasty.error(MediaActivity.this, getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); } }); }); diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 75ea76260..dc415779c 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -124,14 +124,17 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Date; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Random; +import java.util.Set; import java.util.TimeZone; import java.util.UUID; import java.util.regex.Matcher; @@ -1236,7 +1239,8 @@ public class Helper { counter++; Date now = new Date(); attachment.filename = formatter.format(now) + "." + extension; - if (attachment.mimeType.startsWith("image")) { + Set<String> imageType = new HashSet<>(Arrays.asList("image/png", "image/jpeg", "image/jpg")); + if (imageType.contains(attachment.mimeType)) { final File certCacheDir = new File(context.getCacheDir(), TEMP_MEDIA_DIRECTORY); boolean isCertCacheDirExists = certCacheDir.exists(); if (!isCertCacheDirExists) { diff --git a/app/src/main/java/app/fedilab/android/helper/TranslateHelper.java b/app/src/main/java/app/fedilab/android/helper/TranslateHelper.java new file mode 100644 index 000000000..2edbb8aca --- /dev/null +++ b/app/src/main/java/app/fedilab/android/helper/TranslateHelper.java @@ -0,0 +1,91 @@ +package app.fedilab.android.helper; +/* Copyright 2022 Thomas Schneider + * + * This file is a part of Fedilab + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Fedilab; if not, + * see <http://www.gnu.org/licenses>. */ + +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Build; +import android.text.Html; +import android.widget.Toast; + +import androidx.preference.PreferenceManager; + +import com.github.stom79.mytransl.MyTransL; +import com.github.stom79.mytransl.client.HttpsConnectionException; +import com.github.stom79.mytransl.client.Results; +import com.github.stom79.mytransl.translate.Params; + +import app.fedilab.android.R; +import es.dmoral.toasty.Toasty; + +public class TranslateHelper { + + public static void translate(Context context, String toTranslate, Translate callback) { + String statusToTranslate; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) + statusToTranslate = Html.fromHtml(toTranslate, Html.FROM_HTML_MODE_LEGACY).toString(); + else + statusToTranslate = Html.fromHtml(toTranslate).toString(); + SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); + String translator = sharedpreferences.getString(context.getString(R.string.SET_TRANSLATOR), "FEDILAB"); + MyTransL.translatorEngine et; + if (translator.compareToIgnoreCase("FEDILAB") == 0) { + et = MyTransL.translatorEngine.LIBRETRANSLATE; + } else { + et = MyTransL.translatorEngine.DEEPL; + } + final MyTransL myTransL = MyTransL.getInstance(et); + myTransL.setObfuscation(true); + Params params = new Params(); + params.setSplit_sentences(false); + params.setFormat(Params.fType.TEXT); + params.setSource_lang("auto"); + if (translator.compareToIgnoreCase("FEDILAB") == 0) { + myTransL.setLibretranslateDomain("translate.fedilab.app"); + } else { + String translatorVersion = sharedpreferences.getString(context.getString(R.string.SET_TRANSLATOR_VERSION), "PRO"); + params.setPro(translatorVersion.equals("PRO")); + String apikey = sharedpreferences.getString(context.getString(R.string.SET_TRANSLATOR_API_KEY), null); + myTransL.setDeeplAPIKey(apikey.trim()); + } + + String translate = sharedpreferences.getString(context.getString(R.string.SET_LIVE_TRANSLATE), MyTransL.getLocale()); + if (translate.equalsIgnoreCase("default")) { + translate = MyTransL.getLocale(); + } + + myTransL.translate(statusToTranslate, translate, params, new Results() { + @Override + public void onSuccess(com.github.stom79.mytransl.translate.Translate translate) { + if (translate.getTranslatedContent() != null) { + callback.onTranslate(translate.getTranslatedContent()); + } else { + callback.onTranslate(""); + Toasty.error(context, context.getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); + } + } + + @Override + public void onFail(HttpsConnectionException httpsConnectionException) { + callback.onTranslate(""); + Toasty.error(context, context.getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); + } + }); + } + + public interface Translate { + void onTranslate(String translated); + } +} diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index ea5311c4e..75f794be8 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -1021,6 +1021,13 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder for (Attachment attachment : attachmentList) { ComposeAttachmentItemBinding composeAttachmentItemBinding = ComposeAttachmentItemBinding.inflate(LayoutInflater.from(context), holder.binding.attachmentsList, false); composeAttachmentItemBinding.buttonPlay.setVisibility(View.GONE); + if (editMessageId != null) { + composeAttachmentItemBinding.editPreview.setVisibility(View.INVISIBLE); + composeAttachmentItemBinding.buttonDescription.setVisibility(View.INVISIBLE); + composeAttachmentItemBinding.buttonOrderDown.setVisibility(View.INVISIBLE); + composeAttachmentItemBinding.buttonOrderUp.setVisibility(View.INVISIBLE); + composeAttachmentItemBinding.buttonRemove.setVisibility(View.INVISIBLE); + } String attachmentPath = attachment.local_path != null && !attachment.local_path.trim().isEmpty() ? attachment.local_path : attachment.preview_url; if (attachment.type != null || attachment.mimeType != null) { if ((attachment.type != null && attachment.type.toLowerCase().startsWith("image")) || (attachment.mimeType != null && attachment.mimeType.toLowerCase().startsWith("image"))) { diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ReleaseNoteAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ReleaseNoteAdapter.java index 6e4309ca2..65353d334 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ReleaseNoteAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ReleaseNoteAdapter.java @@ -16,28 +16,21 @@ package app.fedilab.android.ui.drawer; import android.content.Context; -import android.content.SharedPreferences; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import androidx.annotation.NonNull; -import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.RecyclerView; -import com.github.stom79.mytransl.MyTransL; -import com.github.stom79.mytransl.client.HttpsConnectionException; -import com.github.stom79.mytransl.client.Results; -import com.github.stom79.mytransl.translate.Params; -import com.github.stom79.mytransl.translate.Translate; - import java.util.List; import java.util.Locale; import app.fedilab.android.R; import app.fedilab.android.client.entities.app.ReleaseNote; import app.fedilab.android.databinding.DrawerReleaseNoteBinding; +import app.fedilab.android.helper.TranslateHelper; import es.dmoral.toasty.Toasty; @@ -81,37 +74,14 @@ public class ReleaseNoteAdapter extends RecyclerView.Adapter<ReleaseNoteAdapter. holder.binding.containerTrans.setVisibility(View.GONE); holder.binding.translate.setVisibility(View.VISIBLE); } - holder.binding.translate.setOnClickListener(v -> { - MyTransL.translatorEngine et = MyTransL.translatorEngine.LIBRETRANSLATE; - final MyTransL myTransL = MyTransL.getInstance(et); - myTransL.setObfuscation(true); - Params params = new Params(); - params.setSplit_sentences(false); - params.setFormat(Params.fType.TEXT); - params.setSource_lang("auto"); - myTransL.setLibretranslateDomain("translate.fedilab.app"); - SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); - String translate = sharedpreferences.getString(context.getString(R.string.SET_LIVE_TRANSLATE), MyTransL.getLocale()); - if (translate != null && translate.equalsIgnoreCase("default")) { - translate = MyTransL.getLocale(); + holder.binding.translate.setOnClickListener(v -> TranslateHelper.translate(context, note.note, translated -> { + if (translated != null) { + note.noteTranslated = translated; + notifyItemChanged(holder.getBindingAdapterPosition()); + } else { + Toasty.error(context, context.getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); } - myTransL.translate(note.note, translate, params, new Results() { - @Override - public void onSuccess(Translate translate) { - if (translate.getTranslatedContent() != null) { - note.noteTranslated = translate.getTranslatedContent(); - notifyItemChanged(holder.getBindingAdapterPosition()); - } else { - Toasty.error(context, context.getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); - } - } - - @Override - public void onFail(HttpsConnectionException httpsConnectionException) { - Toasty.error(context, context.getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); - } - }); - }); + })); } diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java index a2f6013f2..f0be81cc0 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/StatusAdapter.java @@ -87,10 +87,6 @@ import com.bumptech.glide.RequestBuilder; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.request.RequestOptions; import com.github.stom79.mytransl.MyTransL; -import com.github.stom79.mytransl.client.HttpsConnectionException; -import com.github.stom79.mytransl.client.Results; -import com.github.stom79.mytransl.translate.Params; -import com.github.stom79.mytransl.translate.Translate; import com.vanniktech.emoji.EmojiManager; import com.vanniktech.emoji.EmojiPopup; import com.vanniktech.emoji.one.EmojiOneProvider; @@ -145,6 +141,7 @@ import app.fedilab.android.helper.MediaHelper; import app.fedilab.android.helper.SpannableHelper; import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.helper.TimelineHelper; +import app.fedilab.android.helper.TranslateHelper; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonContext; import app.fedilab.android.viewmodel.mastodon.AccountsVM; import app.fedilab.android.viewmodel.mastodon.SearchVM; @@ -1982,6 +1979,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> } + private static void translate(Context context, Status statusToDeal, StatusViewHolder holder, RecyclerView.Adapter<RecyclerView.ViewHolder> adapter) { @@ -1990,40 +1988,15 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> statusToTranslate = Html.fromHtml(statusToDeal.content, Html.FROM_HTML_MODE_LEGACY).toString(); else statusToTranslate = Html.fromHtml(statusToDeal.content).toString(); - int countMorseChar = ComposeAdapter.countMorseChar(statusToTranslate); if (countMorseChar < 4) { - MyTransL.translatorEngine et = MyTransL.translatorEngine.LIBRETRANSLATE; - final MyTransL myTransL = MyTransL.getInstance(et); - myTransL.setObfuscation(true); - Params params = new Params(); - params.setSplit_sentences(false); - params.setFormat(Params.fType.TEXT); - params.setSource_lang("auto"); - myTransL.setLibretranslateDomain("translate.fedilab.app"); - - SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); - String translate = sharedpreferences.getString(context.getString(R.string.SET_LIVE_TRANSLATE), MyTransL.getLocale()); - if (translate != null && translate.equalsIgnoreCase("default")) { - translate = MyTransL.getLocale(); - } - - - myTransL.translate(statusToTranslate, translate, params, new Results() { - @Override - public void onSuccess(Translate translate) { - if (translate.getTranslatedContent() != null) { - statusToDeal.translationShown = true; - statusToDeal.translationContent = translate.getTranslatedContent(); - adapter.notifyItemChanged(holder.getBindingAdapterPosition()); - } else { - Toasty.error(context, context.getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); - } - } - - @Override - public void onFail(HttpsConnectionException httpsConnectionException) { - + TranslateHelper.translate(context, statusToDeal.content, translated -> { + if (translated != null) { + statusToDeal.translationShown = true; + statusToDeal.translationContent = translated; + adapter.notifyItemChanged(holder.getBindingAdapterPosition()); + } else { + Toasty.error(context, context.getString(R.string.toast_error_translate), Toast.LENGTH_LONG).show(); } }); } else { diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/SuggestionAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/SuggestionAdapter.java index 1637004cb..58eb17123 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/SuggestionAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/SuggestionAdapter.java @@ -109,7 +109,6 @@ public class SuggestionAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol new WeakReference<>(holder.binding.bio)), TextView.BufferType.SPANNABLE); - holder.binding.followAction.setEnabled(false); holder.binding.followAction.setOnClickListener(v -> { suggestionList.remove(position); notifyItemRemoved(position); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentTimelinesSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentTimelinesSettings.java index a8f2a5ee4..04fd9e9f8 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentTimelinesSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentTimelinesSettings.java @@ -17,9 +17,11 @@ package app.fedilab.android.ui.fragment.settings; import android.content.SharedPreferences; import android.os.Bundle; +import androidx.preference.EditTextPreference; import androidx.preference.ListPreference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceManager; +import androidx.preference.PreferenceScreen; import app.fedilab.android.R; import app.fedilab.android.helper.Helper; @@ -33,10 +35,31 @@ public class FragmentTimelinesSettings extends PreferenceFragmentCompat implemen } private void createPref() { + + getPreferenceScreen().removeAll(); + addPreferencesFromResource(R.xml.pref_timelines); + PreferenceScreen preferenceScreen = getPreferenceScreen(); ListPreference SET_LOAD_MEDIA_TYPE = findPreference(getString(R.string.SET_LOAD_MEDIA_TYPE)); if (SET_LOAD_MEDIA_TYPE != null) { SET_LOAD_MEDIA_TYPE.getContext().setTheme(Helper.dialogStyle()); } + ListPreference SET_TRANSLATOR = findPreference(getString(R.string.SET_TRANSLATOR)); + if (SET_TRANSLATOR != null) { + SET_TRANSLATOR.getContext().setTheme(Helper.dialogStyle()); + } + ListPreference SET_TRANSLATOR_VERSION = findPreference(getString(R.string.SET_TRANSLATOR_VERSION)); + if (SET_TRANSLATOR_VERSION != null) { + SET_TRANSLATOR_VERSION.getContext().setTheme(Helper.dialogStyle()); + } + EditTextPreference SET_TRANSLATOR_API_KEY = findPreference(getString(R.string.SET_TRANSLATOR_API_KEY)); + if (SET_TRANSLATOR != null && SET_TRANSLATOR.getValue().equals("FEDILAB")) { + if (SET_TRANSLATOR_API_KEY != null) { + preferenceScreen.removePreferenceRecursively("SET_TRANSLATOR_API_KEY"); + } + if (SET_TRANSLATOR_VERSION != null) { + preferenceScreen.removePreferenceRecursively("SET_TRANSLATOR_VERSION"); + } + } } @Override @@ -44,8 +67,10 @@ public class FragmentTimelinesSettings extends PreferenceFragmentCompat implemen if (getActivity() != null) { SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); SharedPreferences.Editor editor = sharedpreferences.edit(); - editor.apply(); + if (key.compareToIgnoreCase(getString(R.string.SET_TRANSLATOR)) == 0) { + createPref(); + } } } diff --git a/app/src/main/res/layout/drawer_suggestion.xml b/app/src/main/res/layout/drawer_suggestion.xml index a8eba685e..de4ccbadc 100644 --- a/app/src/main/res/layout/drawer_suggestion.xml +++ b/app/src/main/res/layout/drawer_suggestion.xml @@ -106,7 +106,9 @@ android:layout_marginTop="6dp" android:insetTop="0dp" android:insetBottom="0dp" - android:padding="6dp" + android:padding="0dp" + app:iconGravity="textStart" + app:iconPadding="0dp" app:icon="@drawable/ic_baseline_person_add_24" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/bio" /> diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index f15e3f931..6929f0aff 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -942,4 +942,8 @@ <string name="add_all_users_home_muted">Přidat všechny uživatele pro ztlumený domov</string> <string name="display">Zobrazit</string> <string name="group_reblogs">Seskupovat reblogy v domovské časové ose</string> + <string name="manage_accounts">Spravovat účty</string> + <string name="report_all_more">Vyberte vše, co vyhovuje</string> + <string name="set_remove_left_margin_title">Odstranit levý okraj</string> + <string name="set_remove_left_margin">Odstranit v časových osách levý okraj, aby se zprávy zobrazovaly kompaktněji</string> </resources>
\ No newline at end of file diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 9d8a91816..1cc6350d9 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -931,4 +931,6 @@ <string name="muted_menu_home">Usuarias acalas en Inicio</string> <string name="group_reblogs">Comparticións para o grupo no Inicio</string> <string name="manage_accounts">Xestionar contas</string> + <string name="set_remove_left_margin_title">Eliminar marxe esquerda</string> + <string name="set_remove_left_margin">Eliminar a marxe esquerda nas cronoloxías para compactar máis as mensaxes</string> </resources>
\ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 77b64af8e.. |