package org.thoughtcrime.securesms; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.thoughtcrime.securesms.tracing.Trace; import org.thoughtcrime.securesms.util.CommunicationActions; import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.DynamicTheme; @Trace public class MainActivity extends PassphraseRequiredActivity { public static final int RESULT_CONFIG_CHANGED = Activity.RESULT_FIRST_USER + 901; private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme(); private final MainNavigator navigator = new MainNavigator(this); @Override protected void onCreate(Bundle savedInstanceState, boolean ready) { super.onCreate(savedInstanceState, ready); setContentView(R.layout.main_activity); navigator.onCreate(savedInstanceState); handleGroupLinkInIntent(getIntent()); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); handleGroupLinkInIntent(intent); } @Override protected void onPreCreate() { super.onPreCreate(); dynamicTheme.onCreate(this); } @Override protected void onResume() { super.onResume(); dynamicTheme.onResume(this); } @Override public void onBackPressed() { if (!navigator.onBackPressed()) { super.onBackPressed(); } } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == MainNavigator.REQUEST_CONFIG_CHANGES && resultCode == RESULT_CONFIG_CHANGED) { recreate(); } } public @NonNull MainNavigator getNavigator() { return navigator; } private void handleGroupLinkInIntent(Intent intent) { Uri data = intent.getData(); if (data != null) { CommunicationActions.handlePotentialGroupLinkUrl(this, data.toString()); } } }