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

Commit e3e08eff authored by Justin Lannin's avatar Justin Lannin
Browse files

Health Permissions: Add OP_READ_SKIN_TEMPERATURE

Add OP_READ_SKIN_TEMPERATURE app op for runtime health permission
READ_SKIN_TEMPERATURE.

Bug: 369873814
Flag: android.permission.flags.platform_skin_temperature_enabled
Test: atest AppOpDefinitionTest

Change-Id: I9144b9312b53ce815290825ee2545fe3fd1cb4f1
parent bda78423
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -703,6 +703,7 @@ package android.app {
    field public static final String OPSTR_READ_MEDIA_IMAGES = "android:read_media_images";
    field public static final String OPSTR_READ_MEDIA_VIDEO = "android:read_media_video";
    field public static final String OPSTR_READ_MEDIA_VISUAL_USER_SELECTED = "android:read_media_visual_user_selected";
    field @FlaggedApi("android.permission.flags.platform_skin_temperature_enabled") public static final String OPSTR_READ_SKIN_TEMPERATURE = "android:read_skin_temperature";
    field public static final String OPSTR_READ_WRITE_HEALTH_DATA = "android:read_write_health_data";
    field public static final String OPSTR_RECEIVE_AMBIENT_TRIGGER_AUDIO = "android:receive_ambient_trigger_audio";
    field public static final String OPSTR_RECEIVE_EMERGENCY_BROADCAST = "android:receive_emergency_broadcast";
+16 −1
Original line number Diff line number Diff line
@@ -1618,9 +1618,12 @@ public class AppOpsManager {
    /** @hide Access to read heart rate sensor. */
    public static final int OP_READ_HEART_RATE = AppProtoEnums.APP_OP_READ_HEART_RATE;

    /** @hide Access to read skin temperature. */
    public static final int OP_READ_SKIN_TEMPERATURE = AppProtoEnums.APP_OP_READ_SKIN_TEMPERATURE;

    /** @hide */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    public static final int _NUM_OP = 150;
    public static final int _NUM_OP = 151;

    /**
     * All app ops represented as strings.
@@ -1774,6 +1777,7 @@ public class AppOpsManager {
            OPSTR_EMERGENCY_LOCATION,
            OPSTR_RECEIVE_SENSITIVE_NOTIFICATIONS,
            OPSTR_READ_HEART_RATE,
            OPSTR_READ_SKIN_TEMPERATURE,
    })
    public @interface AppOpString {}

@@ -2516,6 +2520,11 @@ public class AppOpsManager {
    @FlaggedApi(Flags.FLAG_REPLACE_BODY_SENSOR_PERMISSION_ENABLED)
    public static final String OPSTR_READ_HEART_RATE = "android:read_heart_rate";

    /** @hide Access to read skin temperature. */
    @SystemApi
    @FlaggedApi(Flags.FLAG_PLATFORM_SKIN_TEMPERATURE_ENABLED)
    public static final String OPSTR_READ_SKIN_TEMPERATURE = "android:read_skin_temperature";

    /** {@link #sAppOpsToNote} not initialized yet for this op */
    private static final byte SHOULD_COLLECT_NOTE_OP_NOT_INITIALIZED = 0;
    /** Should not collect noting of this app-op in {@link #sAppOpsToNote} */
@@ -2591,6 +2600,7 @@ public class AppOpsManager {
            OP_POST_NOTIFICATION,
            // Health
            Flags.replaceBodySensorPermissionEnabled() ? OP_READ_HEART_RATE : OP_NONE,
            Flags.platformSkinTemperatureEnabled() ? OP_READ_SKIN_TEMPERATURE : OP_NONE,
    };

    /**
@@ -3103,6 +3113,11 @@ public class AppOpsManager {
            .setPermission(Flags.replaceBodySensorPermissionEnabled() ?
                HealthPermissions.READ_HEART_RATE : null)
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
        new AppOpInfo.Builder(OP_READ_SKIN_TEMPERATURE, OPSTR_READ_SKIN_TEMPERATURE,
            "READ_SKIN_TEMPERATURE").setPermission(
                Flags.platformSkinTemperatureEnabled()
                    ? HealthPermissions.READ_SKIN_TEMPERATURE : null)
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
    };

    // The number of longs needed to form a full bitmask of app ops