Skip to content

Commit 42b96cf

Browse files
PiotrBandurskiVAPiotrBandurski
authored andcommitted
feat(mvi) Removed deprecated back fragment
1 parent 0b59180 commit 42b96cf

File tree

23 files changed

+81
-281
lines changed

23 files changed

+81
-281
lines changed

app/build.gradle

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ android {
1414
targetCompatibility JavaVersion.VERSION_1_8
1515
}
1616

17+
kotlinOptions {
18+
jvmTarget = JavaVersion.VERSION_1_8.toString()
19+
}
20+
1721
defaultConfig {
1822
applicationId "pl.valueadd.mvi"
1923
minSdkVersion deps.build_version.min_sdk
@@ -88,5 +92,5 @@ dependencies {
8892
implementation deps.androidx.nav_runtime
8993
implementation deps.androidx.nav_fragment
9094
implementation deps.androidx.nav_ui_ktx
91-
implementation "androidx.lifecycle:lifecycle-common:2.2.0"
95+
implementation deps.lifecycle.commons
9296
}

app/src/main/java/pl/valueadd/mvi/example/presentation/base/AbstractBackFragment.kt

Lines changed: 0 additions & 14 deletions
This file was deleted.

app/src/main/java/pl/valueadd/mvi/example/presentation/base/AbstractBackMviFragment.kt

Lines changed: 0 additions & 32 deletions
This file was deleted.

app/src/main/java/pl/valueadd/mvi/example/presentation/base/AbstractBaseMviFragment.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package pl.valueadd.mvi.example.presentation.base
22

33
import android.os.Bundle
4+
import androidx.appcompat.widget.Toolbar
5+
import androidx.navigation.fragment.findNavController
6+
import androidx.navigation.ui.AppBarConfiguration
7+
import androidx.navigation.ui.setupWithNavController
48
import androidx.viewbinding.ViewBinding
59
import pl.valueadd.mvi.IBaseViewState
610
import pl.valueadd.mvi.example.utility.dependencyinjection.DependencyUtil
@@ -28,4 +32,10 @@ abstract class AbstractBaseMviFragment<V : IBaseView<VS, *>, VS : IBaseViewState
2832
DependencyUtil.inject(requireActivity(), this)
2933
super.onCreate(savedInstanceState)
3034
}
35+
36+
protected fun Toolbar.setupWithNavController(appBarConfiguration: AppBarConfiguration? = null) {
37+
val navController = findNavController()
38+
val configuration = appBarConfiguration ?: AppBarConfiguration(navController.graph)
39+
setupWithNavController(navController, configuration)
40+
}
3141
}

app/src/main/java/pl/valueadd/mvi/example/presentation/main/about/AboutFragment.kt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,19 @@
11
package pl.valueadd.mvi.example.presentation.main.about
22

3-
import androidx.appcompat.widget.Toolbar
3+
import android.os.Bundle
4+
import android.view.View
45
import io.reactivex.Observable
56
import pl.valueadd.mvi.example.R
67
import pl.valueadd.mvi.example.databinding.FragmentAboutBinding
7-
import pl.valueadd.mvi.example.presentation.base.AbstractBackMviFragment
8+
import pl.valueadd.mvi.example.presentation.base.AbstractBaseMviFragment
89
import pl.valueadd.mvi.fragment.base.FragmentBindingInflater
910
import pl.valueadd.mvi.presenter.IBaseView
1011
import javax.inject.Inject
1112

1213
class AboutFragment :
13-
AbstractBackMviFragment<AboutView, AboutViewState, IBaseView.IBaseIntent, AboutPresenter, FragmentAboutBinding>(),
14+
AbstractBaseMviFragment<AboutView, AboutViewState, IBaseView.IBaseIntent, AboutPresenter, FragmentAboutBinding>(),
1415
AboutView {
1516

16-
override val navigationIcon: Int
17-
get() = R.drawable.ic_arrow_back_white_24dp
18-
19-
override val toolbarNavigation: Toolbar
20-
get() = requireBinding.baseAppBarLayout.baseToolbar
21-
2217
override val bindingInflater: FragmentBindingInflater<FragmentAboutBinding>
2318
get() = FragmentAboutBinding::inflate
2419

@@ -31,8 +26,15 @@ class AboutFragment :
3126
@Inject
3227
override lateinit var presenter: AboutPresenter
3328

34-
override val titleRes: Int =
35-
R.string.about_title
29+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
30+
super.onViewCreated(view, savedInstanceState)
31+
setupToolbar()
32+
}
33+
34+
private fun setupToolbar() = with(requireBinding.baseAppBarLayout.baseToolbar) {
35+
setTitle(R.string.about_title)
36+
setupWithNavController()
37+
}
3638

