[Large screen] Set alwaysExpand for SearchActivity.
Set alwaysExpand and SearchActivity will show in full screen. Bug: 196923591 Test: manual Settings -> Search settings Change-Id: I4174753bce15232342fa69d0845225a95d757782
This commit is contained in:
@@ -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 android.util.Log;
|
||||
|
||||
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.Settings;
|
||||
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 @@ public class ActivityEmbeddingRulesController {
|
||||
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 @@ public class ActivityEmbeddingRulesController {
|
||||
|
||||
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 @@ public class ActivityEmbeddingRulesController {
|
||||
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());
|
||||
|
Reference in New Issue
Block a user