Browse Source

Implement DockedSearchBar on serverlist screen and set fraction depends on data size

Khubaib 10 months ago
parent
commit
8c9ef97d28

+ 19 - 16
app/src/main/java/com/vpn/fastestvpnservice/screens/ServerListScreen.kt

@@ -770,7 +770,7 @@ fun ColumnScope.ShowSearchBar(
     if (isActive == false) {
         searchText1 = ""
     }
-    SearchBar(
+    DockedSearchBar(
         query = searchText1,
         onQueryChange = {
             searchText1 = it
@@ -829,22 +829,25 @@ fun ColumnScope.ShowSearchBar(
         ),
         modifier = Modifier
             .fillMaxWidth()
-            .padding(top = 35.dp)
+            .padding(top = 50.dp)
+            .height(50.dp)
+    ) {}
+    CompositionLocalProvider(
+        LocalOverscrollConfiguration provides null
     ) {
-        CompositionLocalProvider(
-            LocalOverscrollConfiguration provides null
-        ) {
-            val searchServersList = searchListViewModel.countriesList.observeAsState().value
-            Log.d("test_search", "SLS_${searchServersList?.size.toString()}")
-            if (searchServersList != null) {
-                LazyColumn(
-                    modifier = Modifier
-                        .padding(top = 0.dp, bottom = 0.dp),
-                ) {
-                    searchServersList.let {
-                        items(items = it) { server ->
-                            ServerSearchItem(server, navHostController = navHostController) {}
-                        }
+        val searchServersList = searchListViewModel.countriesList.observeAsState().value
+        Log.d("test_search", "SLS_${searchServersList?.size.toString()}")
+        if (searchServersList != null) {
+            val fraction = if (searchServersList.size > 0) 1f else if (searchText1.isNotEmpty()) 1f else 0f
+            LazyColumn(
+                modifier = Modifier
+                    .fillMaxWidth()
+                    .fillMaxHeight(fraction = fraction)
+                    .padding(top = 20.dp, bottom = 0.dp),
+            ) {
+                searchServersList.let {
+                    items(items = it) { server ->
+                        ServerSearchItem(server, navHostController = navHostController) {}
                     }
                 }
             }

+ 1 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/SettingsScreen.kt

@@ -1053,7 +1053,7 @@ fun ColumnScope.AddRowSettingsSmart(
                         val searchServersList = searchListViewModel.countriesListSettings.observeAsState().value
                         LazyColumn(
                             modifier = Modifier
-                                .padding(top = 20.dp, bottom = 40.dp),
+                                .padding(top = 20.dp, bottom = 40.dp)
                         ) {
                             items(items = searchServersList!!) { server ->
                                 ServerSpecificItem(