Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2cb885c authored by Arc Wang's avatar Arc Wang Committed by Android (Google) Code Review
Browse files

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

parents 69c9e424 dcc46cf1
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -67,17 +67,21 @@ public class ActivityEmbeddingRulesController {
        registerTwoPanePairRule(mContext,
                getComponentName(Settings.class),
                getComponentName(SubSettings.class),
                null /* secondaryIntentAction */,
                true /* finishPrimaryWithSecondary */,
                true /* finishSecondaryWithPrimary */);
    }

    /** Register a SplitPairRule for 2-pane. */
    public static void registerTwoPanePairRule(Context context,
            ComponentName primary, ComponentName secondary,
            boolean finishPrimaryWithSecondary, boolean finishSecondaryWithPrimary) {
            ComponentName primaryComponent,
            ComponentName secondaryComponent,
            String secondaryIntentAction,
            boolean finishPrimaryWithSecondary,
            boolean finishSecondaryWithPrimary) {
        final Set<SplitPairFilter> filters = new HashSet<>();
        filters.add(new SplitPairFilter(primary, secondary,
                null /* secondaryActivityIntentAction */));
        filters.add(new SplitPairFilter(primaryComponent, secondaryComponent,
                secondaryIntentAction));

        SplitController.getInstance().registerRule(new SplitPairRule(filters,
                finishPrimaryWithSecondary,
+5 −5
Original line number Diff line number Diff line
@@ -18,11 +18,9 @@ package com.android.settings.homepage;

import android.animation.LayoutTransition;
import android.app.ActivityManager;
import android.app.PendingIntent;
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.FeatureFlagUtils;
@@ -36,16 +34,15 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.window.embedding.SplitController;

import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.Utils;
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.ActivityEmbeddingUtils;
import com.android.settings.core.CategoryMixin;
import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
@@ -207,6 +204,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
            finish();
            return;
        }
        targetIntent.setComponent(targetComponentName);

        // To prevent launchDeepLinkIntentToRight again for configuration change.
        intent.setAction(null);
@@ -223,11 +221,13 @@ public class SettingsHomepageActivity extends FragmentActivity implements
        ActivityEmbeddingRulesController.registerTwoPanePairRule(this,
                new ComponentName(Utils.SETTINGS_PACKAGE_NAME, ALIAS_DEEP_LINK),
                targetComponentName,
                targetIntent.getAction(),
                true /* finishPrimaryWithSecondary */,
                true /* finishSecondaryWithPrimary */);
        ActivityEmbeddingRulesController.registerTwoPanePairRule(this,
                new ComponentName(Settings.class.getPackageName(), Settings.class.getName()),
                targetComponentName,
                targetIntent.getAction(),
                true /* finishPrimaryWithSecondary */,
                true /* finishSecondaryWithPrimary */);
        startActivity(targetIntent);