1
+ package afkt.httpcapture.use.base
2
+
3
+ import android.os.Bundle
4
+ import androidx.activity.enableEdgeToEdge
5
+ import androidx.core.view.ViewCompat
6
+ import androidx.core.view.WindowInsetsCompat
7
+ import androidx.databinding.ViewDataBinding
8
+ import dev.simple.app.BaseAppActivity
9
+ import dev.simple.app.base.ActivityVMType
10
+ import dev.simple.app.base.inter.BindingActivityView
11
+ import dev.simple.app.controller.ui.theme.ActivityUITheme
12
+
13
+ /* *
14
+ * detail: Activity MVVM 基类
15
+ * @author Ttt
16
+ */
17
+ open class BaseActivity <VDB : ViewDataBinding , VM : BaseViewModel > :
18
+ BaseAppActivity <VDB , VM > {
19
+
20
+ // ==========
21
+ // = 构造函数 =
22
+ // ==========
23
+
24
+ constructor (
25
+ bindLayoutId: Int ,
26
+ bindViewModelId: Int = - 1 ,
27
+ vmType: ActivityVMType = ActivityVMType .ACTIVITY ,
28
+ simple_Init: ((Any ) -> Unit )? = null ,
29
+ simple_Start: ((Any ) -> Unit )? = null ,
30
+ simple_PreLoad: ((Any ) -> Unit )? = null ,
31
+ simple_Agile: ((Any ) -> Unit )? = null ,
32
+ simple_UITheme: ((ActivityUITheme ) -> ActivityUITheme )? = null
33
+ ) : super (
34
+ bindLayoutId, bindViewModelId, vmType,
35
+ simple_Init, simple_Start, simple_PreLoad, simple_Agile, simple_UITheme
36
+ )
37
+
38
+ constructor (
39
+ bindLayoutView: BindingActivityView ? ,
40
+ bindViewModelId: Int = - 1 ,
41
+ vmType: ActivityVMType = ActivityVMType .ACTIVITY ,
42
+ simple_Init: ((Any ) -> Unit )? = null ,
43
+ simple_Start: ((Any ) -> Unit )? = null ,
44
+ simple_PreLoad: ((Any ) -> Unit )? = null ,
45
+ simple_Agile: ((Any ) -> Unit )? = null ,
46
+ simple_UITheme: ((ActivityUITheme ) -> ActivityUITheme )? = null
47
+ ) : super (
48
+ bindLayoutView, bindViewModelId, vmType,
49
+ simple_Init, simple_Start, simple_PreLoad, simple_Agile, simple_UITheme
50
+ )
51
+
52
+ // ============
53
+ // = override =
54
+ // ============
55
+
56
+ override fun onCreate (savedInstanceState : Bundle ? ) {
57
+ super .onCreate(savedInstanceState)
58
+ enableEdgeToEdge()
59
+
60
+ // 给 view 设置 insets, 使得 view 不会被 system bars 遮挡
61
+ ViewCompat .setOnApplyWindowInsetsListener(binding.root) { v, insets ->
62
+ val systemBars = insets.getInsets(WindowInsetsCompat .Type .systemBars())
63
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
64
+ insets
65
+ }
66
+ }
67
+ }
0 commit comments