Merge "[Large screen] Fix SplitPaitRule not match for deep link problem" into sc-v2-dev

This commit is contained in:
Arc Wang
2021-10-07 10:25:37 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 9 deletions

View File

@@ -67,17 +67,21 @@ public class ActivityEmbeddingRulesController {
registerTwoPanePairRule(mContext, registerTwoPanePairRule(mContext,
getComponentName(Settings.class), getComponentName(Settings.class),
getComponentName(SubSettings.class), getComponentName(SubSettings.class),
null /* secondaryIntentAction */,
true /* finishPrimaryWithSecondary */, true /* finishPrimaryWithSecondary */,
true /* finishSecondaryWithPrimary */); true /* finishSecondaryWithPrimary */);
} }
/** Register a SplitPairRule for 2-pane. */ /** Register a SplitPairRule for 2-pane. */
public static void registerTwoPanePairRule(Context context, public static void registerTwoPanePairRule(Context context,
ComponentName primary, ComponentName secondary, ComponentName primaryComponent,
boolean finishPrimaryWithSecondary, boolean finishSecondaryWithPrimary) { ComponentName secondaryComponent,
String secondaryIntentAction,
boolean finishPrimaryWithSecondary,
boolean finishSecondaryWithPrimary) {
final Set<SplitPairFilter> filters = new HashSet<>(); final Set<SplitPairFilter> filters = new HashSet<>();
filters.add(new SplitPairFilter(primary, secondary, filters.add(new SplitPairFilter(primaryComponent, secondaryComponent,
null /* secondaryActivityIntentAction */)); secondaryIntentAction));
SplitController.getInstance().registerRule(new SplitPairRule(filters, SplitController.getInstance().registerRule(new SplitPairRule(filters,
finishPrimaryWithSecondary, finishPrimaryWithSecondary,

View File

@@ -18,11 +18,9 @@ package com.android.settings.homepage;
import android.animation.LayoutTransition; import android.animation.LayoutTransition;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.PendingIntent;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
@@ -36,16 +34,15 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import androidx.window.embedding.SplitController;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Settings; import com.android.settings.Settings;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.accounts.AvatarViewMixin; import com.android.settings.accounts.AvatarViewMixin;
import com.android.settings.core.CategoryMixin;
import com.android.settings.core.FeatureFlags;
import com.android.settings.activityembedding.ActivityEmbeddingRulesController; import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.core.CategoryMixin;
import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.contextualcards.ContextualCardsFragment; import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin; import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
@@ -207,6 +204,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
finish(); finish();
return; return;
} }
targetIntent.setComponent(targetComponentName);
// To prevent launchDeepLinkIntentToRight again for configuration change. // To prevent launchDeepLinkIntentToRight again for configuration change.
intent.setAction(null); intent.setAction(null);
@@ -223,11 +221,13 @@ public class SettingsHomepageActivity extends FragmentActivity implements
ActivityEmbeddingRulesController.registerTwoPanePairRule(this, ActivityEmbeddingRulesController.registerTwoPanePairRule(this,
new ComponentName(Utils.SETTINGS_PACKAGE_NAME, ALIAS_DEEP_LINK), new ComponentName(Utils.SETTINGS_PACKAGE_NAME, ALIAS_DEEP_LINK),
targetComponentName, targetComponentName,
targetIntent.getAction(),
true /* finishPrimaryWithSecondary */, true /* finishPrimaryWithSecondary */,
true /* finishSecondaryWithPrimary */); true /* finishSecondaryWithPrimary */);
ActivityEmbeddingRulesController.registerTwoPanePairRule(this, ActivityEmbeddingRulesController.registerTwoPanePairRule(this,
new ComponentName(Settings.class.getPackageName(), Settings.class.getName()), new ComponentName(Settings.class.getPackageName(), Settings.class.getName()),
targetComponentName, targetComponentName,
targetIntent.getAction(),
true /* finishPrimaryWithSecondary */, true /* finishPrimaryWithSecondary */,
true /* finishSecondaryWithPrimary */); true /* finishSecondaryWithPrimary */);
startActivity(targetIntent); startActivity(targetIntent);