History log of /frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
30c75471492ec7862ab7fbd56358a75178e0ed52 18-May-2018 Lucas Dupin <dupin@google.com> Pulse state should always show ambient wallpaper

Otherwise wallpaper wouldn't be set to AOD when the device pulses
and always on is off.

Bug: 78606979
Test: manual
Test: atest packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java
Change-Id: Ic40c18252cd6cb06ff6fd0d79ec3f1de16a1add5
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
2f5a385d1f0a0091c3b4f563b22788ad8d868fdd 23-Apr-2018 Adrian Roos <roosa@google.com> AodPolicy: Fix service leak

Fixes an issue where the AlwaysOnDisplayPolicy leaked a service
context, and with it the entirety of DozeMachine, preventing
wakelocks from being GCed and preventing them from being
fallback-released.

Bug: 78402666
Test: Toggle screen on and off a few times, verify that DozeService is not being leaked.
Change-Id: Ie3ad67c2d0c83760f4d04a53394fab4a3a35d6bc
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
16cfe45dec96154d37b36364f67cedce16ca2484 08-Feb-2018 Lucas Dupin <dupin@google.com> Screen off animation

SysUI can now control the screen off animation as long as
config_dozeAfterScreenOff is set to false.

The current implementation collapses the notification shade and moves
the clock whenever the use is on the lock screen, or will fade the
scrims and show the clock when the keyguard is occluded.

Display state change (on, doze, doze_suspended) is delayed to let the
animations occur at 60Hz.

Test: atest packages/SystemUI/tests/src/com/android/systemui/doze/DozeUiTest.java
Test: atest packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java
Test: atest packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
Test: atest tests/src/com/android/systemui/statusbar/phone/DozeScrimControllerTest.java
Test: atest tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java
Test: atest packages/SystemUI/tests/src/com/android/systemui/keyguard/WakefulnessLifecycleTest.java
Fixes: 73178121
Change-Id: Id5d964452f342d4e97bedf1084efa808604e602c
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
12663d30baa5d691f3d132d9242e6186b0791807 08-Feb-2018 Lucas Dupin <dupin@google.com> Remove black frame when pulsing

Fixes: 73121392
Test: Receive notification on AOD
Change-Id: I04802b3b456e2c484fc5aaab8460a08b82f952e4
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
660d573e438c4b1a044fa399bb99272a0bcc9f22 19-Dec-2017 Lucas Dupin <dupin@google.com> Let wallpaper know when to animate AoD transition

Sometimes the screen will blank, and sometime the
wallpaper has the opportunity to animate the
transition.

Bug: 64155983
Test: atest tests/Internal/src/android/service/wallpaper/WallpaperServiceTest.java
Test: atest packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java
Change-Id: Ia92c00edb98eeeba42da33bdc7bec3feb961a658
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
7517b5dcce8dde3a22177857b8fff6439fd98d82 22-Aug-2017 Lucas Dupin <dupin@google.com> Support wallpapers in AoD

Such wallpaper has to define supportsAmbientMode,
and set it to true on its android.service.wallpaper
meta data.

Also introduces WallpaperService.Engine#onAmbientModeChanged
to notify a live wallpaper that the display state has changed.

Change-Id: I49e846069a698b3cc3bb6e7cda98172920eaae4c
Bug: 64155983
Test: runtest -x frameworks/base/packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java
Test: runtest -x frameworks/base/tests/Internal/src/android/app/WallpaperInfoTest.java
Test: runtest -x frameworks/base/tests/Internal/src/android/service/wallpaper/WallpaperServiceTest.java
Test: set AoD wallpaper, go to aod, lock screen, launcher
Test: set regular wallpaper, go to aod, lock screen, launcher
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
43d0d73d0789025cd92336ec241d2e2e21f558a3 16-Nov-2017 Lucas Dupin <dupin@google.com> Add support for seamless transion from/to AoD

