Explorar o código

Set X-Locale header on API requestBuilder header for multi lingual response on that API and save language identifier instead of title on shared prefs for language

Khubaib hai 10 meses
pai
achega
f96f525820

+ 4 - 1
app/src/main/java/com/vpn/fastestvpnservice/retrofit/WebServiceFactory.java

@@ -24,6 +24,7 @@ public class WebServiceFactory {
     private static final String KEY_HEADER_AUTHORIZATION = "Authorization";
     private static final String X_PLATFORM = "X-PLATFORM";
     private static final String X_PLATFORM_TOKEN = "X-PLATFORM-TOKEN";
+    private static final String X_LOCALE = "X-Locale";
     private static final String PLATFORM = "platform";
     private static final String VERSION = "version";
 
@@ -50,10 +51,12 @@ public class WebServiceFactory {
 
                     Request original = chain.request();
                     Request.Builder requestBuilder;
+                    prefHelper.getXPlatformToken();
                     requestBuilder = original.newBuilder()
                             .header(X_PLATFORM, "android")
                             .header(KEY_HEADER_AUTHORIZATION, (prefHelper.getUser() != null) ? "Bearer " + prefHelper.getUser().getToken() : "")
-                            .header(X_PLATFORM_TOKEN, (prefHelper.getXPlatformToken() != null) ? prefHelper.getXPlatformToken() : "");
+                            .header(X_PLATFORM_TOKEN, prefHelper.getXPlatformToken())
+                            .header(X_LOCALE, prefHelper.getLanguage());
 
                     return chain.proceed(requestBuilder.build());
                 }

+ 4 - 4
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/SettingsScreen.kt

@@ -1212,9 +1212,9 @@ fun SelectLanguage(
                                 )
                                 .padding(start = 2.dp, top = 15.dp)
                                 .selectable(
-                                    selected = language.title == selectedLanguage,
+                                    selected = selectedLanguage == language.identifier,
                                     onClick = {
-                                        selectedLanguage = language.title
+                                        selectedLanguage = language.identifier
                                         basePreferenceHelper.saveLanguage(selectedLanguage)
 
                                         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
@@ -1249,9 +1249,9 @@ fun SelectLanguage(
                             verticalAlignment = Alignment.CenterVertically
                         ) {
                             RadioButton(
-                                selected = language.title == selectedLanguage,
+                                selected = selectedLanguage == language.identifier,
                                 onClick = {
-                                    selectedLanguage = language.title
+                                    selectedLanguage = language.identifier
                                     basePreferenceHelper.saveLanguage(selectedLanguage)
 
                                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {

+ 5 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/settingsScreenAll/NotificationsScreen.kt

@@ -18,6 +18,7 @@ import androidx.compose.material.Surface
 import androidx.compose.material.Text
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.livedata.observeAsState
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
@@ -51,7 +52,10 @@ fun Notifications(navHostController: NavHostController) {
         window.statusBarColor = Color.Transparent.toArgb()
         window.navigationBarColor = Color.Transparent.toArgb()
 
-        notificationViewModel.getNotifications()
+        LaunchedEffect(key1 = Unit) {
+            notificationViewModel.getNotifications()
+        }
+
         HeaderRowNS(navHostController = navHostController)
 
         Column(

+ 4 - 4
app/src/main/java/com/vpn/fastestvpnservice/screensTV/SettingsScreenTV.kt

@@ -1544,9 +1544,9 @@ fun AddLanguageTV(
                                     isAnyItemFocused = it.isFocused
                                 }
                                 .selectable(
-                                    selected = language.title == selectedLanguage,
+                                    selected = selectedLanguage == language.identifier,
                                     onClick = {
-                                        selectedLanguage = language.title
+                                        selectedLanguage = language.identifier
                                         basePreferenceHelper.saveLanguage(selectedLanguage)
 
                                         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
@@ -1583,9 +1583,9 @@ fun AddLanguageTV(
 //                            val themeState = isSystemInDarkTheme()
 //                            val isSystemInDarkTheme by remember { mutableStateOf(themeState) }
                             RadioButton(
-                                selected = language.title == selectedLanguage,
+                                selected = selectedLanguage == language.identifier,
                                 onClick = {
-                                    selectedLanguage = language.title
+                                    selectedLanguage = language.identifier
                                     basePreferenceHelper.saveLanguage(selectedLanguage)
 
                                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {

+ 1 - 4
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/BillingViewModel.kt

@@ -9,11 +9,8 @@ import com.android.billingclient.api.Purchase
 import com.android.billingclient.api.PurchasesUpdatedListener
 import com.android.billingclient.api.SkuDetails
 import com.android.billingclient.api.SkuDetailsParams
-import de.blinkt.openvpn.core.App
-import com.vpn.fastestvpnservice.application.BaseApplication
-import com.vpn.fastestvpnservice.beans.ProductFeatures
-import com.vpn.fastestvpnservice.beans.UpgradePriceList
 import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
+import de.blinkt.openvpn.core.App
 
 public class BillingViewModel(application: App): AndroidViewModel(application),
     PurchasesUpdatedListener