From 9558513190895eb0a189749eb115adab90f37ece Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 6 Sep 2022 14:48:22 -0400 Subject: [PATCH] Prevent empty call screen after missed calls. --- .../securesms/WebRtcCallActivity.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java index baafbfdc4e..a8e02a6e0d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java @@ -49,6 +49,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import org.signal.core.util.ThreadUtil; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; import org.signal.libsignal.protocol.IdentityKey; @@ -186,6 +187,20 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan if (!EventBus.getDefault().isRegistered(this)) { EventBus.getDefault().register(this); } + + WebRtcViewModel rtcViewModel = EventBus.getDefault().getStickyEvent(WebRtcViewModel.class); + if (rtcViewModel == null) { + Log.w(TAG, "Activity resumed without service event, perform delay destroy"); + ThreadUtil.runOnMainDelayed(() -> { + WebRtcViewModel delayRtcViewModel = EventBus.getDefault().getStickyEvent(WebRtcViewModel.class); + if (delayRtcViewModel == null) { + Log.w(TAG, "Activity still without service event, finishing activity"); + finish(); + } else { + Log.i(TAG, "Event found after delay"); + } + }, TimeUnit.SECONDS.toMillis(1)); + } } @Override