diff options
author | Felipe Leme <felipeal@google.com> | 2020-07-22 19:09:30 -0700 |
---|---|---|
committer | Felipe Leme <felipeal@google.com> | 2020-08-03 07:24:26 +0000 |
commit | 837f8c1e8a80b8afedc524aa953d600a432b6a90 (patch) | |
tree | ed4778c684ee864e7e58289a27d5fc8df8c5efeb | |
parent | d811429b4b5fe31f94984ecfea3aad3255a40382 (diff) |
Removed @Deprecated SystemService callback methods that take a userId.
This is just a plain refactoring: the removed methods in the changed
classes were called by default by the new methods in the superclass
(SystemService).
Test: m
Test: atest NotificationManagerServiceTest BackupManagerServiceRoboTest
Fixes: 161943081
Exempt-From-Owner-Approval: refactoring without side-effects
Change-Id: Ifd8df592eb4494cc0922b7e0b2ff20187b8a8b3e
48 files changed, 286 insertions, 337 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index 06c469a5cc82..6a58e3a53094 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -89,6 +89,7 @@ import com.android.server.AppStateTracker; import com.android.server.AppStateTrackerImpl; import com.android.server.DeviceIdleInternal; import com.android.server.LocalServices; +import com.android.server.SystemService.TargetUser; import com.android.server.job.JobSchedulerServiceDumpProto.ActiveJob; import com.android.server.job.JobSchedulerServiceDumpProto.PendingJob; import com.android.server.job.controllers.BackgroundJobsController; @@ -975,24 +976,24 @@ public class JobSchedulerService extends com.android.server.SystemService } @Override - public void onStartUser(int userHandle) { + public void onUserStarting(@NonNull TargetUser user) { synchronized (mLock) { - mStartedUsers = ArrayUtils.appendInt(mStartedUsers, userHandle); + mStartedUsers = ArrayUtils.appendInt(mStartedUsers, user.getUserIdentifier()); } // Let's kick any outstanding jobs for this user. mHandler.obtainMessage(MSG_CHECK_JOB).sendToTarget(); } @Override - public void onUnlockUser(int userHandle) { + public void onUserUnlocking(@NonNull TargetUser user) { // Let's kick any outstanding jobs for this user. mHandler.obtainMessage(MSG_CHECK_JOB).sendToTarget(); } @Override - public void onStopUser(int userHandle) { + public void onUserStopping(@NonNull TargetUser user) { synchronized (mLock) { - mStartedUsers = ArrayUtils.removeInt(mStartedUsers, userHandle); + mStartedUsers = ArrayUtils.removeInt(mStartedUsers, user.getUserIdentifier()); } } diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetService.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetService.java index b229e9f30180..3562205834b4 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetService.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetService.java @@ -16,11 +16,13 @@ package com.android.server.appwidget; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.Context; import com.android.server.AppWidgetBackupBridge; -import com.android.server.FgThread; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; /** * SystemService that publishes an IAppWidgetService. @@ -49,12 +51,12 @@ public class AppWidgetService extends SystemService { } @Override - public void onStopUser(int userHandle) { - mImpl.onUserStopped(userHandle); + public void onUserStopping(@NonNull TargetUser user) { + mImpl.onUserStopped(user.getUserIdentifier()); } @Override - public void onSwitchUser(int userHandle) { - mImpl.reloadWidgetsMaskedStateForGroup(userHandle); + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { + mImpl.reloadWidgetsMaskedStateForGroup(to.getUserIdentifier()); } } diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java index 089861bee479..663fd6259fd4 100644 --- a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java +++ b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java @@ -84,6 +84,7 @@ import com.android.internal.util.Preconditions; import com.android.internal.util.SyncResultReceiver; import com.android.server.FgThread; import com.android.server.LocalServices; +import com.android.server.SystemService.TargetUser; import com.android.server.autofill.ui.AutoFillUI; import com.android.server.infra.AbstractMasterSystemService; import com.android.server.infra.FrameworkResourcesServiceNameResolver; @@ -363,7 +364,7 @@ public final class AutofillManagerService } @Override // from SystemService - public void onSwitchUser(int userHandle) { + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { if (sDebug) Slog.d(TAG, "Hiding UI when user switched"); mUi.hideAll(null); } diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index c839ce94bd64..12e6e10d9047 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -19,6 +19,7 @@ package com.android.server.backup; import static java.util.Collections.emptySet; import android.Manifest; +import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.ActivityManager; @@ -60,6 +61,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.DumpUtils; import com.android.server.SystemConfig; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.backup.utils.RandomAccessFileUtils; import java.io.File; @@ -1605,13 +1607,13 @@ public class BackupManagerService extends IBackupManager.Stub { } @Override - public void onUnlockUser(int userId) { - sInstance.onUnlockUser(userId); + public void onUserUnlocking(@NonNull TargetUser user) { + sInstance.onUnlockUser(user.getUserIdentifier()); } @Override - public void onStopUser(int userId) { - sInstance.onStopUser(userId); + public void onUserStopping(@NonNull TargetUser user) { + sInstance.onStopUser(user.getUserIdentifier()); } @VisibleForTesting diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index 6d8f9a35bfaa..eb38f5199ce5 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -28,6 +28,7 @@ import static com.android.internal.util.function.pooled.PooledLambda.obtainRunna import static java.util.concurrent.TimeUnit.MINUTES; import android.annotation.CheckResult; +import android.annotation.NonNull; import android.annotation.Nullable; import android.app.AppOpsManager; import android.app.PendingIntent; @@ -84,6 +85,7 @@ import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.FgThread; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.wm.ActivityTaskManagerInternal; import org.xmlpull.v1.XmlPullParser; @@ -189,7 +191,8 @@ public class CompanionDeviceManagerService extends SystemService implements Bind } @Override - public void onUnlockUser(int userHandle) { + public void onUserUnlocking(@NonNull TargetUser user) { + int userHandle = user.getUserIdentifier(); Set<Association> associations = readAllAssociations(userHandle); if (associations == null || associations.isEmpty()) { return; diff --git a/services/core/java/com/android/server/BluetoothService.java b/services/core/java/com/android/server/BluetoothService.java index 0bcd9373c660..1a1eecd0f439 100644 --- a/services/core/java/com/android/server/BluetoothService.java +++ b/services/core/java/com/android/server/BluetoothService.java @@ -16,10 +16,14 @@ package com.android.server; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.bluetooth.BluetoothAdapter; import android.content.Context; import android.os.UserManager; +import com.android.server.SystemService.TargetUser; + class BluetoothService extends SystemService { private BluetoothManagerService mBluetoothManagerService; private boolean mInitialized = false; @@ -52,16 +56,16 @@ class BluetoothService extends SystemService { } @Override - public void onSwitchUser(int userHandle) { + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { if (!mInitialized) { initialize(); } else { - mBluetoothManagerService.handleOnSwitchUser(userHandle); + mBluetoothManagerService.handleOnSwitchUser(to.getUserIdentifier()); } } @Override - public void onUnlockUser(int userHandle) { - mBluetoothManagerService.handleOnUnlockUser(userHandle); + public void onUserUnlocking(@NonNull TargetUser user) { + mBluetoothManagerService.handleOnUnlockUser(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/PinnerService.java b/services/core/java/com/android/server/PinnerService.java index 3148a6205871..a3bcbbe25e88 100644 --- a/services/core/java/com/android/server/PinnerService.java +++ b/services/core/java/com/android/server/PinnerService.java @@ -20,6 +20,7 @@ import static android.app.ActivityManager.UID_OBSERVER_ACTIVE; import static android.app.ActivityManager.UID_OBSERVER_GONE; import android.annotation.IntDef; +import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityManagerInternal; @@ -60,6 +61,7 @@ import com.android.internal.app.ResolverActivity; import com.android.internal.os.BackgroundThread; import com.android.internal.util.DumpUtils; import com.android.internal.util.function.pooled.PooledLambda; +import com.android.server.SystemService.TargetUser; import com.android.server.wm.ActivityTaskManagerInternal; import dalvik.system.DexFile; @@ -236,16 +238,18 @@ public final class PinnerService extends SystemService { * individual apps. Make sure that user's preference is pinned into memory. */ @Override - public void onSwitchUser(int userHandle) { - if (!mUserManager.isManagedProfile(userHandle)) { - sendPinAppsMessage(userHandle); + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { + int userId = to.getUserIdentifier(); + if (!mUserManager.isManagedProfile(userId)) { + sendPinAppsMessage(userId); } } @Override - public void onUnlockUser(int userHandle) { - if (!mUserManager.isManagedProfile(userHandle)) { - sendPinAppsMessage(userHandle); + public void onUserUnlocking(@NonNull TargetUser user) { + int userId = user.getUserIdentifier(); + if (!mUserManager.isManagedProfile(userId)) { + sendPinAppsMessage(userId); } } diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 1520dd351c97..eca6036ebf8e 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -55,6 +55,7 @@ import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT; import static org.xmlpull.v1.XmlPullParser.START_TAG; import android.Manifest; +import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityManagerInternal; @@ -152,6 +153,7 @@ import com.android.internal.util.HexDump; import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.Preconditions; import com.android.internal.widget.LockPatternUtils; +import com.android.server.SystemService.TargetUser; import com.android.server.pm.Installer; import com.android.server.storage.AppFuseBridge; import com.android.server.storage.StorageSessionController; @@ -259,23 +261,23 @@ class StorageManagerService extends IStorageManager.Stub } @Override - public void onSwitchUser(int userHandle) { - mStorageManagerService.mCurrentUserId = userHandle; + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { + mStorageManagerService.mCurrentUserId = to.getUserIdentifier(); } @Override - public void onUnlockUser(int userHandle) { - mStorageManagerService.onUnlockUser(userHandle); + public void onUserUnlocking(@NonNull TargetUser user) { + mStorageManagerService.onUnlockUser(user.getUserIdentifier()); } @Override - public void onCleanupUser(int userHandle) { - mStorageManagerService.onCleanupUser(userHandle); + public void onUserStopped(@NonNull TargetUser user) { + mStorageManagerService.onCleanupUser(user.getUserIdentifier()); } @Override - public void onStopUser(int userHandle) { - mStorageManagerService.onStopUser(userHandle); + public void onUserStopping(@NonNull TargetUser user) { + mStorageManagerService.onStopUser(user.getUserIdentifier()); } @Override diff --git a/services/core/java/com/android/server/SystemService.java b/services/core/java/com/android/server/SystemService.java index 45d53a14d1e9..1496e926b95b 100644 --- a/services/core/java/com/android/server/SystemService.java +++ b/services/core/java/com/android/server/SystemService.java @@ -23,7 +23,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.SystemApi.Client; -import android.annotation.UserIdInt; import android.app.ActivityThread; import android.content.Context; import android.content.pm.UserInfo; @@ -263,26 +262,6 @@ public abstract class SystemService { } /** - * @deprecated subclasses should extend {@link #onUserStarting(TargetUser)} instead - * (which by default calls this method). - * - * @hide - */ - @Deprecated - public void onStartUser(@UserIdInt int userId) {} - - /** - * @deprecated subclasses should extend {@link #onUserStarting(TargetUser)} instead - * (which by default calls this method). - * - * @hide - */ - @Deprecated - public void onStartUser(@NonNull UserInfo userInfo) { - onStartUser(userInfo.id); - } - - /** * Called when a new user is starting, for system services to initialize any per-user * state they maintain for running users. * @@ -292,27 +271,6 @@ public abstract class SystemService { * @param user target user */ public void onUserStarting(@NonNull TargetUser user) { - onStartUser(user.getUserInfo()); - } - - /** - * @deprecated subclasses should extend {@link #onUserUnlocking(TargetUser)} instead (which by - * default calls this method). - * - * @hide - */ - @Deprecated - public void onUnlockUser(@UserIdInt int userId) {} - - /** - * @deprecated subclasses should extend {@link #onUserUnlocking(TargetUser)} instead (which by - * default calls this method). - * - * @hide - */ - @Deprecated - public void onUnlockUser(@NonNull UserInfo userInfo) { - onUnlockUser(userInfo.id); } /** @@ -333,7 +291,6 @@ public abstract class SystemService { * @param user target user */ public void onUserUnlocking(@NonNull TargetUser user) { - onUnlockUser(user.getUserInfo()); } /** @@ -348,26 +305,6 @@ public abstract class SystemService { } /** - * @deprecated subclasses should extend {@link #onUserSwitching(TargetUser, TargetUser)} instead - * (which by default calls this method). - * - * @hide - */ - @Deprecated - public void onSwitchUser(@UserIdInt int toUserId) {} - - /** - * @deprecated subclasses should extend {@link #onUserSwitching(TargetUser, TargetUser)} instead - * (which by default calls this method). - * - * @hide - */ - @Deprecated - public void onSwitchUser(@Nullable UserInfo from, @NonNull UserInfo to) { - onSwitchUser(to.id); - } - - /** * Called when switching to a different foreground user, for system services that have * special behavior for whichever user is currently in the foreground. This is called * before any application processes are aware of the new user. @@ -382,28 +319,6 @@ public abstract class SystemService { * @param to the user switching to */ public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { - onSwitchUser((from == null ? null : from.getUserInfo()), to.getUserInfo()); - } - - /** - * @deprecated subclasses should extend {@link #onUserStopping(TargetUser)} instead - * (which by default calls this method). - * - * @hide - */ - @Deprecated - public void onStopUser(@UserIdInt int userId) {} - - /** - * @deprecated subclasses should extend {@link #onUserStopping(TargetUser)} instead - * (which by default calls this method). - * - * @hide - */ - @Deprecated - public void onStopUser(@NonNull UserInfo user) { - onStopUser(user.id); - } /** @@ -420,27 +335,6 @@ public abstract class SystemService { * @param user target user */ public void onUserStopping(@NonNull TargetUser user) { - onStopUser(user.getUserInfo()); - } - - /** - * @deprecated subclasses should extend {@link #onUserStopped(TargetUser)} instead (which by - * default calls this method). - * - * @hide - */ - @Deprecated - public void onCleanupUser(@UserIdInt int userId) {} - - /** - * @deprecated subclasses should extend {@link #onUserStopped(TargetUser)} instead (which by - * default calls this method). - * - * @hide - */ - @Deprecated - public void onCleanupUser(@NonNull UserInfo user) { - onCleanupUser(user.id); } /** @@ -454,7 +348,6 @@ public abstract class SystemService { * @param user target user */ public void onUserStopped(@NonNull TargetUser user) { - onCleanupUser(user.getUserInfo()); } /** diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java index 915189c085c2..df9dee89f5a2 100644 --- a/services/core/java/com/android/server/UiModeManagerService.java +++ b/services/core/java/com/android/server/UiModeManagerService.java @@ -16,7 +16,15 @@ package com.android.server; +import static android.app.UiModeManager.DEFAULT_PRIORITY; +import static android.app.UiModeManager.MODE_NIGHT_AUTO; +import static android.app.UiModeManager.MODE_NIGHT_CUSTOM; +import static android.app.UiModeManager.MODE_NIGHT_YES; +import static android.os.UserHandle.USER_SYSTEM; +import static android.util.TimeUtils.isTimeBetween; + import android.annotation.IntRange; +import android.annotation.NonNull; import android.annotation.Nullable; import android.app.Activity; import android.app.ActivityManager; @@ -64,6 +72,7 @@ import com.android.internal.app.DisableCarModeActivity; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.internal.notification.SystemNotificationChannels; import com.android.internal.util.DumpUtils; +import com.android.server.SystemService.TargetUser; import com.android.server.twilight.TwilightListener; import com.android.server.twilight.TwilightManager; import com.android.server.twilight.TwilightState; @@ -81,13 +90,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import static android.app.UiModeManager.DEFAULT_PRIORITY; -import static android.app.UiModeManager.MODE_NIGHT_AUTO; -import static android.app.UiModeManager.MODE_NIGHT_CUSTOM; -import static android.app.UiModeManager.MODE_NIGHT_YES; -import static android.os.UserHandle.USER_SYSTEM; -import static android.util.TimeUtils.isTimeBetween; - final class UiModeManagerService extends SystemService { private static final String TAG = UiModeManager.class.getSimpleName(); private static final boolean LOG = false; @@ -322,8 +324,7 @@ final class UiModeManagerService extends SystemService { } @Override - public void onSwitchUser(int userHandle) { - super.onSwitchUser(userHandle); + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { getContext().getContentResolver().unregisterContentObserver(mSetupWizardObserver); verifySetupWizardCompleted(); } diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index 7dc0b3a8ecd6..35e88eb804cb 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -106,6 +106,7 @@ import com.android.internal.util.Preconditions; import com.android.server.LocalServices; import com.android.server.ServiceThread; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.google.android.collect.Lists; import com.google.android.collect.Sets; @@ -161,14 +162,14 @@ public class AccountManagerService } @Override - public void onUnlockUser(int userHandle) { - mService.onUnlockUser(userHandle); + public void onUserUnlocking(@NonNull TargetUser user) { + mService.onUnlockUser(user.getUserIdentifier()); } @Override - public void onStopUser(int userHandle) { - Slog.i(TAG, "onStopUser " + userHandle); - mService.purgeUserData(userHandle); + public void onUserStopping(@NonNull TargetUser user) { + Slog.i(TAG, "onStopUser " + user); + mService.purgeUserData(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index cfd2bf913b9c..7842c22ef5ad 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -354,6 +354,7 @@ import com.android.server.RescueParty; import com.android.server.ServiceThread; import com.android.server.SystemConfig; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.SystemServiceManager; import com.android.server.ThreadPriorityBooster; import com.android.server.UserspaceRebootLogger; @@ -2391,8 +2392,8 @@ public class ActivityManagerService extends IActivityManager.Stub } @Override - public void onCleanupUser(int userId) { - mService.mBatteryStatsService.onCleanupUser(userId); + public void onUserStopped(@NonNull TargetUser user) { + mService.mBatteryStatsService.onCleanupUser(user.getUserIdentifier()); } public ActivityManagerService getService() { diff --git a/services/core/java/com/android/server/appbinding/AppBindingService.java b/services/core/java/com/android/server/appbinding/AppBindingService.java index 7e63e728701e..5db6dc7ccc15 100644 --- a/services/core/java/com/android/server/appbinding/AppBindingService.java +++ b/services/core/java/com/android/server/appbinding/AppBindingService.java @@ -45,6 +45,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.BackgroundThread; import com.android.internal.util.DumpUtils; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.am.PersistentConnection; import com.android.server.appbinding.finders.AppServiceFinder; import com.android.server.appbinding.finders.CarrierMessagingClientServiceFinder; @@ -125,18 +126,18 @@ public class AppBindingService extends Binder { } @Override - public void onStartUser(int userHandle) { - mService.onStartUser(userHandle); + public void onUserStarting(@NonNull TargetUser user) { + mService.onStartUser(user.getUserIdentifier()); } @Override - public void onUnlockUser(int userId) { - mService.onUnlockUser(userId); + public void onUserUnlocking(@NonNull TargetUser user) { + mService.onUnlockUser(user.getUserIdentifier()); } @Override - public void onStopUser(int userHandle) { - mService.onStopUser(userHandle); + public void onUserStopping(@NonNull TargetUser user) { + mService.onStopUser(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/camera/CameraServiceProxy.java b/services/core/java/com/android/server/camera/CameraServiceProxy.java index 61c99b88d113..88867fcfc46f 100644 --- a/services/core/java/com/android/server/camera/CameraServiceProxy.java +++ b/services/core/java/com/android/server/camera/CameraServiceProxy.java @@ -15,6 +15,8 @@ */ package com.android.server.camera; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -43,6 +45,7 @@ import com.android.internal.util.FrameworkStatsLog; import com.android.server.LocalServices; import com.android.server.ServiceThread; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.wm.WindowManagerInternal; import java.util.ArrayList; @@ -252,20 +255,20 @@ public class CameraServiceProxy extends SystemService } @Override - public void onStartUser(int userHandle) { + public void onUserStarting(@NonNull TargetUser user) { synchronized(mLock) { if (mEnabledCameraUsers == null) { // Initialize cameraserver, or update cameraserver if we are recovering // from a crash. - switchUserLocked(userHandle); + switchUserLocked(user.getUserIdentifier()); } } } @Override - public void onSwitchUser(int userHandle) { + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { synchronized(mLock) { - switchUserLocked(userHandle); + switchUserLocked(to.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java index ed3a223b5dd7..a0bc7d8954fb 100644 --- a/services/core/java/com/android/server/clipboard/ClipboardService.java +++ b/services/core/java/com/android/server/clipboard/ClipboardService.java @@ -19,6 +19,7 @@ package com.android.server.clipboard; import static android.app.ActivityManagerInternal.ALLOW_FULL_ONLY; import android.Manifest; +import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.ActivityManagerInternal; @@ -59,6 +60,7 @@ import android.view.autofill.AutofillManagerInternal; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.contentcapture.ContentCaptureManagerInternal; import com.android.server.uri.UriGrantsManagerInternal; import com.android.server.wm.WindowManagerInternal; @@ -218,9 +220,9 @@ public class ClipboardService extends SystemService { } @Override - public void onCleanupUser(int userId) { + public void onUserStopped(@NonNull TargetUser user) { synchronized (mClipboards) { - mClipboards.remove(userId); + mClipboards.remove(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/content/ContentService.java b/services/core/java/com/android/server/content/ContentService.java index 9a910bf5e859..1294e9030f62 100644 --- a/services/core/java/com/android/server/content/ContentService.java +++ b/services/core/java/com/android/server/content/ContentService.java @@ -20,6 +20,7 @@ import static android.content.PermissionChecker.PERMISSION_GRANTED; import android.Manifest; import android.accounts.Account; +import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.app.ActivityManager; @@ -75,6 +76,7 @@ import com.android.internal.util.DumpUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.pm.permission.PermissionManagerServiceInternal; import java.io.FileDescriptor; @@ -124,26 +126,25 @@ public final class ContentService extends IContentService.Stub { mService.onBootPhase(phase); } - @Override - public void onStartUser(int userHandle) { - mService.onStartUser(userHandle); + public void onUserStarting(@NonNull TargetUser user) { + mService.onStartUser(user.getUserIdentifier()); } @Override - public void onUnlockUser(int userHandle) { - mService.onUnlockUser(userHandle); + public void onUserUnlocking(@NonNull TargetUser user) { + mService.onUnlockUser(user.getUserIdentifier()); } @Override - public void onStopUser(int userHandle) { - mService.onStopUser(userHandle); + public void onUserStopping(@NonNull TargetUser user) { + mService.onStopUser(user.getUserIdentifier()); } @Override - public void onCleanupUser(int userHandle) { + public void onUserStopped(@NonNull TargetUser user) { synchronized (mService.mCache) { - mService.mCache.remove(userHandle); + mService.mCache.remove(user.getUserIdentifier()); } } } diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index a00c22a409e9..0979ad67a8cd 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -104,6 +104,7 @@ import com.android.server.AnimationThread; import com.android.server.DisplayThread; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.UiThread; import com.android.server.wm.SurfaceAnimationThread; import com.android.server.wm.WindowManagerInternal; @@ -417,7 +418,8 @@ public final class DisplayManagerService extends SystemService { } @Override - public void onSwitchUser(@UserIdInt int newUserId) { + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { + final int newUserId = to.getUserIdentifier(); final int userSerial = getUserManager().getUserSerialNumber(newUserId); synchronized (mSyncRoot) { if (mCurrentUserId != newUserId) { diff --git a/services/core/java/com/android/server/display/color/ColorDisplayService.java b/services/core/java/com/android/server/display/color/ColorDisplayService.java index 95a98f1e9494..19f5b6e6c23a 100644 --- a/services/core/java/com/android/server/display/color/ColorDisplayService.java +++ b/services/core/java/com/android/server/display/color/ColorDisplayService.java @@ -76,6 +76,7 @@ import com.android.internal.util.DumpUtils; import com.android.server.DisplayThread; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.twilight.TwilightListener; import com.android.server.twilight.TwilightManager; import com.android.server.twilight.TwilightState; @@ -205,30 +206,24 @@ public final class ColorDisplayService extends SystemService { } @Override - public void onStartUser(int userHandle) { - super.onStartUser(userHandle); - + public void onUserStarting(@NonNull TargetUser user) { if (mCurrentUser == UserHandle.USER_NULL) { final Message message = mHandler.obtainMessage(MSG_USER_CHANGED); - message.arg1 = userHandle; + message.arg1 = user.getUserIdentifier(); mHandler.sendMessage(message); } } @Override - public void onSwitchUser(int userHandle) { - super.onSwitchUser(userHandle); - + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { final Message message = mHandler.obtainMessage(MSG_USER_CHANGED); - message.arg1 = userHandle; + message.arg1 = to.getUserIdentifier(); mHandler.sendMessage(message); } @Override - public void onStopUser(int userHandle) { - super.onStopUser(userHandle); - - if (mCurrentUser == userHandle) { + public void onUserStopping(@NonNull TargetUser user) { + if (mCurrentUser == user.getUserIdentifier()) { final Message message = mHandler.obtainMessage(MSG_USER_CHANGED); message.arg1 = UserHandle.USER_NULL; mHandler.sendMessage(message); diff --git a/services/core/java/com/android/server/infra/AbstractMasterSystemService.java b/services/core/java/com/android/server/infra/AbstractMasterSystemService.java index 2672f848f192..7bbcdaa2d473 100644 --- a/services/core/java/com/android/server/infra/AbstractMasterSystemService.java +++ b/services/core/java/com/android/server/infra/AbstractMasterSystemService.java @@ -43,6 +43,7 @@ import com.android.internal.infra.AbstractRemoteService; import com.android.internal.os.BackgroundThread; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import java.io.PrintWriter; import java.lang.annotation.Retention; @@ -299,16 +300,16 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem } @Override // from SystemService - public void onUnlockUser(int userId) { + public void onUserUnlocking(@NonNull TargetUser user) { synchronized (mLock) { - updateCachedServiceLocked(userId); + updateCachedServiceLocked(user.getUserIdentifier()); } } @Override // from SystemService - public void onCleanupUser(int userId) { + public void onUserStopped(@NonNull TargetUser user) { synchronized (mLock) { - removeCachedServiceLocked(userId); + removeCachedServiceLocked(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 254285dfbd41..3cd70fecbf3d 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -159,6 +159,7 @@ import com.android.internal.view.InputBindResult; import com.android.server.EventLogTags; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.inputmethod.InputMethodManagerInternal.InputMethodListListener; import com.android.server.inputmethod.InputMethodSubtypeSwitchingController.ImeSubtypeListItem; import com.android.server.inputmethod.InputMethodUtils.InputMethodSettings; @@ -1596,10 +1597,11 @@ public class InputMethodManagerService extends IInputMethodManager.Stub } @Override - public void onSwitchUser(@UserIdInt int userHandle) { + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { // Called on ActivityManager thread. synchronized (mService.mMethodMap) { - mService.scheduleSwitchUserTaskLocked(userHandle, null /* clientToBeReset */); + mService.scheduleSwitchUserTaskLocked(to.getUserIdentifier(), + /* clientToBeReset= */ null); } } @@ -1615,10 +1617,10 @@ public class InputMethodManagerService extends IInputMethodManager.Stub } @Override - public void onUnlockUser(final @UserIdInt int userHandle) { + public void onUserUnlocking(@NonNull TargetUser user) { // Called on ActivityManager thread. mService.mHandler.sendMessage(mService.mHandler.obtainMessage(MSG_SYSTEM_UNLOCK_USER, - userHandle /* arg1 */, 0 /* arg2 */)); + /* arg1= */ user.getUserIdentifier(), /* arg2= */ 0)); } } diff --git a/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java index 2516e289f099..937514ca9139 100644 --- a/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java @@ -94,6 +94,7 @@ import com.android.internal.view.InlineSuggestionsRequestInfo; import com.android.internal.view.InputBindResult; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.wm.WindowManagerInternal; import java.io.FileDescriptor; @@ -249,23 +250,26 @@ public final class MultiClientInputMethodManagerService { @MainThread @Override - public void onStartUser(@UserIdInt int userId) { + public void onUserStarting(@NonNull TargetUser user) { mOnWorkerThreadCallback.getHandler().sendMessage(PooledLambda.obtainMessage( - OnWorkerThreadCallback::onStartUser, mOnWorkerThreadCallback, userId)); + OnWorkerThreadCallback::onStartUser, mOnWorkerThreadCallback, + user.getUserIdentifier())); } @MainThread @Override - public void onUnlockUser(@UserIdInt int userId) { + public void onUserUnlocking(@NonNull TargetUser user) { mOnWorkerThreadCallback.getHandler().sendMessage(PooledLambda.obtainMessage( - OnWorkerThreadCallback::onUnlockUser, mOnWorkerThreadCallback, userId)); + OnWorkerThreadCallback::onUnlockUser, mOnWorkerThreadCallback, + user.getUserIdentifier())); } @MainThread @Override - public void onStopUser(@UserIdInt int userId) { + public void onUserStopping(@NonNull TargetUser user) { mOnWorkerThreadCallback.getHandler().sendMessage(PooledLambda.obtainMessage( - OnWorkerThreadCallback::onStopUser, mOnWorkerThreadCallback, userId)); + OnWorkerThreadCallback::onStopUser, mOnWorkerThreadCallback, + user.getUserIdentifier())); } } diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java index e56884832f0f..f1b89c7a433c 100644 --- a/services/core/java/com/android/server/locksettings/LockSettingsService.java +++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java @@ -123,6 +123,7 @@ import com.android.internal.widget.VerifyCredentialResponse; import com.android.server.LocalServices; import com.android.server.ServiceThread; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.locksettings.LockSettingsStorage.CredentialHash; import com.android.server.locksettings.LockSettingsStorage.PersistentData; import com.android.server.locksettings.SyntheticPasswordManager.AuthenticationResult; @@ -275,18 +276,18 @@ public class LockSettingsService extends ILockSettings.Stub { } @Override - public void onStartUser(int userHandle) { - mLockSettingsService.onStartUser(userHandle); + public void onUserStarting(@NonNull TargetUser user) { + mLockSettingsService.onStartUser(user.getUserIdentifier()); } @Override - public void onUnlockUser(int userHandle) { - mLockSettingsService.onUnlockUser(userHandle); + public void onUserUnlocking(@NonNull TargetUser user) { + mLockSettingsService.onUnlockUser(user.getUserIdentifier()); } @Override - public void onCleanupUser(int userHandle) { - mLockSettingsService.onCleanupUser(userHandle); + public void onUserStopped(@NonNull TargetUser user) { + mLockSettingsService.onCleanupUser(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java index 0eba69ef6348..67e4ca14d383 100644 --- a/services/core/java/com/android/server/media/MediaSessionService.java +++ b/services/core/java/com/android/server/media/MediaSessionService.java @@ -25,6 +25,8 @@ import static com.android.server.media.MediaKeyDispatcher.isLongPressOverridden; import static com.android.server.media.MediaKeyDispatcher.isSingleTapOverridden; import static com.android.server.media.MediaKeyDispatcher.isTripleTapOverridden; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.app.ActivityManager; import android.app.INotificationManager; import android.app.KeyguardManager; @@ -86,6 +88,7 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.util.DumpUtils; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.Watchdog; import com.android.server.Watchdog.Monitor; @@ -335,19 +338,21 @@ public class MediaSessionService extends SystemService implements Monitor { } @Override - public void onStartUser(int userId) { - if (DEBUG) Log.d(TAG, "onStartUser: " + userId); + public void onUserStarting(@NonNull TargetUser user) { + if (DEBUG) Log.d(TAG, "onStartUser: " + user); updateUser(); } @Override - public void onSwitchUser(int userId) { - if (DEBUG) Log.d(TAG, "onSwitchUser: " + userId); + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { + if (DEBUG) Log.d(TAG, "onSwitchUser: " + to); updateUser(); } @Override - public void onCleanupUser(int userId) { + public void onUserStopped(@NonNull TargetUser targetUser) { + int userId = targetUser.getUserIdentifier(); + if (DEBUG) Log.d(TAG, "onCleanupUser: " + userId); synchronized (mLock) { FullUserRecord user = getFullUserRecordLocked(userId); diff --git a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java index 1a749b34d85e..94776f8c7cb4 100644 --- a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java +++ b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java @@ -17,6 +17,8 @@ package com.android.server.media.projection; import android.Manifest; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.app.ActivityManagerInternal; import android.app.AppOpsManager; import android.app.IProcessObserver; @@ -48,6 +50,7 @@ import com.android.internal.util.ArrayUtils; import com.android.internal.util.DumpUtils; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.Watchdog; import java.io.FileDescriptor; @@ -122,8 +125,8 @@ public final class MediaProjectionManagerService extends SystemService } @Override - public void onSwitchUser(int userId) { - mMediaRouter.rebindAsUser(userId); + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { + mMediaRouter.rebindAsUser(to.getUserIdentifier()); synchronized (mLock) { if (mProjectionGrant != null) { mProjectionGrant.stop(); diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 88964e055a18..87ab91615d52 100755 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -261,6 +261,7 @@ import com.android.server.EventLogTags; import com.android.server.IoThread; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.UiThread; import com.android.server.lights.LightsManager; import com.android.server.lights.LogicalLight; @@ -2349,11 +2350,11 @@ public class NotificationManagerService extends SystemService { } @Override - public void onUnlockUser(@NonNull UserInfo userInfo) { + public void onUserUnlocking(@NonNull TargetUser user) { mHandler.post(() -> { Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "notifHistoryUnlockUser"); try { - mHistoryManager.onUserUnlocked(userInfo.id); + mHistoryManager.onUserUnlocked(user.getUserIdentifier()); } finally { Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } @@ -2361,11 +2362,11 @@ public class NotificationManagerService extends SystemService { } @Override - public void onStopUser(@NonNull UserInfo userInfo) { + public void onUserStopping(@NonNull TargetUser user) { mHandler.post(() -> { Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "notifHistoryStopUser"); try { - mHistoryManager.onUserStopped(userInfo.id); + mHistoryManager.onUserStopped(user.getUserIdentifier()); } finally { Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } diff --git a/services/core/java/com/android/server/om/OverlayManagerService.java b/services/core/java/com/android/server/om/OverlayManagerService.java index 396815399874..ed055f324f47 100644 --- a/services/core/java/com/android/server/om/OverlayManagerService.java +++ b/services/core/java/com/android/server/om/OverlayManagerService.java @@ -31,6 +31,7 @@ import static android.os.Trace.traceEnd; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.IActivityManager; import android.content.BroadcastReceiver; @@ -68,6 +69,7 @@ import com.android.server.IoThread; import com.android.server.LocalServices; import com.android.server.SystemConfig; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.pm.UserManagerService; import libcore.util.EmptyArray; @@ -303,7 +305,11 @@ public final class OverlayManagerService extends SystemService { } @Override - public void onSwitchUser(final int newUserId) { + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { + onSwitchUser(to.getUserIdentifier()); + } + + private void onSwitchUser(@UserIdInt int newUserId) { try { traceBegin(TRACE_TAG_RRO, "OMS#onSwitchUser " + newUserId); // ensure overlays in the settings are up-to-date, and propagate diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index f16b5b48d913..89ed3c755783 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -108,6 +108,7 @@ import com.android.internal.util.Preconditions; import com.android.internal.util.StatLogger; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.pm.ShortcutUser.PackageWithUser; import com.android.server.uri.UriGrantsManagerInternal; @@ -614,13 +615,13 @@ public class ShortcutService extends IShortcutService.Stub { } @Override - public void onStopUser(int userHandle) { - mService.handleStopUser(userHandle); + public void onUserStopping(@NonNull TargetUser user) { + mService.handleStopUser(user.getUserIdentifier()); } @Override - public void onUnlockUser(int userId) { - mService.handleUnlockUser(userId); + public void onUserUnlocking(@NonNull TargetUser user) { + mService.handleUnlockUser(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index a44d1797b82b..74800d1574be 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -110,6 +110,7 @@ import com.android.internal.widget.LockPatternUtils; import com.android.server.LocalServices; import com.android.server.LockGuard; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.am.UserState; import com.android.server.storage.DeviceStorageMonitorInternal; import com.android.server.utils.TimingsTraceAndSlog; @@ -553,9 +554,9 @@ public class UserManagerService extends IUserManager.Stub { } @Override - public void onStartUser(@UserIdInt int userId) { + public void onUserStarting(@NonNull TargetUser targetUser) { synchronized (mUms.mUsersLock) { - final UserData user = mUms.getUserDataLU(userId); + final UserData user = mUms.getUserDataLU(targetUser.getUserIdentifier()); if (user != null) { user.startRealtime = SystemClock.elapsedRealtime(); } @@ -563,9 +564,9 @@ public class UserManagerService extends IUserManager.Stub { } @Override - public void onUnlockUser(@UserIdInt int userId) { + public void onUserUnlocking(@NonNull TargetUser targetUser) { synchronized (mUms.mUsersLock) { - final UserData user = mUms.getUserDataLU(userId); + final UserData user = mUms.getUserDataLU(targetUser.getUserIdentifier()); if (user != null) { user.unlockRealtime = SystemClock.elapsedRealtime(); } @@ -573,9 +574,9 @@ public class UserManagerService extends IUserManager.Stub { } @Override - public void onStopUser(@UserIdInt int userId) { + public void onUserStopping(@NonNull TargetUser targetUser) { synchronized (mUms.mUsersLock) { - final UserData user = mUms.getUserDataLU(userId); + final UserData user = mUms.getUserDataLU(targetUser.getUserIdentifier()); if (user != null) { user.startRealtime = 0; user.unlockRealtime = 0; diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java index 37f088b170eb..4d48a2e63b30 100644 --- a/services/core/java/com/android/server/policy/PermissionPolicyService.java +++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java @@ -67,6 +67,7 @@ import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.FgThread; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.pm.parsing.pkg.AndroidPackage; import com.android.server.pm.permission.PermissionManagerServiceInternal; import com.android.server.policy.PermissionPolicyInternal.OnInitializedCallback; @@ -347,7 +348,11 @@ public final class PermissionPolicyService extends SystemService { } @Override - public void onStartUser(@UserIdInt int userId) { + public void onUserStarting(@NonNull TargetUser user) { + onStartUser(user.getUserIdentifier()); + } + + private void onStartUser(@UserIdInt int userId) { if (DEBUG) Slog.i(LOG_TAG, "onStartUser(" + userId + ")"); if (isStarted(userId)) { @@ -373,11 +378,11 @@ public final class PermissionPolicyService extends SystemService { } @Override - public void onStopUser(@UserIdInt int userId) { - if (DEBUG) Slog.i(LOG_TAG, "onStopUser(" + userId + ")"); + public void onUserStopping(@NonNull TargetUser user) { + if (DEBUG) Slog.i(LOG_TAG, "onStopUser(" + user + ")"); synchronized (mLock) { - mIsStarted.delete(userId); + mIsStarted.delete(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/role/RoleManagerService.java b/services/core/java/com/android/server/role/RoleManagerService.java index 392792dbae69..a291cef5b39e 100644 --- a/services/core/java/com/android/server/role/RoleManagerService.java +++ b/services/core/java/com/android/server/role/RoleManagerService.java @@ -34,14 +34,11 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.PermissionChecker; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManagerInternal; import android.content.pm.Signature; -import android.database.CursorWindow; import android.os.Binder; -import android.os.Bundle; import android.os.Handler; import android.os.RemoteCallback; import android.os.RemoteCallbackList; @@ -74,6 +71,7 @@ import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.FgThread; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.pm.permission.PermissionManagerServiceInternal; import java.io.ByteArrayOutputStream; @@ -217,8 +215,8 @@ public class RoleManagerService extends SystemService implements RoleUserState.C } @Override - public void onStartUser(@UserIdInt int userId) { - maybeGrantDefaultRolesSync(userId); + public void onUserStarting(@NonNull TargetUser user) { + maybeGrantDefaultRolesSync(user.getUserIdentifier()); } @MainThread diff --git a/services/core/java/com/android/server/rollback/RollbackManagerService.java b/services/core/java/com/android/server/rollback/RollbackManagerService.java index ce1156bbe059..04a5ca515c5c 100644 --- a/services/core/java/com/android/server/rollback/RollbackManagerService.java +++ b/services/core/java/com/android/server/rollback/RollbackManagerService.java @@ -16,10 +16,12 @@ package com.android.server.rollback; +import android.annotation.NonNull; import android.content.Context; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; /** * Service that manages APK level rollbacks. Publishes @@ -43,8 +45,8 @@ public final class RollbackManagerService extends SystemService { } @Override - public void onUserUnlocking(TargetUser user) { - mService.onUnlockUser(user.getUserHandle().getIdentifier()); + public void onUserUnlocking(@NonNull TargetUser user) { + mService.onUnlockUser(user.getUserIdentifier()); } @Override diff --git a/services/core/java/com/android/server/search/SearchManagerService.java b/services/core/java/com/android/server/search/SearchManagerService.java index fea68d3090f0..7091c47b8e83 100644 --- a/services/core/java/com/android/server/search/SearchManagerService.java +++ b/services/core/java/com/android/server/search/SearchManagerService.java @@ -16,9 +16,7 @@ package com.android.server.search; -import android.app.ActivityManager; -import android.app.ActivityTaskManager; -import android.app.IActivityTaskManager; +import android.annotation.NonNull; import android.app.ISearchManager; import android.app.SearchManager; import android.app.SearchableInfo; @@ -26,18 +24,14 @@ import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; -import android.content.res.Configuration; import android.database.ContentObserver; import android.os.Binder; import android.os.Bundle; import android.os.Handler; -import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; -import android.service.voice.VoiceInteractionService; import android.util.Log; import android.util.SparseArray; @@ -48,6 +42,7 @@ import com.android.internal.util.DumpUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.statusbar.StatusBarManagerInternal; import java.io.FileDescriptor; @@ -76,18 +71,13 @@ public class SearchManagerService extends ISearchManager.Stub { } @Override - public void onUnlockUser(final int userId) { - mService.mHandler.post(new Runnable() { - @Override - public void run() { - mService.onUnlockUser(userId); - } - }); + public void onUserUnlocking(@NonNull TargetUser user) { + mService.mHandler.post(() -> mService.onUnlockUser(user.getUserIdentifier())); } @Override - public void onCleanupUser(int userHandle) { - mService.onCleanupUser(userHandle); + public void onUserStopped(@NonNull TargetUser user) { + mService.onCleanupUser(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/slice/SliceManagerService.java b/services/core/java/com/android/server/slice/SliceManagerService.java index 7c8c49461e64..4349ca451c36 100644 --- a/services/core/java/com/android/server/slice/SliceManagerService.java +++ b/services/core/java/com/android/server/slice/SliceManagerService.java @@ -26,6 +26,7 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.os.Process.SYSTEM_UID; import android.Manifest.permission; +import android.annotation.NonNull; import android.app.AppOpsManager; import android.app.slice.ISliceManager; import android.app.slice.SliceSpec; @@ -59,10 +60,10 @@ import android.util.Xml.Encoding; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.app.AssistUtils; -import com.android.internal.util.Preconditions; import com.android.server.LocalServices; import com.android.server.ServiceThread; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @@ -615,13 +616,13 @@ public class SliceManagerService extends ISliceManager.Stub { } @Override - public void onUnlockUser(int userHandle) { - mService.onUnlockUser(userHandle); + public void onUserUnlocking(@NonNull TargetUser user) { + mService.onUnlockUser(user.getUserIdentifier()); } @Override - public void onStopUser(int userHandle) { - mService.onStopUser(userHandle); + public void onUserStopping(@NonNull TargetUser user) { + mService.onStopUser(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java b/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java index 1707d9542813..363e86dea8b1 100644 --- a/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java +++ b/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java @@ -66,6 +66,7 @@ import com.android.internal.util.FunctionalUtils.ThrowingRunnable; import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.Preconditions; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -118,14 +119,14 @@ public final class TextClassificationManagerService extends ITextClassifierServi } @Override - public void onStartUser(int userId) { - processAnyPendingWork(userId); + public void onUserStarting(@NonNull TargetUser user) { + processAnyPendingWork(user.getUserIdentifier()); } @Override - public void onUnlockUser(int userId) { + public void onUserUnlocking(@NonNull TargetUser user) { // Rebind if we failed earlier due to locked encrypted user - processAnyPendingWork(userId); + processAnyPendingWork(user.getUserIdentifier()); } private void processAnyPendingWork(int userId) { @@ -135,7 +136,9 @@ public final class TextClassificationManagerService extends ITextClassifierServi } @Override - public void onStopUser(int userId) { + public void onUserStopping(@NonNull TargetUser user) { + int userId = user.getUserIdentifier(); + synchronized (mManagerService.mLock) { UserState userState = mManagerService.peekUserStateLocked(userId); if (userState != null) { diff --git a/services/core/java/com/android/server/textservices/TextServicesManagerService.java b/services/core/java/com/android/server/textservices/TextServicesManagerService.java index e0bac93cce16..f39067b110a8 100644 --- a/services/core/java/com/android/server/textservices/TextServicesManagerService.java +++ b/services/core/java/com/android/server/textservices/TextServicesManagerService.java @@ -58,6 +58,7 @@ import com.android.internal.textservice.ITextServicesSessionListener; import com.android.internal.util.DumpUtils; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import org.xmlpull.v1.XmlPullParserException; @@ -287,21 +288,21 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } @Override - public void onStopUser(@UserIdInt int userHandle) { + public void onUserStopping(@NonNull TargetUser user) { if (DBG) { - Slog.d(TAG, "onStopUser userId: " + userHandle); + Slog.d(TAG, "onStopUser user: " + user); } - mService.onStopUser(userHandle); + mService.onStopUser(user.getUserIdentifier()); } @Override - public void onUnlockUser(@UserIdInt int userHandle) { + public void onUserUnlocking(@NonNull TargetUser user) { if(DBG) { - Slog.d(TAG, "onUnlockUser userId: " + userHandle); + Slog.d(TAG, "onUnlockUser userId: " + user); } // Called on the system server's main looper thread. // TODO: Dispatch this to a worker thread as needed. - mService.onUnlockUser(userHandle); + mService.onUnlockUser(user.getUserIdentifier()); } } diff --git a/services/core/java/com/android/server/trust/TrustManagerService.java b/services/core/java/com/android/server/trust/TrustManagerService.java index fd3c1f97df8b..6adff0d32d88 100644 --- a/services/core/java/com/android/server/trust/TrustManagerService.java +++ b/services/core/java/com/android/server/trust/TrustManagerService.java @@ -17,6 +17,8 @@ package com.android.server.trust; import android.Manifest; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.AlarmManager; @@ -71,6 +73,7 @@ import com.android.internal.content.PackageMonitor; import com.android.internal.util.DumpUtils; import com.android.internal.widget.LockPatternUtils; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @@ -1042,28 +1045,28 @@ public class TrustManagerService extends SystemService { // User lifecycle @Override - public void onStartUser(int userId) { - mHandler.obtainMessage(MSG_START_USER, userId, 0, null).sendToTarget(); + public void onUserStarting(@NonNull TargetUser user) { + mHandler.obtainMessage(MSG_START_USER, user.getUserIdentifier(), 0, null).sendToTarget(); } @Override - public void onCleanupUser(int userId) { - mHandler.obtainMessage(MSG_CLEANUP_USER, userId, 0, null).sendToTarget(); + public void onUserStopped(@NonNull TargetUser user) { + mHandler.obtainMessage(MSG_CLEANUP_USER, user.getUserIdentifier(), 0, null).sendToTarget(); } @Override - public void onSwitchUser(int userId) { - mHandler.obtainMessage(MSG_SWITCH_USER, userId, 0, null).sendToTarget(); + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { + mHandler.obtainMessage(MSG_SWITCH_USER, to.getUserIdentifier(), 0, null).sendToTarget(); } @Override - public void onUnlockUser(int userId) { - mHandler.obtainMessage(MSG_UNLOCK_USER, userId, 0, null).sendToTarget(); + public void onUserUnlocking(@NonNull TargetUser user) { + mHandler.obtainMessage(MSG_UNLOCK_USER, user.getUserIdentifier(), 0, null).sendToTarget(); } @Override - public void onStopUser(@UserIdInt int userId) { - mHandler.obtainMessage(MSG_STOP_USER, userId, 0, null).sendToTarget(); + public void onUserStopping(@NonNull TargetUser user) { + mHandler.obtainMessage(MSG_STOP_USER, user.getUserIdentifier(), 0, null).sendToTarget(); } // Plumbing diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java index 323ac7b8806e..b3ec849e6c90 100755 --- a/services/core/java/com/android/server/tv/TvInputManagerService.java +++ b/services/core/java/com/android/server/tv/TvInputManagerService.java @@ -20,6 +20,7 @@ import static android.media.AudioManager.DEVICE_NONE; import static android.media.tv.TvInputManager.INPUT_STATE_CONNECTED; import static android.media.tv.TvInputManager.INPUT_STATE_CONNECTED_STANDBY; +import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.content.BroadcastReceiver; @@ -83,6 +84,7 @@ import com.android.internal.util.DumpUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.server.IoThread; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import java.io.File; import java.io.FileDescriptor; @@ -165,10 +167,10 @@ public final class TvInputManagerService extends SystemService { } @Override - public void onUnlockUser(int userHandle) { - if (DEBUG) Slog.d(TAG, "onUnlockUser(userHandle=" + userHandle + ")"); + public void onUserUnlocking(@NonNull TargetUser user) { + if (DEBUG) Slog.d(TAG, "onUnlockUser(user=" + user + ")"); synchronized (mLock) { - if (mCurrentUserId != userHandle) { + if (mCurrentUserId != user.getUserIdentifier()) { return; } buildTvInputListLocked(mCurrentUserId, null); diff --git a/services/core/java/com/android/server/vr/VrManagerService.java b/services/core/java/com/android/server/vr/VrManagerService.java index 45689ce73c9f..ae873e2fe467 100644 --- a/services/core/java/com/android/server/vr/VrManagerService.java +++ b/services/core/java/com/android/server/vr/VrManagerService.java @@ -19,6 +19,7 @@ import static android.view.Display.INVALID_DISPLAY; import android.Manifest; import android.annotation.NonNull; +import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityManagerInternal; import android.app.AppOpsManager; @@ -65,6 +66,7 @@ import com.android.server.FgThread; import com.android.server.LocalServices; import com.android.server.SystemConfig; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.utils.ManagedApplicationService; import com.android.server.utils.ManagedApplicationService.BinderChecker; import com.android.server.utils.ManagedApplicationService.LogEvent; @@ -817,14 +819,14 @@ public class VrManagerService extends SystemService } @Override - public void onStartUser(int userHandle) { + public void onUserStarting(@NonNull TargetUser user) { synchronized (mLock) { mComponentObserver.onUsersChanged(); } } @Override - public void onSwitchUser(int userHandle) { + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { FgThread.getHandler().post(() -> { synchronized (mLock) { mComponentObserver.onUsersChanged(); @@ -834,7 +836,7 @@ public class VrManagerService extends SystemService } @Override - public void onStopUser(int userHandle) { + public void onUserStopping(@NonNull TargetUser user) { synchronized (mLock) { mComponentObserver.onUsersChanged(); } @@ -842,7 +844,7 @@ public class VrManagerService extends SystemService } @Override - public void onCleanupUser(int userHandle) { + public void onUserStopped(@NonNull TargetUser user) { synchronized (mLock) { mComponentObserver.onUsersChanged(); } diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index 90f87b16e70d..2f695c6fd3f1 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -105,6 +105,7 @@ import com.android.server.EventLogTags; import com.android.server.FgThread; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.utils.TimingsTraceAndSlog; import com.android.server.wm.WindowManagerInternal; @@ -166,9 +167,9 @@ public class WallpaperManagerService extends IWallpaperManager.Stub } @Override - public void onUnlockUser(int userHandle) { + public void onUserUnlocking(@NonNull TargetUser user) { if (mService != null) { - mService.onUnlockUser(userHandle); + mService.onUnlockUser(user.getUserIdentifier()); } } } diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 029b5547ae29..9e838da26588 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -255,6 +255,7 @@ import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.AttributeCache; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.SystemServiceManager; import com.android.server.UiThread; import com.android.server.Watchdog; @@ -1020,16 +1021,17 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } @Override - public void onUnlockUser(int userId) { + public void onUserUnlocking(@NonNull TargetUser user) { synchronized (mService.getGlobalLock()) { - mService.mStackSupervisor.onUserUnlocked(userId); + mService.mStackSupervisor.onUserUnlocked(user.getUserIdentifier()); } } @Override - public void onCleanupUser(int userId) { + public void onUserStopped(@NonNull TargetUser user) { synchronized (mService.getGlobalLock()) { - mService.mStackSupervisor.mLaunchParamsPersister.onCleanupUser(userId); + mService.mStackSupervisor.mLaunchParamsPersister + .onCleanupUser(user.getUserIdentifier()); } } diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 7ec819f13e96..9a2bef85860f 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -290,6 +290,7 @@ import com.android.server.LockGuard; import com.android.server.PersistentDataBlockManagerInternal; import com.android.server.SystemServerInitThreadPool; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.devicepolicy.DevicePolicyManagerService.ActiveAdmin.TrustAgentInfo; import com.android.server.inputmethod.InputMethodManagerInternal; import com.android.server.net.NetworkPolicyManagerInternal; @@ -775,18 +776,18 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } @Override - public void onStartUser(int userHandle) { - mService.handleStartUser(userHandle); + public void onUserStarting(@NonNull TargetUser user) { + mService.handleStartUser(user.getUserIdentifier()); } @Override - public void onUnlockUser(int userHandle) { - mService.handleUnlockUser(userHandle); + public void onUserUnlocking(@NonNull TargetUser user) { + mService.handleUnlockUser(user.getUserIdentifier()); } @Override - public void onStopUser(int userHandle) { - mService.handleStopUser(userHandle); + public void onUserStopping(@NonNull TargetUser user) { + mService.handleStopUser(user.getUserIdentifier()); } } diff --git a/services/midi/java/com/android/server/midi/MidiService.java b/services/midi/java/com/android/server/midi/MidiService.java index 51478b365715..2cfdf3fd4f6f 100644 --- a/services/midi/java/com/android/server/midi/MidiService.java +++ b/services/midi/java/com/android/server/midi/MidiService.java @@ -16,6 +16,7 @@ package com.android.server.midi; +import android.annotation.NonNull; import android.bluetooth.BluetoothDevice; import android.content.ComponentName; import android.content.Context; @@ -47,8 +48,8 @@ import android.util.Log; import com.android.internal.content.PackageMonitor; import com.android.internal.util.DumpUtils; import com.android.internal.util.IndentingPrintWriter; -import com.android.internal.util.XmlUtils; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import org.xmlpull.v1.XmlPullParser; @@ -75,8 +76,8 @@ public class MidiService extends IMidiManager.Stub { } @Override - public void onUnlockUser(int userHandle) { - if (userHandle == UserHandle.USER_SYSTEM) { + public void onUserUnlocking(@NonNull TargetUser user) { + if (user.getUserIdentifier() == UserHandle.USER_SYSTEM) { mMidiService.onUnlockUser(); } } diff --git a/services/print/java/com/android/server/print/PrintManagerService.java b/services/print/java/com/android/server/print/PrintManagerService.java index d064f7ee62c3..1cdcbd87c1f5 100644 --- a/services/print/java/com/android/server/print/PrintManagerService.java +++ b/services/print/java/com/android/server/print/PrintManagerService.java @@ -72,6 +72,7 @@ import com.android.internal.util.Preconditions; import com.android.internal.util.dump.DualDumpOutputStream; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -101,13 +102,13 @@ public final class PrintManagerService extends SystemService { } @Override - public void onUnlockUser(int userHandle) { - mPrintManagerImpl.handleUserUnlocked(userHandle); + public void onUserUnlocking(@NonNull TargetUser user) { + mPrintManagerImpl.handleUserUnlocked(user.getUserIdentifier()); } @Override - public void onStopUser(int userHandle) { - mPrintManagerImpl.handleUserStopped(userHandle); + public void onUserStopping(@NonNull TargetUser user) { + mPrintManagerImpl.handleUserStopped(user.getUserIdentifier()); } class PrintManagerImpl extends IPrintManager.Stub { diff --git a/services/robotests/backup/src/com/android/server/backup/BackupManagerServiceRoboTest.java b/services/robotests/backup/src/com/android/server/backup/BackupManagerServiceRoboTest.java index 4a73efe25fdb..cd9b6aca72e0 100644 --- a/services/robotests/backup/src/com/android/server/backup/BackupManagerServiceRoboTest.java +++ b/services/robotests/backup/src/com/android/server/backup/BackupManagerServiceRoboTest.java @@ -38,7 +38,6 @@ import static org.testng.Assert.expectThrows; import android.annotation.UserIdInt; import android.app.Application; -import android.app.backup.BackupManager; import android.app.backup.BackupManager.OperationType; import android.app.backup.IBackupManagerMonitor; import android.app.backup.IBackupObserver; @@ -46,6 +45,7 @@ import android.app.backup.IFullBackupRestoreObserver; import android.app.backup.ISelectBackupTransportCallback; import android.content.Context; import android.content.Intent; +import android.content.pm.UserInfo; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.Process; @@ -54,6 +54,7 @@ import android.os.UserManager; import android.platform.test.annotations.Presubmit; import android.util.SparseArray; +import com.android.server.SystemService.TargetUser; import com.android.server.backup.testing.TransportData; import com.android.server.testing.shadows.ShadowApplicationPackageManager; import com.android.server.testing.shadows.ShadowBinder; @@ -1601,7 +1602,7 @@ public class BackupManagerServiceRoboTest { BackupManagerService.Lifecycle lifecycle = new BackupManagerService.Lifecycle(mContext, backupManagerService); - lifecycle.onUnlockUser(UserHandle.USER_SYSTEM); + lifecycle.onUserUnlocking(new TargetUser(new UserInfo(UserHandle.USER_SYSTEM, null, 0))); verify(backupManagerService).onUnlockUser(UserHandle.USER_SYSTEM); } @@ -1613,7 +1614,7 @@ public class BackupManagerServiceRoboTest { BackupManagerService.Lifecycle lifecycle = new BackupManagerService.Lifecycle(mContext, backupManagerService); - lifecycle.onStopUser(UserHandle.USER_SYSTEM); + lifecycle.onUserStopping(new TargetUser(new UserInfo(UserHandle.USER_SYSTEM, null, 0))); verify(backupManagerService).onStopUser(UserHandle.USER_SYSTEM); } diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java index 16aa87b3e59c..43efaecf0822 100755 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java @@ -166,6 +166,7 @@ import com.android.internal.util.FastXmlSerializer; import com.android.server.DeviceIdleInternal; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.UiServiceTestCase; import com.android.server.lights.LightsManager; import com.android.server.lights.LogicalLight; @@ -178,7 +179,6 @@ import com.android.server.wm.WindowManagerInternal; import org.junit.After; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -6434,7 +6434,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { public void testOnUnlockUser() { UserInfo ui = new UserInfo(); ui.id = 10; - mService.onUnlockUser(ui); + mService.onUserUnlocking(new TargetUser(ui)); waitForIdle(); verify(mHistoryManager, timeout(MAX_POST_DELAY).times(1)).onUserUnlocked(ui.id); @@ -6444,7 +6444,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { public void testOnStopUser() { UserInfo ui = new UserInfo(); ui.id = 10; - mService.onStopUser(ui); + mService.onUserStopping(new TargetUser(ui)); waitForIdle(); verify(mHistoryManager, timeout(MAX_POST_DELAY).times(1)).onUserStopped(ui.id); diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java index 9b18ec644ceb..2fd6c4249f99 100644 --- a/services/usage/java/com/android/server/usage/UsageStatsService.java +++ b/services/usage/java/com/android/server/usage/UsageStatsService.java @@ -92,6 +92,7 @@ import com.android.internal.util.FrameworkStatsLog; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.SystemService.TargetUser; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; import java.io.BufferedReader; @@ -291,27 +292,26 @@ public class UsageStatsService extends SystemService implements } @Override - public void onStartUser(UserInfo userInfo) { + public void onUserStarting(@NonNull TargetUser user) { // Create an entry in the user state map to indicate that the user has been started but // not necessarily unlocked. This will ensure that reported events are flushed to disk // event if the user is never unlocked (following the logic in #flushToDiskLocked) - mUserState.put(userInfo.id, null); - super.onStartUser(userInfo); + mUserState.put(user.getUserIdentifier(), null); } @Override - public void onUnlockUser(@NonNull UserInfo userInfo) { - mHandler.obtainMessage(MSG_UNLOCKED_USER, userInfo.id, 0).sendToTarget(); - super.onUnlockUser(userInfo); + public void onUserUnlocking(@NonNull TargetUser user) { + mHandler.obtainMessage(MSG_UNLOCKED_USER, user.getUserIdentifier(), 0).sendToTarget(); } @Override - public void onStopUser(@NonNull UserInfo userInfo) { + public void onUserStopping(@NonNull TargetUser user) { + final UserInfo userInfo = user.getUserInfo(); + synchronized (mLock) { // User was started but never unlocked so no need to report a user stopped event if (!mUserUnlockedStates.get(userInfo.id)) { persistPendingEventsLocked(userInfo.id); - super.onStopUser(userInfo); return; } @@ -326,7 +326,6 @@ public class UsageStatsService extends SystemService implements mUserUnlockedStates.put(userInfo.id, false); mUserState.put(userInfo.id, null); // release the service (mainly for GC) } - super.onStopUser(userInfo); } private void onUserUnlocked(int userId) { diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java index 6c13cd799bc2..dee69235a5c1 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java @@ -221,14 +221,6 @@ public class SoundTriggerService extends SystemService { } } - @Override - public void onStartUser(int userHandle) { - } - - @Override - public void onSwitchUser(int userHandle) { - } - private synchronized void initSoundTriggerHelper() { if (mSoundTriggerHelper == null) { mSoundTriggerHelper = new SoundTriggerHelper(mContext); diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java index 9621f68f9d6c..0f898f8e679e 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java @@ -189,10 +189,10 @@ public class VoiceInteractionManagerService extends SystemService { } @Override - public void onSwitchUser(@NonNull UserInfo from, @NonNull UserInfo to) { + public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { if (DEBUG_USER) Slog.d(TAG, "onSwitchUser(" + from + " > " + to + ")"); - mServiceStub.switchUser(to.id); + mServiceStub.switchUser(to.getUserIdentifier()); } class LocalService extends VoiceInteractionManagerInternal { |