diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt index d4182e8f5..8fbaa7ad4 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseActivity.kt @@ -64,7 +64,7 @@ abstract class BaseActivity : AppCompatActivity(), OnApplyWindo ?.layoutParams as? AppBarLayout.LayoutParams if (toolbarParams != null) { if (get().isToolbarHideWhenScrolling) { - toolbarParams.scrollFlags = SCROLL_FLAG_SCROLL or SCROLL_FLAG_ENTER_ALWAYS + toolbarParams.scrollFlags = SCROLL_FLAG_SCROLL or SCROLL_FLAG_ENTER_ALWAYS or SCROLL_FLAG_SNAP } else { toolbarParams.scrollFlags = SCROLL_FLAG_NO_SCROLL } diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt index 43ac54837..74cd62bd5 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/FavouritesContainerFragment.kt @@ -3,6 +3,7 @@ package org.koitharu.kotatsu.favourites.ui import android.os.Bundle import android.view.* import androidx.core.graphics.Insets +import androidx.core.view.updateLayoutParams import androidx.core.view.updatePadding import androidx.recyclerview.widget.RecyclerView import com.google.android.material.snackbar.Snackbar @@ -18,6 +19,7 @@ import org.koitharu.kotatsu.favourites.ui.categories.CategoriesEditDelegate import org.koitharu.kotatsu.favourites.ui.categories.FavouritesCategoriesViewModel import org.koitharu.kotatsu.utils.RecycledViewPoolHolder import org.koitharu.kotatsu.utils.ext.getDisplayMessage +import org.koitharu.kotatsu.utils.ext.resolveDp import org.koitharu.kotatsu.utils.ext.showPopupMenu import java.util.* @@ -65,10 +67,18 @@ class FavouritesContainerFragment : BaseFragment(), } override fun onWindowInsetsChanged(insets: Insets) { - binding.tabs.updatePadding( - left = insets.left, - right = insets.right + binding.pager.updatePadding( + top = -(resources.resolveDp(56) + insets.top) ) + binding.tabs.apply { + updatePadding( + left = insets.left, + right = insets.right + ) + updateLayoutParams { + topMargin = insets.top + } + } } private fun onCategoriesChanged(categories: List) { 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 d75a627df..38ff90348 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 @@ -36,11 +36,9 @@ import org.koitharu.kotatsu.list.ui.adapter.MangaListAdapter import org.koitharu.kotatsu.list.ui.filter.FilterAdapter import org.koitharu.kotatsu.list.ui.filter.OnFilterChangedListener import org.koitharu.kotatsu.list.ui.model.ListModel +import org.koitharu.kotatsu.main.ui.MainActivity import org.koitharu.kotatsu.utils.RecycledViewPoolHolder -import org.koitharu.kotatsu.utils.ext.clearItemDecorations -import org.koitharu.kotatsu.utils.ext.getDisplayMessage -import org.koitharu.kotatsu.utils.ext.toggleDrawer -import org.koitharu.kotatsu.utils.ext.viewLifecycleScope +import org.koitharu.kotatsu.utils.ext.* abstract class MangaListFragment : BaseFragment(), PaginationScrollListener.Callback, OnListItemClickListener, OnFilterChangedListener, @@ -224,16 +222,26 @@ abstract class MangaListFragment : BaseFragment(), } override fun onWindowInsetsChanged(insets: Insets) { - binding.recyclerView.updatePadding( - bottom = insets.bottom - ) + val headerHeight = insets.top + resources.resolveDp(64) binding.recyclerViewFilter.updatePadding( + top = headerHeight, bottom = insets.bottom ) binding.root.updatePadding( left = insets.left, right = insets.right ) + if (activity is MainActivity) { + binding.recyclerView.updatePadding( + top = headerHeight, + bottom = insets.bottom + ) + binding.swipeRefreshLayout.setProgressViewOffset( + true, + headerHeight + resources.resolveDp(-72), + headerHeight + resources.resolveDp(10) + ) + } } private fun onGridScaleChanged(scale: Float) { 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 95437d333..33bebc478 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 @@ -47,10 +47,7 @@ import org.koitharu.kotatsu.settings.SettingsActivity import org.koitharu.kotatsu.settings.onboard.OnboardDialogFragment import org.koitharu.kotatsu.tracker.ui.FeedFragment import org.koitharu.kotatsu.tracker.work.TrackWorker -import org.koitharu.kotatsu.utils.ext.getDisplayMessage -import org.koitharu.kotatsu.utils.ext.hideKeyboard -import org.koitharu.kotatsu.utils.ext.navigationItemBackground -import org.koitharu.kotatsu.utils.ext.resolveDp +import org.koitharu.kotatsu.utils.ext.* class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedListener, @@ -91,7 +88,8 @@ class MainActivity : BaseActivity(), } with(binding.navigationView) { - val menuView = findViewById(com.google.android.material.R.id.design_navigation_view) + val menuView = + findViewById(com.google.android.material.R.id.design_navigation_view) ViewCompat.setOnApplyWindowInsetsListener(navHeaderBinding.root) { v, insets -> val systemWindowInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.updatePadding(top = systemWindowInsets.top) @@ -213,6 +211,9 @@ class MainActivity : BaseActivity(), leftMargin = insets.left + topMargin rightMargin = insets.right + topMargin } + binding.container.updateLayoutParams { + topMargin = -(resources.resolveDp(66) + insets.top) + } } override fun onFocusChange(v: View?, hasFocus: Boolean) { @@ -332,6 +333,8 @@ class MainActivity : BaseActivity(), private fun onSearchOpened() { binding.drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) drawerToggle.isDrawerIndicatorEnabled = false + // Avoiding shadows on the sides if the color is transparent, so we make the AppBarLayout white/dark + binding.appbar.setBackgroundColor(resources.getColor(R.color.color_on_secondary)) binding.toolbarCard.cardElevation = 0f binding.appbar.elevation = searchViewElevation } @@ -339,6 +342,8 @@ class MainActivity : BaseActivity(), private fun onSearchClosed() { binding.drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED) drawerToggle.isDrawerIndicatorEnabled = true + // Returning transparent color + binding.appbar.setBackgroundColor(resources.getColor(android.R.color.transparent)) binding.appbar.elevation = 0f binding.toolbarCard.cardElevation = searchViewElevation } diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsSheet.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsSheet.kt index e8a194fe4..0a2f4f2cb 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsSheet.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/thumbnails/PagesThumbnailsSheet.kt @@ -59,7 +59,13 @@ class PagesThumbnailsSheet : BaseBottomSheet(), binding.toolbar.title = title binding.toolbar.setNavigationOnClickListener { dismiss() } binding.toolbar.subtitle = null - binding.toolbar.navigationIcon = null + + if (!resources.getBoolean(R.bool.is_tablet)) { + binding.toolbar.navigationIcon = null + } else { + binding.toolbar.subtitle = + resources.getQuantityString(R.plurals.pages, thumbnails.size, thumbnails.size) + } val initialTopPosition = binding.recyclerView.top @@ -98,7 +104,9 @@ class PagesThumbnailsSheet : BaseBottomSheet(), if (newState == BottomSheetBehavior.STATE_EXPANDED) { binding.toolbar.setNavigationIcon(R.drawable.ic_cross) binding.toolbar.subtitle = - resources.getQuantityString(R.plurals.pages, thumbnails.size, thumbnails.size) + resources.getQuantityString(R.plurals.pages, + thumbnails.size, + thumbnails.size) } else { binding.toolbar.navigationIcon = null binding.toolbar.subtitle = null diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/SearchSuggestionFragment.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/SearchSuggestionFragment.kt index e053df0fc..380bc4668 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/SearchSuggestionFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/SearchSuggestionFragment.kt @@ -12,6 +12,7 @@ import org.koin.androidx.viewmodel.ext.android.sharedViewModel import org.koitharu.kotatsu.base.ui.BaseFragment import org.koitharu.kotatsu.databinding.FragmentSearchSuggestionBinding import org.koitharu.kotatsu.search.ui.suggestion.adapter.SearchSuggestionAdapter +import org.koitharu.kotatsu.utils.ext.resolveDp class SearchSuggestionFragment : BaseFragment(), SearchSuggestionItemCallback.SuggestionItemListener { @@ -40,6 +41,7 @@ class SearchSuggestionFragment : BaseFragment() override fun onWindowInsetsChanged(insets: Insets) { binding.root.updatePadding( + top = resources.resolveDp(64) + insets.top, left = insets.left, right = insets.right, bottom = insets.bottom, 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 99fd2bcd1..5ccfe0418 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,6 +20,7 @@ import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.tracker.ui.adapter.FeedAdapter import org.koitharu.kotatsu.tracker.work.TrackWorker import org.koitharu.kotatsu.utils.ext.getDisplayMessage +import org.koitharu.kotatsu.utils.ext.resolveDp import org.koitharu.kotatsu.utils.progress.Progress class FeedFragment : BaseFragment(), PaginationScrollListener.Callback, @@ -98,6 +99,7 @@ class FeedFragment : BaseFragment(), PaginationScrollListen override fun onWindowInsetsChanged(insets: Insets) { binding.recyclerView.updatePadding( + top = resources.resolveDp(64) + insets.top, left = insets.left, right = insets.right, bottom = insets.bottom diff --git a/app/src/main/res/layout-w600dp-land/fragment_details.xml b/app/src/main/res/layout-w600dp-land/fragment_details.xml index 30484f1a8..f1b1f770c 100644 --- a/app/src/main/res/layout-w600dp-land/fragment_details.xml +++ b/app/src/main/res/layout-w600dp-land/fragment_details.xml @@ -265,7 +265,6 @@ + + @@ -45,6 +52,7 @@ @@ -60,12 +69,6 @@ - - + android:orientation="vertical" + android:paddingTop="64dp"> - - @@ -28,7 +27,6 @@ android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="?actionBarSize" android:clipToPadding="false" android:padding="@dimen/grid_spacing" android:scrollbars="vertical" @@ -36,4 +34,4 @@ app:spanCount="3" tools:listitem="@layout/item_page_thumb" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index b53cfab6e..285d771f8 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -6,7 +6,7 @@