NoMan support for FBE.

Rebind to service components that should now available.

Bug: 26941542
Bug: 26940790
Change-Id: Id5290a75894f61cf55b3a2b82d08b1533bf099ca
This commit is contained in:
Julia Reynolds
2016-02-03 15:04:05 -05:00
parent 7441317883
commit a3dcafff6d
3 changed files with 34 additions and 14 deletions

View File

@@ -250,6 +250,12 @@ abstract public class ManagedServices {
rebindServices();
}
public void onUserUnlocked(int user) {
if (DEBUG) Slog.d(TAG, "onUserUnlocked u=" + user);
rebuildRestoredPackages();
rebindServices();
}
public ManagedServiceInfo getServiceFromTokenLocked(IInterface service) {
if (service == null) {
return null;

View File

@@ -816,6 +816,12 @@ public class NotificationManagerService extends SystemService {
} else if (action.equals(Intent.ACTION_USER_REMOVED)) {
final int user = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
mZenModeHelper.onUserRemoved(user);
} else if (action.equals(Intent.ACTION_USER_UNLOCKED)) {
final int user = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
mConditionProviders.onUserUnlocked(user);
mListeners.onUserUnlocked(user);
mAssistant.onUserUnlocked(user);
mZenModeHelper.onUserUnlocked(user);
}
}
};
@@ -994,6 +1000,7 @@ public class NotificationManagerService extends SystemService {
filter.addAction(Intent.ACTION_USER_SWITCHED);
filter.addAction(Intent.ACTION_USER_ADDED);
filter.addAction(Intent.ACTION_USER_REMOVED);
filter.addAction(Intent.ACTION_USER_UNLOCKED);
filter.addAction(Intent.ACTION_MANAGED_PROFILE_AVAILABILITY_CHANGED);
getContext().registerReceiver(mIntentReceiver, filter);

View File

@@ -16,7 +16,6 @@
package com.android.server.notification;
import static android.media.AudioAttributes.USAGE_ALARM;
import static android.media.AudioAttributes.USAGE_NOTIFICATION;
import static android.media.AudioAttributes.USAGE_NOTIFICATION_RINGTONE;
import static android.media.AudioAttributes.USAGE_UNKNOWN;
@@ -195,19 +194,7 @@ public class ZenModeHelper {
}
public void onUserSwitched(int user) {
if (mUser == user || user < UserHandle.USER_SYSTEM) return;
mUser = user;
if (DEBUG) Log.d(TAG, "onUserSwitched u=" + user);
ZenModeConfig config = mConfigs.get(user);
if (config == null) {
if (DEBUG) Log.d(TAG, "onUserSwitched: generating default config for user " + user);
config = mDefaultConfig.copy();
config.user = user;
}
synchronized (mConfig) {
setConfigLocked(config, "onUserSwitched");
}
cleanUpZenRules();
loadConfigForUser(user, "onUserSwitched");
}
public void onUserRemoved(int user) {
@@ -216,6 +203,26 @@ public class ZenModeHelper {
mConfigs.remove(user);
}
public void onUserUnlocked(int user) {
loadConfigForUser(user, "onUserUnlocked");
}
private void loadConfigForUser(int user, String reason) {
if (mUser == user || user < UserHandle.USER_SYSTEM) return;
mUser = user;
if (DEBUG) Log.d(TAG, reason + " u=" + user);
ZenModeConfig config = mConfigs.get(user);
if (config == null) {
if (DEBUG) Log.d(TAG, reason + " generating default config for user " + user);
config = mDefaultConfig.copy();
config.user = user;
}
synchronized (mConfig) {
setConfigLocked(config, reason);
}
cleanUpZenRules();
}
public int getZenModeListenerInterruptionFilter() {
return NotificationManager.zenModeToInterruptionFilter(mZenMode);
}