Skip to content

Commit 9db0d2c

Browse files
committed
navigate to ToDoActivity
1 parent 795b9d6 commit 9db0d2c

File tree

9 files changed

+109
-7
lines changed

9 files changed

+109
-7
lines changed

app/src/main/AndroidManifest.xml

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
<category android:name="android.intent.category.LAUNCHER" />
1717
</intent-filter>
1818
</activity>
19+
20+
<activity android:name=".app.todo.ui.ToDoActivity" />
1921
</application>
2022

2123
</manifest>

app/src/main/java/io/github/mrtry/todolist/app/splash/ui/SplashActivity.kt

-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import io.github.mrtry.todolist.di.Injectable
1414
import io.github.mrtry.todolist.di.component.LoginComponent
1515
import io.github.mrtry.todolist.di.module.ActivityModule
1616
import io.github.mrtry.todolist.misc.ui.binding.Bindable
17-
import kotlinx.coroutines.CoroutineScope
1817
import javax.inject.Inject
1918

2019
class SplashActivity : AppCompatActivity(), Injectable<LoginComponent>, Bindable<ActivitySplashBinding> {
@@ -25,9 +24,6 @@ class SplashActivity : AppCompatActivity(), Injectable<LoginComponent>, Bindable
2524
@Inject
2625
internal lateinit var navigator: SplashNavigator
2726

28-
@Inject
29-
internal lateinit var coroutineScope: CoroutineScope
30-
3127
override val viewBinding: ActivitySplashBinding by lazy {
3228
DataBindingUtil.setContentView<ActivitySplashBinding>(this, R.layout.activity_splash)
3329
}

app/src/main/java/io/github/mrtry/todolist/app/splash/ui/navigator/SplashNavigator.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package io.github.mrtry.todolist.app.splash.ui.navigator
33
import android.app.Activity
44
import com.firebase.ui.auth.AuthUI
55
import io.github.mrtry.todolist.app.splash.ui.result.SplashActivityResult
6+
import io.github.mrtry.todolist.app.todo.ui.ToDoActivity
67
import io.github.mrtry.todolist.di.scope.ActivityScope
78
import io.github.mrtry.todolist.misc.ui.navigator.AbsNavigator
8-
import timber.log.Timber
99
import javax.inject.Inject
1010

1111
@ActivityScope
@@ -14,8 +14,9 @@ class SplashNavigator
1414
private val activity: Activity
1515
) : AbsNavigator(activity) {
1616
fun navigateToToDo() {
17-
// TODO
18-
Timber.d("navigateToToDo() called")
17+
val intent = ToDoActivity.createIntent(activity)
18+
activity.startActivity(intent)
19+
finishCurrentActivity()
1920
}
2021

2122
fun navigateToAuthentication() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.github.mrtry.todolist.app.todo.ui.navigator
2+
3+
import android.app.Activity
4+
import io.github.mrtry.todolist.di.scope.ActivityScope
5+
import io.github.mrtry.todolist.misc.ui.navigator.AbsNavigator
6+
import javax.inject.Inject
7+
8+
@ActivityScope
9+
class ToDoNavigator
10+
@Inject constructor(
11+
private val activity: Activity
12+
) : AbsNavigator(activity) {
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package io.github.mrtry.todolist.app.todo.viewmodel
2+
3+
import io.github.mrtry.todolist.di.scope.ActivityScope
4+
import javax.inject.Inject
5+
6+
@ActivityScope
7+
class ToDoViewModel
8+
@Inject constructor() {}

app/src/main/java/io/github/mrtry/todolist/di/component/AppComponent.kt

+1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ interface AppComponent {
1212
fun inject(application: MainApplication)
1313

1414
fun plusLoginComponent(module: ActivityModule): LoginComponent
15+
fun plusToDoComponent(module: ActivityModule): ToDoComponent
1516
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.github.mrtry.todolist.di.component
2+
3+
import dagger.Subcomponent
4+
import io.github.mrtry.todolist.app.todo.ui.ToDoActivity
5+
import io.github.mrtry.todolist.di.module.ActivityModule
6+
import io.github.mrtry.todolist.di.scope.ActivityScope
7+
8+
@ActivityScope
9+
@Subcomponent(modules = [ActivityModule::class])
10+
interface ToDoComponent : Component {
11+
12+
fun inject(activity: ToDoActivity)
13+
}
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<layout>
3+
4+
<data></data>
5+
6+
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
7+
xmlns:app="http://schemas.android.com/apk/res-auto"
8+
xmlns:tools="http://schemas.android.com/tools"
9+
android:layout_width="match_parent"
10+
android:layout_height="match_parent"
11+
tools:context=".app.todo.ui.ToDoActivity">
12+
13+
<TextView
14+
android:layout_width="wrap_content"
15+
android:layout_height="wrap_content"
16+
android:text="@string/app_name"
17+
app:layout_constraintBottom_toBottomOf="parent"
18+
app:layout_constraintLeft_toLeftOf="parent"
19+
app:layout_constraintRight_toRightOf="parent"
20+
app:layout_constraintTop_toTopOf="parent" />
21+
22+
</androidx.constraintlayout.widget.ConstraintLayout>
23+
</layout>

0 commit comments

Comments
 (0)