diff options
| -rw-r--r-- | services/core/java/com/android/server/display/DisplayModeDirector.java | 35 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java | 42 | 
2 files changed, 10 insertions, 67 deletions
diff --git a/services/core/java/com/android/server/display/DisplayModeDirector.java b/services/core/java/com/android/server/display/DisplayModeDirector.java index 29a77e2b6ef2..02ee059194ec 100644 --- a/services/core/java/com/android/server/display/DisplayModeDirector.java +++ b/services/core/java/com/android/server/display/DisplayModeDirector.java @@ -52,12 +52,9 @@ import com.android.server.display.utils.AmbientFilterFactory;  import com.android.server.utils.DeviceConfigInterface;  import java.io.PrintWriter; -import java.text.SimpleDateFormat;  import java.util.ArrayList;  import java.util.Arrays; -import java.util.Date;  import java.util.List; -import java.util.Locale;  import java.util.Objects;  /** @@ -1163,8 +1160,7 @@ public class DisplayModeDirector {          // mShouldObserveAmbientHighChange is true, screen is on, peak refresh rate          // changeable and low power mode off. After initialization, these states will          // be updated from the same handler thread. -        private int mDefaultDisplayState = Display.STATE_UNKNOWN; -        private boolean mIsDeviceActive = false; +        private boolean mDefaultDisplayOn = false;          private boolean mRefreshRateChangeable = false;          private boolean mLowPowerModeEnabled = false; @@ -1345,8 +1341,7 @@ public class DisplayModeDirector {              pw.println("  BrightnessObserver");              pw.println("    mAmbientLux: " + mAmbientLux);              pw.println("    mBrightness: " + mBrightness); -            pw.println("    mDefaultDisplayState: " + mDefaultDisplayState); -            pw.println("    mIsDeviceActive: " + mIsDeviceActive); +            pw.println("    mDefaultDisplayOn: " + mDefaultDisplayOn);              pw.println("    mLowPowerModeEnabled: " + mLowPowerModeEnabled);              pw.println("    mRefreshRateChangeable: " + mRefreshRateChangeable);              pw.println("    mShouldObserveDisplayLowChange: " + mShouldObserveDisplayLowChange); @@ -1572,17 +1567,14 @@ public class DisplayModeDirector {          private void updateDefaultDisplayState() {              Display display = mContext.getSystemService(DisplayManager.class)                      .getDisplay(Display.DEFAULT_DISPLAY); -            if (display == null) { -                return; -            } - -            setDefaultDisplayState(display.getState()); +            boolean defaultDisplayOn = display != null && display.getState() != Display.STATE_OFF; +            setDefaultDisplayState(defaultDisplayOn);          }          @VisibleForTesting -        public void setDefaultDisplayState(int state) { -            if (mDefaultDisplayState != state) { -                mDefaultDisplayState = state; +        public void setDefaultDisplayState(boolean on) { +            if (mDefaultDisplayOn != on) { +                mDefaultDisplayOn = on;                  updateSensorStatus();              }          } @@ -1603,19 +1595,15 @@ public class DisplayModeDirector {          }          private boolean isDeviceActive() { -            mIsDeviceActive = mInjector.isDeviceInteractive(mContext); -            return (mDefaultDisplayState == Display.STATE_ON) -                    && mIsDeviceActive; +            return mDefaultDisplayOn && mInjector.isDeviceInteractive(mContext);          }          private final class LightSensorEventListener implements SensorEventListener {              final private static int INJECT_EVENTS_INTERVAL_MS = LIGHT_SENSOR_RATE_MS;              private float mLastSensorData; -            private long mTimestamp;              public void dumpLocked(PrintWriter pw) {                  pw.println("    mLastSensorData: " + mLastSensorData); -                pw.println("    mTimestamp: " + formatTimestamp(mTimestamp));              }              @Override @@ -1639,7 +1627,6 @@ public class DisplayModeDirector {                  }                  long now = SystemClock.uptimeMillis(); -                mTimestamp = System.currentTimeMillis();                  if (mAmbientFilter != null) {                      mAmbientFilter.addValue(now, mLastSensorData);                  } @@ -1666,12 +1653,6 @@ public class DisplayModeDirector {                  mHandler.removeCallbacks(mInjectSensorEventRunnable);              } -            private String formatTimestamp(long time) { -                SimpleDateFormat dateFormat = -                        new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US); -                return dateFormat.format(new Date(time)); -            } -              private void processSensorData(long now) {                  if (mAmbientFilter != null) {                      mAmbientLux = mAmbientFilter.getEstimate(now); diff --git a/services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java b/services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java index e202145b7dbe..c467ee949aeb 100644 --- a/services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java +++ b/services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java @@ -34,7 +34,6 @@ import static org.mockito.Mockito.any;  import static org.mockito.Mockito.spy;  import static org.mockito.Mockito.verify;  import static org.mockito.Mockito.when; -import static org.mockito.internal.verification.VerificationModeFactory.times;  import android.annotation.NonNull;  import android.content.ContentResolver; @@ -411,7 +410,7 @@ public class DisplayModeDirectorTest {                  createDirectorFromRefreshRateArray(new float[] {60.f, 90.f}, 0);          setPeakRefreshRate(90);          director.getSettingsObserver().setDefaultRefreshRate(90); -        director.getBrightnessObserver().setDefaultDisplayState(Display.STATE_ON); +        director.getBrightnessObserver().setDefaultDisplayState(true);          final FakeDeviceConfig config = mInjector.getDeviceConfig();          config.setRefreshRateInLowZone(90); @@ -454,7 +453,7 @@ public class DisplayModeDirectorTest {                  createDirectorFromRefreshRateArray(new float[] {60.f, 90.f}, 0);          setPeakRefreshRate(90 /*fps*/);          director.getSettingsObserver().setDefaultRefreshRate(90); -        director.getBrightnessObserver().setDefaultDisplayState(Display.STATE_ON); +        director.getBrightnessObserver().setDefaultDisplayState(true);          final FakeDeviceConfig config = mInjector.getDeviceConfig();          config.setRefreshRateInHighZone(60); @@ -491,43 +490,6 @@ public class DisplayModeDirectorTest {          assertVoteForRefreshRateLocked(vote, 60 /*fps*/);      } -    @Test -    public void testSensorRegistration() { -        DisplayModeDirector director = -                createDirectorFromRefreshRateArray(new float[] {60.f, 90.f}, 0); -        setPeakRefreshRate(90 /*fps*/); -        director.getSettingsObserver().setDefaultRefreshRate(90); -        director.getBrightnessObserver().setDefaultDisplayState(Display.STATE_ON); - -        Sensor lightSensor = createLightSensor(); -        SensorManager sensorManager = createMockSensorManager(lightSensor); - -        director.start(sensorManager); -        ArgumentCaptor<SensorEventListener> listenerCaptor = -                ArgumentCaptor.forClass(SensorEventListener.class); -        Mockito.verify(sensorManager, Mockito.timeout(TimeUnit.SECONDS.toMillis(1))) -                .registerListener( -                        listenerCaptor.capture(), -                        eq(lightSensor), -                        anyInt(), -                        any(Handler.class)); - -        // Dispaly state changed from On to Doze -        director.getBrightnessObserver().setDefaultDisplayState(Display.STATE_DOZE); -        Mockito.verify(sensorManager) -                .unregisterListener(listenerCaptor.capture()); - -        // Dispaly state changed from Doze to On -        director.getBrightnessObserver().setDefaultDisplayState(Display.STATE_ON); -        Mockito.verify(sensorManager, times(2)) -                .registerListener( -                        listenerCaptor.capture(), -                        eq(lightSensor), -                        anyInt(), -                        any(Handler.class)); - -    } -      private void assertVoteForRefreshRateLocked(Vote vote, float refreshRate) {          assertThat(vote).isNotNull();          final DisplayModeDirector.RefreshRateRange expectedRange =  |