Suspend and resume DozeTriggers when entering and exiting car mode.
This change introduces a new DozeMachine state DOZE_SUSPEND_TRIGGERS
that is equivalent of DOZE but also suspends any triggers that awaken
the device. Entering car mode transitions the state machine to
DOZE_SUSPEND_TRIGGERS and leaving the car mode transitions to either
DOZE or DOZE_AOD depending on whether Always on Display is enabled.
Current behavior when entering car mode:
- DozeService is finished.
- Always on display is turned off
- Tap on screen doesn’t wake up the device
- Lifting device doesn’t wake up the device
- Sending a notification doesn’t wake up the device.
New behavior when entering car mode:
- DozeService is not finished.
- Remaining behavior is the same as DozeTrigger stops listening to all
triggers (sensors, intents, notifications)
Current behavior when exiting car mode:
- DozeService is not running, normal triggers don't wake up the device
New behavior when exiting car mode:
- DozeService is running, normal triggers wake up the device as
expected.
- DozeSuppressor transitions from DOZE_SUSPEND_TRIGGERS to DOZE/DOZE_AOD
Bug: 230968777
Fixes: 230968777
Test: manual
Test: atest com.android.systemui.doze
Change-Id: I5f49bb5700d7ed38763dccc8c5b6438d934c6476
12 files changed