Code Cleanup

This commit is contained in:
Prathamesh More 2022-01-14 23:36:49 +05:30
parent 061c0a8a3c
commit f769740d17
27 changed files with 127 additions and 170 deletions

View file

@ -140,7 +140,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() {
insets
}
if (RetroUtil.isLandscape()) {
binding.slidingPanel.drawAboveSystemBarsWithPadding(true)
binding.slidingPanel.drawAboveSystemBarsWithPadding()
}
chooseFragmentForTheme()
setupSlidingUpPanel()

View file

@ -35,11 +35,10 @@ abstract class AbsThemeActivity : ATHToolbarActivity(), Runnable {
private val handler = Handler()
override fun onCreate(savedInstanceState: Bundle?) {
setDrawBehindSystemBars()
setEdgeToEdgeOrImmersive()
updateTheme()
hideStatusBar()
super.onCreate(savedInstanceState)
setImmersiveFullscreen()
registerSystemUiVisibility()
toggleScreenOn()
setLightNavigationBarAuto()

View file

@ -150,13 +150,13 @@ class SearchAdapter(
imageTextContainer?.isInvisible = true
if (itemViewType == SONG) {
imageTextContainer?.isGone = true
menu?.visibility = View.VISIBLE
menu?.isVisible = true
menu?.setOnClickListener(object : SongMenuHelper.OnClickSongMenu(activity) {
override val song: Song
get() = dataSet[layoutPosition] as Song
})
} else {
menu?.visibility = View.GONE
menu?.isVisible = false
}
when (itemViewType) {
@ -164,7 +164,7 @@ class SearchAdapter(
ARTIST -> setImageTransitionName(activity.getString(R.string.transition_artist_image))
else -> {
val container = itemView.findViewById<View>(R.id.imageContainer)
container?.visibility = View.GONE
container?.isVisible = false
}
}
}

View file

@ -20,6 +20,7 @@ import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.isVisible
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter
@ -78,7 +79,7 @@ class SongFileAdapter(
if (holder.itemViewType == FILE) {
holder.text?.text = getFileText(file)
} else {
holder.text?.visibility = View.GONE
holder.text?.isVisible = false
}
}

View file

@ -20,6 +20,7 @@ import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.core.view.ViewCompat
import androidx.core.view.isVisible
import androidx.fragment.app.FragmentActivity
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter
@ -174,7 +175,7 @@ open class AlbumAdapter(
inner class ViewHolder(itemView: View) : MediaEntryViewHolder(itemView) {
init {
menu?.visibility = View.GONE
menu?.isVisible = false
}
override fun onClick(v: View?) {

View file

@ -21,6 +21,7 @@ import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.core.view.ViewCompat
import androidx.core.view.isVisible
import androidx.fragment.app.FragmentActivity
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter
@ -158,7 +159,7 @@ class ArtistAdapter(
inner class ViewHolder(itemView: View) : MediaEntryViewHolder(itemView) {
init {
menu?.visibility = View.GONE
menu?.isVisible = false
}
override fun onClick(v: View?) {

View file

@ -16,6 +16,7 @@ package code.name.monkey.retromusic.adapter.song
import android.view.MenuItem
import android.view.View
import androidx.core.view.isVisible
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.lifecycleScope
import code.name.monkey.appthemehelper.ThemeStore
@ -129,7 +130,7 @@ class OrderablePlaylistSongAdapter(
}
init {
dragView?.visibility = View.VISIBLE
dragView?.isVisible = true
}
override fun onClick(v: View?) {

View file

@ -16,6 +16,7 @@ package code.name.monkey.retromusic.adapter.song
import android.view.MenuItem
import android.view.View
import androidx.core.view.isVisible
import androidx.fragment.app.FragmentActivity
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.glide.GlideApp
@ -154,7 +155,7 @@ class PlayingQueueAdapter(
}
init {
dragView?.visibility = View.VISIBLE
dragView?.isVisible = true
}
override fun onSongMenuItemClick(item: MenuItem): Boolean {

View file

@ -15,6 +15,7 @@
package code.name.monkey.retromusic.adapter.song
import android.view.View
import androidx.core.view.isVisible
import androidx.fragment.app.FragmentActivity
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.extensions.accentColor
@ -61,7 +62,7 @@ class ShuffleButtonSongAdapter(
super.onBindViewHolder(holder, position - 1)
val landscape = RetroUtil.isLandscape()
if ((PreferenceUtil.songGridSize > 2 && !landscape) || (PreferenceUtil.songGridSizeLand > 5 && landscape)) {
holder.menu?.visibility = View.GONE
holder.menu?.isVisible = false
}
}
}

View file

@ -22,6 +22,14 @@ fun AppCompatActivity.toggleScreenOn() {
}
}
fun AppCompatActivity.setEdgeToEdgeOrImmersive() {
if (PreferenceUtil.isFullScreenMode) {
setImmersiveFullscreen()
} else {
setDrawBehindSystemBars()
}
}
fun AppCompatActivity.setImmersiveFullscreen() {
if (PreferenceUtil.isFullScreenMode) {
WindowInsetsControllerCompat(window, window.decorView).apply {

View file

@ -20,11 +20,11 @@ import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.MarginLayoutParams
import android.view.ViewTreeObserver
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import androidx.annotation.LayoutRes
import androidx.annotation.Px
import androidx.core.animation.doOnEnd
import androidx.core.animation.doOnStart
import androidx.core.view.*
@ -32,11 +32,8 @@ import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.TintHelper
import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.util.RetroUtil
import com.afollestad.materialdialogs.utils.MDUtil.updatePadding
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.imageview.ShapeableImageView
import com.google.android.material.shape.ShapeAppearanceModel
import dev.chrisbanes.insetter.applyInsetter
@Suppress("UNCHECKED_CAST")
fun <T : View> ViewGroup.inflate(@LayoutRes layout: Int): T {
@ -44,19 +41,17 @@ fun <T : View> ViewGroup.inflate(@LayoutRes layout: Int): T {
}
fun View.show() {
visibility = View.VISIBLE
isVisible = true
}
fun View.hide() {
visibility = View.GONE
isVisible = false
}
fun View.hidden() {
visibility = View.INVISIBLE
isInvisible = true
}
fun View.showOrHide(show: Boolean) = if (show) show() else hide()
fun EditText.appHandleColor(): EditText {
if (PreferenceUtil.materialYou) return this
TintHelper.colorHandles(this, ThemeStore.accentColor(context))
@ -126,121 +121,45 @@ fun View.focusAndShowKeyboard() {
}
}
fun ShapeableImageView.setCircleShape(boolean: Boolean) {
addOnLayoutChangeListener { _, _, _, _, _, _, _, _, _ ->
val radius = width / 2f
shapeAppearanceModel = ShapeAppearanceModel().withCornerSize(radius)
}
}
/**
* This will draw our view above the navigation bar instead of behind it by adding margins.
*/
fun View.drawAboveSystemBars(onlyPortrait: Boolean = true) {
if (PreferenceUtil.isFullScreenMode) return
if (onlyPortrait && RetroUtil.isLandscape()) return
// Create a snapshot of the view's margin state
val initialMargin = recordInitialMarginForView(this)
ViewCompat.setOnApplyWindowInsetsListener(
(this)
) { _: View, windowInsets: WindowInsetsCompat ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
// Apply the insets as a margin to the view.
updateLayoutParams<MarginLayoutParams> {
leftMargin = initialMargin.left + insets.left
bottomMargin = initialMargin.bottom + insets.bottom
rightMargin = initialMargin.right + insets.right
applyInsetter {
type(navigationBars = true) {
margin()
}
windowInsets
}
}
/**
* This will draw our view above the navigation bar instead of behind it by adding padding.
*/
fun View.drawAboveSystemBarsWithPadding(consume: Boolean = false) {
fun View.drawAboveSystemBarsWithPadding() {
if (PreferenceUtil.isFullScreenMode) return
val initialPadding = recordInitialPaddingForView(this)
ViewCompat.setOnApplyWindowInsetsListener(
(this)
) { v: View, windowInsets: WindowInsetsCompat ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
v.updatePadding(
left = initialPadding.left + insets.left,
bottom = initialPadding.bottom + insets.bottom,
right = initialPadding.right + insets.right
)
if (consume) WindowInsetsCompat.CONSUMED else windowInsets
}
requestApplyInsetsWhenAttached()
}
fun View.requestApplyInsetsWhenAttached() {
if (isAttachedToWindow) {
// We're already attached, just request as normal
requestApplyInsets()
} else {
// We're not attached to the hierarchy, add a listener to
// request when we are
addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
override fun onViewAttachedToWindow(v: View) {
v.removeOnAttachStateChangeListener(this)
v.requestApplyInsets()
}
override fun onViewDetachedFromWindow(v: View) = Unit
})
applyInsetter {
type(navigationBars = true) {
padding()
}
}
}
fun View.drawNextToNavbar() {
val initialPadding = recordInitialPaddingForView(this)
ViewCompat.setOnApplyWindowInsetsListener(
(this)
) { v: View, windowInsets: WindowInsetsCompat ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
v.updatePadding(
left = initialPadding.left + insets.left,
right = initialPadding.right + insets.right
)
windowInsets
}
requestApplyInsetsWhenAttached()
}
fun View.addBottomInsets() {
// Create a snapshot of the view's margin state
val initialMargin = recordInitialMarginForView(this)
ViewCompat.setOnApplyWindowInsetsListener(
(this)
) { _: View, windowInsets: WindowInsetsCompat ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
// Apply the insets as a margin to the view.
updateLayoutParams<MarginLayoutParams> {
bottomMargin = initialMargin.bottom + insets.bottom
if (PreferenceUtil.isFullScreenMode) return
applyInsetter {
type(statusBars = true, navigationBars = true) {
padding(horizontal = true)
}
windowInsets
}
}
data class InitialMargin(
val left: Int, val top: Int,
val right: Int, val bottom: Int
)
fun recordInitialMarginForView(view: View) = InitialMargin(
view.marginLeft, view.marginTop, view.marginRight, view.marginBottom
)
data class InitialPadding(
val left: Int, val top: Int,
val right: Int, val bottom: Int
)
fun recordInitialPaddingForView(view: View) = InitialPadding(
view.paddingLeft, view.paddingTop, view.paddingRight, view.paddingBottom
)
fun View.updateMargin(
@Px left: Int = marginLeft,
@Px top: Int = marginTop,
@Px right: Int = marginRight,
@Px bottom: Int = marginBottom
) {
(layoutParams as ViewGroup.MarginLayoutParams).updateMargins(left, top, right, bottom)
}

View file

@ -12,6 +12,7 @@ import androidx.core.os.bundleOf
import androidx.core.text.HtmlCompat
import androidx.core.view.ViewCompat
import androidx.core.view.doOnPreDraw
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.FragmentNavigatorExtras
import androidx.navigation.fragment.findNavController
@ -192,19 +193,21 @@ abstract class AbsArtistDetailsFragment : AbsMainActivityFragment(R.layout.fragm
if (lastFmArtist != null && lastFmArtist.artist != null && lastFmArtist.artist.bio != null) {
val bioContent = lastFmArtist.artist.bio.content
if (bioContent != null && bioContent.trim { it <= ' ' }.isNotEmpty()) {
binding.fragmentArtistContent.biographyText.visibility = View.VISIBLE
binding.fragmentArtistContent.biographyTitle.visibility = View.VISIBLE
biography = HtmlCompat.fromHtml(bioContent, HtmlCompat.FROM_HTML_MODE_LEGACY)
binding.fragmentArtistContent.biographyText.text = biography
if (lastFmArtist.artist.stats.listeners.isNotEmpty()) {
binding.fragmentArtistContent.listeners.show()
binding.fragmentArtistContent.listenersLabel.show()
binding.fragmentArtistContent.scrobbles.show()
binding.fragmentArtistContent.scrobblesLabel.show()
binding.fragmentArtistContent.listeners.text =
RetroUtil.formatValue(lastFmArtist.artist.stats.listeners.toFloat())
binding.fragmentArtistContent.scrobbles.text =
RetroUtil.formatValue(lastFmArtist.artist.stats.playcount.toFloat())
binding.fragmentArtistContent.run {
biographyText.isVisible = true
biographyTitle.isVisible = true
biography = HtmlCompat.fromHtml(bioContent, HtmlCompat.FROM_HTML_MODE_LEGACY)
biographyText.text = biography
if (lastFmArtist.artist.stats.listeners.isNotEmpty()) {
listeners.show()
listenersLabel.show()
scrobbles.show()
scrobblesLabel.show()
listeners.text =
RetroUtil.formatValue(lastFmArtist.artist.stats.listeners.toFloat())
scrobbles.text =
RetroUtil.formatValue(lastFmArtist.artist.stats.playcount.toFloat())
}
}
}
}

View file

@ -19,6 +19,7 @@ import android.view.View
import android.view.animation.AccelerateInterpolator
import android.view.animation.DecelerateInterpolator
import androidx.annotation.LayoutRes
import androidx.core.view.isVisible
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.fragments.other.VolumeFragment
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
@ -49,7 +50,7 @@ abstract class AbsPlayerControlsFragment(@LayoutRes layout: Int) : AbsMusicServi
clearAnimation()
scaleX = 0.9f
scaleY = 0.9f
visibility = View.VISIBLE
isVisible = true
pivotX = (view.width / 2).toFloat()
pivotY = (view.height / 2).toFloat()

View file

@ -35,6 +35,7 @@ import androidx.annotation.LayoutRes
import androidx.appcompat.graphics.drawable.DrawableWrapper
import androidx.appcompat.widget.Toolbar
import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import androidx.navigation.findNavController
import androidx.navigation.navOptions
@ -275,7 +276,7 @@ abstract class AbsPlayerFragment(@LayoutRes layout: Int) : AbsMainActivityFragme
if (PreferenceUtil.isFullScreenMode &&
view.findViewById<View>(R.id.status_bar) != null
) {
view.findViewById<View>(R.id.status_bar).visibility = View.GONE
view.findViewById<View>(R.id.status_bar).isVisible = false
}
playerAlbumCoverFragment = whichFragment(R.id.playerAlbumCoverFragment)
playerAlbumCoverFragment?.setCallbacks(this)

View file

@ -155,17 +155,19 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
private fun checkIsEmpty() {
binding.emptyText.setText(emptyMessage)
binding.empty.visibility = if (adapter!!.itemCount == 0) View.VISIBLE else View.GONE
binding.empty.isVisible = adapter!!.itemCount == 0
}
private fun checkForPadding() {
val itemCount: Int = adapter?.itemCount ?: 0
if (itemCount > 0 && MusicPlayerRemote.playingQueue.isNotEmpty()) {
binding.recyclerView.updatePadding(bottom = dip(R.dimen.mini_player_height_expanded))
} else {
binding.recyclerView.updatePadding(bottom = dip(R.dimen.bottom_nav_height))
}
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 initLayoutManager() {

View file

@ -120,7 +120,7 @@ class CoverLyricsFragment : AbsMusicServiceFragment(R.layout.fragment_cover_lyri
if (lyrics !is AbsSynchronizedLyrics) return
val synchronizedLyrics = lyrics as AbsSynchronizedLyrics
lyricsLayout.visibility = View.VISIBLE
lyricsLayout.isVisible = true
lyricsLayout.alpha = 1f
val oldLine = lyricsLine2.text.toString()

View file

@ -285,11 +285,7 @@ class LyricsFragment : AbsMusicServiceFragment(R.layout.fragment_lyrics) {
} catch (e: Exception) {
e.printStackTrace()
}
if (lyrics.isNullOrEmpty()) {
binding.noLyricsFound.visibility = View.VISIBLE
} else {
binding.noLyricsFound.visibility = View.GONE
}
binding.noLyricsFound.isVisible = lyrics.isNullOrEmpty()
binding.normalLyrics.text = lyrics
}

View file

@ -25,6 +25,7 @@ import android.view.animation.DecelerateInterpolator
import android.view.animation.LinearInterpolator
import android.widget.SeekBar
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.appthemehelper.util.TintHelper
@ -261,7 +262,7 @@ class BlurPlaybackControlsFragment :
clearAnimation()
scaleX = 0.9f
scaleY = 0.9f
visibility = View.VISIBLE
isVisible = true
pivotX = (width / 2).toFloat()
pivotY = (height / 2).toFloat()

View file

@ -23,6 +23,7 @@ import android.view.animation.AccelerateInterpolator
import android.view.animation.DecelerateInterpolator
import android.view.animation.LinearInterpolator
import android.widget.SeekBar
import androidx.core.view.isVisible
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper
@ -265,7 +266,7 @@ class FitPlaybackControlsFragment :
clearAnimation()
scaleX = 0.9f
scaleY = 0.9f
visibility = View.VISIBLE
isVisible = true
pivotX = (width / 2).toFloat()
pivotY = (height / 2).toFloat()

View file

@ -23,6 +23,7 @@ import android.view.animation.AccelerateInterpolator
import android.view.animation.DecelerateInterpolator
import android.view.animation.LinearInterpolator
import android.widget.SeekBar
import androidx.core.view.isVisible
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.ColorUtil
@ -251,7 +252,7 @@ class PlainPlaybackControlsFragment :
clearAnimation()
scaleX = 0.9f
scaleY = 0.9f
visibility = View.VISIBLE
isVisible = true
pivotX = (width / 2).toFloat()
pivotY = (height / 2).toFloat()

View file

@ -20,6 +20,7 @@ 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.extensions.updateMargin
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.helper.menu.PlaylistMenuHelper
@ -149,8 +150,8 @@ class PlaylistDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playli
}
private fun showEmptyView() {
binding.empty.visibility = View.VISIBLE
binding.emptyText.visibility = View.VISIBLE
binding.empty.isVisible = true
binding.emptyText.isVisible = true
}
fun songs(songs: List<Song>) {

View file

@ -37,17 +37,20 @@ class MainSettingsFragment : Fragment(), View.OnClickListener {
override fun onClick(view: View) {
when (view.id) {
R.id.generalSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_themeSettingsFragment)
R.id.audioSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_audioSettings)
R.id.personalizeSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_personalizeSettingsFragment)
R.id.imageSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_imageSettingFragment)
R.id.notificationSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_notificationSettingsFragment)
R.id.otherSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_otherSettingsFragment)
R.id.aboutSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_aboutActivity)
R.id.nowPlayingSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_nowPlayingSettingsFragment)
R.id.backup_restore_settings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_backupFragment)
}
findNavController().navigate(
when (view.id) {
R.id.generalSettings -> R.id.action_mainSettingsFragment_to_themeSettingsFragment
R.id.audioSettings -> R.id.action_mainSettingsFragment_to_audioSettings
R.id.personalizeSettings -> R.id.action_mainSettingsFragment_to_personalizeSettingsFragment
R.id.imageSettings -> R.id.action_mainSettingsFragment_to_imageSettingFragment
R.id.notificationSettings -> R.id.action_mainSettingsFragment_to_notificationSettingsFragment
R.id.otherSettings -> R.id.action_mainSettingsFragment_to_otherSettingsFragment
R.id.aboutSettings -> R.id.action_mainSettingsFragment_to_aboutActivity
R.id.nowPlayingSettings -> R.id.action_mainSettingsFragment_to_nowPlayingSettingsFragment
R.id.backup_restore_settings -> R.id.action_mainSettingsFragment_to_backupFragment
else -> R.id.action_mainSettingsFragment_to_themeSettingsFragment
}
)
}
override fun onCreateView(

View file

@ -15,6 +15,7 @@
package code.name.monkey.retromusic.transform
import android.view.View
import androidx.core.view.isVisible
import androidx.viewpager.widget.ViewPager
import kotlin.math.abs
@ -33,22 +34,22 @@ class HingeTransformation : ViewPager.PageTransformer {
// The Page is off-screen but it may still interfere with
// click events of current page if
// it's visibility is not set to Gone
page.visibility = View.GONE
page.isVisible = false
}
position <= 0 -> { // [-1,0]
page.rotation = 90 * abs(position)
page.alpha = 1 - abs(position)
page.visibility = View.VISIBLE
page.isVisible = true
}
position <= 1 -> { // (0,1]
page.rotation = 0f
page.alpha = 1f
page.visibility = View.VISIBLE
page.isVisible = true
}
else -> { // (1,+Infinity]
// This page is way off-screen to the right.
page.alpha = 0f
page.visibility = View.GONE
page.isVisible = false
}
}
}

View file

@ -15,6 +15,8 @@
package code.name.monkey.retromusic.transform
import android.view.View
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
import androidx.viewpager.widget.ViewPager
import kotlin.math.abs
@ -25,9 +27,9 @@ class HorizontalFlipTransformation : ViewPager.PageTransformer {
page.cameraDistance = 20000f
if (position < 0.5 && position > -0.5) {
page.visibility = View.VISIBLE
page.isVisible = true
} else {
page.visibility = View.INVISIBLE
page.isInvisible = true
}

View file

@ -15,6 +15,8 @@
package code.name.monkey.retromusic.transform
import android.view.View
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
import androidx.viewpager.widget.ViewPager
import kotlin.math.abs
@ -25,9 +27,9 @@ class VerticalFlipTransformation : ViewPager.PageTransformer {
page.cameraDistance = 100000f
if (position < 0.5 && position > -0.5) {
page.visibility = View.VISIBLE
page.isVisible = true
} else {
page.visibility = View.INVISIBLE
page.isInvisible = true
}

View file

@ -23,7 +23,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.NavigationViewUtil
import code.name.monkey.retromusic.util.PreferenceUtil
import com.google.android.material.bottomnavigation.BottomNavigationView
import java.lang.RuntimeException
import dev.chrisbanes.insetter.applyInsetter
class BottomNavigationBarTinted @JvmOverloads constructor(
context: Context,
@ -39,6 +39,12 @@ class BottomNavigationBarTinted @JvmOverloads constructor(
setOnApplyWindowInsetsListener { _, insets ->
insets
}
} else {
applyInsetter {
type(navigationBars = true) {
padding()
}
}
}
labelVisibilityMode = PreferenceUtil.tabTitleMode

View file

@ -4,6 +4,7 @@ import android.content.Context
import android.util.AttributeSet
import androidx.annotation.Px
import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.extensions.drawAboveSystemBarsWithPadding
import code.name.monkey.retromusic.util.RetroUtil
@ -24,6 +25,9 @@ class InsetsRecyclerView @JvmOverloads constructor(
@Px bottom: Int = paddingBottom
) {
setPadding(left, top, right, bottom)
// Insetter saves initial state i.e. initial padding/margin of the view,
// we just clear it for now
setTag(R.id.insetter_initial_state, null)
if (!RetroUtil.isLandscape())
drawAboveSystemBarsWithPadding()
}