Skip to content

Commit c1e5b5c

Browse files
authored
Update deps and using flowWithLifecycle from ktx (#11)
1 parent 2419ff9 commit c1e5b5c

File tree

14 files changed

+61
-103
lines changed

14 files changed

+61
-103
lines changed

.idea/kotlinc.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations.xml

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

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ dependencies {
5252
implementation(featureMain)
5353
implementation(featureAdd)
5454

55-
implementation(deps.jetbrains.coroutinesAndroid)
55+
implementation(deps.coroutines.android)
5656
implementation(deps.koin.android)
5757

5858
testImplementation(deps.test.junit)

build.gradle.kts

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2+
13
// Top-level build file where you can add configuration options common to all sub-projects/modules.
24

35
buildscript {
4-
val kotlinVersion by extra("1.4.0-rc")
56
repositories {
67
google()
7-
jcenter()
8-
maven(url = "https://dl.bintray.com/kotlin/kotlin-eap")
8+
mavenCentral()
99
gradlePluginPortal()
1010
}
1111
dependencies {
12-
classpath("com.android.tools.build:gradle:4.0.1")
12+
classpath("com.android.tools.build:gradle:4.0.2")
1313
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
14-
classpath("com.diffplug.spotless:spotless-plugin-gradle:5.3.0")
14+
classpath("com.diffplug.spotless:spotless-plugin-gradle:5.10.0")
1515
}
1616
}
1717

@@ -61,19 +61,20 @@ subprojects {
6161
}
6262

6363
allprojects {
64-
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
64+
tasks.withType<KotlinCompile> {
6565
kotlinOptions {
66-
jvmTarget = JavaVersion.VERSION_1_8.toString()
67-
sourceCompatibility = JavaVersion.VERSION_1_8.toString()
68-
targetCompatibility = JavaVersion.VERSION_1_8.toString()
66+
useIR = true
67+
68+
val version = JavaVersion.VERSION_1_8.toString()
69+
jvmTarget = version
70+
sourceCompatibility = version
71+
targetCompatibility = version
6972
}
7073
}
7174

7275
repositories {
7376
google()
74-
jcenter()
7577
mavenCentral()
76-
maven(url = "https://dl.bintray.com/kotlin/kotlin-eap")
7778
}
7879
}
7980

buildSrc/src/main/kotlin/deps.kt

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import org.gradle.kotlin.dsl.project
55
import org.gradle.plugin.use.PluginDependenciesSpec
66
import org.gradle.plugin.use.PluginDependencySpec
77

8-
const val ktlintVersion = "0.38.1"
9-
const val kotlinVersion = "1.4.10"
8+
const val ktlintVersion = "0.41.0"
9+
const val kotlinVersion = "1.5.0-M1"
1010

1111
object appConfig {
1212
const val applicationId = "com.hoc.flowmvi"
@@ -22,16 +22,16 @@ object appConfig {
2222

2323
object deps {
2424
object androidx {
25-
const val appCompat = "androidx.appcompat:appcompat:1.3.0-alpha02"
26-
const val coreKtx = "androidx.core:core-ktx:1.5.0-alpha02"
27-
const val constraintLayout = "androidx.constraintlayout:constraintlayout:2.0.1"
28-
const val recyclerView = "androidx.recyclerview:recyclerview:1.2.0-alpha05"
25+
const val appCompat = "androidx.appcompat:appcompat:1.3.0-rc01"
26+
const val coreKtx = "androidx.core:core-ktx:1.6.0-alpha01"
27+
const val constraintLayout = "androidx.constraintlayout:constraintlayout:2.1.0-beta01"
28+
const val recyclerView = "androidx.recyclerview:recyclerview:1.2.0-rc01"
2929
const val swipeRefreshLayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01"
30-
const val material = "com.google.android.material:material:1.3.0-alpha02"
30+
const val material = "com.google.android.material:material:1.4.0-alpha01"
3131
}
3232

3333
object lifecycle {
34-
private const val version = "2.3.0-beta01"
34+
private const val version = "2.4.0-alpha01"
3535

3636
const val viewModelKtx = "androidx.lifecycle:lifecycle-viewmodel-ktx:$version" // viewModelScope
3737
const val runtimeKtx = "androidx.lifecycle:lifecycle-runtime-ktx:$version" // lifecycleScope
@@ -41,26 +41,25 @@ object deps {
4141
object squareup {
4242
const val retrofit = "com.squareup.retrofit2:retrofit:2.9.0"
4343
const val converterMoshi = "com.squareup.retrofit2:converter-moshi:2.9.0"
44-
const val loggingInterceptor = "com.squareup.okhttp3:logging-interceptor:4.8.1"
45-
const val moshiKotlin = "com.squareup.moshi:moshi-kotlin:1.10.0"
44+
const val loggingInterceptor = "com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2"
45+
const val moshiKotlin = "com.squareup.moshi:moshi-kotlin:1.11.0"
4646
}
4747

48-
object jetbrains {
49-
private const val version = "1.4.0"
48+
object coroutines {
49+
private const val version = "1.4.3"
5050

51-
const val coroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version"
52-
const val coroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version"
51+
const val core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version"
52+
const val android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version"
5353
}
5454

5555
object koin {
56-
private const val version = "2.2.2"
56+
private const val version = "3.0.1-beta-2"
5757

58-
const val androidXViewModel = "org.koin:koin-androidx-viewmodel:$version"
59-
const val core = "org.koin:koin-core:$version"
60-
const val android = "org.koin:koin-android:$version"
58+
const val core = "io.insert-koin:koin-core:$version"
59+
const val android = "io.insert-koin:koin-android:$version"
6160
}
6261

63-
const val coil = "io.coil-kt:coil:1.0.0"
62+
const val coil = "io.coil-kt:coil:1.1.1"
6463

6564
object test {
6665
const val junit = "junit:junit:4.13"

core/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ android {
3434
}
3535

3636
dependencies {
37-
implementation(deps.jetbrains.coroutinesCore)
38-
implementation(deps.jetbrains.coroutinesAndroid)
37+
implementation(deps.coroutines.core)
38+
implementation(deps.coroutines.android)
3939

4040
implementation(deps.androidx.coreKtx)
4141
implementation(deps.androidx.swipeRefreshLayout)

core/src/main/java/com/hoc/flowmvi/core/Flow+LaunchIn.kt

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

data/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ dependencies {
3737
implementation(core)
3838
implementation(domain)
3939

40-
implementation(deps.jetbrains.coroutinesCore)
40+
implementation(deps.coroutines.core)
4141

4242
implementation(deps.squareup.retrofit)
4343
implementation(deps.squareup.moshiKotlin)

domain/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ plugins {
33
}
44

55
dependencies {
6-
implementation(deps.jetbrains.coroutinesCore)
6+
implementation(deps.coroutines.core)
77
implementation(deps.koin.core)
88
}

feature-add/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,6 @@ dependencies {
4848
implementation(deps.androidx.constraintLayout)
4949
implementation(deps.androidx.material)
5050

51-
implementation(deps.jetbrains.coroutinesCore)
52-
implementation(deps.koin.androidXViewModel)
51+
implementation(deps.coroutines.core)
52+
implementation(deps.koin.android)
5353
}

feature-add/src/main/java/com/hoc/flowmvi/ui/add/AddActivity.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ import android.util.Log
77
import android.view.MenuItem
88
import androidx.appcompat.app.AppCompatActivity
99
import androidx.core.view.isInvisible
10+
import androidx.lifecycle.Lifecycle
11+
import androidx.lifecycle.flowWithLifecycle
1012
import androidx.lifecycle.lifecycleScope
1113
import androidx.transition.AutoTransition
1214
import androidx.transition.TransitionManager
1315
import com.hoc.flowmvi.core.clicks
1416
import com.hoc.flowmvi.core.firstChange
15-
import com.hoc.flowmvi.core.launchWhenStartedUntilStopped
1617
import com.hoc.flowmvi.core.navigator.IntentProviders
1718
import com.hoc.flowmvi.core.textChanges
1819
import com.hoc.flowmvi.core.toast
@@ -24,14 +25,13 @@ import kotlinx.coroutines.flow.launchIn
2425
import kotlinx.coroutines.flow.map
2526
import kotlinx.coroutines.flow.merge
2627
import kotlinx.coroutines.flow.onEach
27-
import org.koin.androidx.viewmodel.ext.android.viewModel
28-
import org.koin.androidx.viewmodel.scope.emptyState
28+
import org.koin.androidx.viewmodel.ext.android.stateViewModel
2929
import kotlin.LazyThreadSafetyMode.NONE
3030

3131
@FlowPreview
3232
@ExperimentalCoroutinesApi
3333
class AddActivity : AppCompatActivity() {
34-
private val addVM by viewModel<AddVM>(state = emptyState())
34+
private val addVM by stateViewModel<AddVM>()
3535
private val addBinding by lazy(NONE) { ActivityAddBinding.inflate(layoutInflater) }
3636

3737
override fun onCreate(savedInstanceState: Bundle?) {
@@ -54,12 +54,14 @@ class AddActivity : AppCompatActivity() {
5454
// observe view model
5555
addVM.viewState
5656
.onEach { render(it) }
57-
.launchWhenStartedUntilStopped(this)
57+
.flowWithLifecycle(lifecycle, Lifecycle.State.STARTED)
58+
.launchIn(lifecycleScope)
5859

5960
// observe single event
6061
addVM.singleEvent
6162
.onEach { handleSingleEvent(it) }
62-
.launchWhenStartedUntilStopped(this)
63+
.flowWithLifecycle(lifecycle, Lifecycle.State.STARTED)
64+
.launchIn(lifecycleScope)
6365

6466
// pass view intent to view model
6567
intents()

feature-add/src/main/java/com/hoc/flowmvi/ui/add/AddModule.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ import org.koin.dsl.module
99
@ExperimentalCoroutinesApi
1010
@FlowPreview
1111
val addModule = module {
12-
viewModel {
12+
viewModel { params ->
1313
AddVM(
1414
addUser = get(),
15-
savedStateHandle = it.get(),
15+
savedStateHandle = params.get(),
1616
)
1717
}
1818

feature-main/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ dependencies {
5050
implementation(deps.androidx.swipeRefreshLayout)
5151
implementation(deps.androidx.material)
5252

53-
implementation(deps.jetbrains.coroutinesCore)
54-
implementation(deps.koin.androidXViewModel)
53+
implementation(deps.coroutines.core)
54+
implementation(deps.koin.android)
5555
implementation(deps.coil)
5656
}

feature-main/src/main/java/com/hoc/flowmvi/ui/main/MainActivity.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ import android.view.Menu
66
import android.view.MenuItem
77
import androidx.appcompat.app.AppCompatActivity
88
import androidx.core.view.isVisible
9+
import androidx.lifecycle.Lifecycle
10+
import androidx.lifecycle.flowWithLifecycle
911
import androidx.lifecycle.lifecycleScope
1012
import androidx.recyclerview.widget.DividerItemDecoration
1113
import androidx.recyclerview.widget.ItemTouchHelper
1214
import androidx.recyclerview.widget.LinearLayoutManager
1315
import androidx.recyclerview.widget.RecyclerView
1416
import com.hoc.flowmvi.core.SwipeLeftToDeleteCallback
1517
import com.hoc.flowmvi.core.clicks
16-
import com.hoc.flowmvi.core.launchWhenStartedUntilStopped
1718
import com.hoc.flowmvi.core.navigator.Navigator
1819
import com.hoc.flowmvi.core.refreshes
1920
import com.hoc.flowmvi.core.safeOffer
@@ -86,12 +87,14 @@ class MainActivity : AppCompatActivity() {
8687
// observe view model
8788
mainVM.viewState
8889
.onEach { render(it) }
89-
.launchWhenStartedUntilStopped(this)
90+
.flowWithLifecycle(lifecycle, Lifecycle.State.STARTED)
91+
.launchIn(lifecycleScope)
9092

9193
// observe single event
9294
mainVM.singleEvent
9395
.onEach { handleSingleEvent(it) }
94-
.launchWhenStartedUntilStopped(this)
96+
.flowWithLifecycle(lifecycle, Lifecycle.State.STARTED)
97+
.launchIn(lifecycleScope)
9598

9699
// pass view intent to view model
97100
intents()

0 commit comments

Comments
 (0)