Merge "Set component name only for ConfirmDeviceCredentialActivity." into main
diff --git a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
index b77d5eb..ecb2a48 100644
--- a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
+++ b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
@@ -78,6 +78,11 @@
return;
}
+ if (mNetworkPolicyManager == null) {
+ Log.w(TAG, "syncPolicyIfNeeded: invalid mNetworkPolicyManager");
+ return;
+ }
+
final SharedPreferences.Editor editor = getManualDenylistPref().edit();
final int[] existedUids = mNetworkPolicyManager
.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
@@ -91,6 +96,11 @@
/** Set policy flags for specific UID. */
public void setUidPolicyLocked(int uid, int policy) {
+ if (mNetworkPolicyManager == null) {
+ Log.w(TAG, "setUidPolicyLocked: invalid mNetworkPolicyManager");
+ return;
+ }
+
Log.i(TAG, "setUidPolicyLocked: uid=" + uid + " policy=" + policy);
synchronized (mLock) {
mNetworkPolicyManager.setUidPolicy(uid, policy);
@@ -100,7 +110,7 @@
/** Suggest a list of package to set as POLICY_REJECT. */
public void setDenylist(Set<Integer> denylistTargetUids) {
- if (denylistTargetUids == null) {
+ if (denylistTargetUids == null || mNetworkPolicyManager == null) {
return;
}
final Set<Integer> manualDenylistUids = getDenylistAllUids(getManualDenylistPref());
@@ -164,6 +174,12 @@
Log.w(TAG, "resetDenylistIfNeeded: invalid conditions");
return;
}
+
+ if (mNetworkPolicyManager == null) {
+ Log.w(TAG, "setUidPolicyLocked: invalid mNetworkPolicyManager");
+ return;
+ }
+
synchronized (mLock) {
final int[] uids = mNetworkPolicyManager
.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index 0ba52ea..36756f9 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -124,9 +124,7 @@
@Override
public void launchChooseLock(Bundle chooseLockFingerprintExtras) {
- final boolean isInSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
- Intent intent = isInSetupWizard ? new Intent(this, SetupChooseLockGeneric.class)
- : new Intent(this, ChooseLockGeneric.class);
+ final Intent intent = new Intent(this, SetupChooseLockGeneric.class);
intent.setAction(mNewPasswordAction);
intent.putExtras(chooseLockFingerprintExtras);
intent.putExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE,
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 0cf01e3..c387d9e 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -919,7 +919,7 @@
d = mCreateUserDialogController.createDialog(
getActivity(),
this::startActivityForResult,
- UserManager.isMultipleAdminEnabled(),
+ canCreateAdminUser(),
(userName, userIcon, isAdmin) -> {
mPendingUserIcon = userIcon;
mPendingUserName = userName;
@@ -937,6 +937,19 @@
return d;
}
+ /**
+ * Checks if the creation of a new admin user is allowed.
+ * @return {@code true} if creating a new admin is allowed, {@code false} otherwise.
+ */
+ private boolean canCreateAdminUser() {
+ if (Flags.unicornModeRefactoringForHsumReadOnly()) {
+ return UserManager.isMultipleAdminEnabled()
+ && !mUserManager.hasUserRestriction(UserManager.DISALLOW_GRANT_ADMIN);
+ } else {
+ return UserManager.isMultipleAdminEnabled();
+ }
+ }
+
@Override
public int getDialogMetricsCategory(int dialogId) {
switch (dialogId) {
diff --git a/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
index b8c9b5b..e0381f2 100644
--- a/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
@@ -50,6 +50,7 @@
import org.robolectric.shadows.ShadowPausedAsyncTask;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
@RunWith(RobolectricTestRunner.class)
@@ -185,12 +186,7 @@
NotificationManager.IMPORTANCE_DEFAULT));
ParceledListSlice<NotificationChannelGroup> groups = new ParceledListSlice<>(
- new ArrayList<NotificationChannelGroup>() {
- {
- add(group1);
- add(group2);
- }
- }
+ Arrays.asList(group1, group2)
);
when(mBackend.getGroups(eq(mAppRow.pkg), eq(mAppRow.uid))).thenReturn(groups);