diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java index bb6452c65..0392d2b11 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.provider.Settings; import androidx.annotation.StringRes; import com.aefyr.tsg.g2.TelegramStickersPack; import com.aefyr.tsg.g2.TelegramStickersService; @@ -31,6 +32,8 @@ import ru.vtosters.lite.ui.dialogs.OTADialog; import ru.vtosters.lite.ui.fragments.tgstickers.StickersFragment; import ru.vtosters.lite.utils.*; +import java.util.Locale; + public class VTSettings extends TrackedMaterialPreferenceToolbarFragment implements TelegramStickersService.StickersEventsListener { public static String getValAsString(@StringRes int strRes, Boolean value) { @@ -470,13 +473,28 @@ public class VTSettings extends TrackedMaterialPreferenceToolbarFragment impleme "", requireContext().getString(R.string.vtlproxy), getProxysumm(), - R.drawable.ic_globe_outline_28, + R.drawable.ic_linked_outline_28, preference -> { NavigatorUtils.switchFragment(requireContext(), ProxySettingsFragment.class); return false; } ); + if (Build.VERSION.SDK_INT >= 33) { + PreferenceFragmentUtils.addPreference( + getPreferenceScreen(), + "", + AndroidUtils.getString("appLanguage"), + AndroidUtils.getString("currentLanguage") + " " + AndroidUtils.upString(Locale.getDefault().getDisplayLanguage()), + R.drawable.ic_globe_outline_28, + preference -> { + Intent intent = new Intent("android.settings.APP_LOCALE_SETTINGS", Uri.parse("package:" + AndroidUtils.getPackageName())); + startActivity(intent); + return false; + } + ); + } + PreferenceFragmentUtils.addPreference( getPreferenceScreen(), "", diff --git a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java index 0fe8b9aa8..e562c5fc9 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java @@ -18,6 +18,7 @@ import com.vk.core.dialogs.alert.VkAlertDialog; import com.vk.core.util.Screen; import com.vk.core.util.ToastUtils; import com.vtosters.lite.general.fragments.WebViewFragment; +import ru.vtosters.lite.BuildConfig; import ru.vtosters.lite.hooks.DateHook; import java.io.File; @@ -97,26 +98,6 @@ public class AndroidUtils { return getGlobalContext().getApplicationInfo().loadLabel(getGlobalContext().getPackageManager()).toString(); } - public static Context setDefaultLocale(Context context) { - Locale locale = new Locale(DateHook.getLocale()); - Locale.setDefault(locale); - - var resources = context.getResources(); - var configuration = resources.getConfiguration(); - - if (Build.VERSION.SDK_INT >= 24) { - configuration.setLocale(locale); - configuration.setLayoutDirection(locale); - return context.createConfigurationContext(configuration); - } - - configuration.locale = locale; - configuration.setLayoutDirection(locale); - resources.updateConfiguration(configuration, resources.getDisplayMetrics()); - - return context; - } // Language changer and BaseContext injector - public static float[] getCenterScreenCoords() { int width = getResources().getDisplayMetrics().widthPixels; int height = getResources().getDisplayMetrics().heightPixels; @@ -246,4 +227,8 @@ public class AndroidUtils { return true; } } + + public static String upString(String s) { + return s.substring(0,1).toUpperCase() + s.substring(1).toLowerCase(); + } } \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java index 957d16177..1cfd9737a 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java @@ -38,7 +38,7 @@ public class Preferences { } // VK Init public static String getBuildName() { - return BuildConfig.BUILD_TYPE.substring(0,1).toUpperCase() + BuildConfig.BUILD_TYPE.substring(1).toLowerCase(); + return AndroidUtils.upString(BuildConfig.BUILD_TYPE); } public static SharedPreferences getPreferences() { return getGlobalContext().getSharedPreferences("com.vtosters.lite_preferences", Context.MODE_PRIVATE); diff --git a/smali/res/values-ru/strings.xml b/smali/res/values-ru/strings.xml index 342b18393..9859fcc80 100644 --- a/smali/res/values-ru/strings.xml +++ b/smali/res/values-ru/strings.xml @@ -6399,4 +6399,7 @@ Может быть нестабильно Данные + + Текущий язык: + Язык приложения \ No newline at end of file diff --git a/smali/res/values/strings.xml b/smali/res/values/strings.xml index 0b46040b3..739907af8 100644 --- a/smali/res/values/strings.xml +++ b/smali/res/values/strings.xml @@ -6537,4 +6537,7 @@ May look like a fake leaving the online" May be unstable Data + + Current language: + App language