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

Commit f3586740 authored by Yuqing Mao's avatar Yuqing Mao Committed by Android (Google) Code Review
Browse files

Merge "Add API of isOatArtifactDeletionEnabled for system apps"

parents f4f1fd4d 2aba3470
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2744,6 +2744,7 @@ package android.apphibernation {
    method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public java.util.Map<java.lang.String,android.apphibernation.HibernationStats> getHibernationStatsForUser();
    method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isHibernatingForUser(@NonNull String);
    method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isHibernatingGlobally(@NonNull String);
    method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isOatArtifactDeletionEnabled();
    method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public void setHibernatingForUser(@NonNull String, boolean);
    method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public void setHibernatingGlobally(@NonNull String, boolean);
  }
+16 −1
Original line number Diff line number Diff line
@@ -166,4 +166,19 @@ public class AppHibernationManager {
            throw e.rethrowFromSystemServer();
        }
    }

    /**
     * Whether global hibernation should delete ART ahead-of-time compilation artifacts
     * and prevent package manager from re-optimizing the APK.
     * @hide
     */
    @SystemApi
    @RequiresPermission(value = android.Manifest.permission.MANAGE_APP_HIBERNATION)
    public boolean isOatArtifactDeletionEnabled() {
        try {
            return mIAppHibernationService.isOatArtifactDeletionEnabled();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -30,4 +30,6 @@ interface IAppHibernationService {
    List<String> getHibernatingPackagesForUser(int userId);
    Map<String, HibernationStats> getHibernationStatsForUser(in List<String> packageNames,
            int userId);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION)")
    boolean isOatArtifactDeletionEnabled();
}
 No newline at end of file
+8 −0
Original line number Diff line number Diff line
@@ -210,6 +210,9 @@ public final class AppHibernationService extends SystemService {
     * package manager from re-optimizing the APK.
     */
    private boolean isOatArtifactDeletionEnabled() {
        getContext().enforceCallingOrSelfPermission(
                android.Manifest.permission.MANAGE_APP_HIBERNATION,
                "Caller does not have MANAGE_APP_HIBERNATION permission.");
        return mOatArtifactDeletionEnabled;
    }

@@ -874,6 +877,11 @@ public final class AppHibernationService extends SystemService {
            return mService.getHibernationStatsForUser(pkgsSet, userId);
        }

        @Override
        public boolean isOatArtifactDeletionEnabled() {
            return mService.isOatArtifactDeletionEnabled();
        }

        @Override
        public void onShellCommand(@Nullable FileDescriptor in, @Nullable FileDescriptor out,
                @Nullable FileDescriptor err, @NonNull String[] args,