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