Browse Source

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 10 months ago
parent
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 KEY_HEADER_AUTHORIZATION = "Authorization";
     private static final String X_PLATFORM = "X-PLATFORM";
     private static final String X_PLATFORM = "X-PLATFORM";
     private static final String X_PLATFORM_TOKEN = "X-PLATFORM-TOKEN";
     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 PLATFORM = "platform";
     private static final String VERSION = "version";
     private static final String VERSION = "version";
 
 
@@ -50,10 +51,12 @@ public class WebServiceFactory {
 
 
                     Request original = chain.request();
                     Request original = chain.request();
                     Request.Builder requestBuilder;
                     Request.Builder requestBuilder;
+                    prefHelper.getXPlatformToken();
                     requestBuilder = original.newBuilder()
                     requestBuilder = original.newBuilder()
                             .header(X_PLATFORM, "android")
                             .header(X_PLATFORM, "android")
                             .header(KEY_HEADER_AUTHORIZATION, (prefHelper.getUser() != null) ? "Bearer " + prefHelper.getUser().getToken() : "")
                             .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());
                     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)
                                 .padding(start = 2.dp, top = 15.dp)
                                 .selectable(
                                 .selectable(
-                                    selected = language.title == selectedLanguage,
+                                    selected = selectedLanguage == language.identifier,
                                     onClick = {
                                     onClick = {
-                                        selectedLanguage = language.title
+                                        selectedLanguage = language.identifier
                                         basePreferenceHelper.saveLanguage(selectedLanguage)
                                         basePreferenceHelper.saveLanguage(selectedLanguage)
 
 
                                         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
                                         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
@@ -1249,9 +1249,9 @@ fun SelectLanguage(
                             verticalAlignment = Alignment.CenterVertically
                             verticalAlignment = Alignment.CenterVertically
                         ) {
                         ) {
                             RadioButton(
                             RadioButton(
-                                selected = language.title == selectedLanguage,
+                                selected = selectedLanguage == language.identifier,
                                 onClick = {
                                 onClick = {
-                                    selectedLanguage = language.title
+                                    selectedLanguage = language.identifier
                                     basePreferenceHelper.saveLanguage(selectedLanguage)
                                     basePreferenceHelper.saveLanguage(selectedLanguage)
 
 
                                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
                                     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.material.Text
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.livedata.observeAsState
 import androidx.compose.runtime.livedata.observeAsState
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.Modifier
@@ -51,7 +52,10 @@ fun Notifications(navHostController: NavHostController) {
         window.statusBarColor = Color.Transparent.toArgb()
         window.statusBarColor = Color.Transparent.toArgb()
         window.navigationBarColor = Color.Transparent.toArgb()
         window.navigationBarColor = Color.Transparent.toArgb()
 
 
-        notificationViewModel.getNotifications()
+        LaunchedEffect(key1 = Unit) {
+            notificationViewModel.getNotifications()
+        }
+
         HeaderRowNS(navHostController = navHostController)
         HeaderRowNS(navHostController = navHostController)
 
 
         Column(
         Column(

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

@@ -1544,9 +1544,9 @@ fun AddLanguageTV(
                                     isAnyItemFocused = it.isFocused
                                     isAnyItemFocused = it.isFocused
                                 }
                                 }
                                 .selectable(
                                 .selectable(
-                                    selected = language.title == selectedLanguage,
+                                    selected = selectedLanguage == language.identifier,
                                     onClick = {
                                     onClick = {
-                                        selectedLanguage = language.title
+                                        selectedLanguage = language.identifier
                                         basePreferenceHelper.saveLanguage(selectedLanguage)
                                         basePreferenceHelper.saveLanguage(selectedLanguage)
 
 
                                         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
                                         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
@@ -1583,9 +1583,9 @@ fun AddLanguageTV(
 //                            val themeState = isSystemInDarkTheme()
 //                            val themeState = isSystemInDarkTheme()
 //                            val isSystemInDarkTheme by remember { mutableStateOf(themeState) }
 //                            val isSystemInDarkTheme by remember { mutableStateOf(themeState) }
                             RadioButton(
                             RadioButton(
-                                selected = language.title == selectedLanguage,
+                                selected = selectedLanguage == language.identifier,
                                 onClick = {
                                 onClick = {
-                                    selectedLanguage = language.title
+                                    selectedLanguage = language.identifier
                                     basePreferenceHelper.saveLanguage(selectedLanguage)
                                     basePreferenceHelper.saveLanguage(selectedLanguage)
 
 
                                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
                                     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.PurchasesUpdatedListener
 import com.android.billingclient.api.SkuDetails
 import com.android.billingclient.api.SkuDetails
 import com.android.billingclient.api.SkuDetailsParams
 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 com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
+import de.blinkt.openvpn.core.App
 
 
 public class BillingViewModel(application: App): AndroidViewModel(application),
 public class BillingViewModel(application: App): AndroidViewModel(application),
     PurchasesUpdatedListener
     PurchasesUpdatedListener