|
@@ -9,10 +9,8 @@ import android.os.Build
|
|
|
import android.os.Bundle
|
|
|
import android.os.Handler
|
|
|
import android.os.LocaleList
|
|
|
-import android.os.Looper
|
|
|
import android.provider.Settings
|
|
|
import android.util.Log
|
|
|
-import android.widget.Toast
|
|
|
import androidx.activity.ComponentActivity
|
|
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
|
|
import androidx.compose.foundation.Image
|
|
@@ -22,7 +20,6 @@ import androidx.compose.foundation.gestures.detectTapGestures
|
|
|
import androidx.compose.foundation.isSystemInDarkTheme
|
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
|
import androidx.compose.foundation.layout.Box
|
|
|
-import androidx.compose.foundation.layout.BoxScope
|
|
|
import androidx.compose.foundation.layout.Column
|
|
|
import androidx.compose.foundation.layout.ColumnScope
|
|
|
import androidx.compose.foundation.layout.Row
|
|
@@ -40,7 +37,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
|
|
import androidx.compose.foundation.verticalScroll
|
|
|
import androidx.compose.material.icons.Icons
|
|
|
import androidx.compose.material.icons.filled.DarkMode
|
|
|
-import androidx.compose.material.icons.filled.Language
|
|
|
import androidx.compose.material.icons.filled.RocketLaunch
|
|
|
import androidx.compose.material3.AlertDialog
|
|
|
import androidx.compose.material3.BottomSheetDefaults
|
|
@@ -74,7 +70,6 @@ import androidx.compose.ui.Alignment
|
|
|
import androidx.compose.ui.Modifier
|
|
|
import androidx.compose.ui.draw.alpha
|
|
|
import androidx.compose.ui.draw.scale
|
|
|
-import androidx.compose.ui.focus.FocusRequester
|
|
|
import androidx.compose.ui.focus.onFocusChanged
|
|
|
import androidx.compose.ui.graphics.Color
|
|
|
import androidx.compose.ui.graphics.ColorFilter
|
|
@@ -97,7 +92,6 @@ import androidx.compose.ui.window.DialogProperties
|
|
|
import androidx.core.content.ContextCompat.startActivity
|
|
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
|
|
import androidx.navigation.NavHostController
|
|
|
-import androidx.navigation.compose.rememberNavController
|
|
|
import com.vpn.fastestvpnservice.MainActivity
|
|
|
import com.vpn.fastestvpnservice.R
|
|
|
import com.vpn.fastestvpnservice.beans.Protocol
|
|
@@ -108,15 +102,17 @@ import com.vpn.fastestvpnservice.constants.AppEnum
|
|
|
import com.vpn.fastestvpnservice.constants.smartConnect
|
|
|
import com.vpn.fastestvpnservice.customItems.ServerSpecificItem
|
|
|
import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
|
|
|
+import com.vpn.fastestvpnservice.screens.isSearchModelInitialized
|
|
|
import com.vpn.fastestvpnservice.screens.searchListViewModelSplash
|
|
|
import com.vpn.fastestvpnservice.screens.serverListViewModelSplash
|
|
|
+import com.vpn.fastestvpnservice.screens.splashViewModelSplash
|
|
|
import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
|
|
|
import com.vpn.fastestvpnservice.sealedClass.Screen
|
|
|
import com.vpn.fastestvpnservice.ui.theme.customTypography
|
|
|
-import com.vpn.fastestvpnservice.utils.VPNConnectionsUtil
|
|
|
-import com.vpn.fastestvpnservice.viewmodels.AccountViewModel
|
|
|
import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
|
|
|
+import com.vpn.fastestvpnservice.viewmodels.SearchListViewModel
|
|
|
import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
|
|
|
+import com.vpn.fastestvpnservice.viewmodels.SplashViewModel
|
|
|
import de.blinkt.openvpn.core.App
|
|
|
import kotlinx.coroutines.delay
|
|
|
import kotlinx.coroutines.launch
|
|
@@ -1432,10 +1428,23 @@ fun ColumnScope.AddRowSettingsSmart(
|
|
|
|
|
|
if (isAnySpecificSheetOpen) {
|
|
|
val sheetStateAny = rememberModalBottomSheetState(skipPartiallyExpanded = true)
|
|
|
- val searchListViewModel = searchListViewModelSplash
|
|
|
+// val searchListViewModel = searchListViewModelSplash
|
|
|
// val searchText = searchListViewModel.searchText.observeAsState().value
|
|
|
+
|
|
|
+ if (!isSearchModelInitialized) {
|
|
|
+ splashViewModelSplash = viewModel {
|
|
|
+ SplashViewModel(context)
|
|
|
+ }
|
|
|
+ serverListViewModelSplash = viewModel {
|
|
|
+ ServerListViewModel(context = context)
|
|
|
+ }
|
|
|
+ searchListViewModelSplash = viewModel {
|
|
|
+ SearchListViewModel(context, serverListViewModelSplash, splashViewModelSplash)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
var searchText1 by remember { mutableStateOf("") }
|
|
|
- val isActive = searchListViewModel.isActive.observeAsState().value
|
|
|
+ val isActive = searchListViewModelSplash.isActive.observeAsState().value
|
|
|
val scope = rememberCoroutineScope()
|
|
|
|
|
|
ModalBottomSheet(
|
|
@@ -1473,7 +1482,7 @@ fun ColumnScope.AddRowSettingsSmart(
|
|
|
val delay = if (searchText1.isEmpty()) 0L else 300L
|
|
|
delay(delay)
|
|
|
val query = searchText1.ifEmpty { "settings_screen" }
|
|
|
- searchListViewModel.getCountries(query, true)
|
|
|
+ searchListViewModelSplash.getCountries(query, true)
|
|
|
}
|
|
|
// if (isActive == false) {
|
|
|
// searchText1 = ""
|
|
@@ -1483,19 +1492,19 @@ fun ColumnScope.AddRowSettingsSmart(
|
|
|
onQueryChange = {
|
|
|
searchText1 = it
|
|
|
// scope.launch {
|
|
|
-// searchListViewModel.searchTextChange(it)
|
|
|
+// searchListViewModelSplash.searchTextChange(it)
|
|
|
// }
|
|
|
},
|
|
|
onSearch = {
|
|
|
scope.launch {
|
|
|
- searchListViewModel.isActiveChange(state = false, true)
|
|
|
+ searchListViewModelSplash.isActiveChange(state = false, true)
|
|
|
}
|
|
|
// keyboardController?.hide()
|
|
|
},
|
|
|
active = isActive!!,
|
|
|
onActiveChange = {
|
|
|
scope.launch {
|
|
|
- searchListViewModel.isActiveChange(it, isFromSettings = true)
|
|
|
+ searchListViewModelSplash.isActiveChange(it, isFromSettings = true)
|
|
|
}
|
|
|
},
|
|
|
placeholder = {
|
|
@@ -1533,7 +1542,7 @@ fun ColumnScope.AddRowSettingsSmart(
|
|
|
.background(Color.Transparent)
|
|
|
) {}
|
|
|
|
|
|
- val searchServersList = searchListViewModel.countriesListSettings.observeAsState().value
|
|
|
+ val searchServersList = searchListViewModelSplash.countriesListSettings.observeAsState().value
|
|
|
LazyColumn(
|
|
|
modifier = Modifier
|
|
|
.padding(top = 20.dp, bottom = 40.dp)
|