Merge "FBE notification is updated when language changed"
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java
index ebc18bc..cd4a8f3 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsService.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java
@@ -110,6 +110,7 @@
import android.security.keystore2.AndroidKeyStoreLoadStoreParameter;
import android.security.keystore2.AndroidKeyStoreProvider;
import android.service.gatekeeper.IGateKeeperService;
+import android.service.notification.StatusBarNotification;
import android.system.keystore2.Domain;
import android.text.TextUtils;
import android.util.ArrayMap;
@@ -581,6 +582,7 @@
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_USER_ADDED);
filter.addAction(Intent.ACTION_USER_STARTING);
+ filter.addAction(Intent.ACTION_LOCALE_CHANGED);
injector.getContext().registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter,
null, null);
@@ -602,6 +604,20 @@
LocalServices.addService(LockSettingsInternal.class, new LocalService());
}
+ private void updateActivatedEncryptionNotifications(String reason) {
+ for (UserInfo userInfo : mUserManager.getUsers()) {
+ Context userContext = mContext.createContextAsUser(UserHandle.of(userInfo.id), 0);
+ NotificationManager nm = (NotificationManager)
+ userContext.getSystemService(Context.NOTIFICATION_SERVICE);
+ for (StatusBarNotification notification : nm.getActiveNotifications()) {
+ if (notification.getId() == SystemMessage.NOTE_FBE_ENCRYPTED_NOTIFICATION) {
+ maybeShowEncryptionNotificationForUser(userInfo.id, reason);
+ break;
+ }
+ }
+ }
+ }
+
/**
* If the account is credential-encrypted, show notification requesting the user to unlock the
* device.
@@ -799,6 +815,8 @@
} else if (Intent.ACTION_USER_STARTING.equals(intent.getAction())) {
final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
mStorage.prefetchUser(userHandle);
+ } else if (Intent.ACTION_LOCALE_CHANGED.equals(intent.getAction())) {
+ updateActivatedEncryptionNotifications("locale changed");
}
}
};