Skip to content

Commit 17e0ddc

Browse files
committed
NavActions added
1 parent 63fe5b9 commit 17e0ddc

File tree

7 files changed

+21
-12
lines changed

7 files changed

+21
-12
lines changed

app/src/main/java/ru/bis/basearchitectureexample/ui/MainActivity.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package ru.bis.basearchitectureexample.ui
22

33
import androidx.navigation.findNavController
44
import ru.bis.basearchitectureexample.R
5-
import ru.bis.example1.ui.fragments.Example1
5+
import ru.bis.example1.ui.fragments.NavActions
66
import ru.sir.presentation.base.BaseActivity
77
import ru.sir.presentation.navigation.UiAction
88

@@ -11,8 +11,8 @@ class MainActivity : BaseActivity() {
1111
override fun getNavController() = findNavController(R.id.navHostFragment)
1212

1313
override fun navigateTo(action: UiAction) {
14-
when(action.action) {
15-
Example1.ACTION_OPEN_EXAMPLE_2 -> { navigator.navigate(R.id.example2) }
14+
when(action.id) {
15+
NavActions.OPEN_EXAMPLE_2 -> { navigator.navigate(R.id.example2) }
1616
}
1717
}
1818
}

deps/deps_versions.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ ext {
2121
circleImageViewVersion = '3.1.0'
2222
mpAndroidChartVersion = 'v3.1.0'
2323
lifecycleVersion = '1.1.0'
24+
navigationVersion = '2.3.4'
2425

2526
//Lifecycle
2627
lifecycleExtensions = "android.arch.lifecycle:extensions:$lifecycleVersion"
@@ -75,6 +76,10 @@ ext {
7576
//Coagent
7677
coagent = files("$rootDir/libs/coagentproxy.jar")
7778

79+
//Navigation Component
80+
navigationFragment = "androidx.navigation:navigation-fragment-ktx:$navigationVersion"
81+
navigationUi = "androidx.navigation:navigation-ui-ktx:$navigationVersion"
82+
7883
//Other
7984
circularProgressBar = "com.mikhaellopez:circularprogressbar:$circularProgressBarVersion"
8085
speedView = "com.github.anastr:speedviewlib:$speedViewVersion"

entities/presentation/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ dependencies {
5050
implementation 'androidx.appcompat:appcompat:1.2.0'
5151
implementation 'com.google.android.material:material:1.3.0'
5252

53-
api 'androidx.navigation:navigation-fragment-ktx:2.3.4'
54-
api 'androidx.navigation:navigation-ui-ktx:2.3.4'
53+
api navigationFragment
54+
api navigationUi
5555

5656
implementation lifecycleExtensions
5757
annotationProcessor lifecycleCompiler

entities/presentation/src/main/java/ru/sir/presentation/base/BaseFragment.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import javax.inject.Inject
1313
abstract class BaseFragment<T : BaseViewModel, B : ViewBinding>(private val type: Class<out T>) : Fragment() {
1414
protected lateinit var viewModel: T
1515
protected lateinit var binding: B
16+
protected lateinit var navigator: BaseActivity
1617

1718
@Inject
1819
lateinit var viewModelFactory: ViewModelProvider.Factory
@@ -28,6 +29,8 @@ abstract class BaseFragment<T : BaseViewModel, B : ViewBinding>(private val type
2829

2930
binding = initBinding(inflater, container, savedInstanceState)
3031
viewModel.init()
32+
33+
navigator = requireActivity() as BaseActivity
3134
return binding.root
3235
}
3336

entities/presentation/src/main/java/ru/sir/presentation/navigation/UiAction.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ package ru.sir.presentation.navigation
33
import android.os.Bundle
44

55
data class UiAction(
6-
val action: String,
6+
val id: String,
77
val data: Bundle? = null
88
)

features/example1/src/main/java/ru/bis/example1/ui/fragments/Example1.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,13 @@ import android.view.LayoutInflater
55
import android.view.ViewGroup
66
import ru.bis.example1.databinding.FragmentExample1Binding
77
import ru.bis.example1.di.components.Example1Component
8+
import ru.bis.example1.ui.fragments.NavActions.OPEN_EXAMPLE_2
89
import ru.bis.example1.view_models.Example1ViewModel
9-
import ru.sir.presentation.base.BaseActivity
1010
import ru.sir.presentation.base.BaseApplication
1111
import ru.sir.presentation.base.BaseFragment
1212
import ru.sir.presentation.navigation.UiAction
1313

1414
class Example1 : BaseFragment<Example1ViewModel, FragmentExample1Binding>(Example1ViewModel::class.java) {
15-
companion object {
16-
const val ACTION_OPEN_EXAMPLE_2 = "action_open_example_2"
17-
}
18-
1915
override fun inject(app: BaseApplication) {
2016
app.getComponent<Example1Component>().inject(this)
2117
}
@@ -27,7 +23,7 @@ class Example1 : BaseFragment<Example1ViewModel, FragmentExample1Binding>(Exampl
2723

2824
override fun setListeners() {
2925
binding.nextBtn.setOnClickListener {
30-
(requireActivity() as BaseActivity).navigateTo(UiAction(ACTION_OPEN_EXAMPLE_2))
26+
navigator.navigateTo(UiAction(OPEN_EXAMPLE_2))
3127
}
3228
}
3329
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package ru.bis.example1.ui.fragments
2+
3+
object NavActions {
4+
const val OPEN_EXAMPLE_2 = "action_open_example_2"
5+
}

0 commit comments

Comments
 (0)