From c2da2b8ad4ace5370f2d4e3d914d205d0c63378e Mon Sep 17 00:00:00 2001 From: Eric Ampire Date: Mon, 8 Nov 2021 22:29:11 +0200 Subject: [PATCH] Update to Jetpack Compose 1.1.0-beta02 --- app/build.gradle.kts | 10 +++++++- .../explore/business/ExploreViewModel.kt | 18 ++++++++++++++ .../explore/business/ExploreViewState.kt | 6 +++++ buildSrc/src/main/kotlin/Libs.kt | 8 +++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- versions.properties | 24 ++++++++++++++----- 6 files changed, 60 insertions(+), 8 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6b770da..61964f3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -7,6 +7,7 @@ plugins { kotlin("kapt") id("dagger.hilt.android.plugin") id("kotlin-android") + id("com.google.devtools.ksp") version "1.5.31-1.0.0" } kapt { @@ -142,10 +143,17 @@ dependencies { implementation(Libs.code_scanner) + implementation(Libs.ComposeDestination.core) + ksp(Libs.ComposeDestination.ksp) + + implementation(Libs.flowredux) + implementation(Libs.flowredux_dsl) + testImplementation(Libs.turbine) androidTestImplementation(Libs.turbine) androidTestImplementation(Libs.junit5_android_test_core) testImplementation(Libs.junit5_android_test_core) androidTestRuntimeOnly(Libs.junit5_android_test_runner) -} \ No newline at end of file +} + diff --git a/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/explore/business/ExploreViewModel.kt b/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/explore/business/ExploreViewModel.kt index 369e624..415c232 100644 --- a/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/explore/business/ExploreViewModel.kt +++ b/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/explore/business/ExploreViewModel.kt @@ -10,14 +10,32 @@ import com.ericampire.android.androidstudycase.domain.usecase.FindRecentLottieFi import com.ericampire.android.androidstudycase.util.Result import com.ericampire.android.androidstudycase.util.data import com.ericampire.android.androidstudycase.util.mvi.BViewModel +import com.freeletics.flowredux.dsl.FlowReduxStateMachine import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject +import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch +@OptIn(FlowPreview::class, kotlinx.coroutines.ExperimentalCoroutinesApi::class) +class Explore( + private val findPopularLottieFileUseCase: FindPopularLottieFileUseCase, + private val findRecentLottieFileUseCase: FindRecentLottieFileUseCase, + private val findFeaturedLottieFileUseCase: FindFeaturedLottieFileUseCase +) : FlowReduxStateMachine(initialState = ExploreState.LoadingState) { + + init { + spec { + inState { + //onEnter() + } + } + } +} + class ExploreViewModel @AssistedInject constructor( @Assisted initialState: ExploreViewState, private val findPopularLottieFileUseCase: FindPopularLottieFileUseCase, diff --git a/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/explore/business/ExploreViewState.kt b/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/explore/business/ExploreViewState.kt index ec34fe9..193422a 100644 --- a/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/explore/business/ExploreViewState.kt +++ b/app/src/main/java/com/ericampire/android/androidstudycase/presentation/screen/explore/business/ExploreViewState.kt @@ -8,3 +8,9 @@ import com.ericampire.android.androidstudycase.domain.entity.Lottiefile data class ExploreViewState( val files: Async> = Uninitialized, ) : MavericksState + +sealed interface ExploreState { + object LoadingState : ExploreState + data class ContentState(val file: List) : ExploreState + data class ErrorState(val cause: Throwable) : ExploreState +} diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt index 1b3dc2f..18911ad 100644 --- a/buildSrc/src/main/kotlin/Libs.kt +++ b/buildSrc/src/main/kotlin/Libs.kt @@ -164,6 +164,14 @@ object Libs { const val junit5_android_test_core = "de.mannodermaus.junit5:android-test-core:_" const val junit5_android_test_runner = "de.mannodermaus.junit5:android-test-runner:_" + const val flowredux = "com.freeletics.flowredux:flowredux:_" + const val flowredux_dsl = "com.freeletics.flowredux:dsl:_" + + object ComposeDestination { + const val core = "io.github.raamcosta.compose-destinations:core:_" + const val ksp = "io.github.raamcosta.compose-destinations:ksp:_" + } + const val mvi_kotlin_core = "com.arkivanov.mvikotlin:mvikotlin:_" const val mvi_kotlin_main = "com.arkivanov.mvikotlin:mvikotlin-main:_" const val mvi_kotlin_logging = "com.arkivanov.mvikotlin:mvikotlin-logging:_" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5de4e8a..604ca48 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon Aug 16 12:05:52 CAT 2021 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/versions.properties b/versions.properties index e2760ae..cec72fa 100644 --- a/versions.properties +++ b/versions.properties @@ -34,25 +34,25 @@ version.androidx.preference=1.1.1 version.androidx.appcompat=1.3.0 ## unused -version.androidx.compose.compiler=1.1.0-beta01 +version.androidx.compose.compiler=1.1.0-beta02 ## unused -version.androidx.compose.material-icons-extended=1.1.0-beta01 +version.androidx.compose.material-icons-extended=1.1.0-beta02 ## unused -version.androidx.compose.material=1.1.0-beta01 +version.androidx.compose.material=1.1.0-beta02 ## unused -version.androidx.compose.runtime=1.1.0-beta01 +version.androidx.compose.runtime=1.1.0-beta02 ## unused version.google.accompanist=0.20.0 ## unused -version.androidx.compose.ui=1.1.0-beta01 +version.androidx.compose.ui=1.1.0-beta02 ## unused -version.androidx.compose.ui-viewbinding=1.1.0-beta01 +version.androidx.compose.ui-viewbinding=1.1.0-beta02 ## unused version.androidx.core=1.5.0 @@ -207,3 +207,15 @@ version.com.arkivanov.mvikotlin..mvikotlin-logging=2.0.4 ## unused version.com.arkivanov.mvikotlin..mvikotlin-extensions-coroutines=2.0.4 + +## unused +version.com.freeletics.flowredux..flowredux=0.10.0 + +## unused +version.com.freeletics.flowredux..dsl=0.10.0 + +## unused +version.io.github.raamcosta.compose-destinations..core=0.9.1-beta + +## unused +version.io.github.raamcosta.compose-destinations..ksp=0.9.1-beta