Fixed insets of Settings screens & Folder tab

This commit is contained in:
Prathamesh More 2021-12-24 16:21:31 +05:30
parent 444677fe21
commit 8e1dc3a600
6 changed files with 38 additions and 36 deletions

View file

@ -6,14 +6,16 @@ import android.os.Build
import android.view.View import android.view.View
import android.view.WindowManager import android.view.WindowManager
import androidx.appcompat.app.AppCompatActivity 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 androidx.fragment.app.FragmentActivity
import code.name.monkey.appthemehelper.ATH import code.name.monkey.appthemehelper.ATH
import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.appthemehelper.util.VersionUtils
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.util.RetroUtil
fun AppCompatActivity.toggleScreenOn() { fun AppCompatActivity.toggleScreenOn() {
if (PreferenceUtil.isScreenOnEnabled) { if (PreferenceUtil.isScreenOnEnabled) {

View file

@ -22,7 +22,6 @@ import androidx.appcompat.widget.Toolbar
import androidx.core.view.doOnPreDraw import androidx.core.view.doOnPreDraw
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.updateLayoutParams import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.appthemehelper.common.ATHToolbarActivity import code.name.monkey.appthemehelper.common.ATHToolbarActivity

View file

@ -39,10 +39,7 @@ import code.name.monkey.retromusic.adapter.Storage
import code.name.monkey.retromusic.adapter.StorageAdapter import code.name.monkey.retromusic.adapter.StorageAdapter
import code.name.monkey.retromusic.adapter.StorageClickListener import code.name.monkey.retromusic.adapter.StorageClickListener
import code.name.monkey.retromusic.databinding.FragmentFolderBinding import code.name.monkey.retromusic.databinding.FragmentFolderBinding
import code.name.monkey.retromusic.extensions.drawNextToNavbar import code.name.monkey.retromusic.extensions.*
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.fragments.base.AbsMainActivityFragment 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.ListPathsAsyncTask.OnPathsListedCallback
import code.name.monkey.retromusic.fragments.folder.FoldersFragment.ListSongsAsyncTask.OnSongsListedCallback 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.addMusicServiceEventListener(libraryViewModel)
mainActivity.setSupportActionBar(binding.toolbar) mainActivity.setSupportActionBar(binding.toolbar)
mainActivity.supportActionBar?.title = null mainActivity.supportActionBar?.title = null
enterTransition = MaterialFadeThrough().addTarget(binding.recyclerView) enterTransition = MaterialFadeThrough()
reenterTransition = MaterialFadeThrough().addTarget(binding.recyclerView) reenterTransition = MaterialFadeThrough()
setUpBreadCrumbs() setUpBreadCrumbs()
setUpRecyclerView() setUpRecyclerView()
@ -454,12 +451,10 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
private fun checkForPadding() { private fun checkForPadding() {
val count = adapter?.itemCount ?: 0 val count = adapter?.itemCount ?: 0
if (_binding != null) { if (_binding != null) {
val params = binding.root.layoutParams as ViewGroup.MarginLayoutParams binding.recyclerView.updatePadding(
params.bottomMargin = if (count > 0 && playingQueue.isNotEmpty()) dip2px( bottom = if (count > 0 && playingQueue.isNotEmpty()) dip(R.dimen.mini_player_height_expanded)
requireContext(), else dip(R.dimen.mini_player_height_expanded)
104f )
) else dip2px(requireContext(), 54f)
binding.root.layoutParams = params
} }
} }
@ -537,15 +532,10 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
} }
private fun setUpRecyclerView() { private fun setUpRecyclerView() {
binding.recyclerView.layoutManager = LinearLayoutManager( binding.recyclerView.layoutManager = LinearLayoutManager(activity)
activity create(
)
val fastScroller = create(
binding.recyclerView binding.recyclerView
) )
binding.recyclerView.setOnApplyWindowInsetsListener(
ScrollingViewOnApplyWindowInsetsListener(binding.recyclerView, fastScroller)
)
} }
private fun toList(file: File): ArrayList<File> { private fun toList(file: File): ArrayList<File> {

View file

@ -21,6 +21,7 @@ import android.os.Bundle
import android.view.View import android.view.View
import android.widget.Toast import android.widget.Toast
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.Preference import androidx.preference.Preference
@ -78,9 +79,14 @@ abstract class AbsSettingsFragment : ATEPreferenceFragmentCompat() {
// https://github.com/material-components/material-components-android/issues/1310 // https://github.com/material-components/material-components-android/issues/1310
ViewCompat.setOnApplyWindowInsetsListener( ViewCompat.setOnApplyWindowInsetsListener(
requireActivity().rootView requireActivity().rootView
) { _, insets -> ) { _, windowInsets ->
listView.updatePadding(bottom = insets.safeGetBottomInsets()) val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
insets listView.updatePadding(
left = insets.left,
bottom = insets.bottom,
right = insets.right,
)
windowInsets
} }
invalidateSettings() invalidateSettings()
} }

View file

@ -20,6 +20,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController 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.databinding.FragmentMainSettingsBinding
import code.name.monkey.retromusic.extensions.hide import code.name.monkey.retromusic.extensions.hide
import code.name.monkey.retromusic.extensions.rootView 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.extensions.show
import code.name.monkey.retromusic.util.NavigationUtil import code.name.monkey.retromusic.util.NavigationUtil
@ -91,9 +91,14 @@ class MainSettingsFragment : Fragment(), View.OnClickListener {
ViewCompat.setOnApplyWindowInsetsListener( ViewCompat.setOnApplyWindowInsetsListener(
requireActivity().rootView requireActivity().rootView
) { _, insets -> ) { _, windowInsets ->
_binding?.container?.updatePadding(bottom = insets.safeGetBottomInsets()) val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
insets _binding?.container?.updatePadding(
left = insets.left,
bottom = insets.bottom,
right = insets.right,
)
windowInsets
} }
} }

View file

@ -43,11 +43,11 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:clipToPadding="false" 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: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" />
<LinearLayout <LinearLayout
android:id="@android:id/empty" android:id="@android:id/empty"
@ -80,11 +80,11 @@
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/shuffle_button" android:id="@+id/shuffle_button"
style="@style/Widget.Material3.FloatingActionButton.Primary"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom|end" android:layout_gravity="bottom|end"
app:srcCompat="@drawable/ic_shuffle" android:layout_marginHorizontal="16dp"
android:contentDescription="@string/shuffle" android:contentDescription="@string/shuffle"
style="@style/Widget.Material3.FloatingActionButton.Primary" app:srcCompat="@drawable/ic_shuffle" />
android:layout_marginHorizontal="16dp"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>