diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/nav/AppRouter.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/nav/AppRouter.kt index ba152d1c0..0cbefcb63 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/nav/AppRouter.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/nav/AppRouter.kt @@ -353,6 +353,7 @@ class AppRouter private constructor( fun showTagDialog(tag: MangaTag) { buildAlertDialog(contextOrNull() ?: return) { + setIcon(R.drawable.ic_tag) setTitle(tag.title) setItems( arrayOf( @@ -372,6 +373,7 @@ class AppRouter private constructor( fun showAuthorDialog(author: String, source: MangaSource) { buildAlertDialog(contextOrNull() ?: return) { + setIcon(R.drawable.ic_user) setTitle(author) setItems( arrayOf( diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/fastscroll/FastScroller.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/fastscroll/FastScroller.kt index befdc591b..1514fc6a9 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/fastscroll/FastScroller.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/fastscroll/FastScroller.kt @@ -29,6 +29,7 @@ import androidx.core.view.GravityCompat import androidx.core.view.ancestors import androidx.core.view.isGone import androidx.core.view.isVisible +import androidx.core.view.updateLayoutParams import androidx.recyclerview.widget.RecyclerView import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.util.ext.getThemeColor @@ -245,8 +246,8 @@ class FastScroller @JvmOverloads constructor( */ fun setLayoutParams(viewGroup: ViewGroup) { val recyclerViewId = recyclerView?.id ?: NO_ID - val marginTop = resources.getDimensionPixelSize(R.dimen.fastscroll_scrollbar_margin_top) - val marginBottom = resources.getDimensionPixelSize(R.dimen.fastscroll_scrollbar_margin_bottom) + val offsetTop = resources.getDimensionPixelSize(R.dimen.fastscroll_scrollbar_margin_top) + val offsetBottom = resources.getDimensionPixelSize(R.dimen.fastscroll_scrollbar_margin_bottom) require(recyclerViewId != NO_ID) { "RecyclerView must have a view ID" } @@ -263,31 +264,43 @@ class FastScroller @JvmOverloads constructor( applyTo(viewGroup) } - layoutParams = (layoutParams as ConstraintLayout.LayoutParams).apply { + updateLayoutParams { height = 0 - setMargins(offset, marginTop, offset, marginBottom) + marginStart = offset + marginEnd = offset + topMargin = offsetTop + bottomMargin = offsetBottom } } - is CoordinatorLayout -> layoutParams = (layoutParams as CoordinatorLayout.LayoutParams).apply { + is CoordinatorLayout -> updateLayoutParams { height = LayoutParams.MATCH_PARENT anchorGravity = GravityCompat.END anchorId = recyclerViewId - setMargins(offset, marginTop, offset, marginBottom) + marginStart = offset + marginEnd = offset + topMargin = offsetTop + bottomMargin = offsetBottom } - is FrameLayout -> layoutParams = (layoutParams as FrameLayout.LayoutParams).apply { + is FrameLayout -> updateLayoutParams { height = LayoutParams.MATCH_PARENT gravity = GravityCompat.END - setMargins(offset, marginTop, offset, marginBottom) + marginStart = offset + marginEnd = offset + topMargin = offsetTop + bottomMargin = offsetBottom } - is RelativeLayout -> layoutParams = (layoutParams as RelativeLayout.LayoutParams).apply { + is RelativeLayout -> updateLayoutParams { height = 0 addRule(RelativeLayout.ALIGN_TOP, recyclerViewId) addRule(RelativeLayout.ALIGN_BOTTOM, recyclerViewId) addRule(RelativeLayout.ALIGN_END, recyclerViewId) - setMargins(offset, marginTop, offset, marginBottom) + marginStart = offset + marginEnd = offset + topMargin = offsetTop + bottomMargin = offsetBottom } else -> throw IllegalArgumentException("Parent ViewGroup must be a ConstraintLayout, CoordinatorLayout, FrameLayout, or RelativeLayout") diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouriteTabPopupMenuProvider.kt b/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouriteTabPopupMenuProvider.kt index 9fcaa78c9..e05a852d1 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouriteTabPopupMenuProvider.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouriteTabPopupMenuProvider.kt @@ -31,6 +31,7 @@ class FavouriteTabPopupMenuProvider( R.id.action_hide -> viewModel.hide(categoryId) R.id.action_edit -> router.openFavoriteCategoryEdit(categoryId) R.id.action_delete -> confirmDelete() + R.id.action_manage -> router.openFavoriteCategories() else -> return false } return true diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouritesTabConfigurationStrategy.kt b/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouritesTabConfigurationStrategy.kt index 2d3c9e74f..e358d5777 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouritesTabConfigurationStrategy.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/container/FavouritesTabConfigurationStrategy.kt @@ -16,6 +16,8 @@ class FavouritesTabConfigurationStrategy( val item = adapter.getItem(position) tab.text = item.title ?: tab.view.context.getString(R.string.all_favourites) tab.tag = item - PopupMenuMediator(FavouriteTabPopupMenuProvider(tab.view.context, router, viewModel, item.id)).attach(tab.view) + PopupMenuMediator( + FavouriteTabPopupMenuProvider(tab.view.context, router, viewModel, item.id) + ).attach(tab.view) } } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/tracker/ui/feed/FeedFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/tracker/ui/feed/FeedFragment.kt index bf87abea1..92930937c 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/tracker/ui/feed/FeedFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/tracker/ui/feed/FeedFragment.kt @@ -88,12 +88,12 @@ class FeedFragment : override fun onApplyWindowInsets(v: View, insets: WindowInsetsCompat): WindowInsetsCompat { val typeMask = WindowInsetsCompat.Type.systemBars() val barsInsets = insets.getInsets(typeMask) - val basePadding = v.resources.getDimensionPixelOffset(R.dimen.list_spacing_normal) + val paddingVertical = resources.getDimensionPixelSize(R.dimen.list_spacing_normal) viewBinding?.recyclerView?.setPadding( - left = barsInsets.left + basePadding, - top = basePadding, - right = barsInsets.right + basePadding, - bottom = barsInsets.bottom + basePadding, + left = barsInsets.left, + top = paddingVertical, + right = barsInsets.right, + bottom = barsInsets.bottom + paddingVertical, ) return insets.consumeAll(typeMask) } diff --git a/app/src/main/res/layout-w600dp-land/activity_reader.xml b/app/src/main/res/layout-w600dp-land/activity_reader.xml index cf4959497..9cbffc11e 100644 --- a/app/src/main/res/layout-w600dp-land/activity_reader.xml +++ b/app/src/main/res/layout-w600dp-land/activity_reader.xml @@ -73,8 +73,10 @@ android:singleLine="true" android:textAppearance="?attr/textAppearanceBodySmall" android:theme="@style/ThemeOverlay.Material3.Dark" + android:visibility="gone" app:layout_dodgeInsetEdges="bottom" - tools:text="@string/loading_" /> + tools:text="@string/loading_" + tools:visibility="visible" /> + tools:text="@string/loading_" + tools:visibility="visible" /> + app:tabMode="scrollable" + app:tabUnboundedRipple="true" /> + +