From 5d5ec719b73dc29032d5bae009d7f86e71597ede Mon Sep 17 00:00:00 2001 From: XeroOl Date: Wed, 1 Sep 2021 02:59:22 -0500 Subject: [PATCH 1/4] Update MangareadRepository.kt --- .../kotatsu/core/parser/site/MangareadRepository.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt index 06fe7459e..ee69048bb 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt @@ -99,8 +99,8 @@ class MangareadRepository( val root2 = doc.body().selectFirst("div.content-area") ?.selectFirst("div.c-page") ?: throw ParseException("Root2 not found") - val mangaId = doc.getElementsByAttribute("data-postid").firstOrNull() - ?.attr("data-postid")?.toLongOrNull() + val mangaId = doc.getElementsByAttribute("data-post").firstOrNull() + ?.attr("data-post")?.toLongOrNull() ?: throw ParseException("Cannot obtain manga id") val doc2 = loaderContext.httpPost( "https://${getDomain()}/wp-admin/admin-ajax.php", @@ -169,4 +169,4 @@ class MangareadRepository( it.substring(0, pos) to it.substring(pos + 1) }.toMutableMap() } -} \ No newline at end of file +} From d30c7e6e9c3722c3c8629f7ad2485e7c54450875 Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Wed, 25 Aug 2021 13:03:57 +0300 Subject: [PATCH 2/4] Made UI more like Google apps --- .../koitharu/kotatsu/base/ui/BaseActivity.kt | 2 +- .../ui/FavouritesContainerFragment.kt | 16 +++++++++++--- .../kotatsu/list/ui/MangaListFragment.kt | 22 +++++++++++++------ .../koitharu/kotatsu/main/ui/MainActivity.kt | 15 ++++++++----- .../ui/thumbnails/PagesThumbnailsSheet.kt | 12 ++++++++-- .../ui/suggestion/SearchSuggestionFragment.kt | 2 ++ .../kotatsu/tracker/ui/FeedFragment.kt | 2 ++ .../layout-w600dp-land/fragment_details.xml | 1 - .../layout-w600dp-port/fragment_details.xml | 1 - app/src/main/res/layout/activity_main.xml | 15 ++++++++----- .../main/res/layout/fragment_favourites.xml | 3 ++- app/src/main/res/layout/sheet_pages.xml | 8 +++---- app/src/main/res/values/styles.xml | 4 +++- app/src/main/res/values/themes.xml | 2 +- 14 files changed, 71 insertions(+), 34 deletions(-) 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 @@ - - \ No newline at end of file From 27293f1bf8914e20273887ee0698ebea9dce9749 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sun, 5 Sep 2021 16:00:15 +0300 Subject: [PATCH 4/4] Remove some findViewById --- .../favourites/ui/FavouritesContainerFragment.kt | 4 ++-- .../org/koitharu/kotatsu/list/ui/MangaListFragment.kt | 4 ++-- .../java/org/koitharu/kotatsu/main/ui/AppBarOwner.kt | 8 ++++++++ .../java/org/koitharu/kotatsu/main/ui/MainActivity.kt | 10 +++++++--- .../search/ui/suggestion/SearchSuggestionFragment.kt | 6 +++--- .../org/koitharu/kotatsu/tracker/ui/FeedFragment.kt | 5 +++-- 6 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 app/src/main/java/org/koitharu/kotatsu/main/ui/AppBarOwner.kt 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 a76612600..399314311 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 @@ -6,7 +6,6 @@ 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.appbar.AppBarLayout import com.google.android.material.snackbar.Snackbar import com.google.android.material.tabs.TabLayoutMediator import org.koin.androidx.viewmodel.ext.android.viewModel @@ -18,6 +17,7 @@ import org.koitharu.kotatsu.databinding.FragmentFavouritesBinding import org.koitharu.kotatsu.favourites.ui.categories.CategoriesActivity import org.koitharu.kotatsu.favourites.ui.categories.CategoriesEditDelegate import org.koitharu.kotatsu.favourites.ui.categories.FavouritesCategoriesViewModel +import org.koitharu.kotatsu.main.ui.AppBarOwner import org.koitharu.kotatsu.utils.RecycledViewPoolHolder import org.koitharu.kotatsu.utils.ext.getDisplayMessage import org.koitharu.kotatsu.utils.ext.measureHeight @@ -68,7 +68,7 @@ class FavouritesContainerFragment : BaseFragment(), } override fun onWindowInsetsChanged(insets: Insets) { - val headerHeight = requireActivity().findViewById(R.id.appbar).measureHeight() + val headerHeight = (activity as? AppBarOwner)?.appBar?.measureHeight() ?: insets.top binding.root.updatePadding( top = headerHeight - insets.top ) 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 cbb215e00..066da26ec 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 @@ -14,7 +14,6 @@ import androidx.drawerlayout.widget.DrawerLayout import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.swiperefreshlayout.widget.SwipeRefreshLayout -import com.google.android.material.appbar.AppBarLayout import com.google.android.material.snackbar.Snackbar import kotlinx.coroutines.launch import org.koin.android.ext.android.get @@ -37,6 +36,7 @@ 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.AppBarOwner import org.koitharu.kotatsu.main.ui.MainActivity import org.koitharu.kotatsu.utils.RecycledViewPoolHolder import org.koitharu.kotatsu.utils.ext.* @@ -223,7 +223,7 @@ abstract class MangaListFragment : BaseFragment(), } override fun onWindowInsetsChanged(insets: Insets) { - val headerHeight = requireActivity().findViewById(R.id.appbar).measureHeight() + val headerHeight = (activity as? AppBarOwner)?.appBar?.measureHeight() ?: insets.top binding.recyclerViewFilter.updatePadding( top = headerHeight, bottom = insets.bottom diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/AppBarOwner.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/AppBarOwner.kt new file mode 100644 index 000000000..d5a2de5bc --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/AppBarOwner.kt @@ -0,0 +1,8 @@ +package org.koitharu.kotatsu.main.ui + +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/MainActivity.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt index c651f557d..4272a2b5e 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 @@ -20,6 +20,7 @@ import androidx.fragment.app.FragmentTransaction import androidx.fragment.app.commit import androidx.recyclerview.widget.RecyclerView import androidx.swiperefreshlayout.widget.CircularProgressDrawable +import com.google.android.material.appbar.AppBarLayout import com.google.android.material.navigation.NavigationView import com.google.android.material.snackbar.Snackbar import org.koin.android.ext.android.get @@ -50,7 +51,7 @@ import org.koitharu.kotatsu.tracker.work.TrackWorker import org.koitharu.kotatsu.utils.ext.* class MainActivity : BaseActivity(), - NavigationView.OnNavigationItemSelectedListener, + NavigationView.OnNavigationItemSelectedListener, AppBarOwner, View.OnClickListener, View.OnFocusChangeListener, SearchSuggestionListener { private val viewModel by viewModel(mode = LazyThreadSafetyMode.NONE) @@ -62,6 +63,9 @@ class MainActivity : BaseActivity(), private lateinit var drawerToggle: ActionBarDrawerToggle private var searchViewElevation = 0f + override val appBar: AppBarLayout + get() = binding.appbar + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(ActivityMainBinding.inflate(layoutInflater)) @@ -334,7 +338,7 @@ class MainActivity : BaseActivity(), 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.appbar.setBackgroundColor(ContextCompat.getColor(this, R.color.color_on_secondary)) binding.toolbarCard.cardElevation = 0f binding.appbar.elevation = searchViewElevation } @@ -343,7 +347,7 @@ class MainActivity : BaseActivity(), binding.drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED) drawerToggle.isDrawerIndicatorEnabled = true // Returning transparent color - binding.appbar.setBackgroundColor(resources.getColor(android.R.color.transparent)) + binding.appbar.setBackgroundColor(Color.TRANSPARENT) binding.appbar.elevation = 0f binding.toolbarCard.cardElevation = searchViewElevation } 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 3777955dd..f48e9b0da 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 @@ -7,12 +7,11 @@ import android.view.ViewGroup import androidx.core.graphics.Insets import androidx.core.view.updatePadding import androidx.recyclerview.widget.ItemTouchHelper -import com.google.android.material.appbar.AppBarLayout import org.koin.android.ext.android.get import org.koin.androidx.viewmodel.ext.android.sharedViewModel -import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseFragment import org.koitharu.kotatsu.databinding.FragmentSearchSuggestionBinding +import org.koitharu.kotatsu.main.ui.AppBarOwner import org.koitharu.kotatsu.search.ui.suggestion.adapter.SearchSuggestionAdapter import org.koitharu.kotatsu.utils.ext.measureHeight @@ -42,8 +41,9 @@ class SearchSuggestionFragment : BaseFragment() } override fun onWindowInsetsChanged(insets: Insets) { + val headerHeight = (activity as? AppBarOwner)?.appBar?.measureHeight() ?: insets.top binding.root.updatePadding( - top = requireActivity().findViewById(R.id.appbar).measureHeight(), + top = headerHeight, 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 b24c74b31..66413a5f5 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 @@ -5,7 +5,6 @@ import android.view.* import androidx.appcompat.app.AlertDialog import androidx.core.graphics.Insets import androidx.core.view.updatePadding -import com.google.android.material.appbar.AppBarLayout import com.google.android.material.snackbar.Snackbar import org.koin.android.ext.android.get import org.koin.androidx.viewmodel.ext.android.viewModel @@ -17,6 +16,7 @@ import org.koitharu.kotatsu.core.model.Manga import org.koitharu.kotatsu.databinding.FragmentFeedBinding import org.koitharu.kotatsu.details.ui.DetailsActivity import org.koitharu.kotatsu.list.ui.model.ListModel +import org.koitharu.kotatsu.main.ui.AppBarOwner import org.koitharu.kotatsu.tracker.ui.adapter.FeedAdapter import org.koitharu.kotatsu.tracker.work.TrackWorker import org.koitharu.kotatsu.utils.ext.getDisplayMessage @@ -98,8 +98,9 @@ class FeedFragment : BaseFragment(), PaginationScrollListen } override fun onWindowInsetsChanged(insets: Insets) { + val headerHeight = (activity as? AppBarOwner)?.appBar?.measureHeight() ?: insets.top binding.recyclerView.updatePadding( - top = requireActivity().findViewById(R.id.appbar).measureHeight(), + top = headerHeight, left = insets.left, right = insets.right, bottom = insets.bottom