Hides app buttons for instant apps
Hides the app buttons when the app is an instant app. Added a todo to remove this functionality when instant apps are properly supported by this controller. Test: make RunSettingsRoboTests Bug: 37313605 Change-Id: I3fca106a8e72c41b626e1182f5ba1089b90e8e2a
This commit is contained in:
@@ -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
|
||||
|
@@ -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());
|
||||
|
Reference in New Issue
Block a user