Better implementation for insets and bottom padding
This commit is contained in:
parent
97e37dd7b9
commit
45a3899a0d
29 changed files with 470 additions and 320 deletions
|
@ -398,6 +398,8 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
if (binding.bottomNavigationView.menu.size() == 1) {
|
||||
isInOneTabMode = true
|
||||
binding.bottomNavigationView.isVisible = false
|
||||
} else {
|
||||
isInOneTabMode = false
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -470,7 +472,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
bottomSheetBehavior.peekHeight = heightOfBarWithTabs
|
||||
}
|
||||
libraryViewModel.setFabMargin(this,
|
||||
dip(R.dimen.mini_player_height_expanded))
|
||||
dip(R.dimen.bottom_nav_mini_player_height))
|
||||
} else {
|
||||
logD("Details")
|
||||
if (animate) {
|
||||
|
|
|
@ -46,7 +46,7 @@ class AboutFragment : Fragment(R.layout.fragment_about), View.OnClickListener {
|
|||
|
||||
binding.aboutContent.root.applyInsetter {
|
||||
type(navigationBars = true) {
|
||||
padding()
|
||||
padding(vertical = true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,7 +32,6 @@ import code.name.monkey.retromusic.dialogs.CreatePlaylistDialog
|
|||
import code.name.monkey.retromusic.dialogs.ImportPlaylistDialog
|
||||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.dip
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||
import code.name.monkey.retromusic.interfaces.IScrollHelper
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import code.name.monkey.retromusic.util.ThemedFastScroller.create
|
||||
|
@ -61,6 +60,7 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
|||
mainActivity.supportActionBar?.title = null
|
||||
initLayoutManager()
|
||||
initAdapter()
|
||||
checkForMargins()
|
||||
setUpRecyclerView()
|
||||
setupToolbar()
|
||||
binding.shuffleButton.fitsSystemWindows = PreferenceUtil.isFullScreenMode
|
||||
|
@ -118,7 +118,6 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
|||
adapter = this@AbsRecyclerViewFragment.adapter
|
||||
create(this)
|
||||
}
|
||||
checkForPadding()
|
||||
}
|
||||
|
||||
protected open fun createFastScroller(recyclerView: RecyclerView): FastScroller {
|
||||
|
@ -131,7 +130,6 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
|||
override fun onChanged() {
|
||||
super.onChanged()
|
||||
checkIsEmpty()
|
||||
checkForPadding()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -148,16 +146,12 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
|||
binding.empty.isVisible = adapter!!.itemCount == 0
|
||||
}
|
||||
|
||||
private fun checkForPadding() {
|
||||
val itemCount: Int = adapter?.itemCount ?: 0
|
||||
|
||||
binding.recyclerView.updatePadding(
|
||||
bottom = if (itemCount > 0 && MusicPlayerRemote.playingQueue.isNotEmpty()) {
|
||||
dip(R.dimen.mini_player_height_expanded)
|
||||
} else {
|
||||
dip(R.dimen.bottom_nav_height)
|
||||
private fun checkForMargins() {
|
||||
if (mainActivity.bottomNavigationView.isVisible) {
|
||||
binding.recyclerView.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
bottomMargin = dip(R.dimen.bottom_nav_height)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun initLayoutManager() {
|
||||
|
@ -169,16 +163,6 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
|||
@NonNull
|
||||
protected abstract fun createAdapter(): A
|
||||
|
||||
override fun onQueueChanged() {
|
||||
super.onQueueChanged()
|
||||
checkForPadding()
|
||||
}
|
||||
|
||||
override fun onServiceConnected() {
|
||||
super.onServiceConnected()
|
||||
checkForPadding()
|
||||
}
|
||||
|
||||
protected fun invalidateLayoutManager() {
|
||||
initLayoutManager()
|
||||
binding.recyclerView.layoutManager = layoutManager
|
||||
|
@ -232,6 +216,11 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
|||
return false
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
checkForMargins()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
|
|
|
@ -17,16 +17,14 @@ import android.content.Context
|
|||
import android.media.MediaScannerConnection
|
||||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import android.view.Menu
|
||||
import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.*
|
||||
import android.webkit.MimeTypeMap
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.appcompat.widget.PopupMenu
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.loader.app.LoaderManager
|
||||
import androidx.loader.content.Loader
|
||||
|
@ -45,7 +43,6 @@ import code.name.monkey.retromusic.databinding.FragmentFolderBinding
|
|||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote.openQueue
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote.playingQueue
|
||||
import code.name.monkey.retromusic.helper.menu.SongsMenuHelper
|
||||
import code.name.monkey.retromusic.interfaces.ICabCallback
|
||||
import code.name.monkey.retromusic.interfaces.ICabHolder
|
||||
|
@ -110,6 +107,7 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
|
|||
reenterTransition = MaterialFadeThrough()
|
||||
|
||||
setUpBreadCrumbs()
|
||||
checkForMargins()
|
||||
setUpRecyclerView()
|
||||
setUpAdapter()
|
||||
setUpTitle()
|
||||
|
@ -385,14 +383,9 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
|
|||
return false
|
||||
}
|
||||
|
||||
override fun onQueueChanged() {
|
||||
super.onQueueChanged()
|
||||
checkForPadding()
|
||||
}
|
||||
|
||||
override fun onServiceConnected() {
|
||||
super.onServiceConnected()
|
||||
checkForPadding()
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
checkForMargins()
|
||||
}
|
||||
|
||||
override fun openCab(menuRes: Int, callback: ICabCallback): AttachedCab {
|
||||
|
@ -413,13 +406,11 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
|
|||
return cab as AttachedCab
|
||||
}
|
||||
|
||||
private fun checkForPadding() {
|
||||
val count = adapter?.itemCount ?: 0
|
||||
if (_binding != null) {
|
||||
binding.recyclerView.updatePadding(
|
||||
bottom = if (count > 0 && playingQueue.isNotEmpty()) dip(R.dimen.mini_player_height_expanded)
|
||||
else dip(R.dimen.mini_player_height)
|
||||
)
|
||||
private fun checkForMargins() {
|
||||
if (mainActivity.bottomNavigationView.isVisible) {
|
||||
binding.recyclerView.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
bottomMargin = dip(R.dimen.bottom_nav_height)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -608,7 +599,6 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
|
|||
override fun onChanged() {
|
||||
super.onChanged()
|
||||
checkIsEmpty()
|
||||
checkForPadding()
|
||||
}
|
||||
})
|
||||
binding.recyclerView.adapter = adapter
|
||||
|
|
|
@ -15,17 +15,15 @@
|
|||
package code.name.monkey.retromusic.fragments.home
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.*
|
||||
import android.view.MenuItem.SHOW_AS_ACTION_IF_ROOM
|
||||
import android.view.View
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.core.view.doOnLayout
|
||||
import androidx.core.view.doOnPreDraw
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.navigation.fragment.FragmentNavigatorExtras
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
|
@ -38,6 +36,7 @@ import code.name.monkey.retromusic.databinding.FragmentHomeBinding
|
|||
import code.name.monkey.retromusic.dialogs.CreatePlaylistDialog
|
||||
import code.name.monkey.retromusic.dialogs.ImportPlaylistDialog
|
||||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.dip
|
||||
import code.name.monkey.retromusic.extensions.drawNextToNavbar
|
||||
import code.name.monkey.retromusic.extensions.elevatedAccentColor
|
||||
import code.name.monkey.retromusic.fragments.ReloadType
|
||||
|
@ -72,6 +71,8 @@ class HomeFragment :
|
|||
enterTransition = MaterialFadeThrough().addTarget(binding.contentContainer)
|
||||
reenterTransition = MaterialFadeThrough().addTarget(binding.contentContainer)
|
||||
|
||||
checkForMargins()
|
||||
|
||||
val homeAdapter = HomeAdapter(mainActivity)
|
||||
binding.recyclerView.apply {
|
||||
layoutManager = LinearLayoutManager(mainActivity)
|
||||
|
@ -190,6 +191,14 @@ class HomeFragment :
|
|||
binding.actionShuffle.elevatedAccentColor()
|
||||
}
|
||||
|
||||
private fun checkForMargins() {
|
||||
if (mainActivity.bottomNavigationView.isVisible) {
|
||||
binding.recyclerView.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
bottomMargin = dip(R.dimen.bottom_nav_height)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateMenu(menu: Menu, inflater: MenuInflater) {
|
||||
inflater.inflate(R.menu.menu_main, menu)
|
||||
menu.removeItem(R.id.action_grid_size)
|
||||
|
@ -212,12 +221,14 @@ class HomeFragment :
|
|||
}
|
||||
|
||||
fun setSharedAxisXTransitions() {
|
||||
exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true).addTarget(CoordinatorLayout::class.java)
|
||||
exitTransition =
|
||||
MaterialSharedAxis(MaterialSharedAxis.X, true).addTarget(CoordinatorLayout::class.java)
|
||||
reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false)
|
||||
}
|
||||
|
||||
private fun setSharedAxisYTransitions() {
|
||||
exitTransition = MaterialSharedAxis(MaterialSharedAxis.Y, true).addTarget(CoordinatorLayout::class.java)
|
||||
exitTransition =
|
||||
MaterialSharedAxis(MaterialSharedAxis.Y, true).addTarget(CoordinatorLayout::class.java)
|
||||
reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Y, false)
|
||||
}
|
||||
|
||||
|
@ -301,7 +312,9 @@ class HomeFragment :
|
|||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
checkForMargins()
|
||||
libraryViewModel.forceReload(ReloadType.HomeSections)
|
||||
exitTransition = null
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
|
|
|
@ -29,7 +29,6 @@ import androidx.navigation.fragment.findNavController
|
|||
import androidx.navigation.fragment.navArgs
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
|
||||
import code.name.monkey.retromusic.*
|
||||
import code.name.monkey.retromusic.adapter.album.AlbumAdapter
|
||||
import code.name.monkey.retromusic.adapter.artist.ArtistAdapter
|
||||
|
@ -37,7 +36,6 @@ import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter
|
|||
import code.name.monkey.retromusic.adapter.song.SongAdapter
|
||||
import code.name.monkey.retromusic.databinding.FragmentPlaylistDetailBinding
|
||||
import code.name.monkey.retromusic.db.toSong
|
||||
import code.name.monkey.retromusic.extensions.dipToPix
|
||||
import code.name.monkey.retromusic.extensions.surfaceColor
|
||||
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
|
||||
import code.name.monkey.retromusic.interfaces.IAlbumClickListener
|
||||
|
@ -71,7 +69,8 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de
|
|||
RECENT_ARTISTS,
|
||||
TOP_ALBUMS,
|
||||
RECENT_ALBUMS,
|
||||
FAVOURITES -> {
|
||||
FAVOURITES,
|
||||
-> {
|
||||
enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true)
|
||||
returnTransition = MaterialSharedAxis(MaterialSharedAxis.X, false)
|
||||
}
|
||||
|
@ -103,13 +102,6 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de
|
|||
TOP_PLAYED_PLAYLIST -> topPlayed()
|
||||
}
|
||||
|
||||
binding.recyclerView.adapter?.registerAdapterDataObserver(object : AdapterDataObserver() {
|
||||
override fun onChanged() {
|
||||
super.onChanged()
|
||||
val height = dipToPix(52f)
|
||||
binding.recyclerView.updatePadding(bottom = height.toInt())
|
||||
}
|
||||
})
|
||||
binding.appBarLayout.statusBarForeground =
|
||||
MaterialShapeDrawable.createWithElevationOverlay(requireContext())
|
||||
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) {
|
||||
|
|
|
@ -17,10 +17,8 @@ import code.name.monkey.retromusic.adapter.song.OrderablePlaylistSongAdapter
|
|||
import code.name.monkey.retromusic.databinding.FragmentPlaylistDetailBinding
|
||||
import code.name.monkey.retromusic.db.PlaylistWithSongs
|
||||
import code.name.monkey.retromusic.db.toSongs
|
||||
import code.name.monkey.retromusic.extensions.dip
|
||||
import code.name.monkey.retromusic.extensions.surfaceColor
|
||||
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||
import code.name.monkey.retromusic.helper.menu.PlaylistMenuHelper
|
||||
import code.name.monkey.retromusic.interfaces.ICabCallback
|
||||
import code.name.monkey.retromusic.interfaces.ICabHolder
|
||||
|
@ -129,17 +127,7 @@ class PlaylistDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playli
|
|||
return PlaylistMenuHelper.handleMenuClick(requireActivity(), playlist, item)
|
||||
}
|
||||
|
||||
private fun checkForPadding() {
|
||||
val itemCount: Int = playlistSongAdapter.itemCount
|
||||
if (itemCount > 0 && MusicPlayerRemote.playingQueue.isNotEmpty()) {
|
||||
binding.recyclerView.updatePadding(bottom = dip(R.dimen.mini_player_height))
|
||||
} else {
|
||||
binding.recyclerView.updatePadding(bottom = 0)
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkIsEmpty() {
|
||||
checkForPadding()
|
||||
binding.empty.isVisible = playlistSongAdapter.itemCount == 0
|
||||
binding.emptyText.isVisible = playlistSongAdapter.itemCount == 0
|
||||
}
|
||||
|
|
|
@ -146,14 +146,20 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search),
|
|||
}
|
||||
}
|
||||
|
||||
private fun checkForMargins() {
|
||||
if (mainActivity.bottomNavigationView.isVisible) {
|
||||
binding.recyclerView.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
bottomMargin = dip(R.dimen.bottom_nav_height)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupRecyclerView() {
|
||||
searchAdapter = SearchAdapter(requireActivity(), emptyList())
|
||||
searchAdapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
|
||||
override fun onChanged() {
|
||||
super.onChanged()
|
||||
binding.empty.isVisible = searchAdapter.itemCount < 1
|
||||
val height = dipToPix(52f)
|
||||
binding.recyclerView.updatePadding(bottom = height.toInt())
|
||||
}
|
||||
})
|
||||
binding.recyclerView.apply {
|
||||
|
@ -219,6 +225,11 @@ class SearchFragment : AbsMainActivityFragment(R.layout.fragment_search),
|
|||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
checkForMargins()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
hideKeyboard(view)
|
||||
super.onDestroyView()
|
||||
|
|
|
@ -19,12 +19,14 @@ import android.graphics.drawable.ColorDrawable
|
|||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.core.view.updatePadding
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceManager
|
||||
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.extensions.dip
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.preferences.*
|
||||
import code.name.monkey.retromusic.util.NavigationUtil
|
||||
|
@ -70,9 +72,10 @@ abstract class AbsSettingsFragment : ATEPreferenceFragmentCompat() {
|
|||
listView.overScrollMode = View.OVER_SCROLL_NEVER
|
||||
}
|
||||
|
||||
listView.updatePadding(bottom = dip(R.dimen.mini_player_height))
|
||||
listView.applyInsetter {
|
||||
type(navigationBars = true) {
|
||||
padding()
|
||||
padding(vertical = true)
|
||||
}
|
||||
}
|
||||
invalidateSettings()
|
||||
|
|
|
@ -17,10 +17,7 @@ package code.name.monkey.retromusic.fragments.settings
|
|||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEListPreference
|
||||
import code.name.monkey.retromusic.HOME_ALBUM_GRID_STYLE
|
||||
import code.name.monkey.retromusic.HOME_ARTIST_GRID_STYLE
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.TAB_TEXT_MODE
|
||||
import code.name.monkey.retromusic.*
|
||||
|
||||
class PersonalizeSettingsFragment : AbsSettingsFragment() {
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@ package code.name.monkey.retromusic.util
|
|||
import android.app.Activity
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.core.net.toUri
|
||||
import androidx.fragment.app.Fragment
|
||||
import code.name.monkey.retromusic.BuildConfig
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
|
@ -26,9 +26,9 @@ fun Activity.maybeShowAnnoyingToasts() {
|
|||
showToast("Support us by downloading the original version from Play Store.", Toast.LENGTH_LONG)
|
||||
val packageName = "code.name.monkey.retromusic"
|
||||
try {
|
||||
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName")))
|
||||
startActivity(Intent(Intent.ACTION_VIEW, "market://details?id=$packageName".toUri()))
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$packageName")))
|
||||
startActivity(Intent(Intent.ACTION_VIEW, "https://play.google.com/store/apps/details?id=$packageName".toUri()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,9 @@ import android.content.Context
|
|||
import android.util.AttributeSet
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import code.name.monkey.retromusic.extensions.drawAboveSystemBarsWithPadding
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import code.name.monkey.retromusic.util.RetroUtil
|
||||
import dev.chrisbanes.insetter.applyInsetter
|
||||
|
||||
class InsetsConstraintLayout @JvmOverloads constructor(
|
||||
context: Context,
|
||||
|
@ -12,7 +14,11 @@ class InsetsConstraintLayout @JvmOverloads constructor(
|
|||
defStyleAttr: Int = 0
|
||||
) : ConstraintLayout(context, attrs, defStyleAttr) {
|
||||
init {
|
||||
if (!isInEditMode && !RetroUtil.isLandscape)
|
||||
drawAboveSystemBarsWithPadding()
|
||||
if (!isInEditMode && !PreferenceUtil.isFullScreenMode)
|
||||
applyInsetter {
|
||||
type(navigationBars = true) {
|
||||
padding(vertical = true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
package code.name.monkey.retromusic.views.insets
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.widget.LinearLayout
|
||||
import code.name.monkey.retromusic.extensions.drawAboveSystemBarsWithPadding
|
||||
import code.name.monkey.retromusic.util.RetroUtil
|
||||
|
||||
class InsetsLinearLayout @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) : LinearLayout(context, attrs, defStyleAttr) {
|
||||
init {
|
||||
if (!RetroUtil.isLandscape)
|
||||
drawAboveSystemBarsWithPadding()
|
||||
}
|
||||
}
|
|
@ -2,26 +2,21 @@ package code.name.monkey.retromusic.views.insets
|
|||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.annotation.Px
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import code.name.monkey.retromusic.extensions.applyBottomInsets
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import dev.chrisbanes.insetter.applyInsetter
|
||||
|
||||
class InsetsRecyclerView @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
defStyleAttr: Int = 0,
|
||||
) : RecyclerView(context, attrs, defStyleAttr) {
|
||||
init {
|
||||
applyBottomInsets()
|
||||
}
|
||||
|
||||
fun updatePadding(
|
||||
@Px left: Int = paddingLeft,
|
||||
@Px top: Int = paddingTop,
|
||||
@Px right: Int = paddingRight,
|
||||
@Px bottom: Int = paddingBottom
|
||||
) {
|
||||
setPadding(left, top, right, bottom)
|
||||
applyBottomInsets()
|
||||
if (!isInEditMode && !PreferenceUtil.isFullScreenMode)
|
||||
applyInsetter {
|
||||
type(navigationBars = true) {
|
||||
padding(vertical = true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue