diff --git a/app/src/main/java/eu/kanade/presentation/category/SortTagScreen.kt b/app/src/main/java/eu/kanade/presentation/category/SortTagScreen.kt index ea7fc7034..e2ee6bc03 100644 --- a/app/src/main/java/eu/kanade/presentation/category/SortTagScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/category/SortTagScreen.kt @@ -12,10 +12,10 @@ import eu.kanade.presentation.category.components.CategoryCreateDialog import eu.kanade.presentation.category.components.CategoryDeleteDialog import eu.kanade.presentation.category.components.CategoryFloatingActionButton import eu.kanade.presentation.category.components.genre.SortTagContent +import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.EmptyScreen import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.Scaffold -import eu.kanade.presentation.components.TopAppBar import eu.kanade.presentation.util.horizontalPadding import eu.kanade.presentation.util.plus import eu.kanade.presentation.util.topPaddingValues @@ -35,7 +35,7 @@ fun SortTagScreen( modifier = Modifier .statusBarsPadding(), topBar = { - TopAppBar( + AppBar( navigateUp = navigateUp, title = stringResource(R.string.action_edit_tags), ) diff --git a/app/src/main/java/eu/kanade/presentation/category/SourceCategoryScreen.kt b/app/src/main/java/eu/kanade/presentation/category/SourceCategoryScreen.kt index d9fb672d6..2c24c3d89 100644 --- a/app/src/main/java/eu/kanade/presentation/category/SourceCategoryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/category/SourceCategoryScreen.kt @@ -13,10 +13,10 @@ import eu.kanade.presentation.category.components.CategoryDeleteDialog import eu.kanade.presentation.category.components.CategoryFloatingActionButton import eu.kanade.presentation.category.components.CategoryRenameDialog import eu.kanade.presentation.category.components.sources.SourceCategoryContent +import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.EmptyScreen import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.Scaffold -import eu.kanade.presentation.components.TopAppBar import eu.kanade.presentation.util.horizontalPadding import eu.kanade.presentation.util.plus import eu.kanade.presentation.util.topPaddingValues @@ -36,7 +36,7 @@ fun SourceCategoryScreen( modifier = Modifier .statusBarsPadding(), topBar = { - TopAppBar( + AppBar( navigateUp = navigateUp, title = stringResource(R.string.action_edit_categories), ) diff --git a/app/src/main/java/eu/kanade/presentation/category/SourceRepoScreen.kt b/app/src/main/java/eu/kanade/presentation/category/SourceRepoScreen.kt index c9d729e2e..f8c38a78a 100644 --- a/app/src/main/java/eu/kanade/presentation/category/SourceRepoScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/category/SourceRepoScreen.kt @@ -12,10 +12,10 @@ import eu.kanade.presentation.category.components.CategoryCreateDialog import eu.kanade.presentation.category.components.CategoryDeleteDialog import eu.kanade.presentation.category.components.CategoryFloatingActionButton import eu.kanade.presentation.category.components.repo.SourceRepoContent +import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.EmptyScreen import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.Scaffold -import eu.kanade.presentation.components.TopAppBar import eu.kanade.presentation.util.horizontalPadding import eu.kanade.presentation.util.plus import eu.kanade.presentation.util.topPaddingValues @@ -35,7 +35,7 @@ fun SourceRepoScreen( modifier = Modifier .statusBarsPadding(), topBar = { - TopAppBar( + AppBar( navigateUp = navigateUp, title = stringResource(R.string.action_edit_repos), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index fb28a1d4c..61beeeb7e 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -52,7 +52,7 @@ import eu.kanade.tachiyomi.data.preference.PreferenceValues import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.ui.base.delegate.SecureActivityDelegate -import eu.kanade.tachiyomi.util.preference.asImmediateFlow +import eu.kanade.tachiyomi.util.preference.asHotFlow import eu.kanade.tachiyomi.util.system.AuthenticatorUtil import eu.kanade.tachiyomi.util.system.WebViewUtil import eu.kanade.tachiyomi.util.system.animatorDurationScale @@ -148,7 +148,7 @@ class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory { .launchIn(ProcessLifecycleOwner.get().lifecycleScope) preferences.themeMode() - .asImmediateFlow { + .asHotFlow { AppCompatDelegate.setDefaultNightMode( when (it) { PreferenceValues.ThemeMode.light -> AppCompatDelegate.MODE_NIGHT_NO diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt index d34c8308d..c48464e64 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt @@ -50,7 +50,7 @@ import eu.kanade.tachiyomi.ui.webview.WebViewActivity import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.lang.withUIContext -import eu.kanade.tachiyomi.util.preference.asImmediateFlow +import eu.kanade.tachiyomi.util.preference.asHotFlow import eu.kanade.tachiyomi.util.system.connectivityManager import eu.kanade.tachiyomi.util.system.openInBrowser import eu.kanade.tachiyomi.util.system.toast @@ -374,7 +374,7 @@ open class BrowseSourceController(bundle: Bundle) : } } else { (binding.catalogueView.inflate(R.layout.source_recycler_autofit) as AutofitRecyclerView).apply { - numColumnsJob = getColumnsPreferenceForCurrentOrientation().asImmediateFlow { spanCount = it } + numColumnsJob = getColumnsPreferenceForCurrentOrientation().asHotFlow { spanCount = it } .drop(1) // Set again the adapter to recalculate the covers height .onEach { adapter = this@BrowseSourceController.adapter } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt index 0efe905fe..389665a59 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt @@ -38,6 +38,7 @@ import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.launchUI +import eu.kanade.tachiyomi.util.preference.asHotFlow import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.system.openInBrowser import eu.kanade.tachiyomi.util.system.toast @@ -94,14 +95,8 @@ class LibraryController( */ private var actionMode: ActionModeWithToolbar? = null - /** - * Relay to notify the library's viewpager for updates. - */ - val libraryMangaRelay: BehaviorRelay = BehaviorRelay.create() + private var mangaMap: LibraryMap = emptyMap() - /** - * Adapter of the view pager. - */ private var adapter: LibraryAdapter? = null /** @@ -156,11 +151,9 @@ class LibraryController( currentCategory?.name } - if (preferences.categoryNumberOfItems().get() && libraryMangaRelay.hasValue()) { - libraryMangaRelay.value.mangas.let { mangaMap -> - if (!showCategoryTabs || adapter?.categories?.size == 1) { - title += " (${mangaMap[currentCategory?.id]?.size ?: 0})" - } + if (preferences.categoryNumberOfItems().get()) { + if (!showCategoryTabs || adapter?.categories?.size == 1) { + title += " (${mangaMap[currentCategory?.id]?.size ?: 0})" } } @@ -189,8 +182,7 @@ class LibraryController( ) getColumnsPreferenceForCurrentOrientation() - .asFlow() - .onEach { presenter.columns = it } + .asHotFlow { presenter.columns = it } .launchIn(viewScope) binding.libraryPager.adapter = adapter @@ -345,7 +337,7 @@ class LibraryController( presenter.loadedMangaFlow.value = presenter.loadedManga // Send the manga map to child fragments after the adapter is updated. - libraryMangaRelay.call(LibraryMangaEvent(mangaMap)) + this.mangaMap = mangaMap // Finally update the title updateTitle() @@ -378,9 +370,6 @@ class LibraryController( updateTitle() } - /** - * Called when the sorting mode is changed. - */ private fun onSortChanged() { // SY --> activity?.invalidateOptionsMenu() @@ -402,9 +391,6 @@ class LibraryController( adapter.recycle = true } - /** - * Creates the action mode if it's not created already. - */ fun createActionModeIfNeeded() { val activity = activity if (actionMode == null && activity is MainActivity) { @@ -413,9 +399,6 @@ class LibraryController( } } - /** - * Destroys the action mode. - */ private fun destroyActionModeIfNeeded() { actionMode?.finish() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryMangaEvent.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryMangaEvent.kt deleted file mode 100755 index fa7ad06b8..000000000 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryMangaEvent.kt +++ /dev/null @@ -1,3 +0,0 @@ -package eu.kanade.tachiyomi.ui.library - -class LibraryMangaEvent(val mangas: LibraryMap) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index c2b4929d0..c99666057 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -71,10 +71,7 @@ import exh.util.isLewd import exh.util.nullIfBlank import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asFlow -import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.filter -import kotlinx.coroutines.flow.launchIn -import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.toList import kotlinx.coroutines.runBlocking import rx.Observable @@ -164,9 +161,6 @@ class LibraryPresenter( */ private val sortTriggerRelay = BehaviorRelay.create(Unit) - /** - * Library subscription. - */ private var librarySubscription: Subscription? = null // SY --> @@ -196,13 +190,6 @@ class LibraryPresenter( override fun onCreate(savedState: Bundle?) { super.onCreate(savedState) - preferences.libraryDisplayMode() - .asFlow() - .drop(1) - .onEach { - currentDisplayMode = it - } - .launchIn(presenterScope) subscribeLibrary() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index e066c4001..a29cb7de8 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -63,7 +63,7 @@ import eu.kanade.tachiyomi.ui.recent.updates.UpdatesController import eu.kanade.tachiyomi.ui.setting.SettingsMainController import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.launchUI -import eu.kanade.tachiyomi.util.preference.asImmediateFlow +import eu.kanade.tachiyomi.util.preference.asHotFlow import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.getThemeColor import eu.kanade.tachiyomi.util.system.isTablet @@ -172,7 +172,7 @@ class MainActivity : BaseActivity() { if (binding.sideNav != null) { preferences.sideNavIconAlignment() - .asImmediateFlow { + .asHotFlow { binding.sideNav?.menuGravity = when (it) { 1 -> Gravity.CENTER 2 -> Gravity.BOTTOM @@ -303,11 +303,11 @@ class MainActivity : BaseActivity() { .launchIn(lifecycleScope) preferences.extensionUpdatesCount() - .asImmediateFlow { setExtensionsBadge() } + .asHotFlow { setExtensionsBadge() } .launchIn(lifecycleScope) preferences.downloadedOnly() - .asImmediateFlow { binding.downloadedOnly.isVisible = it } + .asHotFlow { binding.downloadedOnly.isVisible = it } .launchIn(lifecycleScope) binding.incognitoMode.isVisible = preferences.incognitoMode().get() @@ -328,7 +328,7 @@ class MainActivity : BaseActivity() { // SY --> preferences.bottomBarLabels() - .asImmediateFlow { setNavLabelVisibility() } + .asHotFlow { setNavLabelVisibility() } .launchIn(lifecycleScope) // SY <-- } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt index b5351efc3..2c74be620 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt @@ -66,7 +66,7 @@ import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.lang.toRelativeString import eu.kanade.tachiyomi.util.lang.withUIContext -import eu.kanade.tachiyomi.util.preference.asImmediateFlow +import eu.kanade.tachiyomi.util.preference.asHotFlow import eu.kanade.tachiyomi.util.removeCovers import eu.kanade.tachiyomi.util.shouldDownloadNewChapters import eu.kanade.tachiyomi.util.system.logcat @@ -375,13 +375,13 @@ class MangaPresenter( } preferences.incognitoMode() - .asImmediateFlow { incognito -> + .asHotFlow { incognito -> incognitoMode = incognito } .launchIn(presenterScope) preferences.downloadedOnly() - .asImmediateFlow { downloadedOnly -> + .asHotFlow { downloadedOnly -> downloadedOnlyMode = downloadedOnly } .launchIn(presenterScope) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderGeneralSettings.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderGeneralSettings.kt index eb5da99a6..b3bc11795 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderGeneralSettings.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderGeneralSettings.kt @@ -11,7 +11,7 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.ReaderGeneralSettingsBinding import eu.kanade.tachiyomi.ui.reader.ReaderActivity -import eu.kanade.tachiyomi.util.preference.asImmediateFlow +import eu.kanade.tachiyomi.util.preference.asHotFlow import eu.kanade.tachiyomi.util.preference.bindToPreference import kotlinx.coroutines.flow.launchIn import uy.kohesive.injekt.injectLazy @@ -40,7 +40,7 @@ class ReaderGeneralSettings @JvmOverloads constructor(context: Context, attrs: A binding.showPageNumber.bindToPreference(preferences.showPageNumber()) binding.fullscreen.bindToPreference(preferences.fullscreen()) preferences.fullscreen() - .asImmediateFlow { + .asHotFlow { // If the preference is explicitly disabled, that means the setting was configured since there is a cutout binding.cutoutShort.isVisible = it && ((context as ReaderActivity).hasCutout || !preferences.cutoutShort().get()) binding.cutoutShort.bindToPreference(preferences.cutoutShort()) @@ -62,7 +62,7 @@ class ReaderGeneralSettings @JvmOverloads constructor(context: Context, attrs: A // Hides landscapeVerticalSeekbar & leftVerticalSeekbar option when forceHorizontalSeekbar is enabled binding.forceHorzSeekbar.bindToPreference(preferences.forceHorizontalSeekbar()) preferences.forceHorizontalSeekbar() - .asImmediateFlow { + .asHotFlow { binding.landscapeVerticalSeekbar.isGone = it binding.leftVerticalSeekbar.isGone = it } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt index 21d5f1ae9..85f633d44 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt @@ -12,7 +12,7 @@ import eu.kanade.tachiyomi.databinding.ReaderReadingModeSettingsBinding import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerViewer import eu.kanade.tachiyomi.ui.reader.viewer.webtoon.WebtoonViewer -import eu.kanade.tachiyomi.util.preference.asImmediateFlow +import eu.kanade.tachiyomi.util.preference.asHotFlow import eu.kanade.tachiyomi.util.preference.bindToPreference import kotlinx.coroutines.flow.launchIn import uy.kohesive.injekt.injectLazy @@ -73,12 +73,12 @@ class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attr binding.pagerPrefsGroup.pagerNav.bindToPreference(preferences.navigationModePager()) preferences.navigationModePager() - .asImmediateFlow { binding.pagerPrefsGroup.tappingInverted.isVisible = it != 5 } + .asHotFlow { binding.pagerPrefsGroup.tappingInverted.isVisible = it != 5 } .launchIn((context as ReaderActivity).lifecycleScope) // Makes so that landscape zoom gets hidden away when image scale type is not fit screen binding.pagerPrefsGroup.scaleType.bindToPreference(preferences.imageScaleType(), 1) preferences.imageScaleType() - .asImmediateFlow { binding.pagerPrefsGroup.landscapeZoom.isVisible = it == 1 } + .asHotFlow { binding.pagerPrefsGroup.landscapeZoom.isVisible = it == 1 } .launchIn((context as ReaderActivity).lifecycleScope) binding.pagerPrefsGroup.landscapeZoom.bindToPreference(preferences.landscapeZoom()) @@ -89,7 +89,7 @@ class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attr // Makes so that dual page invert gets hidden away when turning of dual page split binding.pagerPrefsGroup.dualPageSplit.bindToPreference(preferences.dualPageSplitPaged()) preferences.dualPageSplitPaged() - .asImmediateFlow { binding.pagerPrefsGroup.dualPageInvert.isVisible = it } + .asHotFlow { binding.pagerPrefsGroup.dualPageInvert.isVisible = it } .launchIn((context as ReaderActivity).lifecycleScope) binding.pagerPrefsGroup.dualPageInvert.bindToPreference(preferences.dualPageInvertPaged()) @@ -111,7 +111,7 @@ class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attr binding.webtoonPrefsGroup.webtoonNav.bindToPreference(preferences.navigationModeWebtoon()) preferences.navigationModeWebtoon() - .asImmediateFlow { binding.webtoonPrefsGroup.tappingInverted.isVisible = it != 5 } + .asHotFlow { binding.webtoonPrefsGroup.tappingInverted.isVisible = it != 5 } .launchIn((context as ReaderActivity).lifecycleScope) binding.webtoonPrefsGroup.cropBordersWebtoon.bindToPreference(preferences.cropBordersWebtoon()) binding.webtoonPrefsGroup.webtoonSidePadding.bindToIntPreference(preferences.webtoonSidePadding(), R.array.webtoon_side_padding_values) @@ -119,7 +119,7 @@ class ReaderReadingModeSettings @JvmOverloads constructor(context: Context, attr // Makes so that dual page invert gets hidden away when turning of dual page split binding.webtoonPrefsGroup.dualPageSplit.bindToPreference(preferences.dualPageSplitWebtoon()) preferences.dualPageSplitWebtoon() - .asImmediateFlow { binding.webtoonPrefsGroup.dualPageInvert.isVisible = it } + .asHotFlow { binding.webtoonPrefsGroup.dualPageInvert.isVisible = it } .launchIn((context as ReaderActivity).lifecycleScope) binding.webtoonPrefsGroup.dualPageInvert.bindToPreference(preferences.dualPageInvertWebtoon()) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsController.kt index 48c7ec22d..436197b43 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsController.kt @@ -24,7 +24,7 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.ui.base.controller.BaseController import eu.kanade.tachiyomi.ui.base.controller.RootController -import eu.kanade.tachiyomi.util.preference.asImmediateFlow +import eu.kanade.tachiyomi.util.preference.asHotFlow import eu.kanade.tachiyomi.util.system.getResourceColor import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope @@ -138,7 +138,7 @@ abstract class SettingsController : PreferenceController() { } inline fun Preference.visibleIf(preference: com.fredporciuncula.flow.preferences.Preference, crossinline block: (T) -> Boolean) { - preference.asImmediateFlow { isVisible = block(it) } + preference.asHotFlow { isVisible = block(it) } .launchIn(viewScope) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/preference/PreferenceExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/preference/PreferenceExtensions.kt index d9098333e..1c7db68e0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/preference/PreferenceExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/preference/PreferenceExtensions.kt @@ -13,7 +13,7 @@ fun CompoundButton.bindToPreference(pref: Preference) { setOnCheckedChangeListener { _, isChecked -> pref.set(isChecked) } } -fun Preference.asImmediateFlow(block: (T) -> Unit): Flow { +fun Preference.asHotFlow(block: (T) -> Unit): Flow { block(get()) return asFlow() .onEach { block(it) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiSearchView.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiSearchView.kt index cc913f618..eeb3085b7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiSearchView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiSearchView.kt @@ -7,7 +7,7 @@ import androidx.appcompat.widget.SearchView import androidx.core.view.inputmethod.EditorInfoCompat import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.util.preference.asImmediateFlow +import eu.kanade.tachiyomi.util.preference.asHotFlow import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob @@ -31,7 +31,7 @@ class TachiyomiSearchView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() scope = CoroutineScope(SupervisorJob() + Dispatchers.Main) - Injekt.get().incognitoMode().asImmediateFlow { + Injekt.get().incognitoMode().asHotFlow { imeOptions = if (it) { imeOptions or EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING } else { diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiTextInputEditText.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiTextInputEditText.kt index 0bbd328a6..7951062db 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiTextInputEditText.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiTextInputEditText.kt @@ -7,7 +7,7 @@ import androidx.core.view.inputmethod.EditorInfoCompat import com.google.android.material.textfield.TextInputEditText import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.util.preference.asImmediateFlow +import eu.kanade.tachiyomi.util.preference.asHotFlow import eu.kanade.tachiyomi.widget.TachiyomiTextInputEditText.Companion.setIncognito import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -49,7 +49,7 @@ class TachiyomiTextInputEditText @JvmOverloads constructor( * if [PreferencesHelper.incognitoMode] is true. Some IMEs may not respect this flag. */ fun EditText.setIncognito(viewScope: CoroutineScope) { - Injekt.get().incognitoMode().asImmediateFlow { + Injekt.get().incognitoMode().asHotFlow { imeOptions = if (it) { imeOptions or EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING } else { diff --git a/app/src/main/java/exh/pagepreview/components/PagePreviewScreen.kt b/app/src/main/java/exh/pagepreview/components/PagePreviewScreen.kt index 20fe1c7f5..0f6012a5a 100644 --- a/app/src/main/java/exh/pagepreview/components/PagePreviewScreen.kt +++ b/app/src/main/java/exh/pagepreview/components/PagePreviewScreen.kt @@ -27,12 +27,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AroundLayout import eu.kanade.presentation.components.EmptyScreen import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.Scaffold import eu.kanade.presentation.components.ScrollbarLazyColumn -import eu.kanade.presentation.components.TopAppBar import eu.kanade.presentation.manga.components.PagePreview import eu.kanade.presentation.util.plus import eu.kanade.presentation.util.topPaddingValues @@ -171,7 +171,7 @@ fun PagePreviewTopAppBar( onOpenPageDialog: () -> Unit, showOpenPageDialog: Boolean, ) { - TopAppBar( + AppBar( title = title, actions = { if (showOpenPageDialog) {