浏览代码

working on recompositions, performance..

Khubaib 1 年之前
父节点
当前提交
d202c5ece9

+ 2 - 2
app/src/main/java/com/vpn/fastestvpnservice/customItems/CountryItem.kt

@@ -77,7 +77,7 @@ import java.util.logging.Handler
 
 @Composable
 fun CountryItem(server: Server, category: String, navHostController: NavHostController) {
-    Log.d("test_countrySize", "CountryItem Called")
+    Log.d("test_countrySize", "CountryItem Called ${server.server_name} ${server.totalServers}")
     Box(
         modifier = Modifier
             .fillMaxWidth()
@@ -131,7 +131,7 @@ fun CountryItem(server: Server, category: String, navHostController: NavHostCont
             navHostController.popBackStack()
         }
 
-        Log.d("test_countrySize", "countrySize $countrySize")
+//        Log.d("test_countrySize", "countrySize $countrySize")
 
 //        LaunchedEffect(key1 = Unit) {
 //            Log.d("test_countrySize", "countrySize LE() $countrySize")

+ 41 - 61
app/src/main/java/com/vpn/fastestvpnservice/screens/ServerListScreen.kt

@@ -25,6 +25,9 @@ import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.layout.wrapContentHeight
 import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.grid.GridCells
+import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
+import androidx.compose.foundation.lazy.grid.items
 import androidx.compose.foundation.lazy.items
 import androidx.compose.foundation.pager.HorizontalPager
 import androidx.compose.foundation.pager.rememberPagerState
@@ -606,7 +609,8 @@ fun ColumnScope.ShowAllLocationsList(
         }
     }
 
-    var isServersListExpanded by rememberSaveable { mutableStateOf(List(data.size) {true}) }
+//    var isServersListExpanded by rememberSaveable { mutableStateOf(List(data.size) {true}) }
+    val isServersListExpanded by rememberSaveable { mutableStateOf(true) }
 
 //    val rotationState by animateFloatAsState(
 //        targetValue = if (isCountriesExpanded) 180f else 0f,
@@ -628,71 +632,47 @@ fun ColumnScope.ShowAllLocationsList(
             Column(
                 modifier = Modifier.fillMaxSize()
             ) {
-                var serverTitle by rememberSaveable { mutableStateOf("") }
-                var icon by rememberSaveable { mutableStateOf(0) }
+//                var serverTitle by rememberSaveable { mutableStateOf("") }
+//                var icon by rememberSaveable { mutableStateOf(0) }
 
-                serverTitle = serverData[serverTabPager].name!!
-                icon = if (isServersListExpanded[serverTabPager]) R.drawable.dragarrow3x
-                else R.drawable.downarrow3x
+//                serverTitle = serverData[serverTabPager].name!!
+//                icon = if (isServersListExpanded) R.drawable.dragarrow3x
+//                else R.drawable.downarrow3x
 
-                ShowHeaderItem(serverTitle, icon, serverTabPager) {
-                    isServersListExpanded = isServersListExpanded.toMutableList().also {
-                        it[serverTabPager] = !isServersListExpanded[serverTabPager]
-                    }
-
-
-                    //                    when (serverTabPager) {
-//                        0 -> {
-//                            isCountriesExpanded = !isCountriesExpanded
-//                        }
-//                        1 -> {
-//                            isStreamingExpanded = !isStreamingExpanded
-//                        }
-//                        2 -> {
-//                            isDvpnExpanded = !isDvpnExpanded
-//                        }
-//                        3 -> {
-//                            isP2PExpanded = !isP2PExpanded
-//                        }
-//                    }
-                }
+//                ShowHeaderItem(serverTitle, icon, serverTabPager) {
+//                    isServersListExpanded = !isServersListExpanded
+//
+////                    isServersListExpanded = isServersListExpanded.toMutableList().also {
+////                        it[serverTabPager] = !isServersListExpanded[serverTabPager]
+////                    }
+//                }
 
-                if (isServersListExpanded[serverTabPager]) {
-                    CompositionLocalProvider(
-                        LocalOverscrollConfiguration provides null
-                    ) {
-                        Log.d("test_compose_servers", "serverTabPager = $serverTabPager")
-                        filterServersList = if (
-                            data[serverTabPager].name?.lowercase().toString() == "servers") {
-                            data.get(serverTabPager).servers?.let {
-                                serverListViewModel.filterServersByISO(
-                                    it, isAlphabetList.value
-                                )
-                            }!!
-                        } else {
-                            data.get(serverTabPager).servers?.let {
-                                serverListViewModel.filterServersByStreamingServers(
-                                    it, isAlphabetList.value
-                                )
-                            }!!
-                        }
+                CompositionLocalProvider(
+                    LocalOverscrollConfiguration provides null
+                ) {
+                    Log.d("test_compose_servers", "serverTabPager = $serverTabPager")
+                    filterServersList = if (
+                        data[serverTabPager].name?.lowercase().toString() == "servers") {
+                        data.get(serverTabPager).servers?.let {
+                            serverListViewModel.filterServersByISO(
+                                it, isAlphabetList.value
+                            )
+                        }!!
+                    } else {
+                        data.get(serverTabPager).servers?.let {
+                            serverListViewModel.filterServersByStreamingServers(
+                                it, isAlphabetList.value
+                            )
+                        }!!
+                    }
 
-//                        filterServersList = serverListViewModel.liveDataGetServers.observeAsState().value!!
-//
-//                        filterServersList.let {
-//                            serverListViewModel._mutableLiveDataGetServers.value = null
-//                        }
-                        LazyColumn() {
-//                            Log.d("test_servers_size","size " + filterServersList?.size.toString())
-                            items(items = filterServersList) { country ->
-//                                calculatePing(country) {
-//                                    country.ping = it
-//                                }
-                                CountryItem(server = country, data[serverTabPager].name!!,
-                                    navHostController )
-                            }
-                        }
+                    LazyColumn() {
+                        items(items = filterServersList, itemContent = {country ->
+                            CountryItem(server = country, data[serverTabPager].name!!,
+                                navHostController )
+                        })
                     }
+
                 }
             }
         }

+ 14 - 16
app/src/main/java/com/vpn/fastestvpnservice/utils/VPNConnectionsUtil.kt

@@ -672,25 +672,23 @@ class VPNConnectionsUtil: VpnStatus.StateListener {
         Log.d("test_openvpn", "pause:: context = $context")
 
         // TODO uncomment_this_JC
-        if (isBound) {
-            Log.d("test_openvpn", "pause1:: isBound = $isBound")
-            context.unbindService(mConnection)
-        } else {
-            Log.d("test_openvpn", "pause2:: isBound = $isBound")
-
-        }
+//        if (isBound) {
+//            Log.d("test_openvpn", "pause1:: isBound = $isBound")
+//            context.unbindService(mConnection)
+//        } else {
+//            Log.d("test_openvpn", "pause2:: isBound = $isBound")
+//        }
 
 //        removing receiver to listen ikev2 protocol connection states
 
-        // Commenting Below Just Now ... !!!
-
-        try {
-            Log.d("test_home_resume", "onPause = ikevConnectionStatesReceiver: $ikevConnectionStatesReceiver")
-            LocalBroadcastManager.getInstance(context)
-                .unregisterReceiver(ikevConnectionStatesReceiver)
-        } catch (e: Exception) {
-            e.printStackTrace()
-        }
+        // TODO uncomment_this_JC
+//        try {
+//            Log.d("test_home_resume", "onPause = ikevConnectionStatesReceiver: $ikevConnectionStatesReceiver")
+//            LocalBroadcastManager.getInstance(context)
+//                .unregisterReceiver(ikevConnectionStatesReceiver)
+//        } catch (e: Exception) {
+//            e.printStackTrace()
+//        }
 
 //        try {
 //            LocalBroadcastManager.getInstance(context)