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