summaryrefslogtreecommitdiff
path: root/cmds/bmgr
diff options
context:
space:
mode:
authorBernardo Rufino <brufino@google.com>2018-01-02 16:01:53 +0000
committerBernardo Rufino <brufino@google.com>2018-01-05 16:33:33 +0000
commitfa51853ae56ed74a0c854c01851cb1435453005f (patch)
treed9ae04564295053eb2b8621f55fa2f64b63bb1a3 /cmds/bmgr
parentdc4cb146315240441fc8d9c05fe8dd63370a7c57 (diff)
Binding on-demand #8: Miscellaneous usages
Migrate usages of the transport binder to binding on-demand: * getDestinationString() * isAppEligibleForBackup() * dump() For getDestinationString() we'll be introducing an invisible bug for people that haven't updated GMSCore to include the usage of updateTransportAttributes() API introduced in earlier CL. The bug is that that text won't change, it'll remain constant. It's invisible because currently only place that uses that method is Settings in some circumstances that depend on the transport, and those circunstances don't happen with our transports. Check http://ag/1831025. For isAppEligibleForBackup(), a new filterAppsEligibleForBackup() is created and there we bind on-demand. Change-Id: Idc9e31f0e8eda8531e204c05a84fafdaf0247d08 Ref: http://go/br-binding-on-demand Bug: 17140907 Test: adb shell dumpsys backup, observe destination of transports Test: adb shell bmgr backupnow --all, observe only eligible apps got backed-up Test: Force-loaded settings screen and observed destination string Test: m -j RunFrameworksServicesRoboTests
Diffstat (limited to 'cmds/bmgr')
-rw-r--r--cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java23
1 files changed, 11 insertions, 12 deletions
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
index b61cdecbfb7b..e87a78e20d14 100644
--- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
+++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
@@ -23,8 +23,8 @@ import android.app.backup.IBackupManager;
import android.app.backup.IBackupObserver;
import android.app.backup.IRestoreObserver;
import android.app.backup.IRestoreSession;
-import android.app.backup.RestoreSet;
import android.app.backup.ISelectBackupTransportCallback;
+import android.app.backup.RestoreSet;
import android.content.ComponentName;
import android.content.pm.IPackageManager;
import android.content.pm.PackageInfo;
@@ -37,6 +37,7 @@ import android.util.ArraySet;
import com.android.internal.annotations.GuardedBy;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.CountDownLatch;
@@ -339,18 +340,16 @@ public final class Bmgr {
System.err.println(PM_NOT_RUNNING_ERR);
}
if (installedPackages != null) {
- List<String> packages = new ArrayList<>();
- for (PackageInfo pi : installedPackages) {
- try {
- if (mBmgr.isAppEligibleForBackup(pi.packageName)) {
- packages.add(pi.packageName);
- }
- } catch (RemoteException e) {
- System.err.println(e.toString());
- System.err.println(BMGR_NOT_RUNNING_ERR);
- }
+ String[] packages =
+ installedPackages.stream().map(p -> p.packageName).toArray(String[]::new);
+ String[] filteredPackages = {};
+ try {
+ filteredPackages = mBmgr.filterAppsEligibleForBackup(packages);
+ } catch (RemoteException e) {
+ System.err.println(e.toString());
+ System.err.println(BMGR_NOT_RUNNING_ERR);
}
- backupNowPackages(packages, nonIncrementalBackup);
+ backupNowPackages(Arrays.asList(filteredPackages), nonIncrementalBackup);
}
}