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

Commit f4668f90 authored by Evan Severson's avatar Evan Severson
Browse files

Convert ns to ms when averaging light values

It was wrongly assumed that SensorEvent#timestamp was in milliseconds
when it is actually in nanoseconds; this change converts the units to
milliseconds.

Fixes: 243696673
Test: Cover ALS and observe led brightness change
Change-Id: Ib45429d28be1f03c4741639fd12e6fbcdd541802
parent f4ceebba
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -46,6 +46,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;


class CameraPrivacyLightController implements AppOpsManager.OnOpActiveChangedListener,
        SensorEventListener {
@@ -275,7 +277,7 @@ class CameraPrivacyLightController implements AppOpsManager.OnOpActiveChangedLis
    public void onSensorChanged(SensorEvent event) {
        // Using log space to represent human sensation (Fechner's Law) instead of lux
        // because lux values causes bright flashes to skew the average very high.
        addElement(event.timestamp, Math.max(0,
        addElement(TimeUnit.NANOSECONDS.toMillis(event.timestamp), Math.max(0,
                (int) (Math.log(event.values[0]) * LIGHT_VALUE_MULTIPLIER)));
        updateLightSession();
        mHandler.removeCallbacksAndMessages(mDelayedUpdateToken);