diff --git a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt b/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt index 5118eb7cc..df017ac8c 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt @@ -378,17 +378,11 @@ class AccountVerificationController(args: Bundle? = null) : if (eventStatus.eventType == EventStatus.EventType.PUSH_REGISTRATION) { if (internalAccountId == eventStatus.userId && !eventStatus.isAllGood && activity != null) { activity!!.runOnUiThread { - // try { binding?.progressText?.text = """ ${binding?.progressText?.text} ${resources!!.getString(R.string.nc_push_disabled)} """.trimIndent() - // } catch (npe: NullPointerException) { - // // view binding can be null - // // since this is called asynchronously and UI might have been destroyed in the meantime - // Log.i(TAG, "UI destroyed - view binding already gone") - // } } } fetchAndStoreCapabilities() diff --git a/app/src/main/java/com/nextcloud/talk/controllers/util/ControllerViewBindingDelegate.kt b/app/src/main/java/com/nextcloud/talk/controllers/util/ControllerViewBindingDelegate.kt index bb70b037d..70d6247f1 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/util/ControllerViewBindingDelegate.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/util/ControllerViewBindingDelegate.kt @@ -25,12 +25,12 @@ import com.bluelinelabs.conductor.Controller import kotlin.properties.ReadOnlyProperty import kotlin.reflect.KProperty -fun Controller.viewBinding(bindingFactory: (View) -> T?) = +fun Controller.viewBinding(bindingFactory: (View) -> T) = ControllerViewBindingDelegate(this, bindingFactory) class ControllerViewBindingDelegate( controller: Controller, - private val viewBinder: (View) -> T? + private val viewBinder: (View) -> T ) : ReadOnlyProperty, LifecycleObserver { private var binding: T? = null @@ -43,7 +43,10 @@ class ControllerViewBindingDelegate( }) } - override fun getValue(thisRef: Controller, property: KProperty <*>): T? { - return binding ?: thisRef.view?.let { viewBinder(it).also { binding = it } } + override fun getValue(thisRef: Controller, property: KProperty<*>): T? { + if (binding == null) { + binding = thisRef.view?.let { viewBinder(it) } + } + return binding } }