diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index 7f0448f78ff..421848b75f3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -400,6 +400,8 @@ public class ConversationActivity extends PassphraseRequiredActivity private boolean isMmsEnabled = true; private boolean isSecurityInitialized = false; + private volatile boolean screenInitialized = false; + private IdentityRecordList identityRecords = new IdentityRecordList(Collections.emptyList()); private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme(); private final DynamicLanguage dynamicLanguage = new DynamicLanguage(); @@ -449,6 +451,11 @@ protected void onCreate(Bundle state, boolean ready) { initializeSecurity(recipient.get().isRegistered(), isDefaultSms).addListener(new AssertedSuccessListener() { @Override public void onSuccess(Boolean result) { + if (isFinishing()) { + Log.w(TAG, "Activity is finishing. Not proceeding with initialization."); + return; + } + initializeProfiles(); initializeGv1Migration(); initializeDraft(args).addListener(new AssertedSuccessListener() { @@ -469,6 +476,8 @@ public void onSuccess(Boolean loadedDraft) { composeText.addTextChangedListener(typingTextWatcher); } composeText.setSelection(composeText.length(), composeText.length()); + + screenInitialized = true; } }); } @@ -486,6 +495,13 @@ protected void onNewIntent(Intent intent) { return; } + if (!screenInitialized) { + Log.w(TAG, "Activity is in the middle of initialization. Restarting."); + finish(); + startActivity(intent); + return; + } + reactWithAnyEmojiStartPage = -1; if (!Util.isEmpty(composeText) || attachmentManager.isAttachmentPresent() || inputPanel.getQuote().isPresent()) { saveDraft();