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

Commit 2d642328 authored by Justin Lannin's avatar Justin Lannin
Browse files

Permissions Flags: Merge SkinTemp/Spo2/Replace BodySensors flags.

The team plans to release the BodySensor deprecation alongside bringing the skin temp and spo2 permissions to the platform. Rather than coordinate across multiple flags, just rely on the single point of control.

- Updates the description of replace_body_sensors flag to include skin temp and spo2.
- Consolidates flag usage on replace_body_sensor...
- Deletes the SpO2 and SkinTemp flags. This should be safe since no one is using these externally yet at this point.

Bug: 364640981
Change-Id: I3f54953a8f5de7fd7ea84ea91d814963647506ab
Flag: android.permission.flags.replace_body_sensor_permission_enabled
Test: Presubmits
parent 622356e8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -707,8 +707,8 @@ 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 @FlaggedApi("android.permission.flags.replace_body_sensor_permission_enabled") public static final String OPSTR_READ_OXYGEN_SATURATION = "android:read_oxygen_saturation";
    field @FlaggedApi("android.permission.flags.replace_body_sensor_permission_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";
+6 −6
Original line number Diff line number Diff line
@@ -2527,12 +2527,12 @@ public class AppOpsManager {

    /** @hide Access to read oxygen saturation. */
    @SystemApi
    @FlaggedApi(Flags.FLAG_PLATFORM_OXYGEN_SATURATION_ENABLED)
    @FlaggedApi(Flags.FLAG_REPLACE_BODY_SENSOR_PERMISSION_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)
    @FlaggedApi(Flags.FLAG_REPLACE_BODY_SENSOR_PERMISSION_ENABLED)
    public static final String OPSTR_READ_SKIN_TEMPERATURE = "android:read_skin_temperature";

    /** @hide Access to ranging */
@@ -2616,8 +2616,8 @@ public class AppOpsManager {
            OP_POST_NOTIFICATION,
            // 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,
            Flags.replaceBodySensorPermissionEnabled() ? OP_READ_SKIN_TEMPERATURE : OP_NONE,
            Flags.replaceBodySensorPermissionEnabled() ? OP_READ_OXYGEN_SATURATION : OP_NONE,
    };

    /**
@@ -3132,7 +3132,7 @@ public class AppOpsManager {
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
        new AppOpInfo.Builder(OP_READ_SKIN_TEMPERATURE, OPSTR_READ_SKIN_TEMPERATURE,
            "READ_SKIN_TEMPERATURE").setPermission(
                Flags.platformSkinTemperatureEnabled()
                Flags.replaceBodySensorPermissionEnabled()
                    ? HealthPermissions.READ_SKIN_TEMPERATURE : null)
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
        new AppOpInfo.Builder(OP_RANGING, OPSTR_RANGING, "RANGING")
@@ -3141,7 +3141,7 @@ public class AppOpsManager {
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
        new AppOpInfo.Builder(OP_READ_OXYGEN_SATURATION, OPSTR_READ_OXYGEN_SATURATION,
            "READ_OXYGEN_SATURATION").setPermission(
                Flags.platformOxygenSaturationEnabled()
                Flags.replaceBodySensorPermissionEnabled()
                    ? HealthPermissions.READ_OXYGEN_SATURATION : null)
            .setDefaultMode(AppOpsManager.MODE_ALLOWED).build(),
    };
+1 −19
Original line number Diff line number Diff line
@@ -284,7 +284,7 @@ flag {
    is_fixed_read_only: true
    is_exported: true
    namespace: "android_health_services"
    description: "This fixed read-only flag is used to enable replacing permission BODY_SENSORS (and BODY_SENSORS_BACKGROUND) with granular health permission READ_HEART_RATE (and READ_HEALTH_DATA_IN_BACKGROUND)"
    description: "Enables replacement of BODY_SENSORS/BODY_SENSORS_BACKGROUND permissions with granular health permissions READ_HEART_RATE, READ_SKIN_TEMPERATURE, READ_OXYGEN_SATURATION, and READ_HEALTH_DATA_IN_BACKGROUND"
    bug: "364638912"
}

@@ -299,24 +299,6 @@ flag {
    }
}

flag {
    name: "platform_skin_temperature_enabled"
    is_fixed_read_only: true
    is_exported: true
    namespace: "android_health_services"
    description: "This fixed read-only flag is used to enable platform support for Skin Temperature."
    bug: "369872443"
}

flag {
    name: "platform_oxygen_saturation_enabled"
    is_fixed_read_only: true
    is_exported: true
    namespace: "android_health_services"
    description: "This fixed read-only flag is used to enable platform support for Oxygen Saturation (SpO2)."
    bug: "369873227"
}

flag {
    name: "allow_host_permission_dialogs_on_virtual_devices"
    is_exported: true