3739
override fun render(state: AboutViewState) {
3840
// no-op
Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,39 @@
11
package pl.valueadd.mvi.example.presentation.main.account
22

3-
import androidx.appcompat.widget.Toolbar
3+
import android.os.Bundle
4+
import android.view.View
45
import io.reactivex.Observable
56
import pl.valueadd.mvi.example.R
67
import pl.valueadd.mvi.example.databinding.FragmentAccountBinding
7-
import pl.valueadd.mvi.example.presentation.base.AbstractBackMviFragment
8+
import pl.valueadd.mvi.example.presentation.base.AbstractBaseMviFragment
89
import pl.valueadd.mvi.example.utility.extension.applyTextChanges
910
import pl.valueadd.mvi.fragment.base.FragmentBindingInflater
1011
import pl.valueadd.mvi.fragment.delegate.destroyview.DestroyViewIntentDelegate
1112
import javax.inject.Inject
1213

1314
class AccountFragment :
14-
AbstractBackMviFragment<AccountView, AccountViewState, AccountView.Intent, AccountPresenter, FragmentAccountBinding>(),
15+
AbstractBaseMviFragment<AccountView, AccountViewState, AccountView.Intent, AccountPresenter, FragmentAccountBinding>(),
1516
AccountView {
1617

1718
@Inject
1819
override lateinit var presenter: AccountPresenter
1920

20-
override val navigationIcon: Int
21-
get() = R.drawable.ic_arrow_back_white_24dp
22-
23-
override val toolbarNavigation: Toolbar
24-
get() = requireBinding.baseAppBarLayout.baseToolbar
25-
2621
override val bindingInflater: FragmentBindingInflater<FragmentAccountBinding>
2722
get() = FragmentAccountBinding::inflate
2823

29-
override val titleRes: Int =
30-
R.string.account_title
31-
3224
private val destroyViewIntent
3325
by DestroyViewIntentDelegate(this, ::provideDestroyViewIntent)
3426

27+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
28+
super.onViewCreated(view, savedInstanceState)
29+
setupToolbar()
30+
}
31+
32+
private fun setupToolbar() = with(requireBinding.baseAppBarLayout.baseToolbar) {
33+
setTitle(R.string.account_title)
34+
setupWithNavController()
35+
}
36+
3537
override fun render(state: AccountViewState): Unit = with(requireBinding) {
3638
firstNameText.applyTextChanges(state.firstName)
3739
surnameText.applyTextChanges(state.surname)
@@ -53,10 +55,4 @@ class AccountFragment :
5355
emailText.text.toString()
5456
)
5557
}
56-
57-
companion object {
58-
59-
fun createInstance(): AccountFragment =
60-
AccountFragment()
61-
}
6258
}

app/src/main/java/pl/valueadd/mvi/example/presentation/main/first/FirstFragment.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,4 @@ class FirstFragment :
6969
.throttleClicks()
7070
.onSuccess(disposables, { navigateToAboutView() })
7171
}
72-
73-
companion object {
74-
fun createInstance(): FirstFragment =
75-
FirstFragment()
76-
}
7772
}

app/src/main/java/pl/valueadd/mvi/example/presentation/main/first/FirstPresenter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import javax.inject.Inject
1010

1111
class FirstPresenter @Inject constructor() : AbstractPresenter<FirstViewState, FirstViewState.PartialState, FirstView.Intent, FirstView>() {
1212
companion object {
13-
private const val PROCESING_DELAY = 5L
13+
private const val PROCESSING_DELAY = 5L
1414
}
1515

1616
override fun mapViewIntentToPartialState(viewIntent: FirstView.Intent): Observable<out FirstViewState.PartialState> =
@@ -46,7 +46,7 @@ class FirstPresenter @Inject constructor() : AbstractPresenter<FirstViewState, F
4646
return Observable
4747
.just(currentState.count)
4848
.doOnNext { Log.d("MVI-FirstPresenter", "processData") }
49-
.delay(PROCESING_DELAY, TimeUnit.SECONDS)
49+
.delay(PROCESSING_DELAY, TimeUnit.SECONDS)
5050
.map { count -> FirstViewState.PartialState.ProcessDataSuccess("$count%") }
5151
}
5252
}

app/src/main/java/pl/valueadd/mvi/example/presentation/main/second/SecondFragment.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import android.view.View
55
import com.mikepenz.fastadapter.IItem
66
import com.mikepenz.fastadapter.adapters.FastItemAdapter
77
import io.reactivex.Observable
8-
import pl.valueadd.mvi.example.R
98
import pl.valueadd.mvi.example.databinding.FragmentSecondBinding
109
import pl.valueadd.mvi.example.presentation.base.AbstractBaseMviFragment
1110
import pl.valueadd.mvi.fragment.base.FragmentBindingInflater
@@ -51,9 +50,4 @@ class SecondFragment : AbstractBaseMviFragment<SecondView, SecondViewState, IBas
5150
private fun setupView(): Unit = with(requireBinding) {
5251
recyclerView.adapter = listAdapter
5352
}
54-
55-
companion object {
56-
fun createInstance(): SecondFragment =
57-
SecondFragment()
58-
}
5953
}

app/src/main/java/pl/valueadd/mvi/example/presentation/main/third/ThirdFragment.kt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import pl.valueadd.mvi.fragment.base.FragmentBindingInflater
1313
import pl.valueadd.mvi.presenter.IBaseView
1414
import javax.inject.Inject
1515

16-
class ThirdFragment : AbstractBaseMviFragment<ThirdView, ThirdViewState, IBaseView.IBaseIntent, ThirdPresenter, FragmentThirdBinding>(),
16+
class ThirdFragment :
17+
AbstractBaseMviFragment<ThirdView, ThirdViewState, IBaseView.IBaseIntent, ThirdPresenter, FragmentThirdBinding>(),
1718
ThirdView {
1819

1920
@Inject
@@ -33,7 +34,7 @@ class ThirdFragment : AbstractBaseMviFragment<ThirdView, ThirdViewState, IBaseVi
3334
}
3435

3536
private fun bindListeners() {
36-
requireBinding.aboutButton
37+
requireBinding.aboutButton
3738
.throttleClicks()
3839
.onSuccess(disposables, { navigateToAboutView() })
3940
}
@@ -47,10 +48,4 @@ class ThirdFragment : AbstractBaseMviFragment<ThirdView, ThirdViewState, IBaseVi
4748
override fun provideInitialViewState(): ThirdViewState {
4849
return restoredViewState ?: ThirdViewState()
4950
}
50-
51-
companion object {
52-
53-
fun createInstance(): ThirdFragment =
54-
ThirdFragment()
55-
}
5651
}

0 commit comments

Comments
 (0)