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

Commit 544ff558 authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android Git Automerger
Browse files

am 29c99aaa: Merge "Added check to make orientation calculations more robust" into gingerbread

* commit '29c99aaa':
  Added check to make orientation calculations more robust
parents ff3a2c18 29c99aaa
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -234,6 +234,14 @@ public abstract class WindowOrientationListener {
        // high time constant.
        private static final float MAX_DEVIATION_FROM_GRAVITY = 1.5f;

        // Minimum acceleration considered, in m/s^2. Below this threshold sensor noise will have
        // significant impact on the calculations and in case of the vector (0, 0, 0) there is no
        // defined rotation or tilt at all. Low or zero readings can happen when space travelling
        // or free falling, but more commonly when shaking or getting bad readings from the sensor.
        // The accelerometer is turned off when not used and polling it too soon after it is
        // turned on may result in (0, 0, 0).
        private static final float MIN_ABS_ACCELERATION = 1.5f;

        // Actual sampling period corresponding to SensorManager.SENSOR_DELAY_NORMAL.  There's no
        // way to get this information from SensorManager.
        // Note the actual period is generally 3-30ms larger than this depending on the device, but
@@ -347,6 +355,9 @@ public abstract class WindowOrientationListener {
            float deviation = Math.abs(magnitude - SensorManager.STANDARD_GRAVITY);

            handleAccelerationDistrust(deviation);
            if (magnitude < MIN_ABS_ACCELERATION) {
                return; // Ignore tilt and orientation when (0, 0, 0) or low reading
            }

            // only filter tilt when we're accelerating
            float alpha = 1;