From c906abdb37b42b5b08f1bdb1989760efb803170b Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Wed, 6 Jul 2022 09:45:13 -0300 Subject: [PATCH] Prevent crash when subscriber is invoked after view is destroyed. --- .../stories/viewer/page/StoryViewerPageFragment.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt index 2ab992e095..ac700a5c2a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt @@ -31,6 +31,7 @@ import com.google.android.material.button.MaterialButton import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Observable import org.signal.core.util.DimensionUnit +import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.AvatarImageView import org.thoughtcrime.securesms.components.segmentedprogressbar.SegmentedProgressBar @@ -334,6 +335,10 @@ class StoryViewerPageFragment : return@subscribe } + if (context == null) { + Log.d(TAG, "Subscriber called while fragment is detached. Ignoring state update.") + } + if (state.posts.isNotEmpty() && state.selectedPostIndex in state.posts.indices) { val post = state.posts[state.selectedPostIndex] @@ -936,6 +941,8 @@ class StoryViewerPageFragment : } companion object { + private val TAG = Log.tag(StoryViewerPageFragment::class.java) + private val MAX_VIDEO_PLAYBACK_DURATION: Long = TimeUnit.SECONDS.toMillis(30) private val MIN_GIF_LOOPS: Long = 3L private val MIN_GIF_PLAYBACK_DURATION = TimeUnit.SECONDS.toMillis(5)