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

Commit 801707c2 authored by Kevin Han's avatar Kevin Han Committed by Automerger Merge Worker
Browse files

Merge "Add OEM-configurable flag for OAT artifact deletion" into sc-dev am: 8071948f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14037433

Change-Id: If410dd7fe3644fc5d26db54ae0252f88258e0ae7
parents e0c6df45 8071948f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4834,4 +4834,7 @@
    <bool name="config_cecRcProfileSourceMediaContextSensitiveMenuHandled_default">false</bool>
    <bool name="config_cecRcProfileSourceMediaContextSensitiveMenuNotHandled_allowed">true</bool>
    <bool name="config_cecRcProfileSourceMediaContextSensitiveMenuNotHandled_default">true</bool>

    <!-- Whether app hibernation deletes OAT artifact files as part of global hibernation. -->
    <bool name="config_hibernationDeletesOatArtifactsEnabled">true</bool>
</resources>
+1 −0
Original line number Diff line number Diff line
@@ -480,6 +480,7 @@
  <java-symbol type="string" name="config_bandwidthEstimateSource" />
  <java-symbol type="integer" name="config_smartSelectionInitializedTimeoutMillis" />
  <java-symbol type="integer" name="config_smartSelectionInitializingTimeoutMillis" />
  <java-symbol type="bool" name="config_hibernationDeletesOatArtifactsEnabled"/>

  <java-symbol type="color" name="tab_indicator_text_v4" />

+13 −1
Original line number Diff line number Diff line
@@ -106,6 +106,7 @@ public final class AppHibernationService extends SystemService {
    private final HibernationStateDiskStore<GlobalLevelState> mGlobalLevelHibernationDiskStore;
    private final Injector mInjector;
    private final Executor mBackgroundExecutor;
    private final boolean mOatArtifactDeletionEnabled;

    @VisibleForTesting
    boolean mIsServiceEnabled;
@@ -133,6 +134,7 @@ public final class AppHibernationService extends SystemService {
        mUserManager = injector.getUserManager();
        mGlobalLevelHibernationDiskStore = injector.getGlobalLevelDiskStore();
        mBackgroundExecutor = injector.getBackgroundExecutor();
        mOatArtifactDeletionEnabled = injector.isOatArtifactDeletionEnabled();
        mInjector = injector;

        final Context userAllContext = mContext.createContextAsUser(UserHandle.ALL, 0 /* flags */);
@@ -371,7 +373,9 @@ public final class AppHibernationService extends SystemService {
    @GuardedBy("mLock")
    private void hibernatePackageGlobally(@NonNull String packageName, GlobalLevelState state) {
        Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "hibernatePackageGlobally");
        if (mOatArtifactDeletionEnabled) {
            mPackageManagerInternal.deleteOatArtifactsOfPackage(packageName);
        }
        state.hibernated = true;
        Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);
    }
@@ -744,6 +748,8 @@ public final class AppHibernationService extends SystemService {
        HibernationStateDiskStore<GlobalLevelState> getGlobalLevelDiskStore();

        HibernationStateDiskStore<UserLevelState> getUserLevelDiskStore(int userId);

        boolean isOatArtifactDeletionEnabled();
    }

    private static final class InjectorImpl implements Injector {
@@ -801,5 +807,11 @@ public final class AppHibernationService extends SystemService {
            return new HibernationStateDiskStore<>(
                    dir, mUserLevelHibernationProto, mScheduledExecutorService);
        }

        @Override
        public boolean isOatArtifactDeletionEnabled() {
            return mContext.getResources().getBoolean(
                    com.android.internal.R.bool.config_hibernationDeletesOatArtifactsEnabled);
        }
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -282,5 +282,10 @@ public final class AppHibernationServiceTest {
        public HibernationStateDiskStore<UserLevelState> getUserLevelDiskStore(int userId) {
            return mock(HibernationStateDiskStore.class);
        }

        @Override
        public boolean isOatArtifactDeletionEnabled() {
            return true;
        }
    }
}