Merge "[Large screen] Set alwaysExpand for SearchActivity." into sc-v2-dev
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
index e1360fd..e9dcea1 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
@@ -17,6 +17,7 @@
package com.android.settings.activityembedding;
import android.app.Activity;
+import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -25,6 +26,7 @@
import androidx.annotation.NonNull;
import androidx.window.embedding.ActivityFilter;
+import androidx.window.embedding.ActivityRule;
import androidx.window.embedding.SplitController;
import androidx.window.embedding.SplitPairFilter;
import androidx.window.embedding.SplitPairRule;
@@ -34,6 +36,7 @@
import com.android.settings.SubSettings;
import com.android.settings.Utils;
import com.android.settings.homepage.SettingsHomepageActivity;
+import com.android.settings.overlay.FeatureFactory;
import java.util.HashSet;
import java.util.Set;
@@ -70,6 +73,8 @@
null /* secondaryIntentAction */,
true /* finishPrimaryWithSecondary */,
true /* finishSecondaryWithPrimary */);
+ // Set rules here to show full screen for specified Activity.
+ registerAlwaysExpandRule();
}
/** Register a SplitPairRule for 2-pane. */
@@ -85,21 +90,31 @@
SplitController.getInstance().registerRule(new SplitPairRule(filters,
finishPrimaryWithSecondary,
- finishSecondaryWithPrimary, true /* clearTop */,
+ finishSecondaryWithPrimary,
+ true /* clearTop */,
ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(context),
ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(context),
ActivityEmbeddingUtils.SPLIT_RATIO,
LayoutDirection.LOCALE));
}
+ private void registerAlwaysExpandRule() {
+ final Set<ActivityFilter> activityFilters = new HashSet<>();
+
+ final Intent searchIntent = FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
+ .buildSearchIntent(mContext, SettingsEnums.SETTINGS_HOMEPAGE);
+ addActivityFilter(activityFilters, searchIntent);
+
+ mSplitController.registerRule(new ActivityRule(activityFilters, true /* alwaysExpand */));
+ }
+
private void registerHomepagePlaceholderRule() {
final Set<ActivityFilter> activityFilters = new HashSet<>();
- activityFilters.add(new ActivityFilter(getComponentName(SettingsHomepageActivity.class),
- null /* intentAction */));
- activityFilters.add(new ActivityFilter(getComponentName(Settings.class),
- null /* intentAction */));
- activityFilters.add(new ActivityFilter(new ComponentName(Utils.SETTINGS_PACKAGE_NAME,
- SettingsHomepageActivity.ALIAS_DEEP_LINK), null /* intentAction */));
+ addActivityFilter(activityFilters, SettingsHomepageActivity.class);
+ addActivityFilter(activityFilters, Settings.class);
+ addActivityFilter(activityFilters, new ComponentName(Utils.SETTINGS_PACKAGE_NAME,
+ SettingsHomepageActivity.ALIAS_DEEP_LINK));
+
final Intent intent = new Intent();
intent.setComponent(getComponentName(Settings.NetworkDashboardActivity.class));
final SplitPlaceholderRule placeholderRule = new SplitPlaceholderRule(
@@ -113,6 +128,22 @@
mSplitController.registerRule(placeholderRule);
}
+ private void addActivityFilter(Set<ActivityFilter> activityFilters,
+ Class<? extends Activity> activityClass) {
+ activityFilters.add(new ActivityFilter(getComponentName(activityClass),
+ null /* intentAction */));
+ }
+
+ private void addActivityFilter(Set<ActivityFilter> activityFilters, Intent intent) {
+ activityFilters.add(new ActivityFilter(new ComponentName("*" /* pkg */, "*" /* cls */),
+ intent.getAction()));
+ }
+
+ private void addActivityFilter(Set<ActivityFilter> activityFilters,
+ ComponentName componentName) {
+ activityFilters.add(new ActivityFilter(componentName, null /* intentAction */));
+ }
+
@NonNull
private ComponentName getComponentName(Class<? extends Activity> activityClass) {
return new ComponentName(mContext.getPackageName(), activityClass.getName());