Browse Source

Worked on dark/light mode on any specific and customnavbar screen on TV

Khubaib 8 tháng trước cách đây
mục cha
commit
cbc1540feb

+ 0 - 6
app/src/main/java/com/vpn/fastestvpnservice/MainActivity.kt

@@ -1,24 +1,19 @@
 package com.vpn.fastestvpnservice
 
-import android.app.LocaleManager
 import android.content.Context
 import android.content.Intent
 import android.content.pm.ActivityInfo
-import android.content.pm.PackageInfo
 import android.content.pm.PackageManager
 import android.net.Uri
 import android.os.Build
 import android.os.Bundle
-import android.os.LocaleList
 import android.provider.Settings
 import android.util.Log
 import android.view.WindowInsets
 import android.view.WindowInsetsController
 import android.view.WindowManager
-import android.widget.Toast
 import androidx.activity.compose.setContent
 import androidx.activity.viewModels
-import androidx.annotation.RequiresApi
 import androidx.compose.foundation.isSystemInDarkTheme
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
@@ -48,7 +43,6 @@ import com.vpn.fastestvpnservice.navigation.SetUpNavGraphTV
 import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.isSwitch
 import com.vpn.fastestvpnservice.screens.helpScreensAll.fileChooserCallback
 import com.vpn.fastestvpnservice.ui.theme.FastestVPNTheme
-import com.vpn.fastestvpnservice.utils.CustomExceptionHandler
 import com.vpn.fastestvpnservice.utils.StaticMethods
 import com.vpn.fastestvpnservice.viewmodels.LoginViewModel
 import de.blinkt.openvpn.core.App

+ 28 - 28
app/src/main/java/com/vpn/fastestvpnservice/customItems/ServerItemTV.kt

