diff --git a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/BookmarksActivity.kt b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/BookmarksActivity.kt index 50cfa7c96..b15e76657 100644 --- a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/BookmarksActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/BookmarksActivity.kt @@ -3,6 +3,7 @@ package org.koitharu.kotatsu.bookmarks.ui import android.content.Context import android.content.Intent import android.os.Bundle +import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.graphics.Insets import androidx.core.view.updatePadding import androidx.fragment.app.commit @@ -11,16 +12,21 @@ import dagger.hilt.android.AndroidEntryPoint import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.databinding.ActivityContainerBinding -import org.koitharu.kotatsu.main.ui.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.SnackbarOwner @AndroidEntryPoint class BookmarksActivity : BaseActivity(), - AppBarOwner { + AppBarOwner, + SnackbarOwner { override val appBar: AppBarLayout get() = binding.appbar + override val snackbarHost: CoordinatorLayout + get() = binding.coordinator + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(ActivityContainerBinding.inflate(layoutInflater)) diff --git a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/BookmarksFragment.kt b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/BookmarksFragment.kt index b793719e8..870996d83 100644 --- a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/BookmarksFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/BookmarksFragment.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.view.* import androidx.appcompat.view.ActionMode import androidx.core.graphics.Insets +import androidx.core.view.updateLayoutParams import androidx.core.view.updatePadding import androidx.fragment.app.viewModels import coil.ImageLoader @@ -27,7 +28,8 @@ import org.koitharu.kotatsu.databinding.FragmentListSimpleBinding import org.koitharu.kotatsu.details.ui.DetailsActivity import org.koitharu.kotatsu.list.ui.adapter.ListStateHolderListener import org.koitharu.kotatsu.list.ui.model.ListModel -import org.koitharu.kotatsu.main.ui.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.SnackbarOwner import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.reader.ui.ReaderActivity import org.koitharu.kotatsu.utils.ext.getDisplayMessage @@ -140,13 +142,12 @@ class BookmarksFragment : ): AbstractSelectionItemDecoration = BookmarksSelectionDecoration(requireContext()) override fun onWindowInsetsChanged(insets: Insets) { - binding.root.updatePadding( - left = insets.left, - right = insets.right, - ) binding.recyclerView.updatePadding( bottom = insets.bottom, ) + binding.recyclerView.fastScroller.updateLayoutParams { + bottomMargin = insets.bottom + } } private fun onListChanged(list: List) { @@ -164,7 +165,7 @@ class BookmarksFragment : private fun onActionDone(action: ReversibleAction) { val handle = action.handle val length = if (handle == null) Snackbar.LENGTH_SHORT else Snackbar.LENGTH_LONG - val snackbar = Snackbar.make(binding.recyclerView, action.stringResId, length) + val snackbar = Snackbar.make((activity as SnackbarOwner).snackbarHost, action.stringResId, length) if (handle != null) { snackbar.setAction(R.string.undo) { handle.reverseAsync() } } diff --git a/app/src/main/java/org/koitharu/kotatsu/explore/ui/ExploreFragment.kt b/app/src/main/java/org/koitharu/kotatsu/explore/ui/ExploreFragment.kt index e96e0d6a6..bcb83c411 100644 --- a/app/src/main/java/org/koitharu/kotatsu/explore/ui/ExploreFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/explore/ui/ExploreFragment.kt @@ -24,7 +24,7 @@ import org.koitharu.kotatsu.explore.ui.adapter.ExploreListEventListener import org.koitharu.kotatsu.explore.ui.model.ExploreItem import org.koitharu.kotatsu.favourites.ui.categories.FavouriteCategoriesActivity import org.koitharu.kotatsu.history.ui.HistoryActivity -import org.koitharu.kotatsu.main.ui.BottomNavOwner +import org.koitharu.kotatsu.main.ui.owners.BottomNavOwner import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.search.ui.MangaListActivity 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 880aaeec2..fdc8897b2 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 @@ -13,7 +13,7 @@ import dagger.hilt.android.AndroidEntryPoint import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.databinding.ActivityContainerBinding -import org.koitharu.kotatsu.main.ui.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner @AndroidEntryPoint class HistoryActivity : diff --git a/app/src/main/java/org/koitharu/kotatsu/library/ui/LibraryFragment.kt b/app/src/main/java/org/koitharu/kotatsu/library/ui/LibraryFragment.kt index 073abb193..eef0fe765 100644 --- a/app/src/main/java/org/koitharu/kotatsu/library/ui/LibraryFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/library/ui/LibraryFragment.kt @@ -28,7 +28,7 @@ import org.koitharu.kotatsu.library.ui.adapter.LibraryListEventListener import org.koitharu.kotatsu.library.ui.model.LibrarySectionModel import org.koitharu.kotatsu.list.ui.ItemSizeResolver import org.koitharu.kotatsu.list.ui.model.ListModel -import org.koitharu.kotatsu.main.ui.BottomNavOwner +import org.koitharu.kotatsu.main.ui.owners.BottomNavOwner import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.utils.ext.addMenuProvider import org.koitharu.kotatsu.utils.ext.getDisplayMessage diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt index 1386851ec..70013233c 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt @@ -42,8 +42,8 @@ import org.koitharu.kotatsu.list.ui.adapter.MangaListListener import org.koitharu.kotatsu.list.ui.model.ListHeader import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.list.ui.model.MangaItemModel -import org.koitharu.kotatsu.main.ui.AppBarOwner -import org.koitharu.kotatsu.main.ui.BottomNavOwner +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.BottomNavOwner import org.koitharu.kotatsu.main.ui.MainActivity import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.MangaTag diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/ExitCallback.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/ExitCallback.kt index e781577b4..19ccd9e99 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/ExitCallback.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/ExitCallback.kt @@ -15,6 +15,7 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.core.prefs.observeAsFlow +import org.koitharu.kotatsu.main.ui.owners.BottomNavOwner class ExitCallback( private val activity: BaseActivity<*>, 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 9b7b22f91..14e5b75f7 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 @@ -4,7 +4,6 @@ import android.os.Bundle import android.util.SparseIntArray import android.view.MenuItem import android.view.View -import android.view.ViewGroup.MarginLayoutParams import androidx.activity.result.ActivityResultCallback import androidx.activity.viewModels import androidx.appcompat.view.ActionMode @@ -32,6 +31,8 @@ import org.koitharu.kotatsu.base.ui.widgets.SlidingBottomNavigationView import org.koitharu.kotatsu.databinding.ActivityMainBinding import org.koitharu.kotatsu.details.ui.DetailsActivity import org.koitharu.kotatsu.library.ui.LibraryFragment +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.BottomNavOwner import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaTag diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/AppBarOwner.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/owners/AppBarOwner.kt similarity index 70% rename from app/src/main/java/org/koitharu/kotatsu/main/ui/AppBarOwner.kt rename to app/src/main/java/org/koitharu/kotatsu/main/ui/owners/AppBarOwner.kt index d5a2de5bc..42a7960be 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/AppBarOwner.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/owners/AppBarOwner.kt @@ -1,8 +1,8 @@ -package org.koitharu.kotatsu.main.ui +package org.koitharu.kotatsu.main.ui.owners import com.google.android.material.appbar.AppBarLayout interface AppBarOwner { val appBar: AppBarLayout -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/BottomNavOwner.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/owners/BottomNavOwner.kt similarity index 77% rename from app/src/main/java/org/koitharu/kotatsu/main/ui/BottomNavOwner.kt rename to app/src/main/java/org/koitharu/kotatsu/main/ui/owners/BottomNavOwner.kt index 02a9f3624..5174b97f4 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/BottomNavOwner.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/owners/BottomNavOwner.kt @@ -1,4 +1,4 @@ -package org.koitharu.kotatsu.main.ui +package org.koitharu.kotatsu.main.ui.owners import org.koitharu.kotatsu.base.ui.widgets.SlidingBottomNavigationView diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/owners/SnackbarOwner.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/owners/SnackbarOwner.kt new file mode 100644 index 000000000..778010fa7 --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/owners/SnackbarOwner.kt @@ -0,0 +1,8 @@ +package org.koitharu.kotatsu.main.ui.owners + +import androidx.coordinatorlayout.widget.CoordinatorLayout + +interface SnackbarOwner { + + val snackbarHost: CoordinatorLayout +} diff --git a/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt index f653f86f6..9148a373b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt @@ -14,7 +14,7 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.list.ListSelectionController import org.koitharu.kotatsu.list.ui.MangaListFragment import org.koitharu.kotatsu.list.ui.filter.FilterBottomSheet -import org.koitharu.kotatsu.main.ui.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.search.ui.SearchActivity import org.koitharu.kotatsu.settings.SettingsActivity 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 eb6d12469..b3eca260d 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 @@ -13,7 +13,7 @@ import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.core.model.parcelable.ParcelableMangaTags import org.koitharu.kotatsu.databinding.ActivityContainerBinding import org.koitharu.kotatsu.local.ui.LocalListFragment -import org.koitharu.kotatsu.main.ui.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaTag import org.koitharu.kotatsu.remotelist.ui.RemoteListFragment diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/SettingsActivity.kt b/app/src/main/java/org/koitharu/kotatsu/settings/SettingsActivity.kt index e1894cf4f..d79a93bf8 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/SettingsActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/SettingsActivity.kt @@ -22,7 +22,7 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.base.ui.util.RecyclerViewOwner import org.koitharu.kotatsu.databinding.ActivitySettingsBinding -import org.koitharu.kotatsu.main.ui.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.scrobbling.shikimori.ui.ShikimoriSettingsFragment import org.koitharu.kotatsu.settings.sources.SourcesSettingsFragment diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesSettingsFragment.kt index 007db7a79..816d9d31b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesSettingsFragment.kt @@ -16,7 +16,7 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseFragment import org.koitharu.kotatsu.base.ui.util.RecyclerViewOwner import org.koitharu.kotatsu.databinding.FragmentSettingsSourcesBinding -import org.koitharu.kotatsu.main.ui.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner import org.koitharu.kotatsu.settings.SettingsActivity import org.koitharu.kotatsu.settings.SettingsHeadersFragment import org.koitharu.kotatsu.settings.SourceSettingsFragment 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 c78c37734..877ced0fd 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 @@ -13,7 +13,7 @@ import dagger.hilt.android.AndroidEntryPoint import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.databinding.ActivityContainerBinding -import org.koitharu.kotatsu.main.ui.AppBarOwner +import org.koitharu.kotatsu.main.ui.owners.AppBarOwner @AndroidEntryPoint class SuggestionsActivity : diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt index f3f18d76d..c55eb11ab 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt @@ -20,7 +20,7 @@ import org.koitharu.kotatsu.details.ui.DetailsActivity import org.koitharu.kotatsu.list.ui.adapter.MangaListListener import org.koitharu.kotatsu.list.ui.model.ListHeader import org.koitharu.kotatsu.list.ui.model.ListModel -import org.koitharu.kotatsu.main.ui.BottomNavOwner +import org.koitharu.kotatsu.main.ui.owners.BottomNavOwner import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.MangaTag import org.koitharu.kotatsu.tracker.ui.adapter.FeedAdapter