For now, we will show apps with an active FGS or jobs that the user
should be aware of (ie. "user-visible jobs") in the exact same way.
Users will be able to stop the ongoing FGS and user-visible jobs
using the same button. This won't be used to show apps on TM, so
the JobScheduler implementation is empty.
We'll add the JobScheduler implementation in U.
Bug: 255767350
Change-Id: Iaf482926c1f568aee26a2798ce827c6138f3f779
Test: atest SystemUITests
Test: Manually start jobs and interact with the Task Manager
It seems like an exception is thrown because ArraySet is not
thread-safe.
Use a synchronized hash set for the receivers.
Fixes: 261099639
Test: atest KeyguardQuickAffordanceProviderTest
Change-Id: I39c43bb2d5dbdc6705b5dec4b362d75189c136d9
Bug: 261039202
Test: presubmit to verify this doesn't break existing tests
Test: See b/259992416 for analysis of how this improves memory pressure.
Change-Id: Ifa1b489b8dff354a29727fb61342ac9b82ec65e7
* changes:
Integrate new touch architecture with UdfpsController
Change computed properties to regular in UdfpsOverlayParams
Introduce testable UDFPS touch architecture
Add rotatePointF to RotationUtils
Add tryDismissingKeyguard() to UdfpsController
This CL adds support for multi-users to the customizable lock screen
quick affordance system.
The process that creates windows and renders System UI is always the
primary user's system UI process. The process that owns the content
provider accessed by Wallpaper Picker is bound to the currently-selected
user on the system, which may be different than the primary user.
What this means is that, when switching to a secondary user, what the
Wallpaper Picker sees is fed to it from a secondary system UI process
which is not the same system UI process that is rendering the
affordances on the lock screen. Therefore, it didn't work.
This CL adds a "remote user" selection manager which the repository can
switch to when it's running on the primary user process but needs to
query the state of the selected affordances for a secondary user.
The "remote user" selection manager queries the content provider
associated with the system UI process linked to the secondary user. This
way, we can display the correct affordances on the screen, even when
switching to a secondary user.
Fix: 260251307
Test: included new and expanded unit tests. Manually verified that the
selection of quick affordances for the primary and secondary user are
correctly reflected on the lock screen when switching users and is
retained even after switching away and back.
Change-Id: I281577ed6efb987c23b19c2078e77c91e45ce9f2
Bug: 256687331
Test: New Unit test, verified manually via toggling flag and activating flashlight quick affordance
Change-Id: I833f60bcd0f6b2f4049a0a2a5de2de0b41f6283f
This CL cleans up FooterActionsViewModelTest and FooterActionsTestUtils
by making sure that the same TestCoroutineScheduler is used by all
TestDispatchers, and by using the new collectLastValue(Flow) API instead
of manually collecting each Flow.
Bug: 242040009
Test: atest FooterActionsViewModelTest
Change-Id: Ia3b1ae8fba05c2ed9cf3a46d3cc7546161092f42
This CL introduces a helper function to easily collect value from an
infinite Flow from a test. See ag/20562448 for an example.
Bug: 242040009
Test: atest FooterActionsViewModelTest
Change-Id: Ie87220a7382424dc9c25728fca03c601952da5c0
As part of moving DeviceConfig.java to packages/modules/ConfigInfrastructure.
Need to move activity thread dependency to setting.config as the new
module will not have access to hidden apis (ActivityThread).
Test: m
Bug: 258220607
Change-Id: Ib7b20caaec128d64908349918ec7bce9a53cc2e6
Originally, the user chip in the status bar was controlled by
StatusBarUserSwitcherController, which was backed by
UserInfoControllerImpl. This data source would sometimes show incorrect
data for the current user name.
Since UserRepository/UserInteractor exist now, this CL hooks up the
existing StatusBarUserSwitcherContainer view to a new class,
StatusBarUserChipViewModel, which is backed by the new repository class.
This allows us to fix 2 bugs at once:
1. The chip now only shows when there are > 1 users AND the config is
true
2. Hooking the chip up to the same data source that populates the user
switcher screen means that the names will always be consistent
Also removed the now-unused StatusBarUserSwitcherController, and its
associated feature controller and tracker classes.
Test: atest StatusBarUserChipViewModelTest
Test: atest UserInteractorRefactoredTest
Test: atest KeyguardStatusBarViewControllerTest
Test: atest PhoneStatusBarViewControllerTest
Bug: 254246505
Bug: 254680435
Change-Id: I3f5e212fed485b5697dedbe0510ab6c34d3b2ade
Add a new DozeMachine.Part in order to emit granular doze state to the
KeyguardRepository. Use that new information to make better decisions
about when to transition state to/from dreaming.
Upcoming: Support for pulsing and dozing (non-AOD) states
Bug: 195430376
Test: atest KeyguardRepositoryImplTest
Change-Id: If759ba0d286eca907af615b9e2e56cadef224f4d
This method will be needed by the status bar user chip, and has the
equivalent behavior that was defined in `FooterActionsInteractor`. This
CL moves the implementation + tests up from `FooterActionsInteractor` to
a new dependency on `UserInteractor`
Test: atest UserInteractorTest
Bug: 254246505
Change-Id: Ia78513a0f86a5ade8727855f677919abac82b3b1
In the dock setup flow, we have complex triggering which could be made
simpler with the ability to OR conditions together. To cover the case
where the value is undefined, this change introduces 3-valued AND/OR
operators which can be used to construct new conditions from an existing
condition.
To keep the syntax readable, we add or() and and() methods to
conditions, so the caller can simply say condition1.or(condition2)
Bug: 255372044
Test: atest com.android.systemui.util.condition.ConditionTest
Test: atest com.android.systemui.util.condition.ConditionMonitorTest
Change-Id: Iac583492669cbb573c84807c9c0e78c35dfc02a0
Fix: 246631653,254513286,254513102
Test: tests updated, all pass
Test: manually verified full screen and popup dialog user switchers both
still work
Change-Id: I74b09ae8d64073b7b6b9019195e9bc0fcbb2ae40
Add support for states in and out of dreaming. At the moment, AOD is
equivalent to DOZING but these will be separated out in the future.
Test: atest KeyguardTransitionRepositoryTest
KeyguardRepositoryImplTest
Bug: 195430376
Change-Id: I73b51987f01540cc3d321f23286a3344d0847f9c
Data layer - Add 'isKeyguardGoingAway' information, allow transitions
to be cancelable and add in Cancel state.
Domain layer - Listen for state transitions and then attempt to
cancel/interrupt them under the right circumstances, such as when the
power button is pressed in the middle of an aod -> lockscreen
transition.
Bouncer fixes - hide() was never called when using the back gesture,
resulting in incorrect bouncer state.
Test: atest KeyguardTransitionRepositoryTest
KeyguardRepositoryImplTest KeyguardBouncerTest BouncerInteractorTest
Bug: 195430376
Change-Id: Id1b79253ab6334e8e5941c89e94e267126b08ecb
NOTE: on udfps devices while now playing + on pixel stand 2, and max density, there remains overlapping related to the assistant icon.
Test: manually test UI on Pixel Stand 2
Test: manually test UI by pushing song to NowPlaying via adb
Test: manually test on devices both with and without udfps, on large screen density and low density
Fixes: 230466568
9761c10a5c
Change-Id: I3c67e92d5d9076938c55852898d80903de1d0202