Prechádzať zdrojové kódy

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 7 mesiacov pred
rodič
commit
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