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

Commit 7326defe authored by Etienne Le Grand's avatar Etienne Le Grand Committed by Android Git Automerger
Browse files

am d7439d8c: Merge "Add confidence to the heart rate monitor definition and...

am d7439d8c: Merge "Add confidence to the heart rate monitor definition and clarify onAccuracyChange" into klp-modular-dev

* commit 'd7439d8c':
  Add confidence to the heart rate monitor definition and clarify onAccuracyChange
parents 754a8c4c d7439d8c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -10992,6 +10992,7 @@ package android.hardware {
    field public static final int SENSOR_STATUS_ACCURACY_HIGH = 3; // 0x3
    field public static final int SENSOR_STATUS_ACCURACY_LOW = 1; // 0x1
    field public static final int SENSOR_STATUS_ACCURACY_MEDIUM = 2; // 0x2
    field public static final int SENSOR_STATUS_NO_CONTACT = -1; // 0xffffffff
    field public static final int SENSOR_STATUS_UNRELIABLE = 0; // 0x0
    field public static final deprecated int SENSOR_TEMPERATURE = 4; // 0x4
    field public static final deprecated int SENSOR_TRICORDER = 64; // 0x40
+10 −4
Original line number Diff line number Diff line
@@ -381,11 +381,17 @@ public final class Sensor {
    /**
     * A constant describing a heart rate monitor.
     * <p>
     * A sensor that measures the heart rate in beats per minute.
     * The reported value is the heart rate in beats per minute.
     * <p>
     * value[0] represents the beats per minute when the measurement was taken.
     * value[0] is 0 if the heart rate monitor could not measure the rate or the
     * rate is 0 beat per minute.
     * The reported accuracy represents the status of the monitor during the reading. See the
     * {@code SENSOR_STATUS_*} constants in {@link android.hardware.SensorManager SensorManager}
     * for more details on accuracy/status values. In particular, when the accuracy is
     * {@code SENSOR_STATUS_UNRELIABLE} or {@code SENSOR_STATUS_NO_CONTACT}, the heart rate
     * value should be discarded.
     * <p>
     * This sensor requires permission {@code android.permission.BODY_SENSORS}.
     * It will not be returned by {@code SensorManager.getSensorsList} nor
     * {@code SensorManager.getDefaultSensor} if the application doesn't have this permission.
     */
    public static final int TYPE_HEART_RATE = 21;

+7 −5
Original line number Diff line number Diff line
@@ -39,11 +39,13 @@ public interface SensorEventListener {
    public void onSensorChanged(SensorEvent event);

    /**
     * Called when the accuracy of a sensor has changed.
     * <p>See {@link android.hardware.SensorManager SensorManager}
     * for details.
     * Called when the accuracy of the registered sensor has changed.
     *
     * <p>See the SENSOR_STATUS_* constants in
     * {@link android.hardware.SensorManager SensorManager} for details.
     *
     * @param accuracy The new accuracy of this sensor
     * @param accuracy The new accuracy of this sensor, one of
     *         {@code SensorManager.SENSOR_STATUS_*}
     */
    public void onAccuracyChanged(Sensor sensor, int accuracy);
}
+10 −2
Original line number Diff line number Diff line
@@ -320,6 +320,13 @@ public abstract class SensorManager {
    public static final int SENSOR_DELAY_NORMAL = 3;


    /**
      * The values returned by this sensor cannot be trusted because the sensor
      * had no contact with what it was measuring (for example, the heart rate
      * monitor is not in contact with the user).
      */
    public static final int SENSOR_STATUS_NO_CONTACT = -1;

    /**
     * The values returned by this sensor cannot be trusted, calibration is
     * needed or the environment doesn't allow readings
@@ -423,7 +430,8 @@ public abstract class SensorManager {
     * @param type
     *         of sensors requested
     *
     * @return the default sensors matching the asked type.
     * @return the default sensor matching the requested type if one exists and the application
     *         has the necessary permissions, or null otherwise.
     *
     * @see #getSensorList(int)
     * @see Sensor
+6 −19
Original line number Diff line number Diff line
@@ -395,26 +395,13 @@ public class SystemSensorManager extends SensorManager {
            t.timestamp = timestamp;
            t.accuracy = inAccuracy;
            t.sensor = sensor;
            switch (t.sensor.getType()) {
                // Only report accuracy for sensors that support it.
                case Sensor.TYPE_MAGNETIC_FIELD:
                case Sensor.TYPE_ORIENTATION:

            // call onAccuracyChanged() only if the value changes
            final int accuracy = mSensorAccuracies.get(handle);
            if ((t.accuracy >= 0) && (accuracy != t.accuracy)) {
                mSensorAccuracies.put(handle, t.accuracy);
                mListener.onAccuracyChanged(t.sensor, t.accuracy);
            }
                    break;
                default:
                    // For other sensors, just report the accuracy once
                    if (mFirstEvent.get(handle) == false) {
                        mFirstEvent.put(handle, true);
                        mListener.onAccuracyChanged(
                                t.sensor, SENSOR_STATUS_ACCURACY_HIGH);
                    }
                    break;
            }
            mListener.onSensorChanged(t);
        }

Loading