From b0bde6e66dd79988217bec9e7bba1e4c785d123f Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 29 Oct 2022 19:03:31 +0200 Subject: [PATCH] translate --- app/src/main/AndroidManifest.xml | 24 +----------- .../app/fedilab/android/BaseMainActivity.java | 39 +------------------ .../android/activities/MediaActivity.java | 16 +++++++- .../android/ui/drawer/ReleaseNoteAdapter.java | 9 ++++- .../android/ui/drawer/StatusAdapter.java | 7 +++- .../settings/FragmentInterfaceSettings.java | 24 ++++++------ app/src/main/res/values/strings.xml | 38 ++++++++++++++++++ app/src/main/res/xml/pref_timelines.xml | 10 +++++ 8 files changed, 91 insertions(+), 76 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0ecaaab0..68cade83 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,14 +34,12 @@ tools:replace="android:allowBackup"> - - @@ -66,14 +64,11 @@ - @@ -87,9 +82,6 @@ android:icon="@mipmap/ic_launcher_fediverse" android:roundIcon="@mipmap/ic_launcher_fediverse_round" android:targetActivity=".activities.MainActivity"> - @@ -103,9 +95,6 @@ android:icon="@mipmap/ic_launcher_hero" android:roundIcon="@mipmap/ic_launcher_hero_round" android:targetActivity=".activities.MainActivity"> - @@ -119,9 +108,6 @@ android:icon="@mipmap/ic_launcher_atom" android:roundIcon="@mipmap/ic_launcher_atom_round" android:targetActivity=".activities.MainActivity"> - @@ -135,9 +121,6 @@ android:icon="@mipmap/ic_launcher_crash" android:roundIcon="@mipmap/ic_launcher_crash_round" android:targetActivity=".activities.MainActivity"> - @@ -151,9 +134,6 @@ android:icon="@mipmap/ic_launcher_mastalab" android:roundIcon="@mipmap/ic_launcher_mastalab_round" android:targetActivity=".activities.MainActivity"> - diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index 7ece4c48..453a0990 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -26,8 +26,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; -import android.content.pm.ActivityInfo; -import android.content.pm.PackageManager; import android.graphics.PorterDuff; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; @@ -214,44 +212,9 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt BaseMainActivity.currentToken = sharedpreferences.getString(Helper.PREF_USER_TOKEN, null); } - Intent intentIni = getIntent(); - PackageManager pm = getPackageManager(); - try { - if (intentIni != null && intentIni.getComponent() != null) { - ActivityInfo ai = pm.getActivityInfo(intentIni.getComponent(), PackageManager.GET_META_DATA); - String icon; - Bundle b = ai.metaData; - if (b != null) { - icon = b.getString("icon"); - if (icon != null) { - switch (icon) { - case "fediverse": - mLauncher = iconLauncher.FEDIVERSE; - break; - case "hero": - mLauncher = iconLauncher.HERO; - break; - case "atom": - mLauncher = iconLauncher.ATOM; - break; - case "braincrash": - mLauncher = iconLauncher.BRAINCRASH; - break; - default: - mLauncher = iconLauncher.BUBBLES; - } - SharedPreferences.Editor editor = sharedpreferences.edit(); - editor.putString(getString(R.string.SET_LOGO_LAUNCHER), icon); - editor.apply(); - } - } - } - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - } - mamageNewIntent(intentIni); + mamageNewIntent(getIntent()); ThemeHelper.initiliazeColors(BaseMainActivity.this); filterFetched = false; networkStateReceiver = new NetworkStateReceiver(); 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 b028dc19..bb10f198 100644 --- a/app/src/main/java/app/fedilab/android/activities/MediaActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MediaActivity.java @@ -21,6 +21,7 @@ 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.graphics.drawable.ColorDrawable; @@ -44,6 +45,7 @@ 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; @@ -171,7 +173,12 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { statusToTranslate = Html.fromHtml(descriptionToTranslate, Html.FROM_HTML_MODE_LEGACY).toString(); else statusToTranslate = Html.fromHtml(descriptionToTranslate).toString(); - myTransL.translate(statusToTranslate, MyTransL.getLocale(), params, new Results() { + 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) { @@ -231,7 +238,12 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { statusToTranslate = Html.fromHtml(descriptionToTranslate, Html.FROM_HTML_MODE_LEGACY).toString(); else statusToTranslate = Html.fromHtml(descriptionToTranslate).toString(); - myTransL.translate(statusToTranslate, MyTransL.getLocale(), params, new Results() { + 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) { 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 7d32d3cb..6e4309ca 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,12 +16,14 @@ 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; @@ -88,7 +90,12 @@ public class ReleaseNoteAdapter extends RecyclerView.Adapter params.setSource_lang("auto"); myTransL.setLibretranslateDomain("translate.fedilab.app"); String statusToTranslate; + String translate = sharedpreferences.getString(context.getString(R.string.SET_LIVE_TRANSLATE), MyTransL.getLocale()); + if (translate != null && translate.equalsIgnoreCase("default")) { + translate = MyTransL.getLocale(); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) statusToTranslate = Html.fromHtml(statusToDeal.content, Html.FROM_HTML_MODE_LEGACY).toString(); else statusToTranslate = Html.fromHtml(statusToDeal.content).toString(); - myTransL.translate(statusToTranslate, MyTransL.getLocale(), params, new Results() { + myTransL.translate(statusToTranslate, translate, params, new Results() { @Override public void onSuccess(Translate translate) { if (translate.getTranslatedContent() != null) { diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentInterfaceSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentInterfaceSettings.java index 5205bd1e..fcffbfb5 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentInterfaceSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentInterfaceSettings.java @@ -28,6 +28,7 @@ import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import androidx.preference.SeekBarPreference; +import app.fedilab.android.BuildConfig; import app.fedilab.android.R; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.LogoHelper; @@ -92,7 +93,7 @@ public class FragmentInterfaceSettings extends PreferenceFragmentCompat implemen if (key.compareToIgnoreCase(getString(R.string.SET_TIMELINES_IN_A_LIST)) == 0) { recreate = true; } - editor.apply(); + if (key.compareToIgnoreCase(getString(R.string.SET_LOGO_LAUNCHER)) == 0) { ListPreference SET_LOGO_LAUNCHER = findPreference(getString(R.string.SET_LOGO_LAUNCHER)); if (SET_LOGO_LAUNCHER != null) { @@ -100,45 +101,44 @@ public class FragmentInterfaceSettings extends PreferenceFragmentCompat implemen setIcon(requireActivity(), SET_LOGO_LAUNCHER.getValue()); SET_LOGO_LAUNCHER.setIcon(LogoHelper.getDrawable(SET_LOGO_LAUNCHER.getValue())); setDrawable(SET_LOGO_LAUNCHER.getValue()); + editor.putString(getString(R.string.SET_LOGO_LAUNCHER), SET_LOGO_LAUNCHER.getValue()); } } + editor.apply(); } } private void hideAllIcons(Context context) { + context.getPackageManager().setComponentEnabledSetting( - new ComponentName(context.getPackageName(), "app.fedilab.android.activities.MainActivity"), + new ComponentName(BuildConfig.APPLICATION_ID, "app.fedilab.android.activities.MainActivity.Bubbles"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); context.getPackageManager().setComponentEnabledSetting( - new ComponentName(context.getPackageName(), "app.fedilab.android.activities.MainActivity.Bubbles"), + new ComponentName(BuildConfig.APPLICATION_ID, "app.fedilab.android.activities.MainActivity.Fediverse"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); context.getPackageManager().setComponentEnabledSetting( - new ComponentName(context.getPackageName(), "app.fedilab.android.activities.MainActivity.Fediverse"), + new ComponentName(BuildConfig.APPLICATION_ID, "app.fedilab.android.activities.MainActivity.Hero"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); context.getPackageManager().setComponentEnabledSetting( - new ComponentName(context.getPackageName(), "app.fedilab.android.activities.MainActivity.Hero"), + new ComponentName(BuildConfig.APPLICATION_ID, "app.fedilab.android.activities.MainActivity.Atom"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); context.getPackageManager().setComponentEnabledSetting( - new ComponentName(context.getPackageName(), "app.fedilab.android.activities.MainActivity.Atom"), + new ComponentName(BuildConfig.APPLICATION_ID, "app.fedilab.android.activities.MainActivity.BrainCrash"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); context.getPackageManager().setComponentEnabledSetting( - new ComponentName(context.getPackageName(), "app.fedilab.android.activities.MainActivity.BrainCrash"), - PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); - - context.getPackageManager().setComponentEnabledSetting( - new ComponentName(context.getPackageName(), "app.fedilab.android.activities.MainActivity.Mastalab"), + new ComponentName(BuildConfig.APPLICATION_ID, "app.fedilab.android.activities.MainActivity.Mastalab"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } private void setIcon(Context context, String iconName) { context.getPackageManager().setComponentEnabledSetting( - new ComponentName(context.getPackageName(), "app.fedilab.android.activities.MainActivity." + iconName), + new ComponentName(BuildConfig.APPLICATION_ID, "app.fedilab.android.activities.MainActivity." + iconName), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 680a4999..12828827 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -864,6 +864,40 @@ sc + + + default + en + fr + de + it + ja + zh + ar + pt + es + sr + uk + ru + + + + + ----- + English + Français + Deutsch + Italiano + 日本語 + 繁體中文 + العربية + Português + Español + Српски + Українська + Русский + + English Français @@ -955,6 +989,8 @@ SET_DISPLAY_ALL_NOTIFICATIONS_TYPE SET_EXCLUDED_NOTIFICATIONS_TYPE SET_EXPAND_MEDIA + SET_LIVE_TRANSLATE + SET_TRUNCATE_TOOTS_SIZE SET_ART_WITH_NSFW SET_VIDEO_CACHE @@ -1517,4 +1553,6 @@ Unpin message The message is no longer pinned! The message has been pinned + Translate messages + Force translation to a specific language. Choose first value to reset to device settings diff --git a/app/src/main/res/xml/pref_timelines.xml b/app/src/main/res/xml/pref_timelines.xml index edf9dfae..be2286c9 100644 --- a/app/src/main/res/xml/pref_timelines.xml +++ b/app/src/main/res/xml/pref_timelines.xml @@ -19,6 +19,16 @@ app:key="@string/SET_EXPAND_MEDIA" app:singleLineTitle="false" app:title="@string/expand_image" /> + +