Bug: 64155983
Test: runtest -x packages/SystemUI/tests/src/com/android/systemui/doze/DozeUiTest.java
Test: manual
Change-Id: I06e72cd5964944c79fb7bfda6881fc4a5a79ca7b
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
c7fd69699058e9b7f0601aca9275b597e8f62736 06-Sep-2017 Adrian Roos <roosa@google.com> AOD: Prewarm display while waiting for brightness sensor

This partially reverts commit a79ad59d49cdb3ef6f4cf864094063e3e9111586.

Instead of keeping AOD paused, we now turn the display on, but keep it soft
blanked by keeping the front scrim opaque black until we get a valid sensor
event.

Bug: 65010918
Test: runtest -x packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java
Change-Id: Ic39d29814024d52117538a6a19adaf3866c7223e
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
a79ad59d49cdb3ef6f4cf864094063e3e9111586 31-Aug-2017 Adrian Roos <roosa@google.com> AOD: Keep brightness sensor registered while covered

Keeps the brightness sensor registered even if proximity is near.

This allows the brightness sensor to react faster after coming out
of a pocket.

Also wait with unpausing AOD until the brightness sensor reports
a valid brightness again.

Bug: 65010918
Test: Cover prox sensor for 10s, verify with 'adb shell dumpsys sensorservice' that the binned brightness sensor is still registered.
Test: runtest -x packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java
Test: runtest -x packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java
Change-Id: Ife1bb7399a7ad8a15b1f4d210bb38044cbe9d3ae
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
8443dd0e7680e489509e8a9bf0bb5fcefd7a8c3e 25-Aug-2017 jackqdyulei <jackqdyulei@google.com> Hook up AOD knobs to Settings.Global

This cl creates AlwaysOnDisplayPolicy, which get values for the
following knobs(go/aod-experiments) from Settings.Global:
1. screen_brightness_array
2. dimming_scrim_array
3. prox_screen_off_delay
4. prox_cooldown_trigger
5. prox_cooldown_period

Also update code to make sure AlwaysOnDisplayPolicy is used
everywhere.

Bug: 64899561
Test: runtest -x AlwaysOnDisplayPolicyTest

Change-Id: I2e83ff980771e67177e4964bd83aa68b2bdca65f
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
8db9311cb683c58b7d61f812ae4975feca926aa4 11-Aug-2017 Adrian Roos <roosa@google.com> AOD: Fix navbar flicker when transitioning to AOD

Under certain circumstances, the transition to AOD can happen before
the navigation bar gets a chance to hide itself, which happens in a
traversal. To work around this, post turning the screen on such that
it only happens after the next traversal.

Change-Id: I178b9394e7cc6baa8e9552c9819c3ce9b044defb
Fixes: 64599221
Test: Open Whatsapp / Gmail, turn off screen, verify navbar does not flicker.
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
c8e29e78863784037670f56e48464924b7f960ea 03-Aug-2017 Adrian Roos <roosa@google.com> AOD: Add support for dimming in software

Some devices cannot dim low enough in hardware in low power states.
To work around that, keep the front scrim at higher opacity when needed
to simulate lower brightness.

Bug: 63995944
Test: Configure scrim in config.xml; use device in very dim light at night, observe AOD is sufficiently dim.
Change-Id: I92fffedeea89b9327d76dfb184c5c761364ead11
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
7a8ae8a4b2fc0ab2a46a3aa81c28ff026a2a032b 02-Aug-2017 Adrian Roos <roosa@google.com> SysUI: Move all sensor operations to the background thread

Registering / unregistering listeners for sensors now frequently takes several hundred
miliseconds. Work around this by moving all sensor operations off the main thread.

Change-Id: Ic3537889e1d6e045149942bebb0211afe1192033
Fixes: 64103634
Test: Turn on phone from AOD2. Verify no jank.
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
3e23eb59d09faca2e40e308a191d8499ffdb6ab3 07-Jul-2017 Adrian Roos <roosa@google.com> AOD: Keep doze brightness when unlocking with fingerprint

Updates the logic that was already in place to prevent lighting up
the display before the unlock transition starts:
- treat AOD as pulsing in FingerprintUnlockController
- now that doze can use more than one brightness level, use the current

