-
Notifications
You must be signed in to change notification settings - Fork 17
/
ModoLegacyIntegrationActivity.kt
44 lines (37 loc) · 1.35 KB
/
ModoLegacyIntegrationActivity.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.github.terrakok.modo.sample
import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.ui.Modifier
import androidx.core.view.WindowCompat
import com.github.terrakok.modo.Modo
import com.github.terrakok.modo.RootScreen
import com.github.terrakok.modo.sample.screens.MainScreen
import com.github.terrakok.modo.sample.screens.containers.SampleStack
import com.github.terrakok.modo.stack.StackScreen
class ModoLegacyIntegrationActivity : AppCompatActivity() {
private var rootScreen: RootScreen<StackScreen>? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
rootScreen = Modo.init(savedInstanceState, rootScreen) {
SampleStack(MainScreen(1))
}
setContent {
ActivityContent {
rootScreen?.Content(Modifier.fillMaxSize())
}
}
}
override fun onSaveInstanceState(outState: Bundle) {
Modo.save(outState, rootScreen)
super.onSaveInstanceState(outState)
}
override fun onDestroy() {
super.onDestroy()
if (isFinishing) {
Modo.onRootScreenFinished(rootScreen)
}
}
}