diff --git a/domain/src/commonMain/kotlin/ca/gosyer/jui/domain/chapter/service/ChapterRepository.kt b/domain/src/commonMain/kotlin/ca/gosyer/jui/domain/chapter/service/ChapterRepository.kt index 8d210527..b193eb9c 100644 --- a/domain/src/commonMain/kotlin/ca/gosyer/jui/domain/chapter/service/ChapterRepository.kt +++ b/domain/src/commonMain/kotlin/ca/gosyer/jui/domain/chapter/service/ChapterRepository.kt @@ -35,7 +35,7 @@ interface ChapterRepository { /* TODO add once ktorfit supports nullable paremters @FormUrlEncoded - @PATCH("/api/v1/manga/{mangaId}/chapter/{chapterIndex}") + @PATCH("api/v1/manga/{mangaId}/chapter/{chapterIndex}") fun updateChapter( @Path("mangaId") mangaId: Long, @Path("chapterIndex") chapterIndex: Int, diff --git a/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/AndroidViewModelComponent.kt b/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/AndroidViewModelComponent.kt index 9f579923..3b17999d 100644 --- a/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/AndroidViewModelComponent.kt +++ b/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/AndroidViewModelComponent.kt @@ -29,7 +29,9 @@ actual inline fun Screen.stateViewModel( val viewModelFactory = LocalViewModels.current val lifecycle = LocalLifecycleOwner.current as AndroidScreenLifecycleOwner val handle = remember { - lifecycle.defaultViewModelCreationExtras.addScreenModelKey(this, tag).createSavedStateHandle() + lifecycle.defaultViewModelCreationExtras + .addScreenModelKey(this, tag) + .createSavedStateHandle() } return rememberScreenModel(tag) { viewModelFactory.factory(handle) } } diff --git a/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/base/state/SavedStateHandleSupport.kt b/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/base/state/SavedStateHandleSupport.kt index 8cd46285..cd76ebe6 100644 --- a/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/base/state/SavedStateHandleSupport.kt +++ b/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/base/state/SavedStateHandleSupport.kt @@ -25,11 +25,10 @@ import java.lang.reflect.Method private const val SAVED_STATE_KEY = "androidx.lifecycle.internal.SavedStateHandlesProvider" -val SavedStateHandleSupportClass: Class<*> by lazy { - Class.forName("androidx.lifecycle.SavedStateHandleSupport") -} val getSavedStateHandlesVM: Method by lazy { - SavedStateHandleSupportClass.methods.first { it.name == "getSavedStateHandlesVM" } + Class.forName("androidx.lifecycle.SavedStateHandleSupport") + .methods + .first { it.name == "getSavedStateHandlesVM" } } private fun createSavedStateHandle( @@ -43,7 +42,12 @@ private fun createSavedStateHandle( // for a given key stored in our ViewModel, use that. Otherwise, create // a new SavedStateHandle, providing it any restored state we might have saved val vm = getSavedStateHandlesVM.invoke(null, viewModelStoreOwner)!! - val handles = vm::class.java.methods.first { it.name == "getHandles" }.invoke(vm) as MutableMap + @Suppress("UNCHECKED_CAST") + val handles = vm::class.java + .methods + .first { it.name == "getHandles" } + .invoke(vm) as MutableMap + return handles[key] ?: SavedStateHandle.createHandle( provider.consumeRestoredStateForKey(key), defaultArgs @@ -103,7 +107,8 @@ internal class SavedStateHandlesProvider( * Restore the state associated with a particular SavedStateHandle, identified by its [key] */ fun consumeRestoredStateForKey(key: String): Bundle? { - return savedStateRegistry::class.java.methods + return savedStateRegistry::class.java + .methods .find { it.name == "consumeRestoredStateForKey" } ?.invoke(savedStateRegistry, key) as? Bundle }