Browse Source

Showing snack bar to user on serverlist screen on TV if user account is free

Khubaib 6 months ago
parent
commit
57d4e0ee5a

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

@@ -183,7 +183,7 @@ fun ServerItemTV(
 
 
                     Text(
-                        text = "${server.server_name} ${server.enable}",
+                        text = "${server.server_name}",
                         style = MaterialTheme.typography.labelMedium,
                         color = MaterialTheme.colorScheme.primary,
                         modifier = Modifier

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

@@ -22,6 +22,7 @@ import androidx.compose.foundation.text.KeyboardOptions
 import androidx.compose.foundation.verticalScroll
 import androidx.compose.material3.Icon
 import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.SnackbarHostState
 import androidx.compose.material3.Surface
 import androidx.compose.material3.Text
 import androidx.compose.material3.TextField
@@ -32,6 +33,7 @@ import androidx.compose.runtime.getValue
 import androidx.compose.runtime.livedata.observeAsState
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
@@ -47,7 +49,9 @@ import androidx.compose.ui.unit.sp
 import androidx.lifecycle.viewmodel.compose.viewModel
 import androidx.navigation.NavHostController
 import com.vpn.fastestvpnservice.R
+import com.vpn.fastestvpnservice.constants.AppEnum
 import com.vpn.fastestvpnservice.customItems.ServerItemTV
+import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
 import com.vpn.fastestvpnservice.screens.isSearchModelInitialized
 import com.vpn.fastestvpnservice.screens.searchListViewModelSplash
 import com.vpn.fastestvpnservice.screens.serverListViewModelSplash
@@ -55,13 +59,27 @@ import com.vpn.fastestvpnservice.ui.theme.customTypography
 import com.vpn.fastestvpnservice.viewmodels.SearchListViewModel
 import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
 import com.vpn.fastestvpnservice.viewmodels.SplashViewModel
+import com.vpn.fastestvpnservice.views.ShowCustomSnackBar
 import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
 
 @Composable
 fun ServerListTV(navHostController: NavHostController) {
     val context = LocalContext.current
     var textChanged by remember { mutableStateOf("") }
     val keyboardController = LocalSoftwareKeyboardController.current
+    val snackBarStateRed = remember { SnackbarHostState() }
+    val coroutineScope = rememberCoroutineScope()
+    val basePreferenceHelper = BasePreferenceHelper(context)
+
+    var isFreeAccount: Boolean = false
+    basePreferenceHelper.getProduct()?.identifier?.let {
+        if (it == AppEnum.FREE.key) {
+            isFreeAccount = true
+        } else {
+            isFreeAccount = false
+        }
+    }
 
     if (!isSearchModelInitialized) {
         splashViewModelSplash = viewModel {
@@ -84,6 +102,16 @@ fun ServerListTV(navHostController: NavHostController) {
             .padding(bottom = 0.dp)
 
     ) {
+        ShowCustomSnackBar(snackBarStateRed, R.color.Red, R.color.white)
+
+        LaunchedEffect(key1 = Unit) {
+            if (isFreeAccount) {
+                coroutineScope.launch {
+                    snackBarStateRed.showSnackbar(context.getString(R.string.email_field_req))
+                }
+            }
+        }
+
         HeaderRowSL(navHostController = navHostController, title = context.getString(R.string.locations_cap))
 
         TextField(
@@ -95,7 +123,7 @@ fun ServerListTV(navHostController: NavHostController) {
                 color = MaterialTheme.colorScheme.primary
             ),
             modifier = Modifier
-                .padding(top = 60.dp, end = 0.dp)
+                .padding(top = 104.dp, end = 0.dp)
                 .padding(horizontal = 0.dp)
                 .fillMaxWidth(fraction = 0.5f)
                 .align(Alignment.TopCenter)
@@ -170,7 +198,7 @@ fun ServerListTV(navHostController: NavHostController) {
             Column(
                 modifier = Modifier
                     .fillMaxSize()
-                    .padding(top = 130.dp, start = 24.dp, end = 24.dp, bottom = 24.dp)
+                    .padding(top = 174.dp, start = 24.dp, end = 24.dp, bottom = 24.dp)
                     .verticalScroll(rememberScrollState())
                     .background(Color.Transparent)
             ) {
@@ -286,7 +314,7 @@ fun ServerListTV(navHostController: NavHostController) {
                 Column(
                     modifier = Modifier
                         .fillMaxSize()
-                        .padding(top = 130.dp, start = 24.dp, end = 24.dp, bottom = 24.dp)
+                        .padding(top = 174.dp, start = 24.dp, end = 24.dp, bottom = 24.dp)
                         .verticalScroll(rememberScrollState())
                         .background(Color.Transparent)
                 ) {
@@ -387,7 +415,7 @@ fun BoxScope.HeaderRowSL(
 //    }
     Surface(
         modifier = Modifier
-            .padding(start = 14.dp, top = 16.dp)
+            .padding(start = 14.dp, top = 60.dp)
             .height(32.dp)
             .align(Alignment.TopStart)
             .padding(5.dp),