summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/display/DisplayModeDirector.java35
-rw-r--r--services/tests/servicestests/src/com/android/server/display/DisplayModeDirectorTest.java42
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 =