From 8e1dc3a600050ea35458028b9c1b0dca329aca0c Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Fri, 24 Dec 2021 16:21:31 +0530 Subject: [PATCH] Fixed insets of Settings screens & Folder tab --- .../extensions/ActivityThemeExtensions.kt | 6 ++-- .../fragments/base/AbsRecyclerViewFragment.kt | 1 - .../fragments/folder/FoldersFragment.kt | 28 ++++++------------- .../fragments/settings/AbsSettingsFragment.kt | 12 ++++++-- .../settings/MainSettingsFragment.kt | 13 ++++++--- .../res/layout/fragment_main_recycler.xml | 14 +++++----- 6 files changed, 38 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt index f0b7dece9..582b5d438 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt @@ -6,14 +6,16 @@ import android.os.Build import android.view.View import android.view.WindowManager import androidx.appcompat.app.AppCompatActivity -import androidx.core.view.* +import androidx.core.view.WindowCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.WindowInsetsControllerCompat +import androidx.core.view.isGone import androidx.fragment.app.FragmentActivity import code.name.monkey.appthemehelper.ATH import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.util.PreferenceUtil -import code.name.monkey.retromusic.util.RetroUtil fun AppCompatActivity.toggleScreenOn() { if (PreferenceUtil.isScreenOnEnabled) { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt index b0b56da34..06fac152b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsRecyclerViewFragment.kt @@ -22,7 +22,6 @@ import androidx.appcompat.widget.Toolbar import androidx.core.view.doOnPreDraw import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams -import androidx.core.view.updatePadding import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.RecyclerView import code.name.monkey.appthemehelper.common.ATHToolbarActivity diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt index a38586372..fc2bb72f7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/folder/FoldersFragment.kt @@ -39,10 +39,7 @@ import code.name.monkey.retromusic.adapter.Storage import code.name.monkey.retromusic.adapter.StorageAdapter import code.name.monkey.retromusic.adapter.StorageClickListener import code.name.monkey.retromusic.databinding.FragmentFolderBinding -import code.name.monkey.retromusic.extensions.drawNextToNavbar -import code.name.monkey.retromusic.extensions.surfaceColor -import code.name.monkey.retromusic.extensions.textColorPrimary -import code.name.monkey.retromusic.extensions.textColorSecondary +import code.name.monkey.retromusic.extensions.* import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment import code.name.monkey.retromusic.fragments.folder.FoldersFragment.ListPathsAsyncTask.OnPathsListedCallback import code.name.monkey.retromusic.fragments.folder.FoldersFragment.ListSongsAsyncTask.OnSongsListedCallback @@ -108,8 +105,8 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder), mainActivity.addMusicServiceEventListener(libraryViewModel) mainActivity.setSupportActionBar(binding.toolbar) mainActivity.supportActionBar?.title = null - enterTransition = MaterialFadeThrough().addTarget(binding.recyclerView) - reenterTransition = MaterialFadeThrough().addTarget(binding.recyclerView) + enterTransition = MaterialFadeThrough() + reenterTransition = MaterialFadeThrough() setUpBreadCrumbs() setUpRecyclerView() @@ -454,12 +451,10 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder), private fun checkForPadding() { val count = adapter?.itemCount ?: 0 if (_binding != null) { - val params = binding.root.layoutParams as ViewGroup.MarginLayoutParams - params.bottomMargin = if (count > 0 && playingQueue.isNotEmpty()) dip2px( - requireContext(), - 104f - ) else dip2px(requireContext(), 54f) - binding.root.layoutParams = params + binding.recyclerView.updatePadding( + bottom = if (count > 0 && playingQueue.isNotEmpty()) dip(R.dimen.mini_player_height_expanded) + else dip(R.dimen.mini_player_height_expanded) + ) } } @@ -537,15 +532,10 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder), } private fun setUpRecyclerView() { - binding.recyclerView.layoutManager = LinearLayoutManager( - activity - ) - val fastScroller = create( + binding.recyclerView.layoutManager = LinearLayoutManager(activity) + create( binding.recyclerView ) - binding.recyclerView.setOnApplyWindowInsetsListener( - ScrollingViewOnApplyWindowInsetsListener(binding.recyclerView, fastScroller) - ) } private fun toList(file: File): ArrayList { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt index 7a0c4ffe3..2fae21e2b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt @@ -21,6 +21,7 @@ import android.os.Bundle import android.view.View import android.widget.Toast import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.core.view.updatePadding import androidx.preference.ListPreference import androidx.preference.Preference @@ -78,9 +79,14 @@ abstract class AbsSettingsFragment : ATEPreferenceFragmentCompat() { // https://github.com/material-components/material-components-android/issues/1310 ViewCompat.setOnApplyWindowInsetsListener( requireActivity().rootView - ) { _, insets -> - listView.updatePadding(bottom = insets.safeGetBottomInsets()) - insets + ) { _, windowInsets -> + val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) + listView.updatePadding( + left = insets.left, + bottom = insets.bottom, + right = insets.right, + ) + windowInsets } invalidateSettings() } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/MainSettingsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/MainSettingsFragment.kt index 52ef392d0..99738c86c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/MainSettingsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/MainSettingsFragment.kt @@ -20,6 +20,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.core.view.updatePadding import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController @@ -29,7 +30,6 @@ import code.name.monkey.retromusic.R import code.name.monkey.retromusic.databinding.FragmentMainSettingsBinding import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.rootView -import code.name.monkey.retromusic.extensions.safeGetBottomInsets import code.name.monkey.retromusic.extensions.show import code.name.monkey.retromusic.util.NavigationUtil @@ -91,9 +91,14 @@ class MainSettingsFragment : Fragment(), View.OnClickListener { ViewCompat.setOnApplyWindowInsetsListener( requireActivity().rootView - ) { _, insets -> - _binding?.container?.updatePadding(bottom = insets.safeGetBottomInsets()) - insets + ) { _, windowInsets -> + val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) + _binding?.container?.updatePadding( + left = insets.left, + bottom = insets.bottom, + right = insets.right, + ) + windowInsets } } diff --git a/app/src/main/res/layout/fragment_main_recycler.xml b/app/src/main/res/layout/fragment_main_recycler.xml index 9fdbe626f..0a240ed43 100644 --- a/app/src/main/res/layout/fragment_main_recycler.xml +++ b/app/src/main/res/layout/fragment_main_recycler.xml @@ -43,11 +43,11 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" - android:scrollbars="none" - app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" - tools:listitem="@layout/item_list" android:overScrollMode="@integer/overScrollMode" - android:transitionGroup="true" /> + android:scrollbars="none" + android:transitionGroup="true" + app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" + tools:listitem="@layout/item_list" /> + app:srcCompat="@drawable/ic_shuffle" /> \ No newline at end of file