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
This commit is contained in:
Shreyas Basarge
2017-02-09 13:38:49 +00:00
parent b01cac7c53
commit bf2ec2c5d7
2 changed files with 10 additions and 2 deletions

View File

@@ -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.

View File

@@ -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;
}