Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14220339 authored by Ruslan Tkhakokhov's avatar Ruslan Tkhakokhov Committed by Android (Google) Code Review
Browse files

Merge changes from topic "cts-launcher-api"

* changes:
  Fix BackupManager#getUserForSerialNumber
  Do lazy init of BMS at the beginning of every BackupManager method
parents a48e54ed 70afec38
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -762,6 +762,7 @@ public class BackupManager {
     */
    @Nullable
    public UserHandle getUserForAncestralSerialNumber(long ancestralSerialNumber) {
        checkServiceBinder();
        if (sService != null) {
            try {
                return sService.getUserForAncestralSerialNumber(ancestralSerialNumber);
@@ -782,6 +783,7 @@ public class BackupManager {
    @SystemApi
    @RequiresPermission(android.Manifest.permission.BACKUP)
    public void setAncestralSerialNumber(long ancestralSerialNumber) {
        checkServiceBinder();
        if (sService != null) {
            try {
                sService.setAncestralSerialNumber(ancestralSerialNumber);
@@ -802,6 +804,7 @@ public class BackupManager {
    @TestApi
    @RequiresPermission(android.Manifest.permission.BACKUP)
    public Intent getConfigurationIntent(String transportName) {
        checkServiceBinder();
        if (sService != null) {
            try {
                return sService.getConfigurationIntentForUser(mContext.getUserId(), transportName);
@@ -823,6 +826,7 @@ public class BackupManager {
    @TestApi
    @RequiresPermission(android.Manifest.permission.BACKUP)
    public String getDestinationString(String transportName) {
        checkServiceBinder();
        if (sService != null) {
            try {
                return sService.getDestinationStringForUser(mContext.getUserId(), transportName);
@@ -844,6 +848,7 @@ public class BackupManager {
    @TestApi
    @RequiresPermission(android.Manifest.permission.BACKUP)
    public Intent getDataManagementIntent(String transportName) {
        checkServiceBinder();
        if (sService != null) {
            try {
                return sService.getDataManagementIntentForUser(mContext.getUserId(), transportName);
@@ -867,6 +872,7 @@ public class BackupManager {
    @TestApi
    @RequiresPermission(android.Manifest.permission.BACKUP)
    public String getDataManagementLabel(String transportName) {
        checkServiceBinder();
        if (sService != null) {
            try {
                return sService.getDataManagementLabelForUser(mContext.getUserId(), transportName);
+14 −4
Original line number Diff line number Diff line
@@ -464,15 +464,25 @@ public class BackupManagerService {
     */
    @Nullable
    public UserHandle getUserForAncestralSerialNumber(long ancestralSerialNumber) {
        for (UserHandle handle : mContext.getSystemService(UserManager.class).getUserProfiles()) {
            UserBackupManagerService userBackupManagerService = getServiceUsers().get(
                    handle.getIdentifier());
        int callingUserId = Binder.getCallingUserHandle().getIdentifier();
        long oldId = Binder.clearCallingIdentity();
        int[] userIds;
        try {
            userIds = mContext.getSystemService(UserManager.class).getProfileIds(callingUserId,
                    false);
        } finally {
            Binder.restoreCallingIdentity(oldId);
        }

        for (int userId : userIds) {
            UserBackupManagerService userBackupManagerService = getServiceUsers().get(userId);
            if (userBackupManagerService != null) {
                if (userBackupManagerService.getAncestralSerialNumber() == ancestralSerialNumber) {
                    return handle;
                    return UserHandle.of(userId);
                }
            }
        }

        return null;
    }