1
+ package io.github.mrtry.todolist.app.todo.ui
2
+
3
+ import android.content.Context
4
+ import android.content.Intent
5
+ import android.os.Bundle
6
+ import androidx.appcompat.app.AppCompatActivity
7
+ import androidx.databinding.DataBindingUtil
8
+ import io.github.mrtry.todolist.MainApplication
9
+ import io.github.mrtry.todolist.R
10
+ import io.github.mrtry.todolist.app.todo.ui.navigator.ToDoNavigator
11
+ import io.github.mrtry.todolist.app.todo.viewmodel.ToDoViewModel
12
+ import io.github.mrtry.todolist.databinding.ActivityToDoBinding
13
+ import io.github.mrtry.todolist.di.Injectable
14
+ import io.github.mrtry.todolist.di.component.ToDoComponent
15
+ import io.github.mrtry.todolist.di.module.ActivityModule
16
+ import io.github.mrtry.todolist.misc.ui.binding.Bindable
17
+ import javax.inject.Inject
18
+
19
+ class ToDoActivity : AppCompatActivity (), Injectable<ToDoComponent>, Bindable<ActivityToDoBinding> {
20
+ companion object {
21
+ fun createIntent (context : Context ): Intent =
22
+ Intent (context, ToDoActivity ::class .java)
23
+ }
24
+
25
+ @Inject
26
+ internal lateinit var viewModel: ToDoViewModel
27
+
28
+ @Inject
29
+ internal lateinit var navigator: ToDoNavigator
30
+
31
+ override val viewBinding: ActivityToDoBinding by lazy {
32
+ DataBindingUtil .setContentView<ActivityToDoBinding >(this , R .layout.activity_to_do)
33
+ }
34
+
35
+ override val component: ToDoComponent by lazy {
36
+ MainApplication .getComponent(this )
37
+ .plusToDoComponent(ActivityModule (this ))
38
+ }
39
+
40
+ override fun onCreate (savedInstanceState : Bundle ? ) {
41
+ super .onCreate(savedInstanceState)
42
+ component.inject(this )
43
+ viewBinding
44
+ }
45
+ }
0 commit comments