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

Commit 925cce83 authored by Wale Ogunwale's avatar Wale Ogunwale Committed by Android (Google) Code Review
Browse files

Merge "Revert "Add useSystemProvidedLauncherForSecondary config""

parents fa5180ed 6a9d19dc
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -3863,10 +3863,6 @@
         {@see android.view.Display#FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS} -->
    <string name="config_secondaryHomeComponent" translatable="false">com.android.launcher3/com.android.launcher3.SecondaryDisplayLauncher</string>

    <!-- Force secondary home launcher specified in config_secondaryHomeComponent always. If this is
         not set, secondary home launcher can be replaced by user. -->
    <bool name ="config_useSystemProvidedLauncherForSecondary">false</bool>

    <!-- If device supports corner radius on windows.
         This should be turned off on low-end devices to improve animation performance. -->
    <bool name="config_supportsRoundedCornersOnWindows">true</bool>
+0 −1
Original line number Diff line number Diff line
@@ -3678,7 +3678,6 @@

  <!-- For Secondary Launcher -->
  <java-symbol type="string" name="config_secondaryHomeComponent" />
  <java-symbol type="bool" name="config_useSystemProvidedLauncherForSecondary" />

  <java-symbol type="string" name="battery_saver_notification_channel_name" />
  <java-symbol type="string" name="battery_saver_sticky_disabled_notification_title" />
+2 −4
Original line number Diff line number Diff line
@@ -5810,10 +5810,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
     */
    Intent getSecondaryHomeIntent(String preferredPackage) {
        final Intent intent = new Intent(mTopAction, mTopData != null ? Uri.parse(mTopData) : null);
        final boolean useSystemProvidedLauncher = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_useSystemProvidedLauncherForSecondary);
        if (preferredPackage == null || useSystemProvidedLauncher) {
            // Using the component stored in config if no package name or forced.
        if (preferredPackage == null) {
            // Using the component stored in config if no package name.
            final String secondaryHomeComponent = mContext.getResources().getString(
                    com.android.internal.R.string.config_secondaryHomeComponent);
            intent.setComponent(ComponentName.unflattenFromString(secondaryHomeComponent));
+0 −67
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
@@ -56,7 +55,6 @@ import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.graphics.Rect;
import android.platform.test.annotations.Presubmit;
import android.util.Pair;
@@ -538,71 +536,6 @@ public class RootActivityContainerTests extends ActivityTestsBase {
        assertEquals(comp.getClassName(), resolvedInfo.first.name);
    }

    /**
     * Tests that the default secondary home activity is always picked when it is in forced by
     * config_useSystemProvidedLauncherForSecondary.
     */
    @Test
    public void testResolveSecondaryHomeActivityForced() {
        Resources resources = mContext.getResources();
        spyOn(resources);
        final String defaultSecondaryHome =
                "com.android.test/com.android.test.TestDefaultSecondaryHome";
        final ComponentName secondaryComp = ComponentName.unflattenFromString(defaultSecondaryHome);
        doReturn(defaultSecondaryHome).when(resources).getString(
                com.android.internal.R.string.config_secondaryHomeComponent);
        doReturn(true).when(resources).getBoolean(
                com.android.internal.R.bool.config_useSystemProvidedLauncherForSecondary);

        final Intent secondaryHomeIntent = mService.getSecondaryHomeIntent(null);
        assertEquals(secondaryComp, secondaryHomeIntent.getComponent());

        final ActivityInfo aInfoSecondary = new ActivityInfo();
        aInfoSecondary.name = secondaryComp.getClassName();
        aInfoSecondary.applicationInfo = new ApplicationInfo();
        aInfoSecondary.applicationInfo.packageName = secondaryComp.getPackageName();
        doReturn(aInfoSecondary).when(mRootActivityContainer).resolveHomeActivity(anyInt(),
                refEq(secondaryHomeIntent));

        final Intent homeIntent = mService.getHomeIntent();
        final ActivityInfo aInfoDefault = new ActivityInfo();
        aInfoDefault.name = "fakeHomeActivity";
        aInfoDefault.applicationInfo = new ApplicationInfo();
        aInfoDefault.applicationInfo.packageName = "fakeHomePackage";
        doReturn(aInfoDefault).when(mRootActivityContainer).resolveHomeActivity(anyInt(),
                refEq(homeIntent));

        // Let resolveActivities call to validate both main launcher and second launcher so that
        // resolveActivities call does not work as enabler for secondary.
        final List<ResolveInfo> resolutions1 = new ArrayList<>();
        final ResolveInfo resolveInfo1 = new ResolveInfo();
        resolveInfo1.activityInfo = new ActivityInfo();
        resolveInfo1.activityInfo.name = aInfoDefault.name;
        resolveInfo1.activityInfo.applicationInfo = aInfoDefault.applicationInfo;
        resolutions1.add(resolveInfo1);
        doReturn(resolutions1).when(mRootActivityContainer).resolveActivities(anyInt(),
                refEq(homeIntent));
        final List<ResolveInfo> resolutions2 = new ArrayList<>();
        final ResolveInfo resolveInfo2 = new ResolveInfo();
        resolveInfo2.activityInfo = new ActivityInfo();
        resolveInfo2.activityInfo.name = aInfoSecondary.name;
        resolveInfo2.activityInfo.applicationInfo = aInfoSecondary.applicationInfo;
        resolutions2.add(resolveInfo2);
        doReturn(resolutions2).when(mRootActivityContainer).resolveActivities(anyInt(),
                refEq(secondaryHomeIntent));

        doReturn(true).when(mRootActivityContainer).canStartHomeOnDisplay(
                any(), anyInt(), anyBoolean());

        final Pair<ActivityInfo, Intent> resolvedInfo = mRootActivityContainer
                .resolveSecondaryHomeActivity(0 /* userId */, 1 /* displayId */);

        assertEquals(secondaryComp.getClassName(), resolvedInfo.first.name);
        assertEquals(secondaryComp.getPackageName(),
                resolvedInfo.first.applicationInfo.packageName);
        assertEquals(aInfoSecondary.name, resolvedInfo.first.name);
    }

    /**
     * Tests that secondary home should be selected if default home not support secondary displays
     * or there is no matched activity in the same package as selected default home.