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.enterprise.DevicePolicyManagerWrapper;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -155,7 +156,8 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAvailable() {
|
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
|
@Override
|
||||||
|
@@ -19,8 +19,8 @@ package com.android.settings.fuelgauge;
|
|||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.Matchers.any;
|
import static org.mockito.Matchers.any;
|
||||||
import static org.mockito.Matchers.anyString;
|
|
||||||
import static org.mockito.Matchers.anyInt;
|
import static org.mockito.Matchers.anyInt;
|
||||||
|
import static org.mockito.Matchers.anyString;
|
||||||
import static org.mockito.Matchers.eq;
|
import static org.mockito.Matchers.eq;
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.doNothing;
|
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.core.lifecycle.Lifecycle;
|
||||||
import com.android.settings.enterprise.DevicePolicyManagerWrapper;
|
import com.android.settings.enterprise.DevicePolicyManagerWrapper;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
|
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -61,6 +63,7 @@ import org.mockito.invocation.InvocationOnMock;
|
|||||||
import org.mockito.stubbing.Answer;
|
import org.mockito.stubbing.Answer;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
|
import org.robolectric.util.ReflectionHelpers;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||||
@@ -188,6 +191,32 @@ public class AppButtonsPreferenceControllerTest {
|
|||||||
verify(mUninstallButton).setEnabled(false);
|
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
|
@Test
|
||||||
public void testUpdateUninstallButton_isDeviceAdminApp_setButtonDisable() {
|
public void testUpdateUninstallButton_isDeviceAdminApp_setButtonDisable() {
|
||||||
doReturn(true).when(mController).handleDisableable(any());
|
doReturn(true).when(mController).handleDisableable(any());
|
||||||
|
Reference in New Issue
Block a user