Bug: 62885451
Test: Unlock with fingerprint from AOD. Observe that the unlock transition does not prematurely change the brightness level
Change-Id: I266bd5e4c0a1d5b4c347a65c0e7936247e333cfc
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
75c94b87882a483c199c6bd51b0ffd849dd7a12e 01-Jul-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "AOD: Pause FalsingManager prox sensor while showing AOD" into oc-dr1-dev
857b0ff5d7cfbb1d07b1b81d4e6a55de70309ea5 30-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "AOD: Refactor doze brigthness controllers, add AOD auto brightness support" into oc-dr1-dev
e395b5d5b0a158a1e0d972d72eb9ee5d7f2dc4f3 28-Jun-2017 Adrian Roos <roosa@google.com> AOD: Pause FalsingManager prox sensor while showing AOD

Otherwise it undermines the efforts to unregister a flakey prox sensor.

Bug: 62292293
Test: put device in AOD, ensure that "adb shell dumpsys sensorservice | grep "Active sensors:" -A999 | grep PROX -B1" does not show a registration for "FalsingManager".
Change-Id: Ib8966d46e3ce821b00153d89fdb731c377567504
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
6023ccbea1568d8b22db82cac9bf7a03367d0a61 28-Jun-2017 Adrian Roos <roosa@google.com> AOD: Add hysteresis to pausing the display

Delays pausing the display by several seconds to avoid
flickering when the prox is only covered transiently.

Also adds cooldown to the proximity sensor, such that when
it toggles too often it gets disabled for a while.

Bug: 62292293
Test: cover prox for less than 10s, observe display stays on. Cover for more, observe display turns off.
Change-Id: Ifa407b84760fc299fbbcfa92d9e942e0093c4b73
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
2981eb0d59f3568bfe84ce905c82fc17d62d21c5 27-May-2017 Adrian Roos <roosa@google.com> AOD: Refactor doze brigthness controllers, add AOD auto brightness support

- Factor out doze brightness and screen state controllers
- Add support for setting the screen brightness from a
sensor in AOD / when pulsing
- Refactor FakeSensorManager for generic sensors, add a light sensor

Bug: 38354633
Test: runtest -x packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenTest.java
Change-Id: I55f2bee253cee23a76ba857ba1f19052ff88a753
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
673c07f3da0a7e5f21bd50549c1a3ccbea7deff0 03-May-2017 Adrian Roos <roosa@google.com> Merge "DozePlugin: Remove" into oc-dev am: b2484f2258
am: 825b574892

Change-Id: I5994fbdd9cc15c1dc42fbecd63792eb2214ab017
664c9d7d161cd49ec9b71fee6aa29ca5175c2890 29-Apr-2017 Adrian Roos <roosa@google.com> DozePlugin: Remove

The DozePlugin has not been able to keep up with the changes to DozeMachine.
At this point it is cleaner to just remove it.

Bug: 30876804
Test: make SystemUI
Change-Id: Ie8cd1488eb862017c54b92b1fba07537c0143bff
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
0fb55aedaebd0d060254e9f8fe042fa65ce9b448 14-Apr-2017 Adrian Roos <roosa@google.com> AOD: Hold WakeLocks 100ms beyond release

Ensures (hopefully) that the underlying systems
have finished pushing the frames by the time the WakeLock is
released.

Bug: 36506840
Test: none, it is a pain to test this. Code is simple enough though.
Change-Id: I7b2f145f92319d5436a167d90b4703260ee08de6
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
a1e6b3157cd5cfc7a3a70f0a9671447d0849c642 29-Mar-2017 Adrian Roos <roosa@google.com> AOD: Use DOZE_SUSPEND screenstate when supported

Bug: 30876804
Bug: 33175018
Test: runtest -x packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapterTest.java
Change-Id: If4d0cadced1f0ac3e737d78759820858b70081e6
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
c1b50324a2286b24b691b8a7190743cbc341727e 27-Feb-2017 Adrian Roos <roosa@google.com> AOD: Add wakelock for charging text while dozing

