From 1dc76a4053644a27cb02cbf06016f30fbe31eaf3 Mon Sep 17 00:00:00 2001 From: Aleksey Mikhailov Date: Sun, 25 Apr 2021 14:22:21 +0700 Subject: [PATCH] hotfix for IDEA 2021.1 support --- buildSrc/src/main/kotlin/Deps.kt | 4 ++-- .../errors/handler/ExceptionHandlerBinder.kt | 23 +++++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/buildSrc/src/main/kotlin/Deps.kt b/buildSrc/src/main/kotlin/Deps.kt index d92e3bc..e4d3026 100755 --- a/buildSrc/src/main/kotlin/Deps.kt +++ b/buildSrc/src/main/kotlin/Deps.kt @@ -10,12 +10,12 @@ object Deps { private const val androidLifecycleVersion = "2.1.0" private const val androidCoreTestingVersion = "2.1.0" - private const val detektVersion = "1.7.4" + private const val detektVersion = "1.15.0" private const val coroutinesVersion = "1.4.2" private const val mokoMvvmVersion = "0.9.2" private const val mokoResourcesVersion = "0.15.1" - const val mokoErrorsVersion = "0.3.2" + const val mokoErrorsVersion = "0.3.3" object Android { const val compileSdk = 28 diff --git a/errors/src/iosMain/kotlin/dev/icerock/moko/errors/handler/ExceptionHandlerBinder.kt b/errors/src/iosMain/kotlin/dev/icerock/moko/errors/handler/ExceptionHandlerBinder.kt index 2eeac2e..d4ff9fe 100644 --- a/errors/src/iosMain/kotlin/dev/icerock/moko/errors/handler/ExceptionHandlerBinder.kt +++ b/errors/src/iosMain/kotlin/dev/icerock/moko/errors/handler/ExceptionHandlerBinder.kt @@ -22,18 +22,23 @@ actual class ExceptionHandlerBinderImpl actual constructor( private var eventsListener: ErrorEventListener? = null override fun bind(viewController: UIViewController) { - eventsListener = createEventsListener(viewController) + eventsListener = Listener( + viewController = viewController, + errorPresenter = errorPresenter + ) eventsDispatcher.listener = eventsListener } - private fun createEventsListener(viewController: UIViewController) = - object : ErrorEventListener { - val viewControllerRef = WeakReference(viewController) + private class Listener( + viewController: UIViewController, + private val errorPresenter: ErrorPresenter + ) : ErrorEventListener { + private val viewControllerRef = WeakReference(viewController) - override fun showError(throwable: Throwable, data: T) { - viewControllerRef.get()?.let { - errorPresenter.show(throwable, it, data) - } - } + override fun showError(throwable: Throwable, data: T) { + val viewController = viewControllerRef.get() ?: return + + errorPresenter.show(throwable, viewController, data) } + } }