From 47150364d862fff62feac2008844e7630a7403fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Pich?= Date: Sun, 13 Sep 2020 16:27:53 +0200 Subject: [PATCH] Fix lifecycle of timer tasks in timetable lessons (#958) Co-authored-by: Faierbel --- .../java/io/github/wulkanowy/data/Resource.kt | 2 +- .../ui/modules/timetable/TimetableAdapter.kt | 18 +++++++++--------- .../ui/modules/timetable/TimetableFragment.kt | 1 + .../io/github/wulkanowy/utils/FlowUtils.kt | 2 +- build.gradle | 2 +- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/io/github/wulkanowy/data/Resource.kt b/app/src/main/java/io/github/wulkanowy/data/Resource.kt index ae22832aa..406440c83 100644 --- a/app/src/main/java/io/github/wulkanowy/data/Resource.kt +++ b/app/src/main/java/io/github/wulkanowy/data/Resource.kt @@ -1,6 +1,6 @@ package io.github.wulkanowy.data -data class Resource(val status: Status, val data: T?, val error: Throwable?) { +data class Resource(val status: Status, val data: T?, val error: Throwable?) { companion object { fun success(data: T?): Resource { return Resource(Status.SUCCESS, data, null) diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/timetable/TimetableAdapter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/timetable/TimetableAdapter.kt index d87f06207..58be38cec 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/timetable/TimetableAdapter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/timetable/TimetableAdapter.kt @@ -6,6 +6,7 @@ import android.view.View.GONE import android.view.View.VISIBLE import android.view.ViewGroup import android.widget.TextView +import androidx.core.view.ViewCompat import androidx.recyclerview.widget.RecyclerView import io.github.wulkanowy.R import io.github.wulkanowy.data.db.entities.Timetable @@ -44,8 +45,8 @@ class TimetableAdapter @Inject constructor() : RecyclerView.Adapter() - private fun resetTimers() { - Timber.d("Timetable timers reset") + fun resetTimers() { + Timber.d("Timetable timers (${timers.size}) reset") with(timers) { forEach { (_, timer) -> timer.cancel() } clear() @@ -69,11 +70,6 @@ class TimetableAdapter @Inject constructor() : RecyclerView.Adapter(R.layout.fragme } override fun onDestroyView() { + timetableAdapter.resetTimers() presenter.onDetachView() super.onDestroyView() } diff --git a/app/src/main/java/io/github/wulkanowy/utils/FlowUtils.kt b/app/src/main/java/io/github/wulkanowy/utils/FlowUtils.kt index 314994054..23b86dd35 100644 --- a/app/src/main/java/io/github/wulkanowy/utils/FlowUtils.kt +++ b/app/src/main/java/io/github/wulkanowy/utils/FlowUtils.kt @@ -89,7 +89,7 @@ fun flowWithResourceIn(block: suspend () -> Flow>) = flow { } } } catch (e: Throwable) { - emit(Resource.error(e)) + emit(Resource.error(e)) } } diff --git a/build.gradle b/build.gradle index d40c71dcb..4205cce56 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ buildscript { ext { - kotlin_version = '1.4.0' + kotlin_version = '1.4.10' about_libraries = '8.3.0' hilt_version = "2.29.1-alpha" }