Loading src/com/android/settings/SettingsActivity.java +28 −11 Original line number Original line Diff line number Diff line Loading @@ -52,13 +52,13 @@ import androidx.preference.PreferenceManager; import com.android.internal.util.ArrayUtils; import com.android.internal.util.ArrayUtils; import com.android.settings.Settings.WifiSettingsActivity; import com.android.settings.Settings.WifiSettingsActivity; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.applications.manageapplications.ManageApplications; import com.android.settings.applications.manageapplications.ManageApplications; import com.android.settings.core.OnActivityResultListener; import com.android.settings.core.OnActivityResultListener; import com.android.settings.core.SettingsBaseActivity; import com.android.settings.core.SettingsBaseActivity; import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.gateway.SettingsGateway; import com.android.settings.core.gateway.SettingsGateway; import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.TopLevelSettings; import com.android.settings.homepage.TopLevelSettings; import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory; Loading Loading @@ -356,11 +356,29 @@ public class SettingsActivity extends SettingsBaseActivity /** Returns true if the Activity is started by a deep link intent for large screen devices. */ /** Returns true if the Activity is started by a deep link intent for large screen devices. */ private boolean launchHomepageForTwonPaneDeepLink() { private boolean launchHomepageForTwonPaneDeepLink() { final Intent intent = getIntent(); if (!shouldShowTwoPaneDeepLink(intent)) { return false; } // It's a deep link intent, SettingsHomepageActivity will set SplitPairRule and start it. final Intent trampolineIntent = new Intent(android.provider.Settings.ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK); trampolineIntent.replaceExtras(intent); trampolineIntent.putExtra( android.provider.Settings.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI, intent.toUri(Intent.URI_INTENT_SCHEME)); trampolineIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivity(trampolineIntent); return true; } private boolean shouldShowTwoPaneDeepLink(Intent intent) { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this)) { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this)) { return false; return false; } } final Intent intent = getIntent(); // Only starts trampoline for deep links. Should return false for all the cases that // Only starts trampoline for deep links. Should return false for all the cases that // Settings app starts SettingsActivity or SubSetting by itself. // Settings app starts SettingsActivity or SubSetting by itself. if (intent.getAction() == null) { if (intent.getAction() == null) { Loading @@ -377,15 +395,14 @@ public class SettingsActivity extends SettingsBaseActivity return false; return false; } } // It's a deep link intent, SettingsHomepageActivity will set SplitPairRule and start it. if (TextUtils.equals(intent.getAction(), Intent.ACTION_CREATE_SHORTCUT)) { final Intent trampolineIntent = // Returns false to show full screen for Intent.ACTION_CREATE_SHORTCUT because new Intent(android.provider.Settings.ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK); // - Launcher startActivityForResult for Intent.ACTION_CREATE_SHORTCUT and activity trampolineIntent.replaceExtras(intent); // stack starts from launcher, CreateShortcutActivity will not follows SplitPaitRule trampolineIntent.putExtra( // registered by Settings. android.provider.Settings.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI, // - There is no CreateShortcutActivity entry point from Settings app UI. intent.toUri(Intent.URI_INTENT_SCHEME)); return false; trampolineIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); } startActivity(trampolineIntent); return true; return true; } } Loading Loading
src/com/android/settings/SettingsActivity.java +28 −11 Original line number Original line Diff line number Diff line Loading @@ -52,13 +52,13 @@ import androidx.preference.PreferenceManager; import com.android.internal.util.ArrayUtils; import com.android.internal.util.ArrayUtils; import com.android.settings.Settings.WifiSettingsActivity; import com.android.settings.Settings.WifiSettingsActivity; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.applications.manageapplications.ManageApplications; import com.android.settings.applications.manageapplications.ManageApplications; import com.android.settings.core.OnActivityResultListener; import com.android.settings.core.OnActivityResultListener; import com.android.settings.core.SettingsBaseActivity; import com.android.settings.core.SettingsBaseActivity; import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.gateway.SettingsGateway; import com.android.settings.core.gateway.SettingsGateway; import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.TopLevelSettings; import com.android.settings.homepage.TopLevelSettings; import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory; Loading Loading @@ -356,11 +356,29 @@ public class SettingsActivity extends SettingsBaseActivity /** Returns true if the Activity is started by a deep link intent for large screen devices. */ /** Returns true if the Activity is started by a deep link intent for large screen devices. */ private boolean launchHomepageForTwonPaneDeepLink() { private boolean launchHomepageForTwonPaneDeepLink() { final Intent intent = getIntent(); if (!shouldShowTwoPaneDeepLink(intent)) { return false; } // It's a deep link intent, SettingsHomepageActivity will set SplitPairRule and start it. final Intent trampolineIntent = new Intent(android.provider.Settings.ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK); trampolineIntent.replaceExtras(intent); trampolineIntent.putExtra( android.provider.Settings.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI, intent.toUri(Intent.URI_INTENT_SCHEME)); trampolineIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivity(trampolineIntent); return true; } private boolean shouldShowTwoPaneDeepLink(Intent intent) { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this)) { if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this)) { return false; return false; } } final Intent intent = getIntent(); // Only starts trampoline for deep links. Should return false for all the cases that // Only starts trampoline for deep links. Should return false for all the cases that // Settings app starts SettingsActivity or SubSetting by itself. // Settings app starts SettingsActivity or SubSetting by itself. if (intent.getAction() == null) { if (intent.getAction() == null) { Loading @@ -377,15 +395,14 @@ public class SettingsActivity extends SettingsBaseActivity return false; return false; } } // It's a deep link intent, SettingsHomepageActivity will set SplitPairRule and start it. if (TextUtils.equals(intent.getAction(), Intent.ACTION_CREATE_SHORTCUT)) { final Intent trampolineIntent = // Returns false to show full screen for Intent.ACTION_CREATE_SHORTCUT because new Intent(android.provider.Settings.ACTION_SETTINGS_LARGE_SCREEN_DEEP_LINK); // - Launcher startActivityForResult for Intent.ACTION_CREATE_SHORTCUT and activity trampolineIntent.replaceExtras(intent); // stack starts from launcher, CreateShortcutActivity will not follows SplitPaitRule trampolineIntent.putExtra( // registered by Settings. android.provider.Settings.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_URI, // - There is no CreateShortcutActivity entry point from Settings app UI. intent.toUri(Intent.URI_INTENT_SCHEME)); return false; trampolineIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); } startActivity(trampolineIntent); return true; return true; } } Loading