Also refactors the WakeLocks in SystemUI.

Bug: 30876804
Bug: 35850304
Test: runtest systemui
Change-Id: Ie17eedfd266deb3aa46dabd701bc784330b2e030
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
0261fb2a190a9eff14ef06efafc468e92829426a 07-Mar-2017 Adrian Roos <roosa@google.com> Revert "Revert "AOD: Refactor always on configuration""

This reverts commit cdcc5c438949ce3d942c95204555680e080c17ed.

Bug: 36027947
Change-Id: Iee23682a9d82f930484c3f4c15d99f21a0f1bc36
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
c45944b68009c319c93d48f1c4df60393f108fff 07-Mar-2017 Adrian Roos <roosa@google.com> Revert "AOD: Refactor always on configuration"

This reverts commit 28d26a821f5fa078af756ceb3e94090a10f73175.

Bug: 36027947
Change-Id: I3d4c2e58b753120ff668a4594f60692abc6a3426
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
28d26a821f5fa078af756ceb3e94090a10f73175 27-Feb-2017 Adrian Roos <roosa@google.com> AOD: Refactor always on configuration

Moves the AOD configuration helper to the framework such that it is
available outside SystemUI

Bug: 30876804
Change-Id: Ic35bd3c04d150fd3eb85d76db0043880b31a011f
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
26d8184d46d48aae37cc739cb548edf891fc2ce1 21-Feb-2017 Adrian Roos <roosa@google.com> AOD: Don't use doze states when unsupported

Bug: 30876804
Test: runtest -x $ANDROID_BUILD_TOP/frameworks/base/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStatePreventingAdapterTest.java
Change-Id: Iff09aef0733e30f13723208ff4e7605d40449bb2
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
4fb1f519787bb20a724370e7f98df3276f6a315a 14-Feb-2017 Adrian Roos <roosa@google.com> AOD: Refactor DozeMachine to allow waking up

Bug: 30876804
Test: runtest -x $ANDROID_BUILD_TOP/frameworks/base/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java
Change-Id: I1d01ab5d8ba3c1bf7b11b0b4911b25f3416ca6e9
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
fe54aa00e22c3542b25d7476b44adc5548169688 07-Nov-2016 Adrian Roos <roosa@google.com> AOD: Fix AoD time tick after refactor

Test: Turn on AoD, check if time keeps updating after a minute
Bug: 30876804
Fixed: 34985073
Change-Id: I7d5ce01b4f04e1a1a89b62ba321215b44f54de7b
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
0b2e23a427d5d2d29334e73f2d21f24635909cff 03-Jan-2017 Adrian Roos <roosa@google.com> DozeService: Fix crash if StatusBar not yet initialized

Fixes a bug where a crashing SystemUI may crash again after restarting
if the services restart in an unexpected order.

Bug: 34044765
Test: Crash SystemUI, observe that it doesn't crash again right away.
Change-Id: Id6f781ba29ff11be0850b1883ca2942f15e76324
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
59d86ed2a80364aa27541d8117ccf80551b45e20 04-Jan-2017 Jason Monk <jmonk@google.com> Add one-shot plugin support

Should have happened a while ago.

Test: runtest systemui
Change-Id: I0da4deb5c297e8030213810815a408364ec97e14
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
f9d13f6d7a6fda22620cd4eab74ec98cafdbd147 09-Nov-2016 Adrian Roos <roosa@google.com> Doze: Add plugin hook

Test: mmm vendor/google_experimental/users/roosa/DozePlugin/
Change-Id: I7ea55954f0c07be932e8ee7037e03b7c01cc1108
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
ff2c4563cdee60576847e161678549bc501e8d84 03-Nov-2016 Adrian Roos <roosa@google.com> Doze: Refactor v1

Pulls appart UI, state, power, display and trigger management
into individual components controlled by a state machine.

Also adds tests.

Test: runtest -x packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java
Change-Id: I6ee7e79d58a5a3ebeb975775af44ad1e5aaccf93
/frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java