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

Commit 82c70fb5 authored by Martin Stjernholm's avatar Martin Stjernholm
Browse files

Give access to the DexOptHelper object in the onDexoptDone callback.

To make it easier to share data between methods.

Test: m
Bug: 251903639
Change-Id: Icaa3c885d8e0e5bf41c072e86f01ff331d20c493
parent b1a79007
Loading
Loading
Loading
Loading
+5 −11
Original line number Diff line number Diff line
@@ -86,7 +86,6 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -946,13 +945,10 @@ public final class DexOptHelper {
        }
    }

    private static class DexoptDoneHandler implements ArtManagerLocal.DexoptDoneCallback {
        @NonNull private final PackageManagerService mPm;

        DexoptDoneHandler(@NonNull PackageManagerService pm) { mPm = pm; }

    private class DexoptDoneHandler implements ArtManagerLocal.DexoptDoneCallback {
        /**
         * Called after every package dexopt operation done by {@link ArtManagerLocal}.
         * Called after every package dexopt operation done by {@link ArtManagerLocal} (when ART
         * Service is in use).
         */
        @Override
        public void onDexoptDone(@NonNull DexoptResult result) {
@@ -983,10 +979,8 @@ public final class DexOptHelper {
        }

        ArtManagerLocal artManager = new ArtManagerLocal(systemContext);
        // There doesn't appear to be any checks that @NonNull is heeded, so use requireNonNull
        // below to ensure we don't store away a null that we'll fail on later.
        artManager.addDexoptDoneCallback(false /* onlyIncludeUpdates */,
                Runnable::run, new DexoptDoneHandler(Objects.requireNonNull(pm)));
        artManager.addDexoptDoneCallback(false /* onlyIncludeUpdates */, Runnable::run,
                pm.getDexOptHelper().new DexoptDoneHandler());
        LocalManagerRegistry.addManager(ArtManagerLocal.class, artManager);

        artManager.scheduleBackgroundDexoptJob();
+4 −0
Original line number Diff line number Diff line
@@ -2997,6 +2997,10 @@ public class PackageManagerService implements PackageSender, TestUtilityService
        return mDexManager;
    }

    /*package*/ DexOptHelper getDexOptHelper() {
        return mDexOptHelper;
    }

    /*package*/ DynamicCodeLogger getDynamicCodeLogger() {
        return mDynamicCodeLogger;
    }