From 23239f1feccdf59da7c6602b4e175e49b4b37927 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 23 Sep 2022 18:30:38 +0300 Subject: [PATCH] Add setReorderingAllowed for fragment transactions --- .../kotatsu/favourites/ui/FavouritesActivity.kt | 2 ++ .../org/koitharu/kotatsu/history/ui/HistoryActivity.kt | 2 ++ .../java/org/koitharu/kotatsu/main/ui/MainActivity.kt | 4 ++++ .../koitharu/kotatsu/main/ui/MainNavigationDelegate.kt | 1 + .../org/koitharu/kotatsu/reader/ui/ReaderManager.kt | 10 +++++++--- .../koitharu/kotatsu/search/ui/MangaListActivity.kt | 2 ++ .../org/koitharu/kotatsu/search/ui/SearchActivity.kt | 2 ++ .../kotatsu/suggestions/ui/SuggestionsActivity.kt | 2 ++ 8 files changed, 22 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesActivity.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesActivity.kt index 8f0ffe33f..3118a4618 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesActivity.kt @@ -13,6 +13,7 @@ import org.koitharu.kotatsu.core.model.FavouriteCategory import org.koitharu.kotatsu.databinding.ActivityContainerBinding import org.koitharu.kotatsu.favourites.ui.list.FavouritesListFragment import org.koitharu.kotatsu.favourites.ui.list.FavouritesListFragment.Companion.NO_ID +import kotlin.text.Typography.dagger @AndroidEntryPoint class FavouritesActivity : BaseActivity() { @@ -28,6 +29,7 @@ class FavouritesActivity : BaseActivity() { val fm = supportFragmentManager if (fm.findFragmentById(R.id.container) == null) { fm.commit { + setReorderingAllowed(true) val fragment = FavouritesListFragment.newInstance(intent.getLongExtra(EXTRA_CATEGORY_ID, NO_ID)) replace(R.id.container, fragment) } diff --git a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryActivity.kt b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryActivity.kt index 569cea6ef..f7e6b58ec 100644 --- a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryActivity.kt @@ -12,6 +12,7 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.databinding.ActivityContainerBinding import org.koitharu.kotatsu.main.ui.owners.AppBarOwner +import kotlin.text.Typography.dagger @AndroidEntryPoint class HistoryActivity : @@ -28,6 +29,7 @@ class HistoryActivity : val fm = supportFragmentManager if (fm.findFragmentById(R.id.container) == null) { fm.commit { + setReorderingAllowed(true) val fragment = HistoryListFragment.newInstance() replace(R.id.container, fragment) } diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt index c050a1c2c..b8dba1b8f 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt @@ -52,6 +52,7 @@ import org.koitharu.kotatsu.suggestions.ui.SuggestionsWorker import org.koitharu.kotatsu.tracker.work.TrackWorker import org.koitharu.kotatsu.utils.VoiceInputContract import org.koitharu.kotatsu.utils.ext.* +import kotlin.text.Typography.dagger private const val TAG_SEARCH = "search" @@ -127,10 +128,12 @@ class MainActivity : binding.searchView.clearFocus() when { fragment != null -> supportFragmentManager.commit { + setReorderingAllowed(true) remove(fragment) setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) runOnCommit { onSearchClosed() } } + else -> super.onBackPressed() } } @@ -173,6 +176,7 @@ class MainActivity : if (v?.id == R.id.searchView && hasFocus) { if (fragment == null) { supportFragmentManager.commit { + setReorderingAllowed(true) add(R.id.container, SearchSuggestionFragment.newInstance(), TAG_SEARCH) setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) runOnCommit { onSearchOpened() } diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainNavigationDelegate.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainNavigationDelegate.kt index 93dbc98b7..5a86ecdc4 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainNavigationDelegate.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainNavigationDelegate.kt @@ -85,6 +85,7 @@ class MainNavigationDelegate( private fun setPrimaryFragment(fragment: Fragment) { fragmentManager.beginTransaction() + .setReorderingAllowed(true) .replace(R.id.container, fragment, TAG_PRIMARY) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) .commit() diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderManager.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderManager.kt index c5497fe8a..5bf7eee5b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderManager.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderManager.kt @@ -8,7 +8,7 @@ import org.koitharu.kotatsu.reader.ui.pager.BaseReader import org.koitharu.kotatsu.reader.ui.pager.reversed.ReversedReaderFragment import org.koitharu.kotatsu.reader.ui.pager.standard.PagerReaderFragment import org.koitharu.kotatsu.reader.ui.pager.webtoon.WebtoonReaderFragment -import java.util.* +import java.util.EnumMap class ReaderManager( private val fragmentManager: FragmentManager, @@ -35,11 +35,15 @@ class ReaderManager( fun replace(newMode: ReaderMode) { val readerClass = requireNotNull(modeMap[newMode]) fragmentManager.commit { + setReorderingAllowed(true) replace(containerResId, readerClass, null, null) } } fun replace(reader: BaseReader<*>) { - fragmentManager.commit { replace(containerResId, reader) } + fragmentManager.commit { + setReorderingAllowed(true) + replace(containerResId, reader) + } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/MangaListActivity.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/MangaListActivity.kt index 6247a3707..08891d4ba 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/ui/MangaListActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/MangaListActivity.kt @@ -18,6 +18,7 @@ import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaTag import org.koitharu.kotatsu.remotelist.ui.RemoteListFragment import org.koitharu.kotatsu.utils.ext.getParcelableExtraCompat +import kotlin.text.Typography.dagger @AndroidEntryPoint class MangaListActivity : @@ -41,6 +42,7 @@ class MangaListActivity : val fm = supportFragmentManager if (fm.findFragmentById(R.id.container) == null) { fm.commit { + setReorderingAllowed(true) val fragment = if (source == MangaSource.LOCAL) { LocalListFragment.newInstance() } else { diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchActivity.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchActivity.kt index 5d03187af..eb7242065 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchActivity.kt @@ -15,6 +15,7 @@ import org.koitharu.kotatsu.databinding.ActivitySearchBinding import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.search.ui.suggestion.SearchSuggestionViewModel import org.koitharu.kotatsu.utils.ext.showKeyboard +import kotlin.text.Typography.dagger @AndroidEntryPoint class SearchActivity : BaseActivity(), SearchView.OnQueryTextListener { @@ -61,6 +62,7 @@ class SearchActivity : BaseActivity(), SearchView.OnQuery } title = query supportFragmentManager.commit { + setReorderingAllowed(true) replace(R.id.container, SearchFragment.newInstance(source, q)) } binding.searchView.clearFocus() diff --git a/app/src/main/java/org/koitharu/kotatsu/suggestions/ui/SuggestionsActivity.kt b/app/src/main/java/org/koitharu/kotatsu/suggestions/ui/SuggestionsActivity.kt index 9e7c38849..4e225378d 100644 --- a/app/src/main/java/org/koitharu/kotatsu/suggestions/ui/SuggestionsActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/suggestions/ui/SuggestionsActivity.kt @@ -12,6 +12,7 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.databinding.ActivityContainerBinding import org.koitharu.kotatsu.main.ui.owners.AppBarOwner +import kotlin.text.Typography.dagger @AndroidEntryPoint class SuggestionsActivity : @@ -28,6 +29,7 @@ class SuggestionsActivity : val fm = supportFragmentManager if (fm.findFragmentById(R.id.container) == null) { fm.commit { + setReorderingAllowed(true) val fragment = SuggestionsFragment.newInstance() replace(R.id.container, fragment) }