Skip to content

Commit f55c0ea

Browse files
committed
feat: add BaseActivity for edge-to-edge support
This commit introduces `BaseActivity`, an abstract class extending `AppCompatActivity`. It implements edge-to-edge display logic using `WindowCompat` and `ViewCompat.setOnApplyWindowInsetsListener` to handle system bar insets automatically for all extending activities.
1 parent 062e3c6 commit f55c0ea

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.ahmadabuhasan.qrbarcode.utils
2+
3+
import android.os.Bundle
4+
import android.view.View
5+
import androidx.appcompat.app.AppCompatActivity
6+
import androidx.core.view.ViewCompat
7+
import androidx.core.view.WindowCompat
8+
import androidx.core.view.WindowInsetsCompat
9+
10+
abstract class BaseActivity : AppCompatActivity() {
11+
12+
override fun onCreate(savedInstanceState: Bundle?) {
13+
WindowCompat.setDecorFitsSystemWindows(window, false)
14+
applyEdgeToEdge()
15+
super.onCreate(savedInstanceState)
16+
}
17+
18+
private fun applyEdgeToEdge() {
19+
val content = findViewById<View>(android.R.id.content)
20+
21+
ViewCompat.setOnApplyWindowInsetsListener(content) { view, insets ->
22+
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
23+
24+
view.setPadding(
25+
view.paddingLeft,
26+
systemBars.top,
27+
view.paddingRight,
28+
systemBars.bottom
29+
)
30+
31+
insets
32+
}
33+
34+
}
35+
36+
}

0 commit comments

Comments
 (0)