From 9f21f5900fb128cff6270c6a2b8d0c7a288b273f Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Fri, 22 Jul 2022 23:52:22 +0300 Subject: [PATCH] Collapsing toolbar layout (?) --- .../kotatsu/list/ui/MangaListFragment.kt | 1 + .../remotelist/ui/RemoteListFragment.kt | 4 +- .../kotatsu/search/ui/MangaListActivity.kt | 11 ++++- .../kotatsu/search/ui/SearchActivity.kt | 17 +++---- .../res/layout-w600dp/activity_container.xml | 2 +- .../main/res/layout/activity_categories.xml | 4 +- .../main/res/layout/activity_container.xml | 45 ++++++++++++------- .../main/res/layout/activity_downloads.xml | 4 +- app/src/main/res/layout/activity_search.xml | 13 +++--- app/src/main/res/layout/activity_settings.xml | 4 +- 10 files changed, 61 insertions(+), 44 deletions(-) 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 5ee304e37..9dcce6ba6 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 @@ -311,6 +311,7 @@ abstract class MangaListFragment : } override fun onFastScrollStart(fastScroller: FastScroller) { + (activity as? AppBarOwner)?.appBar?.setExpanded(false, true) binding.swipeRefreshLayout.isEnabled = false } diff --git a/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt index 670abd225..23218082d 100644 --- a/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt @@ -13,6 +13,7 @@ import org.koin.core.parameter.parametersOf import org.koitharu.kotatsu.R import org.koitharu.kotatsu.list.ui.MangaListFragment import org.koitharu.kotatsu.list.ui.filter.FilterBottomSheet +import org.koitharu.kotatsu.main.ui.AppBarOwner import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.search.ui.SearchActivity import org.koitharu.kotatsu.settings.SettingsActivity @@ -91,6 +92,7 @@ class RemoteListFragment : MangaListFragment() { override fun onQueryTextChange(newText: String?): Boolean = false override fun onMenuItemActionExpand(item: MenuItem?): Boolean { + (activity as? AppBarOwner)?.appBar?.setExpanded(false, true) return true } @@ -109,4 +111,4 @@ class RemoteListFragment : MangaListFragment() { putSerializable(ARG_SOURCE, provider) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/MangaListActivity.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/MangaListActivity.kt index daa0e9f5f..cab89753f 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/ui/MangaListActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/MangaListActivity.kt @@ -7,6 +7,7 @@ import androidx.core.graphics.Insets import androidx.core.view.updatePadding import androidx.fragment.app.Fragment import androidx.fragment.app.commit +import com.google.android.material.appbar.AppBarLayout import org.koin.androidx.viewmodel.ext.android.getViewModel import org.koin.core.parameter.parametersOf import org.koitharu.kotatsu.R @@ -14,12 +15,18 @@ import org.koitharu.kotatsu.base.ui.BaseActivity import org.koitharu.kotatsu.core.model.parcelable.ParcelableMangaTags import org.koitharu.kotatsu.databinding.ActivityContainerBinding import org.koitharu.kotatsu.local.ui.LocalListFragment +import org.koitharu.kotatsu.main.ui.AppBarOwner import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.model.MangaTag import org.koitharu.kotatsu.remotelist.ui.RemoteListFragment import org.koitharu.kotatsu.remotelist.ui.RemoteListViewModel -class MangaListActivity : BaseActivity() { +class MangaListActivity : + BaseActivity(), + AppBarOwner { + + override val appBar: AppBarLayout + get() = binding.appbar override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -81,4 +88,4 @@ class MangaListActivity : BaseActivity() { fun newIntent(context: Context, source: MangaSource) = Intent(context, MangaListActivity::class.java) .putExtra(EXTRA_SOURCE, source) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchActivity.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchActivity.kt index ea5551701..857edd40f 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/SearchActivity.kt @@ -45,17 +45,12 @@ class SearchActivity : BaseActivity(), SearchView.OnQuery } override fun onWindowInsetsChanged(insets: Insets) { - with(binding.toolbar) { - updatePadding( - left = insets.left, - right = insets.right - ) - updateLayoutParams { - topMargin = insets.top - } - } + binding.toolbar.updatePadding( + left = insets.left, + right = insets.right, + ) binding.container.updatePadding( - bottom = insets.bottom + bottom = insets.bottom, ) } @@ -85,4 +80,4 @@ class SearchActivity : BaseActivity(), SearchView.OnQuery .putExtra(EXTRA_SOURCE, source) .putExtra(EXTRA_QUERY, query) } -} \ No newline at end of file +} diff --git a/app/src/main/res/layout-w600dp/activity_container.xml b/app/src/main/res/layout-w600dp/activity_container.xml index e5183b8e8..ed5643060 100644 --- a/app/src/main/res/layout-w600dp/activity_container.xml +++ b/app/src/main/res/layout-w600dp/activity_container.xml @@ -17,7 +17,7 @@ style="?attr/collapsingToolbarLayoutLargeStyle" android:layout_width="match_parent" android:layout_height="?attr/collapsingToolbarLayoutLargeSize" - app:layout_scrollFlags="scroll|exitUntilCollapsed" + app:layout_scrollFlags="scroll|exitUntilCollapsed|snap" app:toolbarId="@id/toolbar"> diff --git a/app/src/main/res/layout/activity_container.xml b/app/src/main/res/layout/activity_container.xml index 7d470c867..ee29b4dce 100644 --- a/app/src/main/res/layout/activity_container.xml +++ b/app/src/main/res/layout/activity_container.xml @@ -1,29 +1,40 @@ - + + + + + + + + + + - - - - - - - + diff --git a/app/src/main/res/layout/activity_downloads.xml b/app/src/main/res/layout/activity_downloads.xml index e3f24f2cb..9661f7c38 100644 --- a/app/src/main/res/layout/activity_downloads.xml +++ b/app/src/main/res/layout/activity_downloads.xml @@ -17,7 +17,7 @@ style="?attr/collapsingToolbarLayoutLargeStyle" android:layout_width="match_parent" android:layout_height="?attr/collapsingToolbarLayoutLargeSize" - app:layout_scrollFlags="scroll|exitUntilCollapsed" + app:layout_scrollFlags="scroll|exitUntilCollapsed|snap" app:toolbarId="@id/toolbar"> - \ No newline at end of file + diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml index ae319c8bb..7325cc62c 100644 --- a/app/src/main/res/layout/activity_search.xml +++ b/app/src/main/res/layout/activity_search.xml @@ -1,20 +1,21 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true"> + app:layout_scrollFlags="scroll|enterAlways|snap"> - + - \ No newline at end of file + diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index bc7def9e7..aee18b1e6 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -16,7 +16,7 @@ style="?attr/collapsingToolbarLayoutLargeStyle" android:layout_width="match_parent" android:layout_height="?attr/collapsingToolbarLayoutLargeSize" - app:layout_scrollFlags="scroll|exitUntilCollapsed" + app:layout_scrollFlags="scroll|exitUntilCollapsed|snap" app:toolbarId="@id/toolbar"> - \ No newline at end of file +