Procházet zdrojové kódy

delay on searching is resolved on searchBar on serverlist and settings screen

Khubaib před 11 měsíci
rodič
revize
1d0fec4aec

+ 2 - 2
.idea/deploymentTargetSelector.xml

@@ -4,10 +4,10 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2024-06-03T12:05:37.031573834Z">
+        <DropdownSelection timestamp="2024-06-03T13:55:17.119019345Z">
           <Target type="DEFAULT_BOOT">
             <handle>
-              <DeviceId pluginId="LocalEmulator" identifier="path=/home/ubuntu/.android/avd/Small_Phone_API_27.avd" />
+              <DeviceId pluginId="PhysicalDevice" identifier="serial=1C051FDF60048Z" />
             </handle>
           </Target>
         </DropdownSelection>

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

@@ -819,12 +819,12 @@ fun ColumnScope.ShowSearchBar(
             containerColor = MaterialTheme.colorScheme.onBackground,
             dividerColor = Color.Transparent,
             inputFieldColors = TextFieldDefaults.colors(
-                focusedTextColor = colorResource(id = R.color.dark_blue_gray_text),
-                unfocusedTextColor = colorResource(id = R.color.dark_blue_gray_text),
-                unfocusedIndicatorColor = colorResource(id = R.color.dark_blue_gray_text),
-                focusedIndicatorColor = colorResource(id = R.color.dark_blue_gray_text),
-                disabledIndicatorColor = colorResource(id = R.color.dark_blue_gray_text),
-                cursorColor = colorResource(id = R.color.dark_blue_gray_text),
+                focusedTextColor = MaterialTheme.colorScheme.primary,
+                unfocusedTextColor = MaterialTheme.colorScheme.primary,
+                unfocusedIndicatorColor = MaterialTheme.colorScheme.primary,
+                focusedIndicatorColor = MaterialTheme.colorScheme.primary,
+                disabledIndicatorColor = MaterialTheme.colorScheme.primary,
+                cursorColor = MaterialTheme.colorScheme.primary,
             )
         ),
         modifier = Modifier

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

@@ -988,10 +988,14 @@ fun ColumnScope.AddRowSettingsSmart(
                     ) {
                         LaunchedEffect(key1 = searchText1) {
                             Log.d("test_search_logic", "LaunchedEffect $searchText1")
-                            delay(300L)
-                            searchListViewModel.getCountries(searchText1, true)
+                            val delay = if (searchText1.isEmpty()) 0L else 300L
+                            delay(delay)
+                            val query = searchText1.ifEmpty { "settings_screen" }
+                            searchListViewModel.getCountries(query, true)
+                        }
+                        if (isActive == false) {
+                            searchText1 = ""
                         }
-
                         DockedSearchBar(
                             query = searchText1,
                             onQueryChange = {
@@ -1002,13 +1006,13 @@ fun ColumnScope.AddRowSettingsSmart(
                             },
                             onSearch = {
                                 scope.launch {
-                                    searchListViewModel.isActiveChange(false)
+                                    searchListViewModel.isActiveChange(state = false, true)
                                 }
                             },
                             active = isActive!!,
                             onActiveChange = {
                                 scope.launch {
-                                    searchListViewModel.isActiveChange(it)
+                                    searchListViewModel.isActiveChange(it, isFromSettings = true)
                                 }
                             },
                             placeholder = {
@@ -1046,7 +1050,7 @@ fun ColumnScope.AddRowSettingsSmart(
                                 .background(Color.Transparent)
                         ) {}
 
-                        val searchServersList = searchListViewModel.countriesList.observeAsState().value
+                        val searchServersList = searchListViewModel.countriesListSettings.observeAsState().value
                         LazyColumn(
                             modifier = Modifier
                                 .padding(top = 20.dp, bottom = 40.dp),

+ 12 - 4
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/SearchListViewModel.kt

@@ -54,9 +54,13 @@ class SearchListViewModel constructor(
     private var _isActive = MutableLiveData<Boolean>(false)
     var isActive: LiveData<Boolean> = _isActive
     val basePreferenceHelper = BasePreferenceHelper(context)
+
     private var _countriesList = MutableLiveData<ArrayList<Server>>(getCountries(""))
     var countriesList: LiveData<ArrayList<Server>> = _countriesList
 
+    private var _countriesListSettings = MutableLiveData<ArrayList<Server>>(getCountries("settings_screen"))
+    var countriesListSettings: LiveData<ArrayList<Server>> = _countriesListSettings
+
     fun searchTextChange(text: String) {
 //         _searchText.value = text
          getCountries(text, true)
@@ -64,10 +68,10 @@ class SearchListViewModel constructor(
     }
 
 
-    suspend fun isActiveChange(state: Boolean) {
+    suspend fun isActiveChange(state: Boolean, isFromSettings: Boolean = false) {
         _isActive.value = state
         if (_isActive.value == false) {
-            searchTextChange("")
+            if (isFromSettings) searchTextChange("settings_screen") else searchTextChange("")
         }
     }
 
@@ -110,18 +114,22 @@ class SearchListViewModel constructor(
         }
 
         filtersArray = if (text == ""){
-//            if (isFromSettings) searchServersList else emptyArray
             emptyArray
         } else {
             if (serversArray.size > 0) {
                 serversArray
-            } else {
+            }
+            else if (text == "settings_screen") {
+                searchServersList
+            }
+            else {
                 emptyArray
             }
         }
 
            if (isReturn) {
                _countriesList.value = filtersArray
+               _countriesListSettings.value = filtersArray
            }
 
             Log.d("test_search","GC_" +  filtersArray.size.toString())