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

Commit 5d4b0eca authored by Justin Lannin's avatar Justin Lannin Committed by Android (Google) Code Review
Browse files

Merge "Health Permissions: Add OP_READ_OXYGEN_SATURATION" into main

parents fe089c68 0f8fc709
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -706,6 +706,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_oxygen_saturation_enabled") public static final String OPSTR_READ_OXYGEN_SATURATION = "android:read_oxygen_saturation";
    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";
+16 −1
Original line number Diff line number Diff line
@@ -1621,9 +1621,12 @@ public class AppOpsManager {
     */
    public static final int OP_RANGING = AppOpEnums.APP_OP_RANGING;

    /** @hide Access to read oxygen saturation. */
    public static final int OP_READ_OXYGEN_SATURATION = AppOpEnums.APP_OP_READ_OXYGEN_SATURATION;

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

    /**
     * All app ops represented as strings.
@@ -1779,6 +1782,7 @@ public class AppOpsManager {
            OPSTR_READ_HEART_RATE,
            OPSTR_READ_SKIN_TEMPERATURE,
            OPSTR_RANGING,
            OPSTR_READ_OXYGEN_SATURATION,
    })
    public @interface AppOpString {}

@@ -2521,6 +2525,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 oxygen saturation. */
    @SystemApi
    @FlaggedApi(Flags.FLAG_PLATFORM_OXYGEN_SATURATION_ENABLED)
    public static final String OPSTR_READ_OXYGEN_SATURATION = "android:read_oxygen_saturation";

    /** @hide Access to read skin temperature. */
    @SystemApi
    @FlaggedApi(Flags.FLAG_PLATFORM_SKIN_TEMPERATURE_ENABLED)
@@ -2608,6 +2617,7 @@ public class AppOpsManager {
            // Health
            Flags.replaceBodySensorPermissionEnabled() ? OP_READ_HEART_RATE : OP_NONE,
            Flags.platformSkinTemperatureEnabled() ? OP_READ_SKIN_TEMPERATURE : OP_NONE,
            Flags.platformOxygenSaturationEnabled() ? OP_READ_OXYGEN_SATURATION : OP_NONE,
    };

    /**
@@ -3129,6 +3139,11 @@ public class AppOpsManager {
            .setPermission(Flags.rangingPermissionEnabled()?
                Manifest.permission.RANGING : null)
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
        new AppOpInfo.Builder(OP_READ_OXYGEN_SATURATION, OPSTR_READ_OXYGEN_SATURATION,
            "READ_OXYGEN_SATURATION").setPermission(
                Flags.platformOxygenSaturationEnabled()
                    ? HealthPermissions.READ_OXYGEN_SATURATION : null)
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
    };

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