1
+ package com.techyourchance.coroutines
2
+
3
+ import android.os.Bundle
4
+ import android.view.View
5
+ import android.widget.ImageButton
6
+ import android.widget.TextView
7
+ import androidx.appcompat.app.AppCompatActivity
8
+ import com.techyourchance.coroutines.common.ScreensNavigator
9
+ import com.techyourchance.coroutines.common.ToolbarDelegate
10
+ import com.techyourchance.coroutines.common.dependencyinjection.ActivityCompositionRoot
11
+
12
+ class MainActivity : AppCompatActivity (), ToolbarDelegate {
13
+
14
+ private lateinit var screensNavigator: ScreensNavigator
15
+ private lateinit var btnBack: ImageButton
16
+ private lateinit var txtScreenTitle: TextView
17
+
18
+ val compositionRoot by lazy {
19
+ ActivityCompositionRoot (this ,(application as MyApplication ).applicationCompositionRoot)
20
+ }
21
+
22
+ override fun onCreate (savedInstanceState : Bundle ? ) {
23
+ super .onCreate(savedInstanceState)
24
+ setContentView(R .layout.activity_main)
25
+
26
+ screensNavigator = compositionRoot.screensNavigator
27
+ screensNavigator.init (savedInstanceState)
28
+
29
+ btnBack = findViewById(R .id.btn_back)
30
+ btnBack.setOnClickListener { screensNavigator.navigateUp() }
31
+
32
+ txtScreenTitle = findViewById(R .id.txt_screen_title)
33
+ }
34
+
35
+ override fun onSaveInstanceState (outState : Bundle ) {
36
+ super .onSaveInstanceState(outState)
37
+ screensNavigator.onSaveInstanceState(outState)
38
+ }
39
+
40
+ override fun onBackPressed () {
41
+ if (! screensNavigator.navigateBack()) {
42
+ super .onBackPressed()
43
+ }
44
+ }
45
+
46
+ override fun setScreenTitle (screenTitle : String ) {
47
+ txtScreenTitle.text = screenTitle
48
+ }
49
+
50
+ override fun showUpButton () {
51
+ btnBack.visibility = View .VISIBLE
52
+ }
53
+
54
+ override fun hideUpButton () {
55
+ btnBack.visibility = View .INVISIBLE
56
+ }
57
+ }
0 commit comments