summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Shreyas Basarge <snb@google.com> 2017-02-09 13:38:49 +0000
committer Shreyas Basarge <snb@google.com> 2017-02-09 23:11:43 +0000
commitbf2ec2c5d7d4ae2f7a9bb1e2896fcddd96a386ff (patch)
treea66a175e81c84cb08ad7b80f7700622e19f9a8f6
parentb01cac7c5337eb71a05b5f2b019f73b8041404c9 (diff)
Fix for bmgr whitelist
The bmgr whitelist command was broken after the selectTransport api cl. This cl fixes it. Bug: 34953486 Test: Verify that adb shell bmgr whitelist prints all whitelisted transports Change-Id: I3c3275258a45a035a0ca9404d1016ca5663cceaf
-rw-r--r--services/backup/java/com/android/server/backup/BackupManagerService.java9
-rw-r--r--services/backup/java/com/android/server/backup/TransportManager.java3
2 files changed, 10 insertions, 2 deletions
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index 88c05b55116b..3adf0f45dffc 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -9573,7 +9573,14 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF
public String[] getTransportWhitelist() {
// No permission check, intentionally.
- return mTransportManager.getTransportWhitelist().toArray(new String[0]);
+ Set<ComponentName> whitelistedComponents = mTransportManager.getTransportWhitelist();
+ String[] whitelistedTransports = new String[whitelistedComponents.size()];
+ int i = 0;
+ for (ComponentName component : whitelistedComponents) {
+ whitelistedTransports[i] = component.flattenToShortString();
+ i++;
+ }
+ return whitelistedTransports;
}
// Select which transport to use for the next backup operation.
diff --git a/services/backup/java/com/android/server/backup/TransportManager.java b/services/backup/java/com/android/server/backup/TransportManager.java
index 93d5a1ea8880..b9dbe13af7c8 100644
--- a/services/backup/java/com/android/server/backup/TransportManager.java
+++ b/services/backup/java/com/android/server/backup/TransportManager.java
@@ -31,6 +31,7 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.os.UserHandle;
import android.util.ArrayMap;
+import android.util.ArraySet;
import android.util.EventLog;
import android.util.Log;
import android.util.Slog;
@@ -84,7 +85,7 @@ class TransportManager {
TransportBoundListener listener) {
mContext = context;
mPackageManager = context.getPackageManager();
- mTransportWhitelist = whitelist;
+ mTransportWhitelist = (whitelist != null) ? whitelist : new ArraySet<>();
mCurrentTransportName = defaultTransport;
mTransportBoundListener = listener;
}