Skip to content

Commit 8898805

Browse files
committed
Fix edge to edge window insets padding config
1 parent a4e1731 commit 8898805

File tree

4 files changed

+25
-32
lines changed

4 files changed

+25
-32
lines changed

app/src/main/java/com/wstxda/gsl/activity/BaseActivity.kt

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,19 @@ package com.wstxda.gsl.activity
33
import android.graphics.Color
44
import android.os.Build
55
import android.os.Bundle
6+
import android.view.View
67
import androidx.activity.SystemBarStyle
78
import androidx.activity.enableEdgeToEdge
89
import androidx.appcompat.app.AppCompatActivity
910
import androidx.appcompat.widget.Toolbar
10-
import androidx.core.view.WindowCompat
11+
import androidx.core.view.ViewCompat
12+
import androidx.core.view.WindowInsetsCompat
1113

1214
abstract class BaseActivity : AppCompatActivity() {
1315

14-
open val edgeToEdge: Boolean = true
15-
open val enforceNoContrast: Boolean = true
16-
open val decorFitsSystemWindows: Boolean = false
17-
1816
override fun onCreate(savedInstanceState: Bundle?) {
1917
super.onCreate(savedInstanceState)
20-
21-
if (edgeToEdge) {
22-
if (enforceNoContrast && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
23-
enableEdgeToEdge(
24-
navigationBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT)
25-
)
26-
window.isNavigationBarContrastEnforced = false
27-
} else {
28-
enableEdgeToEdge()
29-
}
30-
}
31-
32-
WindowCompat.setDecorFitsSystemWindows(window, decorFitsSystemWindows)
18+
enableEdgeToEdgeNoContrast()
3319
}
3420

3521
protected fun setupToolbar(toolbar: Toolbar, showBackButton: Boolean = true) {
@@ -39,4 +25,23 @@ abstract class BaseActivity : AppCompatActivity() {
3925
toolbar.setNavigationOnClickListener { onBackPressedDispatcher.onBackPressed() }
4026
}
4127
}
28+
29+
private fun enableEdgeToEdgeNoContrast() {
30+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
31+
enableEdgeToEdge(
32+
navigationBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT)
33+
)
34+
window.isNavigationBarContrastEnforced = false
35+
}
36+
}
37+
38+
protected fun applySystemBarInsets(target: View) {
39+
ViewCompat.setOnApplyWindowInsetsListener(target) { view, insets ->
40+
val systemBarsInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
41+
view.setPadding(
42+
systemBarsInsets.left, 0, systemBarsInsets.right, systemBarsInsets.bottom
43+
)
44+
WindowInsetsCompat.CONSUMED
45+
}
46+
}
4247
}

app/src/main/java/com/wstxda/gsl/activity/LibraryActivity.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,10 @@ class LibraryActivity : BaseActivity() {
1616
setContentView(binding.root)
1717

1818
setupToolbar(binding.toolbar)
19-
2019
binding.collapsingToolbar.title = getString(R.string.pref_used_library_summary)
2120

2221
if (savedInstanceState == null) {
23-
val fragment = LibsBuilder().supportFragment()
22+
val fragment = LibsBuilder().withEdgeToEdge(true).supportFragment()
2423
supportFragmentManager.beginTransaction()
2524
.replace(binding.libraryFragmentContainer.id, fragment).commit()
2625
}
Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.wstxda.gsl.activity
22

33
import android.os.Bundle
4-
import androidx.core.view.ViewCompat
5-
import androidx.core.view.WindowInsetsCompat
64
import com.wstxda.gsl.R
75
import com.wstxda.gsl.databinding.ActivitySettingsBinding
86

@@ -13,16 +11,9 @@ class SettingsActivity : BaseActivity() {
1311
override fun onCreate(savedInstanceState: Bundle?) {
1412
super.onCreate(savedInstanceState)
1513
setContentView(binding.root)
14+
applySystemBarInsets(binding.navHostContainer)
1615

1716
setupToolbar(binding.toolbar, showBackButton = false)
1817
binding.collapsingToolbar.title = getString(R.string.app_settings)
19-
20-
ViewCompat.setOnApplyWindowInsetsListener(binding.navHostContainer) { view, insets ->
21-
val systemBarsInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
22-
view.setPadding(
23-
systemBarsInsets.left, 0, systemBarsInsets.right, systemBarsInsets.bottom * 2
24-
)
25-
insets
26-
}
2718
}
2819
}

app/src/main/java/com/wstxda/gsl/activity/ShortcutsActivity.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import android.os.Bundle
44

55
abstract class ShortcutsActivity : BaseActivity() {
66

7-
override val decorFitsSystemWindows = true
8-
97
override fun onCreate(savedInstanceState: Bundle?) {
108
super.onCreate(savedInstanceState)
119
onCreateInternal()

0 commit comments

Comments
 (0)