From e16b5b04376b3ae1a2e9247f8596a5e536526160 Mon Sep 17 00:00:00 2001 From: tarsin Date: Tue, 11 Jul 2023 16:28:56 +0800 Subject: [PATCH] Cleanup layout --- .../hippo/ehviewer/ui/legacy/SearchLayout.kt | 3 -- .../hippo/ehviewer/ui/scene/FavoritesScene.kt | 38 ++++++------------- .../ehviewer/ui/scene/GalleryListScene.kt | 26 ++----------- .../hippo/ehviewer/ui/scene/SearchBarScene.kt | 5 ++- app/src/main/res/layout/scene_favorites.xml | 19 ++++------ .../main/res/layout/scene_gallery_list.xml | 38 +++++++++---------- 6 files changed, 44 insertions(+), 85 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/legacy/SearchLayout.kt b/app/src/main/java/com/hippo/ehviewer/ui/legacy/SearchLayout.kt index 616901fa0..2537a9161 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/legacy/SearchLayout.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/legacy/SearchLayout.kt @@ -186,7 +186,4 @@ class SearchLayout @JvmOverloads constructor( } } } - - fun setHelper(helper: () -> Unit) { - } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt index 9da1fca09..e4a426629 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt @@ -210,7 +210,7 @@ class FavoritesScene : SearchBarScene() { container: ViewGroup?, savedInstanceState: Bundle?, ): View { - _binding = SceneFavoritesBinding.inflate(inflater, container, false) + _binding = SceneFavoritesBinding.inflate(inflater, container!!) setOnApplySearch { if (!binding.recyclerView.isInCustomChoice) { switchFav(urlBuilder.favCat, it) @@ -220,8 +220,6 @@ class FavoritesScene : SearchBarScene() { binding.fastScroller.setHandlerDrawable(HandlerDrawable().apply { setColor(inflater.context.theme.resolveColor(androidx.appcompat.R.attr.colorPrimary)) }) binding.fabLayout.run { addOnExpandListener { if (!it && binding.recyclerView.isInCustomChoice) binding.recyclerView.outOfCustomChoiceMode() } - (parent as ViewGroup).removeView(this) - container!!.addView(this) ViewCompat.setWindowInsetsAnimationCallback(binding.root, WindowInsetsAnimationHelper(WindowInsetsAnimationCompat.Callback.DISPATCH_MODE_STOP, this)) updateJumpFab() val colorID = theme.resolveColor(com.google.android.material.R.attr.colorOnSurface) @@ -287,29 +285,18 @@ class FavoritesScene : SearchBarScene() { } addAboveSnackView(this) } - binding.run { - val paddingTopSB = resources.getDimensionPixelOffset(R.dimen.gallery_padding_top_search_bar) - fastScroller.run { - setPadding( - paddingLeft, - paddingTop + paddingTopSB, - paddingRight, - paddingBottom, - ) - setOnDragHandlerListener(object : OnDragHandlerListener { - override fun onStartDragHandler() { - setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END) - } - - override fun onEndDragHandler() { - if (!binding.recyclerView.isInCustomChoice) { - setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.END) - } - showSearchBar() - } - }) + binding.fastScroller.setOnDragHandlerListener(object : OnDragHandlerListener { + override fun onStartDragHandler() { + setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END) } - } + + override fun onEndDragHandler() { + if (!binding.recyclerView.isInCustomChoice) { + setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.END) + } + showSearchBar() + } + }) binding.recyclerView.run { mAdapter = GalleryAdapter( this@run, @@ -414,7 +401,6 @@ class FavoritesScene : SearchBarScene() { override fun onDestroyView() { super.onDestroyView() binding.recyclerView.stopScroll() - (binding.fabLayout.parent as ViewGroup).removeView(binding.fabLayout) removeAboveSnackView(binding.fabLayout) mAdapter = null _binding = null diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt index e2985d5c8..db5f57266 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt @@ -354,8 +354,8 @@ class GalleryListScene : SearchBarScene() { container: ViewGroup?, savedInstanceState: Bundle?, ): View { - _binding = SceneGalleryListBinding.inflate(inflater, container, false) - binding.root.addView(ComposeView(inflater.context).apply { setMD3Content { dialogState.Handler() } }) + _binding = SceneGalleryListBinding.inflate(inflater, container!!) + container.addView(ComposeView(inflater.context).apply { setMD3Content { dialogState.Handler() } }) checkForUpdates() requireActivity().onBackPressedDispatcher.addCallback(stateBackPressedCallback) mHideActionFabSlop = ViewConfiguration.get(requireContext()).scaledTouchSlop @@ -368,14 +368,7 @@ class GalleryListScene : SearchBarScene() { mSearchFab.parent as View, ), ) - (binding.fabLayout.parent as ViewGroup).removeView(binding.fabLayout) - container!!.addView(binding.fabLayout) - val paddingTopSB = resources.getDimensionPixelOffset(R.dimen.gallery_padding_top_search_bar) - val paddingBottomFab = resources.getDimensionPixelOffset(R.dimen.gallery_padding_bottom_fab) - mViewTransition = BringOutTransition( - binding.contentLayout, - binding.searchLayout, - ) + mViewTransition = BringOutTransition(binding.contentLayout, binding.searchLayout) binding.fastScroller.setOnDragHandlerListener(object : OnDragHandlerListener { override fun onStartDragHandler() { setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END) @@ -446,23 +439,11 @@ class GalleryListScene : SearchBarScene() { binding.recyclerView.addOnScrollListener(mOnScrollListener) binding.fastScroller.attachToRecyclerView(binding.recyclerView) binding.fastScroller.setHandlerDrawable(HandlerDrawable().apply { setColor(inflater.context.theme.resolveColor(androidx.appcompat.R.attr.colorPrimary)) }) - binding.fastScroller.apply { - setPadding(paddingLeft, paddingTopSB + paddingTop, paddingRight, paddingBottom) - } setOnApplySearch { query: String? -> onApplySearch(query) } setSearchBarHint() setSearchBarSuggestionProvider() - binding.searchLayout.setHelper { showSearchBar() } - binding.searchLayout.run { - setPadding( - paddingLeft, - paddingTop + paddingTopSB, - paddingRight, - paddingBottom + paddingBottomFab, - ) - } binding.fabLayout.setAutoCancel(true) binding.fabLayout.isExpanded = false binding.fabLayout.setHidePrimaryFab(false) @@ -522,7 +503,6 @@ class GalleryListScene : SearchBarScene() { super.onDestroyView() stateBackPressedCallback.remove() binding.recyclerView.stopScroll() - (binding.fabLayout.parent as ViewGroup).removeView(binding.fabLayout) removeAboveSnackView(binding.fabLayout) _binding = null mAdapter = null diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt index 09075dc03..c7a71c626 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt @@ -76,8 +76,9 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene { binding.searchview.addTransitionListener(mSearchViewOnBackPressedCallback) requireActivity().onBackPressedDispatcher.addCallback(mSearchViewOnBackPressedCallback) } - val contentView = onCreateViewWithToolbar(inflater, binding.root, savedInstanceState) - return binding.root.apply { addView(contentView, 0) } + onCreateViewWithToolbar(inflater, binding.root, savedInstanceState) + binding.appbar.bringToFront() + return binding.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { diff --git a/app/src/main/res/layout/scene_favorites.xml b/app/src/main/res/layout/scene_favorites.xml index e234016ad..057b32a71 100644 --- a/app/src/main/res/layout/scene_favorites.xml +++ b/app/src/main/res/layout/scene_favorites.xml @@ -14,13 +14,8 @@ ~ limitations under the License. --> - + + android:paddingTop="16dp" + app:fitsSystemWindowsInsets="top" + app:layout_behavior="@string/searchbar_scrolling_view_behavior"> @@ -70,7 +67,7 @@ android:layout_height="match_parent" android:paddingEnd="@dimen/corner_fab_margin" android:paddingBottom="@dimen/corner_fab_margin" - app:fitsSystemWindowsInsets="top|bottom"> + app:fitsSystemWindowsInsets="bottom"> - + diff --git a/app/src/main/res/layout/scene_gallery_list.xml b/app/src/main/res/layout/scene_gallery_list.xml index b155b0220..863eb7afa 100644 --- a/app/src/main/res/layout/scene_gallery_list.xml +++ b/app/src/main/res/layout/scene_gallery_list.xml @@ -14,19 +14,16 @@ ~ limitations under the License. --> - + + android:clipChildren="false" + android:paddingTop="16dp" + app:layout_behavior="@string/searchbar_scrolling_view_behavior"> - - + + + app:layout_fitsSystemWindowsInsets="bottom"> - +