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

Commit 74a57744 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix AppOps API review bugs."

parents 9fc8e51f 62878494
Loading
Loading
Loading
Loading
+16 −16
Original line number Diff line number Diff line
@@ -4263,24 +4263,24 @@ package android.app {
  }
  public class AppOpsManager {
    method @Deprecated public int checkOp(String, int, String);
    method @Deprecated public int checkOpNoThrow(String, int, String);
    method public void checkPackage(int, String);
    method public void finishOp(String, int, String);
    method public int noteOp(String, int, String);
    method public int noteOpNoThrow(String, int, String);
    method public int noteProxyOp(String, String);
    method public int noteProxyOpNoThrow(String, String);
    method @Deprecated public int checkOp(@NonNull String, int, @NonNull String);
    method @Deprecated public int checkOpNoThrow(@NonNull String, int, @NonNull String);
    method public void checkPackage(int, @NonNull String);
    method public void finishOp(@NonNull String, int, @NonNull String);
    method public int noteOp(@NonNull String, int, @NonNull String);
    method public int noteOpNoThrow(@NonNull String, int, @NonNull String);
    method public int noteProxyOp(@NonNull String, @NonNull String);
    method public int noteProxyOpNoThrow(@NonNull String, @NonNull String);
    method public int noteProxyOpNoThrow(@NonNull String, @Nullable String, int);
    method public static String permissionToOp(String);
    method public int startOp(String, int, String);
    method public int startOpNoThrow(String, int, String);
    method public void startWatchingMode(String, String, android.app.AppOpsManager.OnOpChangedListener);
    method public void startWatchingMode(String, String, int, android.app.AppOpsManager.OnOpChangedListener);
    method public void stopWatchingMode(android.app.AppOpsManager.OnOpChangedListener);
    method public int unsafeCheckOp(String, int, String);
    method public int unsafeCheckOpNoThrow(String, int, String);
    method public int unsafeCheckOpRaw(@NonNull String, int, String);
    method public int startOp(@NonNull String, int, @NonNull String);
    method public int startOpNoThrow(@NonNull String, int, @NonNull String);
    method public void startWatchingMode(@NonNull String, @Nullable String, @NonNull android.app.AppOpsManager.OnOpChangedListener);
    method public void startWatchingMode(@NonNull String, @Nullable String, int, @NonNull android.app.AppOpsManager.OnOpChangedListener);
    method public void stopWatchingMode(@NonNull android.app.AppOpsManager.OnOpChangedListener);
    method public int unsafeCheckOp(@NonNull String, int, @NonNull String);
    method public int unsafeCheckOpNoThrow(@NonNull String, int, @NonNull String);
    method public int unsafeCheckOpRaw(@NonNull String, int, @NonNull String);
    method public int unsafeCheckOpRawNoThrow(@NonNull String, int, @NonNull String);
    field public static final int MODE_ALLOWED = 0; // 0x0
    field public static final int MODE_DEFAULT = 3; // 0x3
+2 −2
Original line number Diff line number Diff line
@@ -312,7 +312,7 @@ package android.app {
  public class AppOpsManager {
    method @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public void getHistoricalOps(@NonNull android.app.AppOpsManager.HistoricalOpsRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.AppOpsManager.HistoricalOps>);
    method public static String[] getOpStrs();
    method @Deprecated @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, String, int[]);
    method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, @NonNull String, @Nullable int[]);
    method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, @NonNull String, @Nullable java.lang.String...);
    method @NonNull @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS) public java.util.List<android.app.AppOpsManager.PackageOps> getPackagesForOps(@Nullable String[]);
    method public static int opToDefaultMode(@NonNull String);
