diff options
author | Bernardo Rufino <brufino@google.com> | 2018-01-02 16:01:53 +0000 |
---|---|---|
committer | Bernardo Rufino <brufino@google.com> | 2018-01-05 16:33:33 +0000 |
commit | fa51853ae56ed74a0c854c01851cb1435453005f (patch) | |
tree | d9ae04564295053eb2b8621f55fa2f64b63bb1a3 /cmds/bmgr | |
parent | dc4cb146315240441fc8d9c05fe8dd63370a7c57 (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.java | 23 |
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); } } |