Loading services/core/java/com/android/server/StorageManagerService.java +8 −4 Original line number Diff line number Diff line Loading @@ -2132,6 +2132,7 @@ class StorageManagerService extends IStorageManager.Stub } } if (mPackageMonitorsForUser.get(userId) == null) { PackageMonitor monitor = new PackageMonitor() { @Override public void onPackageRemoved(String packageName, int uid) { Loading @@ -2141,6 +2142,9 @@ class StorageManagerService extends IStorageManager.Stub // TODO(b/149391976): Use different handler? monitor.register(mContext, user, true, mHandler); mPackageMonitorsForUser.put(userId, monitor); } else { Slog.w(TAG, "PackageMonitor is already registered for: " + userId); } } private static long getLastAccessTime(AppOpsManager manager, Loading services/core/java/com/android/server/media/BluetoothRouteProvider.java +4 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,10 @@ class BluetoothRouteProvider { mIntentFilter, null, null); } public void stop() { mContext.unregisterReceiver(mBroadcastReceiver); } /** * Transfers to a given bluetooth route. * The dedicated BT device with the route would be activated. Loading services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +4 −0 Original line number Diff line number Diff line Loading @@ -1150,6 +1150,8 @@ class MediaRouter2ServiceImpl { if (DEBUG) { Slog.d(TAG, userRecord + ": Disposed"); } userRecord.mHandler.sendMessage( obtainMessage(UserHandler::stop, userRecord.mHandler)); mUserRecords.remove(userRecord.mUserId); // Note: User already stopped (by switchUser) so no need to send stop message here. } Loading Loading @@ -1330,6 +1332,7 @@ class MediaRouter2ServiceImpl { private void start() { if (!mRunning) { mRunning = true; mSystemProvider.start(); mWatcher.start(); } } Loading @@ -1338,6 +1341,7 @@ class MediaRouter2ServiceImpl { if (mRunning) { mRunning = false; mWatcher.stop(); // also stops all providers mSystemProvider.stop(); } } Loading services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +19 −2 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { private final IAudioService mAudioService; private final Handler mHandler; private final Context mContext; private final UserHandle mUser; private final BluetoothRouteProvider mBtRouteProvider; private static ComponentName sComponentName = new ComponentName( Loading @@ -86,6 +87,9 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { final AudioRoutesInfo mCurAudioRoutesInfo = new AudioRoutesInfo(); int mDeviceVolume; private final AudioManagerBroadcastReceiver mAudioReceiver = new AudioManagerBroadcastReceiver(); private final Object mRequestLock = new Object(); @GuardedBy("mRequestLock") private volatile SessionCreationRequest mPendingSessionCreationRequest; Loading @@ -108,6 +112,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { mIsSystemRouteProvider = true; mContext = context; mUser = user; mHandler = new Handler(Looper.getMainLooper()); mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); Loading @@ -128,21 +133,33 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { } }); updateSessionInfosIfNeeded(); } public void start() { IntentFilter intentFilter = new IntentFilter(AudioManager.VOLUME_CHANGED_ACTION); intentFilter.addAction(AudioManager.STREAM_DEVICES_CHANGED_ACTION); mContext.registerReceiverAsUser(new AudioManagerBroadcastReceiver(), user, mContext.registerReceiverAsUser(mAudioReceiver, mUser, intentFilter, null, null); if (mBtRouteProvider != null) { mHandler.post(() -> { mBtRouteProvider.start(user); mBtRouteProvider.start(mUser); notifyProviderState(); }); } updateVolume(); } public void stop() { mContext.unregisterReceiver(mAudioReceiver); if (mBtRouteProvider != null) { mHandler.post(() -> { mBtRouteProvider.stop(); notifyProviderState(); }); } } @Override public void setCallback(Callback callback) { super.setCallback(callback); Loading services/people/java/com/android/server/people/data/DataManager.java +20 −7 Original line number Diff line number Diff line Loading @@ -618,10 +618,17 @@ public class DataManager { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(TelecomManager.ACTION_DEFAULT_DIALER_CHANGED); intentFilter.addAction(SmsApplication.ACTION_DEFAULT_SMS_PACKAGE_CHANGED_INTERNAL); if (mBroadcastReceivers.get(userId) == null) { BroadcastReceiver broadcastReceiver = new PerUserBroadcastReceiver(userId); mBroadcastReceivers.put(userId, broadcastReceiver); mContext.registerReceiverAsUser( broadcastReceiver, UserHandle.of(userId), intentFilter, null, null); } else { // Stopped was not called on this user before setup is called again. This // could happen during consecutive rapid user switching. if (DEBUG) Log.d(TAG, "PerUserBroadcastReceiver was registered for: " + userId); } ContentObserver contactsContentObserver = new ContactsContentObserver( BackgroundThread.getHandler()); Loading @@ -639,9 +646,15 @@ public class DataManager { // Should never occur for local calls. } if (mPackageMonitors.get(userId) == null) { PackageMonitor packageMonitor = new PerUserPackageMonitor(); packageMonitor.register(mContext, null, UserHandle.of(userId), true); mPackageMonitors.put(userId, packageMonitor); } else { // Stopped was not called on this user before setup is called again. This // could happen during consecutive rapid user switching. if (DEBUG) Log.d(TAG, "PerUserPackageMonitor was registered for: " + userId); } if (userId == UserHandle.USER_SYSTEM) { // The call log and MMS/SMS messages are shared across user profiles. So only need Loading Loading
services/core/java/com/android/server/StorageManagerService.java +8 −4 Original line number Diff line number Diff line Loading @@ -2132,6 +2132,7 @@ class StorageManagerService extends IStorageManager.Stub } } if (mPackageMonitorsForUser.get(userId) == null) { PackageMonitor monitor = new PackageMonitor() { @Override public void onPackageRemoved(String packageName, int uid) { Loading @@ -2141,6 +2142,9 @@ class StorageManagerService extends IStorageManager.Stub // TODO(b/149391976): Use different handler? monitor.register(mContext, user, true, mHandler); mPackageMonitorsForUser.put(userId, monitor); } else { Slog.w(TAG, "PackageMonitor is already registered for: " + userId); } } private static long getLastAccessTime(AppOpsManager manager, Loading
services/core/java/com/android/server/media/BluetoothRouteProvider.java +4 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,10 @@ class BluetoothRouteProvider { mIntentFilter, null, null); } public void stop() { mContext.unregisterReceiver(mBroadcastReceiver); } /** * Transfers to a given bluetooth route. * The dedicated BT device with the route would be activated. Loading
services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +4 −0 Original line number Diff line number Diff line Loading @@ -1150,6 +1150,8 @@ class MediaRouter2ServiceImpl { if (DEBUG) { Slog.d(TAG, userRecord + ": Disposed"); } userRecord.mHandler.sendMessage( obtainMessage(UserHandler::stop, userRecord.mHandler)); mUserRecords.remove(userRecord.mUserId); // Note: User already stopped (by switchUser) so no need to send stop message here. } Loading Loading @@ -1330,6 +1332,7 @@ class MediaRouter2ServiceImpl { private void start() { if (!mRunning) { mRunning = true; mSystemProvider.start(); mWatcher.start(); } } Loading @@ -1338,6 +1341,7 @@ class MediaRouter2ServiceImpl { if (mRunning) { mRunning = false; mWatcher.stop(); // also stops all providers mSystemProvider.stop(); } } Loading
services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +19 −2 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { private final IAudioService mAudioService; private final Handler mHandler; private final Context mContext; private final UserHandle mUser; private final BluetoothRouteProvider mBtRouteProvider; private static ComponentName sComponentName = new ComponentName( Loading @@ -86,6 +87,9 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { final AudioRoutesInfo mCurAudioRoutesInfo = new AudioRoutesInfo(); int mDeviceVolume; private final AudioManagerBroadcastReceiver mAudioReceiver = new AudioManagerBroadcastReceiver(); private final Object mRequestLock = new Object(); @GuardedBy("mRequestLock") private volatile SessionCreationRequest mPendingSessionCreationRequest; Loading @@ -108,6 +112,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { mIsSystemRouteProvider = true; mContext = context; mUser = user; mHandler = new Handler(Looper.getMainLooper()); mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); Loading @@ -128,21 +133,33 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { } }); updateSessionInfosIfNeeded(); } public void start() { IntentFilter intentFilter = new IntentFilter(AudioManager.VOLUME_CHANGED_ACTION); intentFilter.addAction(AudioManager.STREAM_DEVICES_CHANGED_ACTION); mContext.registerReceiverAsUser(new AudioManagerBroadcastReceiver(), user, mContext.registerReceiverAsUser(mAudioReceiver, mUser, intentFilter, null, null); if (mBtRouteProvider != null) { mHandler.post(() -> { mBtRouteProvider.start(user); mBtRouteProvider.start(mUser); notifyProviderState(); }); } updateVolume(); } public void stop() { mContext.unregisterReceiver(mAudioReceiver); if (mBtRouteProvider != null) { mHandler.post(() -> { mBtRouteProvider.stop(); notifyProviderState(); }); } } @Override public void setCallback(Callback callback) { super.setCallback(callback); Loading
services/people/java/com/android/server/people/data/DataManager.java +20 −7 Original line number Diff line number Diff line Loading @@ -618,10 +618,17 @@ public class DataManager { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(TelecomManager.ACTION_DEFAULT_DIALER_CHANGED); intentFilter.addAction(SmsApplication.ACTION_DEFAULT_SMS_PACKAGE_CHANGED_INTERNAL); if (mBroadcastReceivers.get(userId) == null) { BroadcastReceiver broadcastReceiver = new PerUserBroadcastReceiver(userId); mBroadcastReceivers.put(userId, broadcastReceiver); mContext.registerReceiverAsUser( broadcastReceiver, UserHandle.of(userId), intentFilter, null, null); } else { // Stopped was not called on this user before setup is called again. This // could happen during consecutive rapid user switching. if (DEBUG) Log.d(TAG, "PerUserBroadcastReceiver was registered for: " + userId); } ContentObserver contactsContentObserver = new ContactsContentObserver( BackgroundThread.getHandler()); Loading @@ -639,9 +646,15 @@ public class DataManager { // Should never occur for local calls. } if (mPackageMonitors.get(userId) == null) { PackageMonitor packageMonitor = new PerUserPackageMonitor(); packageMonitor.register(mContext, null, UserHandle.of(userId), true); mPackageMonitors.put(userId, packageMonitor); } else { // Stopped was not called on this user before setup is called again. This // could happen during consecutive rapid user switching. if (DEBUG) Log.d(TAG, "PerUserPackageMonitor was registered for: " + userId); } if (userId == UserHandle.USER_SYSTEM) { // The call log and MMS/SMS messages are shared across user profiles. So only need Loading