瀏覽代碼

callback onserverselected implemented on search and fav servers..

Khubaib 1 年之前
父節點
當前提交
72e144b6fb

+ 44 - 7
app/src/main/java/com/vpn/fastestvpnservice/customItems/ServerItem.kt

@@ -65,6 +65,7 @@ import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
 import com.vpn.fastestvpnservice.helpers.UIHelper
 import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.onServer
 import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.onServerSelected
+import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
 import com.vpn.fastestvpnservice.utils.Utils
 import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
 import com.vpn.fastestvpnservice.viewmodels.SearchListViewModel
@@ -250,6 +251,22 @@ fun FavoriteServerItem(server: Server, navHostController: NavHostController) {
         SplashViewModel(context)
     }
 
+    val scope = rememberCoroutineScope()
+    val homeViewModel: HomeViewModel = viewModel {
+        HomeViewModel(context, scope)
+    }
+    var isFavServerClicked by remember {
+        mutableStateOf(false)
+    }
+
+    if (isFavServerClicked) {
+        Log.d("ServerCallbacks", "isServerClicked $isFavServerClicked")
+        onServer.onServerSelected(context, homeViewModel) {
+            isFavServerClicked = false
+        }
+        navHostController.popBackStack(BottomBarScreen.Home.route, false)
+    }
+
     Box(
         modifier = Modifier
             .fillMaxWidth()
@@ -266,11 +283,15 @@ fun FavoriteServerItem(server: Server, navHostController: NavHostController) {
                     indication = null,
                     interactionSource = remember { MutableInteractionSource() }
                 ) {
-                    Toast.makeText(
-                        context, server.server_name, Toast.LENGTH_SHORT
-                    ).show()
+//                    Toast
+//                        .makeText(
+//                            context, server.server_name, Toast.LENGTH_SHORT
+//                        )
+//                        .show()
                     basePreferenceHelper.setServerObject(server)
-                    navHostController.popBackStack()
+                    isFavServerClicked = true
+
+//                    navHostController.popBackStack()
                 }
         ) {
             var ping by remember { mutableIntStateOf(0) }
@@ -378,8 +399,9 @@ fun FavoriteServerItem(server: Server, navHostController: NavHostController) {
 @Composable
 fun ServerSearchItem(server: Server, navHostController: NavHostController) {
     val context = LocalContext.current
+    val scope = rememberCoroutineScope()
     val basePreferenceHelper = BasePreferenceHelper(context)
-    var serverListViewModel: ServerListViewModel = viewModel {
+    val serverListViewModel: ServerListViewModel = viewModel {
         ServerListViewModel(context = context)
     }
     val splashViewModel: SplashViewModel = viewModel{
@@ -388,6 +410,21 @@ fun ServerSearchItem(server: Server, navHostController: NavHostController) {
     val searchListViewModel: SearchListViewModel = viewModel{
         SearchListViewModel(context, serverListViewModel, splashViewModel)
     }
+    val homeViewModel: HomeViewModel = viewModel{
+        HomeViewModel(context, scope)
+    }
+    var isSearchServerClicked by remember {
+        mutableStateOf(false)
+    }
+
+    if (isSearchServerClicked) {
+        Log.d("ServerCallbacks", "isServerClicked $isSearchServerClicked")
+        onServer.onServerSelected(context, homeViewModel) {
+            isSearchServerClicked = false
+        }
+        navHostController.popBackStack()
+    }
+
     Box(
         modifier = Modifier
             .fillMaxWidth()
@@ -406,8 +443,8 @@ fun ServerSearchItem(server: Server, navHostController: NavHostController) {
                     interactionSource = remember { MutableInteractionSource() }
                 ) {
                     basePreferenceHelper.setServerObject(server)
-                    navHostController.popBackStack()
-
+                    isSearchServerClicked = true
+//                    navHostController.popBackStack()
                 }
         ) {
             var ping by remember { mutableIntStateOf(0) }

+ 12 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/accountScreensAll/FavoriteServersScreen.kt

@@ -23,7 +23,12 @@ import androidx.compose.material.Text
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.CompositionLocalProvider
+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
 import androidx.compose.ui.graphics.Color
@@ -44,6 +49,10 @@ import com.vpn.fastestvpnservice.beans.favList
 import com.vpn.fastestvpnservice.customItems.FavoriteServerItem
 import com.vpn.fastestvpnservice.customItems.ServerItem
 import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
+import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.onServer
+import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
+import com.vpn.fastestvpnservice.sealedClass.Screen
+import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
 import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
 
 @OptIn(ExperimentalFoundationApi::class)
@@ -110,7 +119,9 @@ fun BoxScope.HeaderRowFS(
     IconButton(
         onClick = {
             navHostController.popBackStack()
-//                    navHostController.navigate(BottomBarScreen.Help.route)
+
+//            navHostController.popBackStack(BottomBarScreen.Home.route, false)
+//            navHostController.navigate(BottomBarScreen.Home.route)
         },
         modifier = Modifier
             .align(Alignment.TopStart)