Merge "Let the client specify the thread to run the callback"

This commit is contained in:
Chun-Wei Wang
2022-12-07 01:01:01 +00:00
committed by Android (Google) Code Review
2 changed files with 9 additions and 4 deletions

View File

@@ -11690,7 +11690,7 @@ package android.content.pm {
public class PackageInstaller {
method public void abandonSession(int);
method public void checkInstallConstraints(@NonNull java.util.List<java.lang.String>, @NonNull android.content.pm.PackageInstaller.InstallConstraints, @NonNull java.util.function.Consumer<android.content.pm.PackageInstaller.InstallConstraintsResult>);
method public void checkInstallConstraints(@NonNull java.util.List<java.lang.String>, @NonNull android.content.pm.PackageInstaller.InstallConstraints, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.content.pm.PackageInstaller.InstallConstraintsResult>);
method public int createSession(@NonNull android.content.pm.PackageInstaller.SessionParams) throws java.io.IOException;
method @Deprecated @Nullable public android.content.pm.PackageInstaller.SessionInfo getActiveStagedSession();
method @NonNull public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getActiveStagedSessions();

View File

@@ -867,10 +867,15 @@ public class PackageInstaller {
*/
public void checkInstallConstraints(@NonNull List<String> packageNames,
@NonNull InstallConstraints constraints,
@NonNull @CallbackExecutor Executor executor,
@NonNull Consumer<InstallConstraintsResult> callback) {
Objects.requireNonNull(executor);
Objects.requireNonNull(callback);
try {
var remoteCallback = new RemoteCallback(b -> {
callback.accept(b.getParcelable("result", InstallConstraintsResult.class));
executor.execute(() -> {
callback.accept(b.getParcelable("result", InstallConstraintsResult.class));
});
});
mInstaller.checkInstallConstraints(
mInstallerPackageName, packageNames, constraints, remoteCallback);
@@ -3675,7 +3680,7 @@ public class PackageInstaller {
}
/**
* The callback result of {@link #checkInstallConstraints(List, InstallConstraints, Consumer)}.
* The callback result of {@link #checkInstallConstraints(List, InstallConstraints, Executor, Consumer)}.
*/
@DataClass(genParcelable = true, genHiddenConstructor = true)
public static final class InstallConstraintsResult implements Parcelable {
@@ -3783,7 +3788,7 @@ public class PackageInstaller {
/**
* A class to encapsulate constraints for installation.
*
* When used with {@link #checkInstallConstraints(List, InstallConstraints, Consumer)}, it
* When used with {@link #checkInstallConstraints(List, InstallConstraints, Executor, Consumer)}, it
* specifies the conditions to check against for the packages in question. This can be used
* by app stores to deliver auto updates without disrupting the user experience (referred as
* gentle update) - for example, an app store might hold off updates when it find out the