Loading src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java +2 −2 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp @Override public int getAvailabilityStatus() { // TODO(b/37313605): Re-enable once this controller supports instant apps return isInstantApp() || isSystemModule() ? DISABLED_FOR_USER : AVAILABLE; return mFinishing || isInstantApp() || isSystemModule() ? DISABLED_FOR_USER : AVAILABLE; } @Override Loading Loading @@ -190,7 +190,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp @Override public void onResume() { if (isAvailable() && !mFinishing) { if (isAvailable()) { mAppsControlDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction( mActivity, UserManager.DISALLOW_APPS_CONTROL, mUserId); mAppsControlDisallowedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced( Loading tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java +32 −13 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ import static com.android.settings.applications.appinfo.AppButtonsPreferenceCont import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; Loading @@ -41,8 +41,8 @@ import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; import android.content.om.OverlayManager; import android.content.om.OverlayInfo; import android.content.om.OverlayManager; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; Loading @@ -51,6 +51,8 @@ import android.os.UserManager; import android.util.ArraySet; import android.view.View; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; Loading @@ -61,7 +63,6 @@ import com.android.settingslib.applications.instantapps.InstantAppDataProvider; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.widget.ActionButtonsPreference; import java.util.Set; import org.junit.After; import org.junit.Before; import org.junit.Test; Loading @@ -72,12 +73,15 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.stubbing.Answer; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.annotation.Resetter; import org.robolectric.util.ReflectionHelpers; import java.util.Set; @RunWith(RobolectricTestRunner.class) public class AppButtonsPreferenceControllerTest { Loading Loading @@ -114,10 +118,9 @@ public class AppButtonsPreferenceControllerTest { @Mock private UserManager mUserManager; @Mock private Application mApplication; @Mock private PackageInfo mPackageInfo; private Context mContext; private Intent mUninstallIntent; private ActionButtonsPreference mButtonPrefs; private AppButtonsPreferenceController mController; Loading @@ -127,6 +130,7 @@ public class AppButtonsPreferenceControllerTest { MockitoAnnotations.initMocks(this); FakeFeatureFactory.setupForTest(); mContext = RuntimeEnvironment.application; doReturn(mDpm).when(mSettingsActivity).getSystemService(Context.DEVICE_POLICY_SERVICE); doReturn(mUserManager).when(mSettingsActivity).getSystemService(Context.USER_SERVICE); doReturn(mPackageManger).when(mSettingsActivity).getPackageManager(); Loading @@ -134,7 +138,7 @@ public class AppButtonsPreferenceControllerTest { doReturn(mOverlayManager).when(mSettingsActivity). getSystemService(OverlayManager.class); doReturn(mAppEntry).when(mState).getEntry(anyString(), anyInt()); when(mSettingsActivity.getApplication()).thenReturn(mApplication); doReturn(mContext).when(mSettingsActivity).getApplicationContext(); when(mSettingsActivity.getResources().getString(anyInt())).thenReturn(RESOURCE_STRING); mController = spy(new AppButtonsPreferenceController(mSettingsActivity, mFragment, Loading Loading @@ -163,6 +167,21 @@ public class AppButtonsPreferenceControllerTest { ShadowAppUtils.reset(); } @Test @Config(shadows = ShadowAppUtils.class) public void isAvailable_validPackageName_isTrue() { assertThat(mController.isAvailable()).isTrue(); } @Test public void isAvailable_nullPackageName_isFalse() { final AppButtonsPreferenceController controller = spy( new AppButtonsPreferenceController(mSettingsActivity, mFragment, mLifecycle, null, mState, REQUEST_UNINSTALL, REQUEST_REMOVE_DEVICE_ADMIN)); assertThat(controller.isAvailable()).isFalse(); } @Test public void retrieveAppEntry_hasAppEntry_notNull() throws PackageManager.NameNotFoundException { Loading Loading
src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java +2 −2 Original line number Diff line number Diff line Loading @@ -161,7 +161,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp @Override public int getAvailabilityStatus() { // TODO(b/37313605): Re-enable once this controller supports instant apps return isInstantApp() || isSystemModule() ? DISABLED_FOR_USER : AVAILABLE; return mFinishing || isInstantApp() || isSystemModule() ? DISABLED_FOR_USER : AVAILABLE; } @Override Loading Loading @@ -190,7 +190,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp @Override public void onResume() { if (isAvailable() && !mFinishing) { if (isAvailable()) { mAppsControlDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction( mActivity, UserManager.DISALLOW_APPS_CONTROL, mUserId); mAppsControlDisallowedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced( Loading
tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java +32 −13 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ import static com.android.settings.applications.appinfo.AppButtonsPreferenceCont import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; Loading @@ -41,8 +41,8 @@ import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; import android.content.om.OverlayManager; import android.content.om.OverlayInfo; import android.content.om.OverlayManager; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; Loading @@ -51,6 +51,8 @@ import android.os.UserManager; import android.util.ArraySet; import android.view.View; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; Loading @@ -61,7 +63,6 @@ import com.android.settingslib.applications.instantapps.InstantAppDataProvider; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.widget.ActionButtonsPreference; import java.util.Set; import org.junit.After; import org.junit.Before; import org.junit.Test; Loading @@ -72,12 +73,15 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.stubbing.Answer; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.annotation.Resetter; import org.robolectric.util.ReflectionHelpers; import java.util.Set; @RunWith(RobolectricTestRunner.class) public class AppButtonsPreferenceControllerTest { Loading Loading @@ -114,10 +118,9 @@ public class AppButtonsPreferenceControllerTest { @Mock private UserManager mUserManager; @Mock private Application mApplication; @Mock private PackageInfo mPackageInfo; private Context mContext; private Intent mUninstallIntent; private ActionButtonsPreference mButtonPrefs; private AppButtonsPreferenceController mController; Loading @@ -127,6 +130,7 @@ public class AppButtonsPreferenceControllerTest { MockitoAnnotations.initMocks(this); FakeFeatureFactory.setupForTest(); mContext = RuntimeEnvironment.application; doReturn(mDpm).when(mSettingsActivity).getSystemService(Context.DEVICE_POLICY_SERVICE); doReturn(mUserManager).when(mSettingsActivity).getSystemService(Context.USER_SERVICE); doReturn(mPackageManger).when(mSettingsActivity).getPackageManager(); Loading @@ -134,7 +138,7 @@ public class AppButtonsPreferenceControllerTest { doReturn(mOverlayManager).when(mSettingsActivity). getSystemService(OverlayManager.class); doReturn(mAppEntry).when(mState).getEntry(anyString(), anyInt()); when(mSettingsActivity.getApplication()).thenReturn(mApplication); doReturn(mContext).when(mSettingsActivity).getApplicationContext(); when(mSettingsActivity.getResources().getString(anyInt())).thenReturn(RESOURCE_STRING); mController = spy(new AppButtonsPreferenceController(mSettingsActivity, mFragment, Loading Loading @@ -163,6 +167,21 @@ public class AppButtonsPreferenceControllerTest { ShadowAppUtils.reset(); } @Test @Config(shadows = ShadowAppUtils.class) public void isAvailable_validPackageName_isTrue() { assertThat(mController.isAvailable()).isTrue(); } @Test public void isAvailable_nullPackageName_isFalse() { final AppButtonsPreferenceController controller = spy( new AppButtonsPreferenceController(mSettingsActivity, mFragment, mLifecycle, null, mState, REQUEST_UNINSTALL, REQUEST_REMOVE_DEVICE_ADMIN)); assertThat(controller.isAvailable()).isFalse(); } @Test public void retrieveAppEntry_hasAppEntry_notNull() throws PackageManager.NameNotFoundException { Loading