Do not use hidden UserManager hidden APIs
- isUserRunning(userId): replaced with isUserRunning(UserHandle.of(userId))
- getUsers(true): replaced with getSerialNumbersOfUsers(true) and
getUserForSerialNumber(setialNumber)
Bug: 137202333
Test: make
Change-Id: I34103353d4e703bff2fc09925f91d3f2dd93150d
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index e9fd26d..6486ae2 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -64,6 +64,7 @@
import com.android.internal.telephony.util.NotificationChannelController;
import com.android.phone.settings.VoicemailSettingsActivity;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -375,9 +376,8 @@
.setOnlyAlertOnce(isRefresh);
final Notification notification = builder.build();
- List<UserInfo> users = mUserManager.getUsers(true);
- for (UserInfo user : users) {
- final UserHandle userHandle = user.getUserHandle();
+ List<UserHandle> users = getUsersExcludeDying();
+ for (UserHandle userHandle : users) {
if (!hasUserRestriction(
UserManager.DISALLOW_OUTGOING_CALLS, userHandle)
&& !mUserManager.isManagedProfile(userHandle.getIdentifier())) {
@@ -392,9 +392,8 @@
}
}
} else {
- List<UserInfo> users = mUserManager.getUsers(true /* excludeDying */);
- for (UserInfo user : users) {
- final UserHandle userHandle = user.getUserHandle();
+ List<UserHandle> users = getUsersExcludeDying();
+ for (UserHandle userHandle : users) {
if (!hasUserRestriction(
UserManager.DISALLOW_OUTGOING_CALLS, userHandle)
&& !mUserManager.isManagedProfile(userHandle.getIdentifier())) {
@@ -410,6 +409,16 @@
}
}
+ private List<UserHandle> getUsersExcludeDying() {
+ long[] serialNumbersOfUsers =
+ mUserManager.getSerialNumbersOfUsers(/* excludeDying= */ true);
+ List<UserHandle> users = new ArrayList<>(serialNumbersOfUsers.length);
+ for (long serialNumber : serialNumbersOfUsers) {
+ users.add(mUserManager.getUserForSerialNumber(serialNumber));
+ }
+ return users;
+ }
+
private boolean hasUserRestriction(String restrictionKey, UserHandle userHandle) {
final List<UserManager.EnforcingUser> sources = mUserManager
.getUserRestrictionSources(restrictionKey, userHandle);