Fixed Edge-to-Edge

This commit is contained in:
Prathamesh More 2022-01-16 18:13:31 +05:30
parent ea4a54d404
commit 09ad243a14
6 changed files with 63 additions and 14 deletions

View file

@ -1,6 +1,7 @@
package code.name.monkey.retromusic.views
import android.content.Context
import android.content.res.Configuration
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.appcompat.widget.Toolbar
@ -9,6 +10,7 @@ import code.name.monkey.retromusic.databinding.SimpleAppbarLayoutBinding
import code.name.monkey.retromusic.util.PreferenceUtil
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.shape.MaterialShapeDrawable
import dev.chrisbanes.insetter.applyInsetter
class TopAppBarLayout @JvmOverloads constructor(
context: Context,
@ -24,9 +26,20 @@ class TopAppBarLayout @JvmOverloads constructor(
if (mode == AppBarMode.COLLAPSING) {
collapsingAppbarBinding =
CollapsingAppbarLayoutBinding.inflate(LayoutInflater.from(context), this, true)
val isLandscape =
context.resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
if (isLandscape) {
fitsSystemWindows = false
}
} else {
simpleAppbarBinding =
SimpleAppbarLayoutBinding.inflate(LayoutInflater.from(context), this, true)
simpleAppbarBinding?.root?.applyInsetter {
type(navigationBars = true) {
padding(horizontal = true)
}
}
statusBarForeground = MaterialShapeDrawable.createWithElevationOverlay(context)
}
}

View file

@ -4,9 +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
import code.name.monkey.retromusic.extensions.applyBottomInsets
class InsetsRecyclerView @JvmOverloads constructor(
context: Context,
@ -14,8 +12,7 @@ class InsetsRecyclerView @JvmOverloads constructor(
defStyleAttr: Int = 0
) : RecyclerView(context, attrs, defStyleAttr) {
init {
if (!RetroUtil.isLandscape())
drawAboveSystemBarsWithPadding()
applyBottomInsets()
}
fun updatePadding(
@ -25,10 +22,6 @@ 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()
applyBottomInsets()
}
}