Loading services/backup/java/com/android/server/backup/BackupManagerService.java +0 −22 Original line number Original line Diff line number Diff line Loading @@ -95,28 +95,6 @@ public class BackupManagerService { } } } } // --------------------------------------------- // USER LIFECYCLE CALLBACKS // --------------------------------------------- boolean isAbleToServeUser(int userId) { return getUserServices().get(UserHandle.USER_SYSTEM) != null && getUserServices().get(userId) != null; } /** * Returns a list of users currently unlocked that have a {@link UserBackupManagerService} * registered. * * Warning: Do NOT modify returned object as it's used inside. * * TODO: Return a copy or only expose read-only information through other means. */ @VisibleForTesting public SparseArray<UserBackupManagerService> getUserServices() { return mServiceUsers; } /** /** * Returns the {@link UserBackupManagerService} instance for the specified user {@code userId}. * Returns the {@link UserBackupManagerService} instance for the specified user {@code userId}. * If the user is not registered with the service (either the user is locked or not eligible for * If the user is not registered with the service (either the user is locked or not eligible for Loading services/backup/java/com/android/server/backup/Trampoline.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -269,7 +269,8 @@ public class Trampoline extends IBackupManager.Stub { // This method should not perform any I/O (e.g. do not call isBackupActivatedForUser), // This method should not perform any I/O (e.g. do not call isBackupActivatedForUser), // it's used in multiple places where I/O waits would cause system lock-ups. // it's used in multiple places where I/O waits would cause system lock-ups. private boolean isUserReadyForBackup(int userId) { private boolean isUserReadyForBackup(int userId) { return mService.isAbleToServeUser(userId); return mUserServices.get(UserHandle.USER_SYSTEM) != null && mUserServices.get(userId) != null; } } /** /** Loading services/tests/servicestests/src/com/android/server/backup/TrampolineTest.java +1 −2 Original line number Original line Diff line number Diff line Loading @@ -139,7 +139,6 @@ public class TrampolineTest { mUserServices = new SparseArray<>(); mUserServices = new SparseArray<>(); mUserServices.append(UserHandle.USER_SYSTEM, mUserBackupManagerService); mUserServices.append(UserHandle.USER_SYSTEM, mUserBackupManagerService); mUserServices.append(NON_USER_SYSTEM, mUserBackupManagerService); mUserServices.append(NON_USER_SYSTEM, mUserBackupManagerService); when(mBackupManagerServiceMock.getUserServices()).thenReturn(mUserServices); when(mUserManagerMock.getUserInfo(UserHandle.USER_SYSTEM)).thenReturn(mUserInfoMock); when(mUserManagerMock.getUserInfo(UserHandle.USER_SYSTEM)).thenReturn(mUserInfoMock); when(mUserManagerMock.getUserInfo(NON_USER_SYSTEM)).thenReturn(mUserInfoMock); when(mUserManagerMock.getUserInfo(NON_USER_SYSTEM)).thenReturn(mUserInfoMock); Loading Loading @@ -794,7 +793,7 @@ public class TrampolineTest { @Test @Test public void selectBackupTransportAsyncForUser_beforeUserUnlocked_notifiesBackupNotAllowed() public void selectBackupTransportAsyncForUser_beforeUserUnlocked_notifiesBackupNotAllowed() throws Exception { throws Exception { when(mBackupManagerServiceMock.getUserServices()).thenReturn(new SparseArray<>()); mUserServices.clear(); CompletableFuture<Integer> future = new CompletableFuture<>(); CompletableFuture<Integer> future = new CompletableFuture<>(); ISelectBackupTransportCallback listener = ISelectBackupTransportCallback listener = new ISelectBackupTransportCallback.Stub() { new ISelectBackupTransportCallback.Stub() { Loading Loading
services/backup/java/com/android/server/backup/BackupManagerService.java +0 −22 Original line number Original line Diff line number Diff line Loading @@ -95,28 +95,6 @@ public class BackupManagerService { } } } } // --------------------------------------------- // USER LIFECYCLE CALLBACKS // --------------------------------------------- boolean isAbleToServeUser(int userId) { return getUserServices().get(UserHandle.USER_SYSTEM) != null && getUserServices().get(userId) != null; } /** * Returns a list of users currently unlocked that have a {@link UserBackupManagerService} * registered. * * Warning: Do NOT modify returned object as it's used inside. * * TODO: Return a copy or only expose read-only information through other means. */ @VisibleForTesting public SparseArray<UserBackupManagerService> getUserServices() { return mServiceUsers; } /** /** * Returns the {@link UserBackupManagerService} instance for the specified user {@code userId}. * Returns the {@link UserBackupManagerService} instance for the specified user {@code userId}. * If the user is not registered with the service (either the user is locked or not eligible for * If the user is not registered with the service (either the user is locked or not eligible for Loading
services/backup/java/com/android/server/backup/Trampoline.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -269,7 +269,8 @@ public class Trampoline extends IBackupManager.Stub { // This method should not perform any I/O (e.g. do not call isBackupActivatedForUser), // This method should not perform any I/O (e.g. do not call isBackupActivatedForUser), // it's used in multiple places where I/O waits would cause system lock-ups. // it's used in multiple places where I/O waits would cause system lock-ups. private boolean isUserReadyForBackup(int userId) { private boolean isUserReadyForBackup(int userId) { return mService.isAbleToServeUser(userId); return mUserServices.get(UserHandle.USER_SYSTEM) != null && mUserServices.get(userId) != null; } } /** /** Loading
services/tests/servicestests/src/com/android/server/backup/TrampolineTest.java +1 −2 Original line number Original line Diff line number Diff line Loading @@ -139,7 +139,6 @@ public class TrampolineTest { mUserServices = new SparseArray<>(); mUserServices = new SparseArray<>(); mUserServices.append(UserHandle.USER_SYSTEM, mUserBackupManagerService); mUserServices.append(UserHandle.USER_SYSTEM, mUserBackupManagerService); mUserServices.append(NON_USER_SYSTEM, mUserBackupManagerService); mUserServices.append(NON_USER_SYSTEM, mUserBackupManagerService); when(mBackupManagerServiceMock.getUserServices()).thenReturn(mUserServices); when(mUserManagerMock.getUserInfo(UserHandle.USER_SYSTEM)).thenReturn(mUserInfoMock); when(mUserManagerMock.getUserInfo(UserHandle.USER_SYSTEM)).thenReturn(mUserInfoMock); when(mUserManagerMock.getUserInfo(NON_USER_SYSTEM)).thenReturn(mUserInfoMock); when(mUserManagerMock.getUserInfo(NON_USER_SYSTEM)).thenReturn(mUserInfoMock); Loading Loading @@ -794,7 +793,7 @@ public class TrampolineTest { @Test @Test public void selectBackupTransportAsyncForUser_beforeUserUnlocked_notifiesBackupNotAllowed() public void selectBackupTransportAsyncForUser_beforeUserUnlocked_notifiesBackupNotAllowed() throws Exception { throws Exception { when(mBackupManagerServiceMock.getUserServices()).thenReturn(new SparseArray<>()); mUserServices.clear(); CompletableFuture<Integer> future = new CompletableFuture<>(); CompletableFuture<Integer> future = new CompletableFuture<>(); ISelectBackupTransportCallback listener = ISelectBackupTransportCallback listener = new ISelectBackupTransportCallback.Stub() { new ISelectBackupTransportCallback.Stub() { Loading