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

Commit 2560e2ea authored by Jesse Evans's avatar Jesse Evans Committed by android-build-merger
Browse files

Merge "Hides app buttons for instant apps" into oc-dev am: 965508fc

am: 34e0c7af

Change-Id: I8b0624d28b43274465b9249552290fac950e9638
parents 681dd00a 34e0c7af
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ import com.android.settings.core.lifecycle.events.OnResume;
import com.android.settings.enterprise.DevicePolicyManagerWrapper;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState;

import java.util.ArrayList;
@@ -155,7 +156,8 @@ public class AppButtonsPreferenceController extends PreferenceController impleme

    @Override
    public boolean isAvailable() {
        return mAppEntry != null;
        // TODO(b/37313605): Re-enable once this controller supports instant apps
        return mAppEntry != null && !AppUtils.isInstant(mAppEntry.info);
    }

    @Override
+30 −1
Original line number Diff line number Diff line
@@ -19,8 +19,8 @@ package com.android.settings.fuelgauge;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
@@ -48,7 +48,9 @@ import com.android.settings.TestConfig;
import com.android.settings.core.lifecycle.Lifecycle;
import com.android.settings.enterprise.DevicePolicyManagerWrapper;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;

import org.junit.Before;
import org.junit.Test;
@@ -61,6 +63,7 @@ import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -188,6 +191,32 @@ public class AppButtonsPreferenceControllerTest {
        verify(mUninstallButton).setEnabled(false);
    }

    @Test
    public void testIsAvailable_nonInstantApp() throws Exception {
        mController.mAppEntry = mAppEntry;
        ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
                new InstantAppDataProvider() {
                    @Override
                    public boolean isInstantApp(ApplicationInfo info) {
                        return false;
                    }
                });
        assertThat(mController.isAvailable()).isTrue();
    }

    @Test
    public void testIsAvailable_instantApp() throws Exception {
        mController.mAppEntry = mAppEntry;
        ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
                new InstantAppDataProvider() {
                    @Override
                    public boolean isInstantApp(ApplicationInfo info) {
                        return true;
                    }
                });
        assertThat(mController.isAvailable()).isFalse();
    }

    @Test
    public void testUpdateUninstallButton_isDeviceAdminApp_setButtonDisable() {
        doReturn(true).when(mController).handleDisableable(any());