diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 0aad489a0ee..d258cc2fcc3 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -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; @@ -252,8 +253,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; @@ -411,7 +411,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. @@ -425,7 +425,14 @@ public class SettingsActivity extends SettingsBaseActivity } else { trampolineIntent = getTrampolineIntent(intent, mHighlightMenuKey); } - startActivity(trampolineIntent); + + 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) {