From d1fd31701d49b017ee557ac54b7be88ebdcc4f64 Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Wed, 25 Aug 2021 21:17:23 +0300 Subject: [PATCH] Use measured height instead of magic numbers --- .../kotatsu/favourites/ui/FavouritesContainerFragment.kt | 9 +++++++-- .../org/koitharu/kotatsu/list/ui/MangaListFragment.kt | 3 ++- .../java/org/koitharu/kotatsu/main/ui/MainActivity.kt | 2 +- .../search/ui/suggestion/SearchSuggestionFragment.kt | 6 ++++-- .../java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt | 6 +++--- app/src/main/res/layout/fragment_favourites.xml | 3 +-- app/src/main/res/values-v23/themes.xml | 8 -------- 7 files changed, 18 insertions(+), 19 deletions(-) delete mode 100644 app/src/main/res/values-v23/themes.xml 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 74cd62bd5..a76612600 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,6 +6,7 @@ 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 @@ -19,7 +20,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.measureHeight import org.koitharu.kotatsu.utils.ext.showPopupMenu import java.util.* @@ -67,8 +68,12 @@ class FavouritesContainerFragment : BaseFragment(), } override fun onWindowInsetsChanged(insets: Insets) { + val headerHeight = requireActivity().findViewById(R.id.appbar).measureHeight() + binding.root.updatePadding( + top = headerHeight - insets.top + ) binding.pager.updatePadding( - top = -(resources.resolveDp(56) + insets.top) + top = -headerHeight ) binding.tabs.apply { updatePadding( 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 38ff90348..cbb215e00 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,6 +14,7 @@ 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 @@ -222,7 +223,7 @@ abstract class MangaListFragment : BaseFragment(), } override fun onWindowInsetsChanged(insets: Insets) { - val headerHeight = insets.top + resources.resolveDp(64) + val headerHeight = requireActivity().findViewById(R.id.appbar).measureHeight() binding.recyclerViewFilter.updatePadding( top = headerHeight, bottom = insets.bottom 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 33bebc478..c651f557d 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 @@ -212,7 +212,7 @@ class MainActivity : BaseActivity(), rightMargin = insets.right + topMargin } binding.container.updateLayoutParams { - topMargin = -(resources.resolveDp(66) + insets.top) + topMargin = -(binding.appbar.measureHeight()) } } 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 380bc4668..3777955dd 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,14 @@ 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.search.ui.suggestion.adapter.SearchSuggestionAdapter -import org.koitharu.kotatsu.utils.ext.resolveDp +import org.koitharu.kotatsu.utils.ext.measureHeight class SearchSuggestionFragment : BaseFragment(), SearchSuggestionItemCallback.SuggestionItemListener { @@ -41,7 +43,7 @@ class SearchSuggestionFragment : BaseFragment() override fun onWindowInsetsChanged(insets: Insets) { binding.root.updatePadding( - top = resources.resolveDp(64) + insets.top, + top = requireActivity().findViewById(R.id.appbar).measureHeight(), 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 5ccfe0418..b24c74b31 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,6 +5,7 @@ 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 @@ -12,7 +13,6 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseFragment import org.koitharu.kotatsu.base.ui.list.OnListItemClickListener import org.koitharu.kotatsu.base.ui.list.PaginationScrollListener -import org.koitharu.kotatsu.base.ui.list.decor.SpacingItemDecoration import org.koitharu.kotatsu.core.model.Manga import org.koitharu.kotatsu.databinding.FragmentFeedBinding import org.koitharu.kotatsu.details.ui.DetailsActivity @@ -20,7 +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.ext.measureHeight import org.koitharu.kotatsu.utils.progress.Progress class FeedFragment : BaseFragment(), PaginationScrollListener.Callback, @@ -99,7 +99,7 @@ class FeedFragment : BaseFragment(), PaginationScrollListen override fun onWindowInsetsChanged(insets: Insets) { binding.recyclerView.updatePadding( - top = resources.resolveDp(64) + insets.top, + top = requireActivity().findViewById(R.id.appbar).measureHeight(), left = insets.left, right = insets.right, bottom = insets.bottom diff --git a/app/src/main/res/layout/fragment_favourites.xml b/app/src/main/res/layout/fragment_favourites.xml index d3e6eb00d..47b8c515d 100644 --- a/app/src/main/res/layout/fragment_favourites.xml +++ b/app/src/main/res/layout/fragment_favourites.xml @@ -4,8 +4,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical" - android:paddingTop="64dp"> + android:orientation="vertical"> - - - - - \ No newline at end of file