浏览代码

added darktheme on WebView..

Khubaib 1 年之前
父节点
当前提交
3471dbb839

+ 65 - 56
app/src/main/java/com/vpn/fastestvpnservice/screens/helpScreensAll/AboutScreen.kt

@@ -59,6 +59,8 @@ import androidx.compose.ui.viewinterop.AndroidView
 import androidx.navigation.NavHostController
 import androidx.navigation.compose.rememberNavController
 import com.vpn.fastestvpnservice.R
+import com.vpn.fastestvpnservice.beans.isDarkTheme
+import com.vpn.fastestvpnservice.constants.AppConstant
 import com.vpn.fastestvpnservice.constants.TermsAndConditionsDesc
 import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
 import kotlinx.coroutines.delay
@@ -69,79 +71,86 @@ fun About(navHostController: NavHostController) {
     val configuration = LocalConfiguration.current
     val screenHeight = configuration.screenHeightDp.dp
     val screenWidth = configuration.screenWidthDp.dp
+    var showLoader by remember { mutableStateOf(true) }
 
     Box(
         modifier = Modifier
             .fillMaxWidth()
-            .background(
-                colorResource(id = R.color.white)
-            )
             .fillMaxSize()
+            .background(MaterialTheme.colorScheme.onPrimary)
     ) {
-        var showLoader by remember { mutableStateOf(true) }
 
-            ShowHeaderAbout(navHostController = navHostController)
+        ShowHeaderAbout(navHostController = navHostController)
 
-            Box(modifier = Modifier
-                .padding(top = 60.dp)
-                .fillMaxSize()
-                .background(Color.Transparent)
-            ) {
-
-                val aboutUrl = "https://fastestvpn.com/about?device=ios"
-                AndroidView(factory = {
-                    WebView(it).apply {
-                        layoutParams = ViewGroup.LayoutParams(
-                            ViewGroup.LayoutParams.MATCH_PARENT,
-                            ViewGroup.LayoutParams.MATCH_PARENT
-                        )
-                        webViewClient = WebViewClient()
+        Box(modifier = Modifier
+            .padding(top = 60.dp)
+            .fillMaxSize()
+            .background(MaterialTheme.colorScheme.onPrimary)
+        ) {
+
+            val aboutUrl = if (isDarkTheme.value) "${AppConstant.BASE_WEBVIEW_URL}about?skin=dark"
+            else "${AppConstant.BASE_WEBVIEW_URL}about?device=ios"
+
+            AndroidView(factory = {
+                WebView(it).apply {
+                    layoutParams = ViewGroup.LayoutParams(
+                        ViewGroup.LayoutParams.MATCH_PARENT,
+                        ViewGroup.LayoutParams.MATCH_PARENT
+                    )
+                    webViewClient = WebViewClient()
 
                     settings.javaScriptEnabled = true
 
-                        webViewClient = object : WebViewClient() {
-                            override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
-                                super.onPageStarted(view, url, favicon)
-                                Log.d("test_webview", "onPageStarted")
-                                showLoader = true
-                            }
-
-                            override fun onPageFinished(view: WebView?, url: String?) {
-                                super.onPageFinished(view, url)
-                                Log.d("test_webview", "onPageFinished")
-                                showLoader = false
-                            }
+                    webViewClient = object : WebViewClient() {
+                        override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
+                            super.onPageStarted(view, url, favicon)
+                            Log.d("test_webview", "onPageStarted")
+                            showLoader = true
                         }
 
-//                        loadUrl(aboutUrl)
-                    }
-                },
-                    update = {
-                        Log.d("test_webview", "update")
-                        it.loadUrl(aboutUrl)
+                        override fun onPageFinished(view: WebView?, url: String?) {
+                            super.onPageFinished(view, url)
+                            Log.d("test_webview", "onPageFinished")
+                            showLoader = false
+                        }
                     }
-                )
 
-                if (showLoader) {
-                    var progress by remember { mutableFloatStateOf(0.1F) }
+//                        loadUrl(aboutUrl)
+                }
+            },
+                update = {
+                    Log.d("test_webview", "update")
+                    it.loadUrl(aboutUrl)
+                }
+            )
+
+        }
 
-                    LaunchedEffect(key1 = Unit) {
-                        for (i in 1..100) {
-                            progress = i.toFloat()/100F
-                            delay(50)
-                        }
-                    }
+        if (showLoader) {
+            var progress by remember { mutableFloatStateOf(0.1F) }
 
-                    CircularProgressIndicator(
-                        progress = progress,
-                        modifier = Modifier
-                            .align(Alignment.Center)
-                            .size(50.dp),
-                        colorResource(id = R.color.dark_blue_gray_text),
-                        strokeWidth = 5.dp,
-                    )
+            LaunchedEffect(key1 = Unit) {
+                for (i in 1..100) {
+                    progress = i.toFloat()/100F
+                    delay(50)
                 }
             }
+
+            Box(modifier = Modifier
+                .fillMaxSize()
+                .background(MaterialTheme.colorScheme.onPrimary)) {
+                CircularProgressIndicator(
+                    progress = progress,
+                    modifier = Modifier
+                        .align(Alignment.Center)
+                        .size(50.dp),
+                    colorResource(id = R.color.appYellow),
+                    strokeWidth = 5.dp,
+                )
+            }
+
+        }
+
     }
 }
 
@@ -162,7 +171,7 @@ fun BoxScope.ShowHeaderAbout(navHostController: NavHostController) {
         Icon(
             painter = painterResource(id = R.drawable.backarrow3x),
             contentDescription = "Arrow-Back",
-            tint = colorResource(id = R.color.dark_blue_gray_text),
+            tint = MaterialTheme.colorScheme.primary,
             modifier = Modifier.size(18.dp, 12.dp)
         )
     }
@@ -175,7 +184,7 @@ fun BoxScope.ShowHeaderAbout(navHostController: NavHostController) {
         color = colorResource(id = R.color.transparent)
     ) {
         Text(text = "About Fastest VPN",
-            color = colorResource(id = R.color.dark_blue_gray_text),
+            color = MaterialTheme.colorScheme.primary,
             style = MaterialTheme.typography.bodyMedium,
             modifier = Modifier.fillMaxHeight()
 

+ 17 - 15
app/src/main/java/com/vpn/fastestvpnservice/screens/helpScreensAll/CustomerSupportScreen.kt

@@ -51,9 +51,7 @@ fun CustomerSupport(navHostController: NavHostController) {
     Box(
         modifier = Modifier
             .fillMaxWidth()
-            .background(
-                colorResource(id = R.color.white)
-            )
+            .background(MaterialTheme.colorScheme.onPrimary)
             .fillMaxSize()
     ) {
         var showLoader by remember { mutableStateOf(true) }
@@ -63,7 +61,7 @@ fun CustomerSupport(navHostController: NavHostController) {
         Box(modifier = Modifier
             .padding(top = 60.dp, bottom = 0.dp)
             .fillMaxSize()
-            .background(Color.Transparent)
+            .background(MaterialTheme.colorScheme.onPrimary)
         ) {
 
             val email = "sagartestaccount@gmail.com"
@@ -110,28 +108,32 @@ fun CustomerSupport(navHostController: NavHostController) {
                     it.loadUrl(supportUrl)
                 }
             )
+        }
+        if (showLoader) {
 
-            if (showLoader) {
-
-                var progress by remember { mutableFloatStateOf(0.1F) }
+            var progress by remember { mutableFloatStateOf(0.1F) }
 
-                LaunchedEffect(key1 = Unit) {
-                    for (i in 1..100) {
-                        progress = i.toFloat()/100F
-                        delay(50)
-                    }
+            LaunchedEffect(key1 = Unit) {
+                for (i in 1..100) {
+                    progress = i.toFloat()/100F
+                    delay(50)
                 }
+            }
 
+            Box(modifier = Modifier
+                .fillMaxSize()
+                .background(MaterialTheme.colorScheme.onPrimary)) {
                 CircularProgressIndicator(
                     progress = progress,
                     modifier = Modifier
                         .align(Alignment.Center)
                         .size(50.dp),
-                    colorResource(id = R.color.dark_blue_gray_text),
+                    colorResource(id = R.color.appYellow),
                     strokeWidth = 5.dp,
                 )
             }
         }
+
     }
 }
 
@@ -152,7 +154,7 @@ fun BoxScope.ShowHeaderCS(navHostController: NavHostController) {
         Icon(
             painter = painterResource(id = R.drawable.backarrow3x),
             contentDescription = "Arrow-Back",
-            tint = colorResource(id = R.color.dark_blue_gray_text),
+            tint = MaterialTheme.colorScheme.primary,
             modifier = Modifier.size(18.dp, 12.dp)
         )
     }
@@ -165,7 +167,7 @@ fun BoxScope.ShowHeaderCS(navHostController: NavHostController) {
         color = colorResource(id = R.color.transparent)
     ) {
         Text(text = "Customer Support",
-            color = colorResource(id = R.color.dark_blue_gray_text),
+            color = MaterialTheme.colorScheme.primary,
             style = MaterialTheme.typography.bodyMedium,
             modifier = Modifier.fillMaxHeight()
 

+ 22 - 16
app/src/main/java/com/vpn/fastestvpnservice/screens/helpScreensAll/FAQScreen.kt

@@ -75,6 +75,8 @@ import androidx.compose.ui.viewinterop.AndroidView
 import androidx.navigation.NavHostController
 import androidx.navigation.compose.rememberNavController
 import com.vpn.fastestvpnservice.R
+import com.vpn.fastestvpnservice.beans.isDarkTheme
+import com.vpn.fastestvpnservice.constants.AppConstant
 import com.vpn.fastestvpnservice.constants.HelpDesc
 import com.vpn.fastestvpnservice.constants.HelpTitles
 import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
@@ -90,9 +92,7 @@ fun FAQ(navHostController: NavHostController) {
     Box(
         modifier = Modifier
             .fillMaxWidth()
-            .background(
-                colorResource(id = R.color.webview_background)
-            )
+            .background(MaterialTheme.colorScheme.onPrimaryContainer)
             .fillMaxSize()
     ) {
         var showLoader by remember { mutableStateOf(true) }
@@ -101,10 +101,11 @@ fun FAQ(navHostController: NavHostController) {
         Box(modifier = Modifier
             .padding(top = 60.dp)
             .fillMaxSize()
-            .background(Color.Transparent)
+            .background(MaterialTheme.colorScheme.onPrimaryContainer)
         ) {
 
-            val faqUrl = "https://fastestvpn.com/faq?device=ios"
+            val faqUrl = if (isDarkTheme.value) "${AppConstant.BASE_WEBVIEW_URL}faq?skin=dark"
+            else "${AppConstant.BASE_WEBVIEW_URL}faq?device=ios"
             AndroidView(factory = {
                 WebView(it).apply {
                     layoutParams = ViewGroup.LayoutParams(
@@ -137,27 +138,32 @@ fun FAQ(navHostController: NavHostController) {
                 }
             )
 
-            if (showLoader) {
-                var progress by remember { mutableFloatStateOf(0.1F) }
+        }
+
+        if (showLoader) {
+            var progress by remember { mutableFloatStateOf(0.1F) }
 
-                LaunchedEffect(key1 = Unit) {
-                    for (i in 1..100) {
-                        progress = i.toFloat()/100F
-                        delay(25)
-                    }
+            LaunchedEffect(key1 = Unit) {
+                for (i in 1..100) {
+                    progress = i.toFloat()/100F
+                    delay(25)
                 }
+            }
 
+            Box(modifier = Modifier
+                .fillMaxSize()
+                .background(MaterialTheme.colorScheme.onPrimaryContainer)) {
                 CircularProgressIndicator(
                     progress = progress,
                     modifier = Modifier
                         .align(Alignment.Center)
                         .size(50.dp),
-                    colorResource(id = R.color.dark_blue_gray_text),
+                    colorResource(id = R.color.appYellow),
                     strokeWidth = 5.dp,
                 )
             }
-
         }
+
     }
 
 
@@ -184,7 +190,7 @@ fun BoxScope.ShowExpandList(
         Icon(
             painter = painterResource(id = R.drawable.backarrow3x),
             contentDescription = "Arrow-Back",
-            tint = colorResource(id = R.color.dark_blue_gray_text),
+            tint = MaterialTheme.colorScheme.primary,
             modifier = Modifier.size(18.dp, 12.dp)
         )
     }
@@ -197,7 +203,7 @@ fun BoxScope.ShowExpandList(
         color = colorResource(id = R.color.transparent)
     ) {
         Text(text = "FAQ",
-            color = colorResource(id = R.color.dark_blue_gray_text),
+            color = MaterialTheme.colorScheme.primary,
             style = MaterialTheme.typography.bodyMedium,
             modifier = Modifier.fillMaxHeight()
 

+ 24 - 16
app/src/main/java/com/vpn/fastestvpnservice/screens/helpScreensAll/PrivacyPolicyScreen.kt

@@ -51,6 +51,8 @@ import androidx.compose.ui.viewinterop.AndroidView
 import androidx.navigation.NavHostController
 import androidx.navigation.compose.rememberNavController
 import com.vpn.fastestvpnservice.R
+import com.vpn.fastestvpnservice.beans.isDarkTheme
+import com.vpn.fastestvpnservice.constants.AppConstant
 import com.vpn.fastestvpnservice.constants.PrivacyPolicyDesc
 import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
 import kotlinx.coroutines.delay
@@ -60,27 +62,26 @@ fun PrivacyPolicy(navHostController: NavHostController){
     val configuration = LocalConfiguration.current
     val screenHeight = configuration.screenHeightDp.dp
     val screenWidth = configuration.screenWidthDp.dp
+    var showLoader by remember { mutableStateOf(true) }
 
     Box(
         modifier = Modifier
             .fillMaxWidth()
-            .background(
-                colorResource(id = R.color.white)
-            )
+            .background(MaterialTheme.colorScheme.onPrimary)
             .fillMaxSize()
     ) {
-        var showLoader by remember { mutableStateOf(true) }
 
         ShowHeaderPP(navHostController = navHostController)
 
         Box(modifier = Modifier
             .padding(top = 60.dp)
             .fillMaxSize()
-            .background(Color.Transparent)
+            .background(MaterialTheme.colorScheme.onPrimary)
         ) {
 
 
-            val privacyUrl = "https://fastestvpn.com/privacy-policy?device=ios"
+            val privacyUrl = if (isDarkTheme.value) "${AppConstant.BASE_WEBVIEW_URL}privacy-policy?skin=dark"
+            else "${AppConstant.BASE_WEBVIEW_URL}privacy-policy?device=ios"
             AndroidView(factory = {
                 WebView(it).apply {
                     layoutParams = ViewGroup.LayoutParams(
@@ -113,27 +114,34 @@ fun PrivacyPolicy(navHostController: NavHostController){
                 }
             )
 
-            if (showLoader) {
-                var progress by remember { mutableFloatStateOf(0.1F) }
 
-                LaunchedEffect(key1 = Unit) {
-                    for (i in 1..100) {
-                        progress = i.toFloat()/100F
-                        delay(25)
-                    }
+        }
+
+        if (showLoader) {
+            var progress by remember { mutableFloatStateOf(0.1F) }
+
+            LaunchedEffect(key1 = Unit) {
+                for (i in 1..100) {
+                    progress = i.toFloat()/100F
+                    delay(25)
                 }
+            }
 
+            Box(modifier = Modifier
+                .fillMaxSize()
+                .background(MaterialTheme.colorScheme.onPrimary)) {
                 CircularProgressIndicator(
                     progress = progress,
                     modifier = Modifier
                         .align(Alignment.Center)
                         .size(50.dp),
-                    colorResource(id = R.color.dark_blue_gray_text),
+                    colorResource(id = R.color.appYellow),
                     strokeWidth = 5.dp,
                 )
             }
 
         }
+
     }
 
 }
@@ -155,7 +163,7 @@ fun BoxScope.ShowHeaderPP(navHostController: NavHostController) {
         Icon(
             painter = painterResource(id = R.drawable.backarrow3x),
             contentDescription = "Arrow-Back",
-            tint = colorResource(id = R.color.dark_blue_gray_text),
+            tint = MaterialTheme.colorScheme.primary,
             modifier = Modifier.size(18.dp, 12.dp)
         )
     }
@@ -168,7 +176,7 @@ fun BoxScope.ShowHeaderPP(navHostController: NavHostController) {
         color = colorResource(id = R.color.transparent)
     ) {
         Text(text = "Privacy Policy",
-            color = colorResource(id = R.color.dark_blue_gray_text),
+            color = MaterialTheme.colorScheme.primary,
             style = MaterialTheme.typography.bodyMedium,
             modifier = Modifier.fillMaxHeight()
 

+ 4 - 0
app/src/main/java/com/vpn/fastestvpnservice/ui/theme/Theme.kt

@@ -27,6 +27,8 @@ private val DarkColorScheme = darkColorScheme(
 //    primary = Purple80,
     primary = Color.White,
     onPrimary = Color.Black,
+    onPrimaryContainer = Color.Black,
+
     secondary = Color.White,
     onSecondary = Color.White,
     tertiary = Color.White,
@@ -40,6 +42,8 @@ private val LightColorScheme = lightColorScheme(
 //    primary = Purple40,
     primary = Color(0xFF0d1a2a),    // darkBlueGrey
     onPrimary = Color.White,
+    onPrimaryContainer = Color(0xFFECF2FC),
+
     secondary = Color.Black,
     onSecondary = Color(0xFF0d1b2a),
     tertiary = Color(0xFF2952c3),