diff --git a/README.md b/README.md index 689ad1a..ef95724 100755 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ This is a Kotlin MultiPlatform library that contains pagination logic for kotlin - 0.4.0 - kotlin 1.4.21 - 0.4.1 + - 0.4.2 ## Installation root build.gradle @@ -53,7 +54,7 @@ allprojects { project build.gradle ```groovy dependencies { - commonMainApi("dev.icerock.moko:paging:0.4.1") + commonMainApi("dev.icerock.moko:paging:0.4.2") } ``` @@ -110,7 +111,7 @@ Observing **Pagination** states: ```kotlin // Observing the state of the pagination -pagination.state.addObserver { state: State, Throwable> -> +pagination.state.addObserver { state: ResourceState, Throwable> -> // ... } diff --git a/buildSrc/src/main/kotlin/Deps.kt b/buildSrc/src/main/kotlin/Deps.kt index 3b4bcf3..3d47f64 100755 --- a/buildSrc/src/main/kotlin/Deps.kt +++ b/buildSrc/src/main/kotlin/Deps.kt @@ -15,10 +15,10 @@ object Deps { private const val ktorClientVersion = "1.4.0" private const val coroutinesVersion = "1.4.2-native-mt" - private const val mokoMvvmVersion = "0.8.1" + private const val mokoMvvmVersion = "0.9.0" private const val mokoResourcesVersion = "0.13.2" private const val mokoUnitsVersion = "0.4.0" - const val mokoPagingVersion = "0.4.1" + const val mokoPagingVersion = "0.4.2" object Android { const val compileSdk = 28 @@ -76,7 +76,9 @@ object Deps { "dev.icerock.moko:resources:$mokoResourcesVersion" val mokoUnits = "dev.icerock.moko:units:$mokoUnitsVersion" .defaultMPL(ios = true) - val mokoMvvm = "dev.icerock.moko:mvvm:$mokoMvvmVersion" + val mokoMvvmLiveData = "dev.icerock.moko:mvvm-livedata:$mokoMvvmVersion" + .defaultMPL(ios = true) + val mokoMvvmState = "dev.icerock.moko:mvvm-state:$mokoMvvmVersion" .defaultMPL(ios = true) const val mokoPaging = "dev.icerock.moko:paging:$mokoPagingVersion" } diff --git a/paging/build.gradle.kts b/paging/build.gradle.kts index 14af2f4..a4211d0 100644 --- a/paging/build.gradle.kts +++ b/paging/build.gradle.kts @@ -15,7 +15,8 @@ version = Deps.mokoPagingVersion dependencies { commonMainImplementation(Deps.Libs.MultiPlatform.coroutines) - commonMainImplementation(Deps.Libs.MultiPlatform.mokoMvvm.common) + commonMainApi(Deps.Libs.MultiPlatform.mokoMvvmLiveData.common) + commonMainApi(Deps.Libs.MultiPlatform.mokoMvvmState.common) androidMainImplementation(Deps.Libs.Android.appCompat) diff --git a/paging/src/commonMain/kotlin/dev/icerock/moko/paging/Pagination.kt b/paging/src/commonMain/kotlin/dev/icerock/moko/paging/Pagination.kt index bf1d3d9..7df085d 100644 --- a/paging/src/commonMain/kotlin/dev/icerock/moko/paging/Pagination.kt +++ b/paging/src/commonMain/kotlin/dev/icerock/moko/paging/Pagination.kt @@ -4,7 +4,7 @@ package dev.icerock.moko.paging -import dev.icerock.moko.mvvm.State +import dev.icerock.moko.mvvm.ResourceState import dev.icerock.moko.mvvm.asState import dev.icerock.moko.mvvm.livedata.MutableLiveData import dev.icerock.moko.mvvm.livedata.readOnly @@ -25,7 +25,7 @@ class Pagination( override val coroutineContext: CoroutineContext = parentScope.coroutineContext private val mStateStorage = - MutableLiveData, Throwable>>(initValue.asStateNullIsEmpty()) + MutableLiveData, Throwable>>(initValue.asStateNullIsEmpty()) val state = mStateStorage.readOnly() @@ -56,7 +56,7 @@ class Pagination( val items: List = dataSource.loadPage(null) mStateStorage.value = items.asState() } catch (error: Throwable) { - mStateStorage.value = State.Error(error) + mStateStorage.value = ResourceState.Failed(error) } listMutex.unlock() } @@ -137,7 +137,7 @@ class Pagination( // notify refreshListener(Result.success(items)) } catch (error: Throwable) { - mStateStorage.value = State.Error(error) + mStateStorage.value = ResourceState.Failed(error) // flag mRefreshLoading.value = false // notify @@ -161,7 +161,7 @@ class Pagination( } fun T?.asStateNullIsEmpty() = asState { - State.Loading() + ResourceState.Loading() } interface IdEntity { diff --git a/sample/ios-app/Podfile b/sample/ios-app/Podfile index b04aa3f..c7b6527 100644 --- a/sample/ios-app/Podfile +++ b/sample/ios-app/Podfile @@ -14,5 +14,5 @@ target 'TestProj' do # MultiPlatformLibrary pod 'MultiPlatformLibrary', :path => '../mpp-library' - pod 'MultiPlatformLibraryUnits', :git => 'https://github.com/icerockdev/moko-units.git', :tag => 'release/0.2.2' + pod 'MultiPlatformLibraryUnits', :git => 'https://github.com/icerockdev/moko-units.git', :tag => 'release/0.4.0' end diff --git a/sample/ios-app/Podfile.lock b/sample/ios-app/Podfile.lock index 12fbfb4..c0c671e 100644 --- a/sample/ios-app/Podfile.lock +++ b/sample/ios-app/Podfile.lock @@ -1,31 +1,31 @@ PODS: - MultiPlatformLibrary (0.1.0) - - MultiPlatformLibraryUnits (0.1.0): + - MultiPlatformLibraryUnits (0.4.0): - MultiPlatformLibrary - - MultiPlatformLibraryUnits/Core (= 0.1.0) - - MultiPlatformLibraryUnits/Core (0.1.0): + - MultiPlatformLibraryUnits/Core (= 0.4.0) + - MultiPlatformLibraryUnits/Core (0.4.0): - MultiPlatformLibrary DEPENDENCIES: - MultiPlatformLibrary (from `../mpp-library`) - - MultiPlatformLibraryUnits (from `https://github.com/icerockdev/moko-units.git`, tag `release/0.2.2`) + - MultiPlatformLibraryUnits (from `https://github.com/icerockdev/moko-units.git`, tag `release/0.4.0`) EXTERNAL SOURCES: MultiPlatformLibrary: :path: "../mpp-library" MultiPlatformLibraryUnits: :git: https://github.com/icerockdev/moko-units.git - :tag: release/0.2.2 + :tag: release/0.4.0 CHECKOUT OPTIONS: MultiPlatformLibraryUnits: :git: https://github.com/icerockdev/moko-units.git - :tag: release/0.2.2 + :tag: release/0.4.0 SPEC CHECKSUMS: MultiPlatformLibrary: 176fb8ade516666cd47e93de1b71ba0441a541bb - MultiPlatformLibraryUnits: f4fe5d26427bb3c996a6d786d9cc7552bc4ae8cb + MultiPlatformLibraryUnits: 0d2efb66522f63a8b38d5639d329aeb70cd4e9ba -PODFILE CHECKSUM: 295de1c18af3cf808bbd87a8b0b801e86d8349f4 +PODFILE CHECKSUM: ef522d3d1655c544774fcadd6504f1f42278f721 COCOAPODS: 1.9.3 diff --git a/sample/mpp-library/build.gradle.kts b/sample/mpp-library/build.gradle.kts index 5c0e856..509ebc6 100644 --- a/sample/mpp-library/build.gradle.kts +++ b/sample/mpp-library/build.gradle.kts @@ -14,7 +14,8 @@ dependencies { commonMainApi(Deps.Libs.MultiPlatform.mokoPaging) commonMainApi(Deps.Libs.MultiPlatform.mokoUnits.common) - commonMainApi(Deps.Libs.MultiPlatform.mokoMvvm.common) + commonMainApi(Deps.Libs.MultiPlatform.mokoMvvmLiveData.common) + commonMainApi(Deps.Libs.MultiPlatform.mokoMvvmState.common) commonMainApi(Deps.Libs.MultiPlatform.mokoResources) androidMainImplementation(Deps.Libs.Android.lifecycle) @@ -22,5 +23,6 @@ dependencies { framework { export(Deps.Libs.MultiPlatform.mokoUnits) - export(Deps.Libs.MultiPlatform.mokoMvvm) + export(Deps.Libs.MultiPlatform.mokoMvvmLiveData) + export(Deps.Libs.MultiPlatform.mokoMvvmState) } diff --git a/sample/mpp-library/src/commonMain/kotlin/com/icerockdev/library/ListViewModel.kt b/sample/mpp-library/src/commonMain/kotlin/com/icerockdev/library/ListViewModel.kt index 0f932dd..e93696d 100644 --- a/sample/mpp-library/src/commonMain/kotlin/com/icerockdev/library/ListViewModel.kt +++ b/sample/mpp-library/src/commonMain/kotlin/com/icerockdev/library/ListViewModel.kt @@ -4,7 +4,7 @@ package com.icerockdev.library -import dev.icerock.moko.mvvm.State +import dev.icerock.moko.mvvm.ResourceState import dev.icerock.moko.mvvm.livedata.LiveData import dev.icerock.moko.mvvm.livedata.dataTransform import dev.icerock.moko.mvvm.livedata.errorTransform @@ -37,7 +37,7 @@ class ListViewModel( ) val isRefreshing: LiveData = pagination.refreshLoading - val state: LiveData, String>> = pagination.state + val state: LiveData, String>> = pagination.state .dataTransform { map { productList -> productList.map { product ->