@@ -465,7 +465,7 @@ package android.app {
  public static final class AppOpsManager.PackageOps implements android.os.Parcelable {
    method public int describeContents();
    method public java.util.List<android.app.AppOpsManager.OpEntry> getOps();
    method @NonNull public java.util.List<android.app.AppOpsManager.OpEntry> getOps();
    method @NonNull public String getPackageName();
    method public int getUid();
    method public void writeToParcel(android.os.Parcel, int);
+1 −1
Original line number Diff line number Diff line
@@ -146,7 +146,7 @@ package android.app {
    method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setUidMode(String, int, int);
    method public void startWatchingActive(@NonNull int[], @NonNull android.app.AppOpsManager.OnOpActiveChangedListener);
    method public void stopWatchingActive(@NonNull android.app.AppOpsManager.OnOpActiveChangedListener);
    method public static int strOpToOp(String);
    method public static int strOpToOp(@NonNull String);
    field public static final int HISTORICAL_MODE_DISABLED = 0; // 0x0
    field public static final int HISTORICAL_MODE_ENABLED_ACTIVE = 1; // 0x1
    field public static final int HISTORICAL_MODE_ENABLED_PASSIVE = 2; // 0x2
+22 −21
Original line number Diff line number Diff line
@@ -2214,7 +2214,7 @@ public class AppOpsManager {
        /**
         * @return The ops of the package.
         */
        public List<OpEntry> getOps() {
        public @NonNull List<OpEntry> getOps() {
            return mEntries;
        }

@@ -4371,7 +4371,8 @@ public class AppOpsManager {
    @Deprecated
    @SystemApi
    @RequiresPermission(android.Manifest.permission.GET_APP_OPS_STATS)
    public List<PackageOps> getOpsForPackage(int uid, String packageName, int[] ops) {
    public @NonNull List<PackageOps> getOpsForPackage(int uid, @NonNull String packageName,
            @Nullable int[] ops) {
        try {
            return mService.getOpsForPackage(uid, packageName, ops);
        } catch (RemoteException e) {
@@ -4639,8 +4640,8 @@ public class AppOpsManager {
     * @param packageName The name of the application to monitor.
     * @param callback Where to report changes.
     */
    public void startWatchingMode(String op, String packageName,
            final OnOpChangedListener callback) {
    public void startWatchingMode(@NonNull String op, @Nullable String packageName,
            @NonNull final OnOpChangedListener callback) {
        startWatchingMode(strOpToOp(op), packageName, callback);
    }

@@ -4653,8 +4654,8 @@ public class AppOpsManager {
     * @param flags Option flags: any combination of {@link #WATCH_FOREGROUND_CHANGES} or 0.
     * @param callback Where to report changes.
     */
    public void startWatchingMode(String op, String packageName, int flags,
            final OnOpChangedListener callback) {
    public void startWatchingMode(@NonNull String op, @Nullable String packageName, int flags,
            @NonNull final OnOpChangedListener callback) {
        startWatchingMode(strOpToOp(op), packageName, flags, callback);
    }

@@ -4716,7 +4717,7 @@ public class AppOpsManager {
     * Stop monitoring that was previously started with {@link #startWatchingMode}.  All
     * monitoring associated with this callback will be removed.
     */
    public void stopWatchingMode(OnOpChangedListener callback) {
    public void stopWatchingMode(@NonNull OnOpChangedListener callback) {
        synchronized (mModeWatchers) {
            IAppOpsCallback cb = mModeWatchers.remove(callback);
            if (cb != null) {
@@ -4875,7 +4876,7 @@ public class AppOpsManager {
     * {@hide}
     */
    @TestApi
    public static int strOpToOp(String op) {
    public static int strOpToOp(@NonNull String op) {
        Integer val = sOpStrToOp.get(op);
        if (val == null) {
            throw new IllegalArgumentException("Unknown operation string: " + op);
@@ -4910,7 +4911,7 @@ public class AppOpsManager {
     * causing the app to crash).
     * @throws SecurityException If the app has been configured to crash on this op.
     */
    public int unsafeCheckOp(String op, int uid, String packageName) {
    public int unsafeCheckOp(@NonNull String op, int uid, @NonNull String packageName) {
        return checkOp(strOpToOp(op), uid, packageName);
    }

@@ -4918,7 +4919,7 @@ public class AppOpsManager {
     * @deprecated Renamed to {@link #unsafeCheckOp(String, int, String)}.
     */
    @Deprecated
    public int checkOp(String op, int uid, String packageName) {
    public int checkOp(@NonNull String op, int uid, @NonNull String packageName) {
        return checkOp(strOpToOp(op), uid, packageName);
    }

@@ -4926,7 +4927,7 @@ public class AppOpsManager {
     * Like {@link #checkOp} but instead of throwing a {@link SecurityException} it
     * returns {@link #MODE_ERRORED}.
     */
    public int unsafeCheckOpNoThrow(String op, int uid, String packageName) {
    public int unsafeCheckOpNoThrow(@NonNull String op, int uid, @NonNull String packageName) {
        return checkOpNoThrow(strOpToOp(op), uid, packageName);
    }

@@ -4934,7 +4935,7 @@ public class AppOpsManager {
     * @deprecated Renamed to {@link #unsafeCheckOpNoThrow(String, int, String)}.
     */
    @Deprecated
    public int checkOpNoThrow(String op, int uid, String packageName) {
    public int checkOpNoThrow(@NonNull String op, int uid, @NonNull String packageName) {
        return checkOpNoThrow(strOpToOp(op), uid, packageName);
    }

@@ -4942,7 +4943,7 @@ public class AppOpsManager {
     * Like {@link #checkOp} but returns the <em>raw</em> mode associated with the op.
     * Does not throw a security exception, does not translate {@link #MODE_FOREGROUND}.
     */
    public int unsafeCheckOpRaw(@NonNull String op, int uid, String packageName) {
    public int unsafeCheckOpRaw(@NonNull String op, int uid, @NonNull String packageName) {
        try {
            return mService.checkOperationRaw(strOpToOp(op), uid, packageName);
        } catch (RemoteException e) {
@@ -4977,7 +4978,7 @@ public class AppOpsManager {
     * causing the app to crash).
     * @throws SecurityException If the app has been configured to crash on this op.
     */
    public int noteOp(String op, int uid, String packageName) {
    public int noteOp(@NonNull String op, int uid, @NonNull String packageName) {
        return noteOp(strOpToOp(op), uid, packageName);
    }

@@ -4985,7 +4986,7 @@ public class AppOpsManager {
     * Like {@link #noteOp} but instead of throwing a {@link SecurityException} it
     * returns {@link #MODE_ERRORED}.
     */
    public int noteOpNoThrow(String op, int uid, String packageName) {
    public int noteOpNoThrow(@NonNull String op, int uid, @NonNull String packageName) {
        return noteOpNoThrow(strOpToOp(op), uid, packageName);
    }

@@ -5004,7 +5005,7 @@ public class AppOpsManager {
     * causing the app to crash).
     * @throws SecurityException If the app has been configured to crash on this op.
     */
    public int noteProxyOp(String op, String proxiedPackageName) {
    public int noteProxyOp(@NonNull String op, @NonNull String proxiedPackageName) {
        return noteProxyOp(strOpToOp(op), proxiedPackageName);
    }

@@ -5015,7 +5016,7 @@ public class AppOpsManager {
     * <p>This API requires the package with the {@code proxiedPackageName} to belongs to
     * {@link Binder#getCallingUid()}.
     */
    public int noteProxyOpNoThrow(String op, String proxiedPackageName) {
    public int noteProxyOpNoThrow(@NonNull String op, @NonNull String proxiedPackageName) {
        return noteProxyOpNoThrow(strOpToOp(op), proxiedPackageName);
    }

@@ -5051,7 +5052,7 @@ public class AppOpsManager {
     * causing the app to crash).
     * @throws SecurityException If the app has been configured to crash on this op.
     */
    public int startOp(String op, int uid, String packageName) {
    public int startOp(@NonNull String op, int uid, @NonNull String packageName) {
        return startOp(strOpToOp(op), uid, packageName);
    }

@@ -5059,7 +5060,7 @@ public class AppOpsManager {
     * Like {@link #startOp} but instead of throwing a {@link SecurityException} it
     * returns {@link #MODE_ERRORED}.
     */
    public int startOpNoThrow(String op, int uid, String packageName) {
    public int startOpNoThrow(@NonNull String op, int uid, @NonNull String packageName) {
        return startOpNoThrow(strOpToOp(op), uid, packageName);
    }

@@ -5069,7 +5070,7 @@ public class AppOpsManager {
     * or result; the parameters supplied here must be the exact same ones previously passed
     * in when starting the operation.
     */
    public void finishOp(String op, int uid, String packageName) {
    public void finishOp(@NonNull String op, int uid, @NonNull String packageName) {
        finishOp(strOpToOp(op), uid, packageName);
    }

@@ -5135,7 +5136,7 @@ public class AppOpsManager {
     * @throws SecurityException if the package name doesn't belong to the given
     *             UID, or if ownership cannot be verified.
     */
    public void checkPackage(int uid, String packageName) {
    public void checkPackage(int uid, @NonNull String packageName) {
        try {
            if (mService.checkPackage(uid, packageName) != MODE_ALLOWED) {
                throw new SecurityException(