Fixed insets of Settings screens & Folder tab
This commit is contained in:
parent
444677fe21
commit
8e1dc3a600
6 changed files with 38 additions and 36 deletions
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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> {
|
||||||
|
|
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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>
|
Loading…
Add table
Add a link
Reference in a new issue