From f206d4792c063ac1e6bc29a42b8cd4b29ae78327 Mon Sep 17 00:00:00 2001 From: machiav3lli Date: Sun, 18 Sep 2022 15:20:38 +0200 Subject: [PATCH] Update: Link searchQuery to Pages --- .../com/machiav3lli/fdroid/ui/pages/ExplorePage.kt | 13 +++++++++++++ .../machiav3lli/fdroid/ui/pages/InstalledPage.kt | 13 +++++++++++++ .../com/machiav3lli/fdroid/ui/pages/LatestPage.kt | 9 +++++++++ 3 files changed, 35 insertions(+) diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/ExplorePage.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/ExplorePage.kt index 84773fe9..60cfc325 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/ExplorePage.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/ExplorePage.kt @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.SideEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.mutableStateOf @@ -24,6 +25,9 @@ import com.machiav3lli.fdroid.ui.compose.theme.AppTheme import com.machiav3lli.fdroid.ui.viewmodels.MainNavFragmentViewModelX import com.machiav3lli.fdroid.utility.isDarkTheme import com.machiav3lli.fdroid.utility.onLaunchClick +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch @Composable fun ExplorePage(viewModel: MainNavFragmentViewModelX) { @@ -38,6 +42,15 @@ fun ExplorePage(viewModel: MainNavFragmentViewModelX) { } val favorites by mainActivityX.db.extrasDao.favoritesLive.observeAsState(emptyArray()) + SideEffect { + CoroutineScope(Dispatchers.IO).launch { + mainActivityX.searchQuery.collect { newQuery -> + if (newQuery != viewModel.searchQuery.value) + viewModel.searchQuery.postValue(newQuery) + } + } + } + AppTheme( darkTheme = when (Preferences[Preferences.Key.Theme]) { is Preferences.Theme.System -> isSystemInDarkTheme() diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/InstalledPage.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/InstalledPage.kt index 17970d27..a1d9889c 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/InstalledPage.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/InstalledPage.kt @@ -20,6 +20,7 @@ import androidx.compose.material3.SuggestionChip import androidx.compose.material3.SuggestionChipDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.SideEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.mutableStateOf @@ -42,6 +43,9 @@ import com.machiav3lli.fdroid.ui.compose.theme.AppTheme import com.machiav3lli.fdroid.ui.viewmodels.MainNavFragmentViewModelX import com.machiav3lli.fdroid.utility.isDarkTheme import com.machiav3lli.fdroid.utility.onLaunchClick +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -57,6 +61,15 @@ fun InstalledPage(viewModel: MainNavFragmentViewModelX) { } val favorites by mainActivityX.db.extrasDao.favoritesLive.observeAsState(emptyArray()) + SideEffect { + CoroutineScope(Dispatchers.IO).launch { + mainActivityX.searchQuery.collect { newQuery -> + if (newQuery != viewModel.searchQuery.value) + viewModel.searchQuery.postValue(newQuery) + } + } + } + AppTheme( darkTheme = when (Preferences[Preferences.Key.Theme]) { is Preferences.Theme.System -> isSystemInDarkTheme() diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/LatestPage.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/LatestPage.kt index 7938c652..463b73d3 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/LatestPage.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/LatestPage.kt @@ -29,6 +29,9 @@ import com.machiav3lli.fdroid.ui.compose.theme.AppTheme import com.machiav3lli.fdroid.ui.viewmodels.MainNavFragmentViewModelX import com.machiav3lli.fdroid.utility.isDarkTheme import com.machiav3lli.fdroid.utility.onLaunchClick +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch @Composable fun LatestPage(viewModel: MainNavFragmentViewModelX) { @@ -45,6 +48,12 @@ fun LatestPage(viewModel: MainNavFragmentViewModelX) { SideEffect { mainActivityX.syncConnection.bind(context) + CoroutineScope(Dispatchers.IO).launch { + mainActivityX.searchQuery.collect { newQuery -> + if (newQuery != viewModel.searchQuery.value) + viewModel.searchQuery.postValue(newQuery) + } + } } AppTheme(