Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ba80e76 authored by Arc Wang's avatar Arc Wang
Browse files

Only show 2-pane deep link when homepage is available

DeepLinkHomepageActivity is disabled by default and may be
enabled after receiving the PRE_BOOT_COMPLETED broadcast.

On some virtual devices, DeepLinkHomepageActivity may not
be enabled for test cases. This is a fallback option to
show a full screen Activity to pass tests.

Bug: 221149428
Test: make RunSettingsRoboTests ROBOTEST_FILTER=SettingsActivityTest
Change-Id: I4bbe785176fe3fe8831484141aff7367e4ca25ce
parent d3a7ec88
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static com.android.settings.applications.appinfo.AppButtonsPreferenceCont

import android.app.ActionBar;
import android.app.ActivityManager;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
@@ -253,8 +254,7 @@ public class SettingsActivity extends SettingsBaseActivity
        getMetaData();
        final Intent intent = getIntent();

        if (shouldShowTwoPaneDeepLink(intent)) {
            launchHomepageForTwoPaneDeepLink(intent);
        if (shouldShowTwoPaneDeepLink(intent) && tryStartTwoPaneDeepLink(intent)) {
            finishAndRemoveTask();
            super.onCreate(savedState);
            return;
@@ -412,7 +412,7 @@ public class SettingsActivity extends SettingsBaseActivity
        return trampolineIntent;
    }

    private void launchHomepageForTwoPaneDeepLink(Intent intent) {
    private boolean tryStartTwoPaneDeepLink(Intent intent) {
        final Intent trampolineIntent;
        if (intent.getBooleanExtra(EXTRA_IS_FROM_SLICE, false)) {
            // Get menu key for slice deep link case.
@@ -426,7 +426,14 @@ public class SettingsActivity extends SettingsBaseActivity
        } else {
            trampolineIntent = getTrampolineIntent(intent, mHighlightMenuKey);
        }

        try {
            startActivity(trampolineIntent);
        } catch (ActivityNotFoundException e) {
            Log.e(LOG_TAG, "Deep link homepage is not available to show 2-pane UI");
            return false;
        }
        return true;
    }

    private boolean shouldShowTwoPaneDeepLink(Intent intent) {