Merge "Avoid NPE when accessing to EnforcedAdmin" into qt-dev
This commit is contained in:
@@ -76,11 +76,13 @@ public class RestrictedLockUtils {
|
||||
public static void sendShowAdminSupportDetailsIntent(Context context, EnforcedAdmin admin) {
|
||||
final Intent intent = getShowAdminSupportDetailsIntent(context, admin);
|
||||
int targetUserId = UserHandle.myUserId();
|
||||
if (admin != null && admin.user != null
|
||||
&& isCurrentUserOrProfile(context, admin.user.getIdentifier())) {
|
||||
targetUserId = admin.user.getIdentifier();
|
||||
if (admin != null) {
|
||||
if (admin.user != null
|
||||
&& isCurrentUserOrProfile(context, admin.user.getIdentifier())) {
|
||||
targetUserId = admin.user.getIdentifier();
|
||||
}
|
||||
intent.putExtra(DevicePolicyManager.EXTRA_RESTRICTION, admin.enforcedRestriction);
|
||||
}
|
||||
intent.putExtra(DevicePolicyManager.EXTRA_RESTRICTION, admin.enforcedRestriction);
|
||||
context.startActivityAsUser(intent, UserHandle.of(targetUserId));
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.settingslib;
|
||||
|
||||
import static android.app.admin.DevicePolicyManager.EXTRA_RESTRICTION;
|
||||
import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE;
|
||||
import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT;
|
||||
import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_REMOTE_INPUT;
|
||||
@@ -28,11 +29,13 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.os.UserHandle;
|
||||
@@ -42,6 +45,7 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Answers;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
@@ -283,6 +287,26 @@ public class RestrictedLockUtilsTest {
|
||||
assertThat(profile).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendShowAdminSupportDetailsIntent_extraRestrictionProvided() {
|
||||
EnforcedAdmin enforcedAdmin = new EnforcedAdmin();
|
||||
enforcedAdmin.enforcedRestriction = "Dummy";
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, enforcedAdmin);
|
||||
|
||||
ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
|
||||
verify(mContext).startActivityAsUser(intentCaptor.capture(), any());
|
||||
assertThat(intentCaptor.getValue().getExtra(EXTRA_RESTRICTION)).isEqualTo("Dummy");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendShowAdminSupportDetailsIntent_noExtraRestriction() {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, null);
|
||||
|
||||
ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
|
||||
verify(mContext).startActivityAsUser(intentCaptor.capture(), any());
|
||||
assertThat(intentCaptor.getValue().getExtra(EXTRA_RESTRICTION)).isNull();
|
||||
}
|
||||
|
||||
private UserInfo setUpUser(int userId, ComponentName[] admins) {
|
||||
UserInfo userInfo = new UserInfo(userId, "primary", 0);
|
||||
when(mUserManager.getUserInfo(userId)).thenReturn(userInfo);
|
||||
|
||||
Reference in New Issue
Block a user