Skip to content

Commit 8bfccf3

Browse files
authored
Merge pull request #44 from icerockdev/develop
Release 0.6.0
2 parents 29ce6a3 + 6db0186 commit 8bfccf3

26 files changed

+127
-278
lines changed

.idea/copyright/IceRock.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/copyright/profiles_settings.xml

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

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ allprojects {
4444
project build.gradle
4545
```groovy
4646
dependencies {
47-
commonMainApi("dev.icerock.moko:errors:0.5.1")
47+
commonMainApi("dev.icerock.moko:errors:0.6.0")
4848
}
4949
```
5050

build.gradle.kts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,19 @@ buildscript {
66
repositories {
77
mavenCentral()
88
google()
9-
109
gradlePluginPortal()
1110
}
1211

1312
dependencies {
14-
classpath("dev.icerock.moko:resources-generator:0.16.0")
15-
16-
classpath(":errors-build-logic")
13+
classpath(libs.kotlinGradlePlugin)
14+
classpath(libs.androidGradlePlugin)
15+
classpath(libs.mokoGradlePlugin)
16+
classpath(libs.mokoResourcesGradlePlugin)
1717
}
1818
}
1919

20+
apply(plugin = "dev.icerock.moko.gradle.publication.nexus")
21+
2022
allprojects {
2123

2224
allprojects {

errors-build-logic/build.gradle.kts

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

errors-build-logic/src/main/kotlin/android-app-convention.gradle.kts

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

errors-build-logic/src/main/kotlin/android-base-convention.gradle.kts

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

errors-build-logic/src/main/kotlin/android-library-convention.gradle.kts

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

errors-build-logic/src/main/kotlin/android-publication-convention.gradle.kts

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

errors-build-logic/src/main/kotlin/detekt-convention.gradle.kts

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

errors-build-logic/src/main/kotlin/javadoc-stub-convention.gradle.kts

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

errors-build-logic/src/main/kotlin/multiplatform-library-convention.gradle.kts

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

errors-build-logic/src/main/kotlin/publication-convention.gradle.kts

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

errors/build.gradle.kts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
*/
44

55
plugins {
6-
id("multiplatform-library-convention")
6+
id("dev.icerock.moko.gradle.multiplatform.mobile")
77
id("kotlin-parcelize")
88
id("dev.icerock.mobile.multiplatform-resources")
9-
id("detekt-convention")
10-
id("publication-convention")
9+
id("dev.icerock.moko.gradle.detekt")
10+
id("dev.icerock.moko.gradle.publication")
11+
id("dev.icerock.moko.gradle.stub.javadoc")
1112
}
1213

1314
group = "dev.icerock.moko"
@@ -16,8 +17,8 @@ version = libs.versions.mokoErrorsVersion.get()
1617
dependencies {
1718
commonMainImplementation(libs.coroutines)
1819

19-
"androidMainImplementation"(libs.appCompat)
20-
"androidMainImplementation"(libs.material)
20+
androidMainImplementation(libs.appCompat)
21+
androidMainImplementation(libs.material)
2122

2223
commonMainImplementation(libs.mokoMvvmCore)
2324
commonMainApi(libs.mokoResources)

errors/src/androidMain/kotlin/dev/icerock/moko/errors/presenters/AlertDialogFragment.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ import android.os.Parcelable
1010
import androidx.appcompat.app.AlertDialog
1111
import androidx.fragment.app.DialogFragment
1212
import dev.icerock.moko.errors.R
13-
import kotlinx.android.parcel.Parcelize
14-
import java.lang.IllegalStateException
13+
import kotlinx.parcelize.Parcelize
1514

1615
class AlertDialogFragment : DialogFragment() {
1716

1817
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
19-
val settings: DialogSettings = arguments?.getParcelable<DialogSettings>(ARGS_KEY)
18+
val settings: DialogSettings = arguments?.getParcelable(ARGS_KEY)
2019
?: DialogSettings(
2120
title = getString(R.string.moko_errors_presenters_alertDialogTitle),
2221
positiveButtonText = getString(R.string.moko_errors_presenters_alertPositiveButton),

errors/src/commonMain/kotlin/dev/icerock/moko/errors/handler/PresenterExceptionHandler.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ internal class PresenterExceptionHandler<T : Any>(
1313
private val errorPresenter: ErrorPresenter<T>,
1414
private val errorEventsDispatcher: EventsDispatcher<ErrorEventListener<T>>,
1515
private val onCatch: ((Throwable) -> Unit)? = null
16-
) : ExceptionHandlerBinder by ExceptionHandlerBinderImpl<T>(
17-
errorPresenter,
18-
errorEventsDispatcher
19-
), ExceptionHandler {
16+
) : ExceptionHandlerBinder by ExceptionHandlerBinderImpl(errorPresenter, errorEventsDispatcher),
17+
ExceptionHandler {
18+
2019
override fun <R> handle(block: suspend () -> R): ExceptionHandlerContext<R> {
2120
return ExceptionHandlerContext(exceptionMapper, errorEventsDispatcher, onCatch, block)
2221
}

errors/src/commonMain/kotlin/dev/icerock/moko/errors/mappers/ExceptionMappersStorage.kt

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ object ExceptionMappersStorage {
3636
if (!mappersMap.containsKey(resultClass)) {
3737
mappersMap[resultClass] = mutableMapOf()
3838
}
39-
mappersMap.get(resultClass)?.put(exceptionClass, mapper as ThrowableMapper)
39+
@Suppress("UNCHECKED_CAST")
40+
mappersMap[resultClass]?.put(exceptionClass, mapper as ThrowableMapper)
4041
return this
4142
}
4243

@@ -50,7 +51,7 @@ object ExceptionMappersStorage {
5051
if (!conditionMappers.containsKey(resultClass)) {
5152
conditionMappers[resultClass] = mutableListOf()
5253
}
53-
conditionMappers.get(resultClass)?.add(conditionPair)
54+
conditionMappers[resultClass]?.add(conditionPair)
5455
return this
5556
}
5657

@@ -93,10 +94,11 @@ object ExceptionMappersStorage {
9394
throwable: E,
9495
exceptionClass: KClass<out E>
9596
): ((E) -> T)? {
96-
val mapper = conditionMappers.get(resultClass)
97+
@Suppress("UNCHECKED_CAST")
98+
val mapper = conditionMappers[resultClass]
9799
?.find { it.condition(throwable) }
98100
?.mapper as? ((E) -> T)
99-
?: mappersMap.get(resultClass)?.get(exceptionClass) as? ((E) -> T)
101+
?: mappersMap[resultClass]?.get(exceptionClass) as? ((E) -> T)
100102

101103
return if (mapper == null && throwable !is Exception) {
102104
throw throwable
@@ -138,6 +140,7 @@ object ExceptionMappersStorage {
138140
* exception will be thrown.
139141
*/
140142
fun <T : Any> getFallbackValue(clazz: KClass<T>): T {
143+
@Suppress("UNCHECKED_CAST")
141144
return fallbackValuesMap[clazz] as? T
142145
?: throw FallbackValueNotFoundException(clazz)
143146
}
@@ -160,15 +163,19 @@ object ExceptionMappersStorage {
160163
}
161164
}
162165

163-
/**
164-
* Factory method that creates mappers (Throwable) -> T with a registered fallback value for
165-
* class [T].
166-
*/
167166
inline fun <E : Throwable, reified T : Any> throwableMapper(): (e: E) -> T {
168-
return ExceptionMappersStorage.throwableMapper(T::class)
167+
return dev.icerock.moko.errors.mappers.throwableMapper()
169168
}
170169
}
171170

171+
/**
172+
* Factory method that creates mappers (Throwable) -> T with a registered fallback value for
173+
* class [T].
174+
*/
175+
inline fun <E : Throwable, reified T : Any> throwableMapper(): (e: E) -> T {
176+
return ExceptionMappersStorage.throwableMapper(T::class)
177+
}
178+
172179
/**
173180
* Factory method that allows getting exception description
174181
*/

0 commit comments

Comments
 (0)