@@ -252,7 +252,7 @@ fun SearchServerItemTV(
     Box(
         modifier = Modifier
             .fillMaxWidth()
-            .background(if (isItemFocused) Color.LightGray else Color.Transparent)
+            .background(if (isItemFocused) MaterialTheme.colorScheme.inverseOnSurface else Color.Transparent)
             .padding(bottom = 1.dp)
     ) {
         Row(
@@ -300,38 +300,38 @@ fun SearchServerItemTV(
                     )
             )
             Text(text = server.server_name!!,
-                color = colorResource(id = R.color.dark_blue_gray_text),
+                color = MaterialTheme.colorScheme.primary,
                 style = MaterialTheme.typography.labelMedium,
                 modifier = Modifier
                     .padding(start = 16.dp, bottom = 18.dp)
                     .align(Alignment.CenterVertically)
             )
-            Spacer(modifier = Modifier.weight(1F))
-            Text(text = "$serverPing ms",
-                color = colorResource(id = R.color.blue_text),
-                style = MaterialTheme.typography.displayMedium,
-                modifier = Modifier
-                    .padding(end = 30.dp, bottom = 18.dp)
-                    .align(Alignment.CenterVertically)
-            )
-            IconButton(
-                onClick = {
-                    isFavorite = !isFavorite!!
-                    serverListViewModelSplash.favAndUnFav(server)
-                },
-                modifier = Modifier
-                    .padding(bottom = 18.dp, end = 0.dp)
-                    .size(25.dp)
-            ) {
-                Icon(
-                    painter = if (isServerFavourited) painterResource(
-                        id = R.drawable.fav_server3x) else painterResource(
-                        id = R.drawable.unfav_server3x),
-                    contentDescription = "Server Logo",
-                    tint = Color.Unspecified,
-                    modifier = Modifier.size(22.dp, 21.dp)
-                )
-            }
+//            Spacer(modifier = Modifier.weight(1F))
+//            Text(text = "$serverPing ms",
+//                color = MaterialTheme.colorScheme.tertiary,
+//                style = MaterialTheme.typography.displayMedium,
+//                modifier = Modifier
+//                    .padding(end = 30.dp, bottom = 18.dp)
+//                    .align(Alignment.CenterVertically)
+//            )
+//            IconButton(
+//                onClick = {
+//                    isFavorite = !isFavorite!!
+//                    serverListViewModelSplash.favAndUnFav(server)
+//                },
+//                modifier = Modifier
+//                    .padding(bottom = 18.dp, end = 0.dp)
+//                    .size(25.dp)
+//            ) {
+//                Icon(
+//                    painter = if (isServerFavourited) painterResource(
+//                        id = R.drawable.fav_server3x) else painterResource(
+//                        id = R.drawable.unfav_server3x),
+//                    contentDescription = "Server Logo",
+//                    tint = Color.Unspecified,
+//                    modifier = Modifier.size(22.dp, 21.dp)
+//                )
+//            }
         }
         Surface(
             modifier = Modifier

+ 7 - 6
app/src/main/java/com/vpn/fastestvpnservice/navigation/CustomBottomBarTV.kt

@@ -203,7 +203,7 @@ fun BottomBarNavTV(
             verticalAlignment = Alignment.CenterVertically
         ) {
             Surface(
-                color = if (isFirstItemFocused.value) Color.LightGray
+                color = if (isFirstItemFocused.value) MaterialTheme.colorScheme.outline
                 else MaterialTheme.colorScheme.background,
                 modifier = Modifier
                     .focusRequester(focusRequester1)
@@ -237,7 +237,8 @@ fun BottomBarNavTV(
                 )
             }
             Surface(
-                color = if (isSecondItemFocused.value) Color.LightGray else MaterialTheme.colorScheme.background,
+                color = if (isSecondItemFocused.value) MaterialTheme.colorScheme.outline
+                else MaterialTheme.colorScheme.background,
                 modifier = Modifier
                     .focusRequester(focusRequester2)
                     .onFocusChanged {
@@ -270,8 +271,8 @@ fun BottomBarNavTV(
                 )
             }
             Surface(
-                color = if (isThirdItemFocused.value) Color.LightGray else
-                    MaterialTheme.colorScheme.background,
+                color = if (isThirdItemFocused.value) MaterialTheme.colorScheme.outline
+                else MaterialTheme.colorScheme.background,
                 modifier = Modifier
                     .focusRequester(focusRequester3)
                     .onFocusChanged {
@@ -304,8 +305,8 @@ fun BottomBarNavTV(
                 )
             }
             Surface(
-                color = if (isFourthItemFocused.value) Color.LightGray else
-                    MaterialTheme.colorScheme.background,
+                color = if (isFourthItemFocused.value) MaterialTheme.colorScheme.outline
+                else MaterialTheme.colorScheme.background,
                 modifier = Modifier
                     .focusRequester(focusRequester4)
                     .onFocusChanged {

+ 12 - 14
app/src/main/java/com/vpn/fastestvpnservice/screensTV/settingsScreenAll/AnySpecificScreenTV.kt

@@ -82,7 +82,7 @@ fun AnySpecificScreenTV(navHostController: NavHostController) {
         modifier = Modifier
             .fillMaxSize()
             .background(
-                color = colorResource(id = R.color.background_color_gray)
+                color = MaterialTheme.colorScheme.background
             )
             .padding(bottom = 0.dp)
 
@@ -147,7 +147,7 @@ fun AnySpecificScreenTV(navHostController: NavHostController) {
                 textChanged = it
             },
             textStyle = MaterialTheme.typography.customTypography.bodyMedium.copy(
-                color = colorResource(id = R.color.dark_blue_gray_text)
+                color = MaterialTheme.colorScheme.primary,
             ),
             modifier = Modifier
                 .padding(top = 60.dp, end = 0.dp)
@@ -157,7 +157,7 @@ fun AnySpecificScreenTV(navHostController: NavHostController) {
                 .height(50.dp)
                 .border(
                     1.dp,
-                    colorResource(id = R.color.white),
+                    MaterialTheme.colorScheme.onBackground,
                     shape = RoundedCornerShape(24.dp)
                 )
                 .background(color = colorResource(id = R.color.transparent)),
@@ -172,7 +172,7 @@ fun AnySpecificScreenTV(navHostController: NavHostController) {
                 Text(
                     text = "Search Location",
                     style = MaterialTheme.typography.customTypography.titleSmall.copy(
-                        color = colorResource(id = R.color.dark_blue_gray_text),
+                        color = MaterialTheme.colorScheme.primary,
                         fontSize = 14.sp
                     )
                 )
@@ -190,23 +190,23 @@ fun AnySpecificScreenTV(navHostController: NavHostController) {
                 Icon(
                     painter = painterResource(id = R.drawable.search3x),
                     contentDescription = "Email Logo",
-                    tint = colorResource(id = R.color.dark_blue_gray_text),
+                    tint = MaterialTheme.colorScheme.primary,
                     modifier = Modifier
                         .size(20.dp, 20.dp)
                 )
             },
             maxLines = 1,
             colors = TextFieldDefaults.colors(
-                focusedLabelColor = colorResource(id = R.color.dark_blue_gray_text),
-                unfocusedTextColor = colorResource(id = R.color.dark_blue_gray_text),
-                focusedTextColor = colorResource(id = R.color.dark_blue_gray_text),
-                disabledTextColor = colorResource(id = R.color.dark_blue_gray_text),
-                unfocusedContainerColor = colorResource(id = R.color.white),
-                focusedContainerColor = colorResource(id = R.color.white),
+                focusedLabelColor = MaterialTheme.colorScheme.primary,
+                unfocusedTextColor = MaterialTheme.colorScheme.primary,
+                focusedTextColor = MaterialTheme.colorScheme.primary,
+                disabledTextColor = MaterialTheme.colorScheme.primary,
+                unfocusedContainerColor = MaterialTheme.colorScheme.onBackground,
+                focusedContainerColor = MaterialTheme.colorScheme.onBackground,
                 focusedIndicatorColor = colorResource(id = R.color.transparent),
                 disabledIndicatorColor = colorResource(id = R.color.transparent),
                 unfocusedIndicatorColor = colorResource(id = R.color.transparent),
-                cursorColor = colorResource(id = R.color.dark_blue_gray_text),
+                cursorColor = MaterialTheme.colorScheme.primary,
                 ),
             keyboardOptions = KeyboardOptions(
                 keyboardType = KeyboardType.Email,
@@ -229,8 +229,6 @@ fun AnySpecificScreenTV(navHostController: NavHostController) {
                     .padding(top = 130.dp, start = 24.dp, end = 24.dp, bottom = 24.dp)
 //                .verticalScroll(rememberScrollState())
                     .background(Color.Transparent)
-
-
             ) {
                 LazyColumn(
                     modifier = Modifier

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

@@ -49,6 +49,7 @@ private val DarkColorScheme = darkColorScheme(
     onSurfaceVariant = Color(0xFF0d1a2a),
     inverseOnSurface = Color(0xFF1D326B), // focus_on_TV
     inverseSurface = Color(0xFF0d1a2a),
+    outline = Color(0xFF2d2d2d),
 
     background = Color(0xFF121212),
     onBackground = Color(0xFF2d2d2d) // background for dark theme
@@ -85,6 +86,7 @@ private val LightColorScheme = lightColorScheme(
     onSurfaceVariant = Color(0xFF113289), // light_navy
     inverseOnSurface = Color(0xFFD3D3D3), // focus_on_TV
     inverseSurface = Color(0xFFE9EAEC),
+    outline = Color(0xFFD3D3D3),
 
     background = Color(0xFFf3f3f3),
     onBackground = Color.White