Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92c56b1b authored by JW Wang's avatar JW Wang
Browse files

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
parent c894d0ad
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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();
+8 −3
Original line number Diff line number Diff line
@@ -867,11 +867,16 @@ 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 -> {
                executor.execute(() -> {
                    callback.accept(b.getParcelable("result", InstallConstraintsResult.class));
                });
            });
            mInstaller.checkInstallConstraints(
                    mInstallerPackageName, packageNames, constraints, remoteCallback);
        } catch (RemoteException e) {
@@ -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