Let the client specify the thread to run the callback
Per https://g3doc.corp.google.com/company/teams/android-api-council/guidelines/index.md?cl=head#provide-executor Bug: 235306967 Test: atest CtsStagedInstallHostTestCases Change-Id: I3c86e33288275e480073a963da42f809624f9932
This commit is contained in:
@@ -11664,7 +11664,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();
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user