Merge "Show work notifications in the shade unless on keyguard." into pi-dev

This commit is contained in:
TreeHugger Robot
2018-04-05 15:30:54 +00:00
committed by Android (Google) Code Review
2 changed files with 12 additions and 11 deletions

View File

@@ -47,7 +47,6 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.List;
/**
* Handles keeping track of the current user, profiles, and various things related to hiding
@@ -352,7 +351,8 @@ public class NotificationLockscreenUserManager implements Dumpable {
final boolean allowedByUser = 0 != Settings.Secure.getIntForUser(
mContext.getContentResolver(),
Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0, userHandle);
final boolean allowedByDpm = adminAllowsUnredactedNotifications(userHandle);
final boolean allowedByDpm = adminAllowsKeyguardFeature(userHandle,
DevicePolicyManager.KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS);
final boolean allowed = allowedByUser && allowedByDpm;
mUsersAllowingPrivateNotifications.append(userHandle, allowed);
return allowed;
@@ -361,13 +361,13 @@ public class NotificationLockscreenUserManager implements Dumpable {
return mUsersAllowingPrivateNotifications.get(userHandle);
}
private boolean adminAllowsUnredactedNotifications(int userHandle) {
private boolean adminAllowsKeyguardFeature(int userHandle, int feature) {
if (userHandle == UserHandle.USER_ALL) {
return true;
}
final int dpmFlags = mDevicePolicyManager.getKeyguardDisabledFeatures(null /* admin */,
userHandle);
return (dpmFlags & DevicePolicyManager.KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS) == 0;
final int dpmFlags =
mDevicePolicyManager.getKeyguardDisabledFeatures(null /* admin */, userHandle);
return (dpmFlags & feature) == 0;
}
/**
@@ -389,14 +389,17 @@ public class NotificationLockscreenUserManager implements Dumpable {
* "public" (secure & locked) mode?
*/
private boolean userAllowsNotificationsInPublic(int userHandle) {
if (isCurrentProfile(userHandle)) {
if (isCurrentProfile(userHandle) && userHandle != mCurrentUserId) {
return true;
}
if (mUsersAllowingNotifications.indexOfKey(userHandle) < 0) {
final boolean allowed = 0 != Settings.Secure.getIntForUser(
final boolean allowedByUser = 0 != Settings.Secure.getIntForUser(
mContext.getContentResolver(),
Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, 0, userHandle);
final boolean allowedByDpm = adminAllowsKeyguardFeature(userHandle,
DevicePolicyManager.KEYGUARD_DISABLE_SECURE_NOTIFICATIONS);
final boolean allowed = allowedByUser && allowedByDpm;
mUsersAllowingNotifications.append(userHandle, allowed);
return allowed;
}
@@ -428,7 +431,6 @@ public class NotificationLockscreenUserManager implements Dumpable {
Notification.VISIBILITY_PRIVATE;
}
private void updateCurrentProfilesCache() {
synchronized (mCurrentProfiles) {
mCurrentProfiles.clear();

View File

@@ -323,8 +323,7 @@ public class NotificationViewHierarchyManager {
boolean showOnKeyguard = mLockscreenUserManager.shouldShowOnKeyguard(entry
.notification);
if (suppressedSummary
|| (mLockscreenUserManager.isLockscreenPublicMode(userId)
&& !mLockscreenUserManager.shouldShowLockscreenNotifications())
|| mLockscreenUserManager.shouldHideNotifications(userId)
|| (isLocked && !showOnKeyguard)) {
entry.row.setVisibility(View.GONE);
} else {