Преглед на файлове

optimized fav server logic on ServerItem..

Khubaib преди 1 година
родител
ревизия
acf66b2cd9

+ 10 - 46
app/src/main/java/com/vpn/fastestvpnservice/customItems/ServerItem.kt

@@ -76,13 +76,15 @@ import java.lang.Exception
 fun ServerItem(server: Server, navHostController: NavHostController) {
     val context = LocalContext.current
     val scope = rememberCoroutineScope()
-    var isServerClicked by remember {
-        mutableStateOf(false)
-    }
-    val homeViewModel: HomeViewModel = viewModel{
-        HomeViewModel(context, scope)
-    }
+    var isServerClicked by remember { mutableStateOf(false) }
+    val homeViewModel: HomeViewModel = viewModel{ HomeViewModel(context, scope) }
     val basePreferenceHelper = BasePreferenceHelper(context)
+
+    var isFavorite by remember { mutableStateOf(server.isFavourited) }
+
+    val isServerFavourited: Boolean = server.isFavourited == true
+    Log.d("test-server_fav_d", "$isFavorite")
+
     Box(
         modifier = Modifier
             .fillMaxWidth()
@@ -120,7 +122,6 @@ fun ServerItem(server: Server, navHostController: NavHostController) {
                     interactionSource = remember { MutableInteractionSource() }
                 ) {
                     basePreferenceHelper.setServerObject(server)
-//                    onServerSelected(context, homeViewModel)
                     isServerClicked = true
                 }
         ) {
@@ -169,7 +170,6 @@ fun ServerItem(server: Server, navHostController: NavHostController) {
                     .align(Alignment.CenterVertically)
             )
 //            Spacer(modifier = Modifier.weight(1F))
-            var isFavorite by rememberSaveable { mutableStateOf(server.isFavourited) }
 
             IconButton(
                 modifier = Modifier
@@ -178,53 +178,17 @@ fun ServerItem(server: Server, navHostController: NavHostController) {
                 onClick = {
                     isFavorite = !isFavorite!!
                     serverListViewModel.favAndUnFav(server)
-//                    serverListViewModel.updateFavServer(server)
                 }
             ) {
-//                val favResponse = serverListViewModel.mutableLiveDataFavUnFav.observeAsState().value
-//                favResponse?.let {
-//                    Log.d("test_fav_response", it.message.toString())
-//                    splashViewModel.serverDataApi()
-//                    serverListViewModel.mutableLiveDataFavUnFav.value = null
-//                }
                 Icon(
-                    modifier = Modifier
-//                        .padding(bottom = 18.dp, end = 8.dp)
-//                        .size(22.dp, 21.dp)
-//                        .clickable(
-//                            indication = null,
-//                            interactionSource = remember { MutableInteractionSource() }
-//                        ) {
-////                            isFavorite = !isFavorite!!
-////                        serverListViewModel.updateFavServer(server)
-////                        serverListViewModel.favAndUnFav(server)
-//                        }
-                        ,
-
-                    painter = if (isFavorite == true) painterResource(
+                    modifier = Modifier,
+                    painter = if (isServerFavourited) painterResource(
                         id = R.drawable.fav_server3x) else painterResource(
                         id = R.drawable.unfav_server3x),
-
                     contentDescription = "Server Logo",
                     tint = Color.Unspecified,
                 )
             }
-
-
-//            IconButton(
-//                onClick = { isFavorite = !isFavorite },
-//                modifier = Modifier
-//                    .clickable(
-//                        indication = null,
-//                        interactionSource = remember { MutableInteractionSource() },
-//                        ) {
-//                        isFavorite = !isFavorite
-//                    }
-//            ) {
-//
-//
-//            }
-
         }
 
         Surface(

+ 5 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/ServerListScreen.kt

@@ -628,6 +628,7 @@ fun ColumnScope.ShowAllLocationsList(
             )
         }!!
     } else {
+        Log.d("test_fav_server_logic", "filterServersList else{}")
         data.get(selectedTabIndex).servers?.let {
             serverListViewModel.filterServersByStreamingServers(
                 it, isAlphabetList.value
@@ -635,6 +636,10 @@ fun ColumnScope.ShowAllLocationsList(
         }!!
     }
 
+    filterServersList.forEachIndexed { index, server ->
+        Log.d("test_fav_server_logic", "${server.server_name} ${server.isFavourited}")
+    }
+
     HorizontalPager(
         state = pagerState,
         modifier = Modifier
@@ -655,7 +660,6 @@ fun ColumnScope.ShowAllLocationsList(
                 {
 
                     Log.d("filterServersList", "filterServersList: ${filterServersList.size}")
-
                     when (selectedTabIndex) {
                         0 -> {
                             LazyColumn() {

+ 10 - 2
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/ServerListViewModel.kt

@@ -462,7 +462,7 @@ class ServerListViewModel(context: Context): ViewModel() {
                         {
                             mutableLiveDataFavUnFav.value = data
 
-                        UIHelper.showToast(data.message)
+//                        UIHelper.showToast(data.message)
                         }
                         else {
                             mutableLiveDataFavUnFav.value = null
@@ -549,7 +549,7 @@ class ServerListViewModel(context: Context): ViewModel() {
             serverDataList.servers?.let {serverList ->
                 serverList.forEachIndexed { index, obj ->
                     if (obj.id == server.id) {
-                        Log.d("test_serverData_Fav","if => index[$i]:: obj.id ${obj.id} , server = ${server.server_name}")
+//                        Log.d("test_serverData_Fav","if => index[$i]:: obj.id ${obj.id} , server = ${server.server_name}")
 //                        obj.isFavourited = obj.isFavourited != true
                         serverList.set(index, server)
                     }
@@ -557,6 +557,14 @@ class ServerListViewModel(context: Context): ViewModel() {
             }
         }
 
+        serverData.forEachIndexed { i, serverDataList ->
+            if (serverDataList.name.equals("Streaming")) {
+                serverDataList.servers?.forEachIndexed { index, obj ->
+                    Log.d("test_serverData_Fav","server = ${obj.server_name} ${obj.isFavourited}")
+                }
+            }
+        }
+
 //        serverData.forEachIndexed { i, serverDataList ->
 //            serverDataList.servers?.let {serverList ->
 //                serverList.forEachIndexed { index, obj ->