Parcourir la source

Worked on dark/light mode on webviews on TV

Khubaib il y a 6 mois
Parent
commit
589e7bed16

+ 2 - 2
.idea/deploymentTargetSelector.xml

@@ -4,10 +4,10 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2024-08-22T09:54:57.144906649Z">
+        <DropdownSelection timestamp="2024-08-22T14:55:11.504615460Z">
           <Target type="DEFAULT_BOOT">
             <handle>
-              <DeviceId pluginId="PhysicalDevice" identifier="serial=1C051FDF60048Z" />
+              <DeviceId pluginId="LocalEmulator" identifier="path=/home/ubuntu/.android/avd/Television_1080p_API_31.avd" />
             </handle>
           </Target>
         </DropdownSelection>

+ 3 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/SplashScreen.kt

@@ -140,7 +140,9 @@ fun Splash(navHostController: NavHostController) {
                 serverListViewModelSplash.setRecommendedSmartServers()
                 serverListViewModelSplash.setCountryData()
             }
-            splashViewModel.serverDataApi()
+            if (::splashViewModelSplash.isInitialized) {
+                splashViewModelSplash.serverDataApi()
+            }
             navHostController.popBackStack()
             navHostController.navigate(Screen.BottomBarMainScreen.route)
         } else {

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

@@ -28,6 +28,7 @@ import com.vpn.fastestvpnservice.beans.Server
 import com.vpn.fastestvpnservice.beans.ServerDataGlobal
 import com.vpn.fastestvpnservice.beans.isDarkTheme
 import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
+import com.vpn.fastestvpnservice.screens.isServerModelInitialized
 import com.vpn.fastestvpnservice.screens.searchListViewModelSplash
 import com.vpn.fastestvpnservice.screens.serverListViewModelSplash
 import com.vpn.fastestvpnservice.sealedClass.ScreenTV
@@ -108,10 +109,12 @@ fun SplashTV(navHostController: NavHostController) {
             if (isLoggedIn) {
 //                serverListViewModelSplash.setRecommendedSmartServers()
 
-                serverListViewModelSplash.setCountryDataTV()
-
-
-                splashViewModelSplash.serverDataApi()
+                if (isServerModelInitialized) {
+                    serverListViewModelSplash.setCountryDataTV()
+                }
+                if (::splashViewModelSplash.isInitialized) {
+                    splashViewModelSplash.serverDataApi()
+                }
                 navHostController.popBackStack()
                 navHostController.navigate(ScreenTV.BottomBarTV.route)
             } else {

+ 7 - 5
app/src/main/java/com/vpn/fastestvpnservice/screensTV/helpScreensAll/AboutScreenTV.kt

@@ -30,6 +30,7 @@ import androidx.compose.ui.unit.dp
 import androidx.compose.ui.viewinterop.AndroidView
 import androidx.navigation.NavHostController
 import com.vpn.fastestvpnservice.R
+import com.vpn.fastestvpnservice.beans.isDarkTheme
 import com.vpn.fastestvpnservice.constants.AppConstant
 import kotlinx.coroutines.delay
 
@@ -39,7 +40,7 @@ fun AboutTV(navHostController: NavHostController) {
     Box(
         modifier = Modifier
             .fillMaxSize()
-            .background(MaterialTheme.colorScheme.background)
+            .background(MaterialTheme.colorScheme.onPrimary)
     ) {
         var showLoader by remember { mutableStateOf(true) }
         ShowExpandListTV(navHostController = navHostController, title = "About")
@@ -48,9 +49,10 @@ fun AboutTV(navHostController: NavHostController) {
             .padding(top = 60.dp)
             .fillMaxSize()
             .verticalScroll(rememberScrollState())
-            .background(MaterialTheme.colorScheme.background)
+            .background(MaterialTheme.colorScheme.onPrimary)
         ) {
-//            val faqUrl = "${AppConstant.BASE_WEBVIEW_URL}faq?device=ios"
+            val aboutUrl = if (isDarkTheme.value) "${AppConstant.BASE_WEBVIEW_URL}about?devicedark=tv"
+            else "${AppConstant.BASE_WEBVIEW_URL}about?device=tv"
             AndroidView(factory = {
                 WebView(it).apply {
                     layoutParams = ViewGroup.LayoutParams(
@@ -79,7 +81,7 @@ fun AboutTV(navHostController: NavHostController) {
                 }
             },
                 update = {
-                    it.loadUrl(AppConstant.ABOUT_WEBVIEW_URL)
+                    it.loadUrl(aboutUrl)
                 }
             )
 
@@ -97,7 +99,7 @@ fun AboutTV(navHostController: NavHostController) {
 
             Box(modifier = Modifier
                 .fillMaxSize()
-                .background(MaterialTheme.colorScheme.background)) {
+                .background(MaterialTheme.colorScheme.onPrimary)) {
                 CircularProgressIndicator(
                     progress = progress,
                     modifier = Modifier

+ 6 - 12
app/src/main/java/com/vpn/fastestvpnservice/screensTV/helpScreensAll/FAQScreenTV.kt

@@ -8,17 +8,11 @@ import android.webkit.WebView
 import android.webkit.WebViewClient
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.BoxScope
-import androidx.compose.foundation.layout.fillMaxHeight
 import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Surface
-import androidx.compose.material.Text
 import androidx.compose.material3.CircularProgressIndicator
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.runtime.Composable
@@ -30,7 +24,6 @@ import androidx.compose.runtime.remember
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.res.colorResource
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.viewinterop.AndroidView
@@ -46,7 +39,7 @@ fun FaqTV(navHostController: NavHostController) {
     Box(
         modifier = Modifier
             .fillMaxSize()
-            .background(MaterialTheme.colorScheme.background)
+            .background(MaterialTheme.colorScheme.onPrimary)
     ) {
         var showLoader by remember { mutableStateOf(true) }
         ShowExpandListTV(navHostController = navHostController, title = "FAQ")
@@ -55,10 +48,11 @@ fun FaqTV(navHostController: NavHostController) {
             .padding(top = 60.dp)
             .fillMaxSize()
             .verticalScroll(rememberScrollState())
-            .background(MaterialTheme.colorScheme.background)
+            .background(MaterialTheme.colorScheme.onPrimary)
 //            .background(colorResource(id = R.color.webview_background))
         ) {
-//            val faqUrl = "${AppConstant.BASE_WEBVIEW_URL}faq?device=ios"
+            val faqUrl = if (isDarkTheme.value) "${AppConstant.BASE_WEBVIEW_URL}faq?devicedark=tv"
+            else "${AppConstant.BASE_WEBVIEW_URL}faq?device=tv"
             AndroidView(factory = {
                 WebView(it).apply {
                     layoutParams = ViewGroup.LayoutParams(
@@ -87,7 +81,7 @@ fun FaqTV(navHostController: NavHostController) {
                 }
             },
                 update = {
-                    it.loadUrl(AppConstant.FAQ_WEBVIEW_URL)
+                    it.loadUrl(faqUrl)
                 }
             )
 
@@ -105,7 +99,7 @@ fun FaqTV(navHostController: NavHostController) {
 
             Box(modifier = Modifier
                 .fillMaxSize()
-                .background(MaterialTheme.colorScheme.background)
+                .background(MaterialTheme.colorScheme.onPrimary)
             )
             {
                     CircularProgressIndicator(

+ 7 - 5
app/src/main/java/com/vpn/fastestvpnservice/screensTV/helpScreensAll/PrivacyPolicyScreenTV.kt

@@ -35,6 +35,7 @@ import androidx.compose.ui.unit.dp
 import androidx.compose.ui.viewinterop.AndroidView
 import androidx.navigation.NavHostController
 import com.vpn.fastestvpnservice.R
+import com.vpn.fastestvpnservice.beans.isDarkTheme
 import com.vpn.fastestvpnservice.constants.AppConstant
 import kotlinx.coroutines.delay
 
@@ -44,7 +45,7 @@ fun PrivacyPolicyTV(navHostController: NavHostController) {
     Box(
         modifier = Modifier
             .fillMaxSize()
-            .background(MaterialTheme.colorScheme.background)
+            .background(MaterialTheme.colorScheme.onPrimary)
     ) {
         var showLoader by remember { mutableStateOf(true) }
         ShowExpandListTV(navHostController = navHostController, title = "Privacy Policy")
@@ -53,9 +54,10 @@ fun PrivacyPolicyTV(navHostController: NavHostController) {
             .padding(top = 60.dp)
             .fillMaxSize()
             .verticalScroll(rememberScrollState())
-            .background(MaterialTheme.colorScheme.background)
+            .background(MaterialTheme.colorScheme.onPrimary)
         ) {
-//            val privacyUrl = "${AppConstant.BASE_WEBVIEW_URL}faq?device=ios"
+            val privacyUrl = if (isDarkTheme.value) "${AppConstant.BASE_WEBVIEW_URL}privacy-policy?devicedark=tv"
+            else "${AppConstant.BASE_WEBVIEW_URL}privacy-policy?device=tv"
             AndroidView(factory = {
                 WebView(it).apply {
                     layoutParams = ViewGroup.LayoutParams(
@@ -84,7 +86,7 @@ fun PrivacyPolicyTV(navHostController: NavHostController) {
                 }
             },
                 update = {
-                    it.loadUrl(AppConstant.POLICY_WEBVIEW_URL)
+                    it.loadUrl(privacyUrl)
                 }
             )
 
@@ -102,7 +104,7 @@ fun PrivacyPolicyTV(navHostController: NavHostController) {
 
             Box(modifier = Modifier
                 .fillMaxSize()
-                .background(MaterialTheme.colorScheme.background)) {
+                .background(MaterialTheme.colorScheme.onPrimary)) {
                 CircularProgressIndicator(
                     progress = progress,
                     modifier = Modifier

+ 7 - 4
app/src/main/java/com/vpn/fastestvpnservice/screensTV/helpScreensAll/TermsAndConditionsScreenTV.kt

@@ -30,6 +30,7 @@ import androidx.compose.ui.unit.dp
 import androidx.compose.ui.viewinterop.AndroidView
 import androidx.navigation.NavHostController
 import com.vpn.fastestvpnservice.R
+import com.vpn.fastestvpnservice.beans.isDarkTheme
 import com.vpn.fastestvpnservice.constants.AppConstant
 import kotlinx.coroutines.delay
 
@@ -39,7 +40,7 @@ fun TermsAndConditionsTV(navHostController: NavHostController) {
     Box(
         modifier = Modifier
             .fillMaxSize()
-            .background(MaterialTheme.colorScheme.background)
+            .background(MaterialTheme.colorScheme.onPrimary)
     ) {
         var showLoader by remember { mutableStateOf(true) }
         ShowExpandListTV(navHostController = navHostController, title = "Terms & Conditions")
@@ -48,8 +49,10 @@ fun TermsAndConditionsTV(navHostController: NavHostController) {
             .padding(top = 60.dp)
             .fillMaxSize()
             .verticalScroll(rememberScrollState())
-            .background(MaterialTheme.colorScheme.background)
+            .background(MaterialTheme.colorScheme.onPrimary)
         ) {
+            val tncUrl = if (isDarkTheme.value) "${AppConstant.BASE_WEBVIEW_URL}terms-of-service?devicedark=tv"
+            else "${AppConstant.BASE_WEBVIEW_URL}terms-of-service?device=tv"
             AndroidView(factory = {
                 WebView(it).apply {
                     layoutParams = ViewGroup.LayoutParams(
@@ -78,7 +81,7 @@ fun TermsAndConditionsTV(navHostController: NavHostController) {
                 }
             },
                 update = {
-                    it.loadUrl(AppConstant.TERMS_WEBVIEW_URL)
+                    it.loadUrl(tncUrl)
                 }
             )
 
@@ -96,7 +99,7 @@ fun TermsAndConditionsTV(navHostController: NavHostController) {
 
             Box(modifier = Modifier
                 .fillMaxSize()
-                .background(MaterialTheme.colorScheme.background)) {
+                .background(MaterialTheme.colorScheme.onPrimary)) {
                 CircularProgressIndicator(
                     progress = progress,
                     modifier = Modifier