* changes:
Handling multiple players better
Fixed an issue where GONE Views would show during transitions
Fixing some issues where view was too short when created
Made the animation logic more stable
Measuring the Media Views now properly the first time its created
When animating between states, animate the view width
Factored out the media view manager from the hiearchyManager
Migrated away from view detaching as a signal
Work back in media uri loading that was changed in the refactor
Media views now dynamically transition between media hosts
Changed the quick settings layout for media
Refactored the Media Player management
Changing media to MotionLayout
Made sure that we're only updating the media notification when inflated
Bubbles are no longer part of the status bar window and
live in their own window now. This resulted in a new
window being created each time setUp step happened in
BubbleControllerTests without ever being removed, resulting
in OOM when running tests :(
This CL fixes it by using a mock window manager in tests.
Test: atest
Fixes: 155805511
Change-Id: Id1940aeb7ee94801fa5669a30a98e2ea9c92126b
Adds a condition to shouldListenForFace() that checks whether the
notification shade is in the locked state. This should prevent it from
re-triggering after previous authentication attempts (which seems to
have happened in b/155223318).
Test: atest KeyguardUpdateMonitorTest
Test: Unable to repro issue. Manually verified that unlocking from
notification shade still works.
Fixes: 155223318
Change-Id: Ibddb10e8f14d7bcbaa45d8471cca02719f6f758f
Previously the animation was completely broken with multiple players
since they were all laid out at 0 instead of the actual position.
Measuring the full layout is a bit too expansive, so we're
introducing some workarounds to only measure the players.
Test: add multiple players, observe transitions
Bug: 154137987
Change-Id: I1c424c980cf3b64f5a9d63ba058aa7e47f6e4156
Because we're clipping children and MotionLayout doesn't hide them
when collapsed, views could flicker onto the screen
Test: add media notification, swipe down to shade and back, observe no flickering
Bug: 154137987
Change-Id: Ida591706e779215e13c6d3047be7e3b5318b4d19
The view was always created too small because we didn't
set the constraints in the beginning
Test: add new media notification, not clipped off
Bug: 154137987
Change-Id: Ifb9c95ba41be7392ec4b61e2b801b7420b811d3a
We're now using the most recent state of the last attached location
for the animation start, since otherwise this could be flickering.
The animation could detoriate if the view wasn't attached
to the screen anymore as a result, which is fixed as well.
Bug: 154137987
Test: add media notification, observe
Change-Id: I1a6dfa651d676b3d620577fbd6c9e6a5d833dc0c
Instead of only knowing the measurement when its attached, we need
to know before otherwise the layout will be broken
Bug: 154137987
Test: atest SystemUITests
Change-Id: I8a4d90a7d933f477df65a5f26942059b0f0920da
It was always supposed to be separate, but we now finally
split it in preparation for the Viewpager refactor.
Bug: 154137987
Test: add media notification, observe :)
Change-Id: I1ae53ab1cb9bb67493fa4175e06687cb2b3b4b78
Previously the seekbar update stopped pretty much
immediately since the Lifecycle was set to destroyed
whenever detatched.
We're now listening whenever a view exists.
Similarly, were we making the view inactive whenever
reattaching, which happens constantly now
Test: add any player, observe progress bar updating
Bug: 154137987
Change-Id: I5bac0822ceb282999db35c797d7355127b1daf31
Rebuilt ag/11180565 and fixed a few cases while doing so.
This also includes the fixes from ag/11270945
Test: play music from spotify
Bug: 154137987
Change-Id: Ib912df716d754f451b68b289920a2e138977b9bd
Let there be hosts and transitions.
This also enables us to build again after the rebase
Bug: 154137987
Test: atest SystemUITests
Change-Id: I8aaed1718b35be46abae0b0255793f37b8a1fbd2
Previously media were side by side. Instead it's now
below the QS Tiles.
Bug: 154137987
Test: atest SystemUITests
Change-Id: I5d88ae26ebdae257167982c8fe0cca208032f043
Previously all media instances had their own management
and it could easily happen that certain players
would get out of sync as a result. We now have
a unified architecture to listen to media notifications
and inflating a singular UI
Test: atest SystemUiTests
Bug: 154137987
Change-Id: I9f807e6431dd7cb54ca9b6d983379d770a281f31
Previously the update was happening before inflation, but isMediaNotification()
actually depended on it.
Bug: 154137987
Test: add media notification fresh on lockscreen, without ever updating, observe media extracted to background
Change-Id: I8f7ef11d5c99f2905c4942c07a701bbc134c1307
Fixes an issue that caused the content description for the
BiometricPrompt background cancellation target to be read aloud twice by
TalkBack when the prompt was displayed.
Test: Manual:
1. Enable Talkback
2. Install the CtsVerifier apk
3. Launch app and select Biometric Tests > 4a: Cipher, Credential
4. Select "time-based key with biometric" to launch prompt
Before: TalkBack reads "Tap to cancel authentication. Tap to cancel
authentication, button."
After: TalkBack reads "SystemUI. Tap to cancel authentication, button."
Fixes: 155042588
Change-Id: I93f7380d87213aba8f1e1030510b84170ae9c2f7
GlobalActions is a frequent path to take bugreports; this prevents
it from acquiring the IME focus, which destroys the IME state and
makes IME-related bugreports frequently useless.
Fixes: 156071729
Test: atest GlobalActionsImeTest
Test: Click any text field, long-press power, verify keyboard is still open (behind the power menu)
Change-Id: I396006f3e240c9e410dfa0dab60508d9e2a5ef5d
- move the initialization methods out of the constructor and into an init method
- @Provides that ensures the init method gets called
Bug: 155685169
Test: atest SystemUITests:BatteryControllerTest
Merged-In: I064442fcf56397ba6394ee98ccf9cc82e589a0e3
Change-Id: Ifd7a3e41714b488ed7144f2344f7488184d48951
When PiP window is enlarged to its expanded state, show the menu after
the expand transition is completed.
Video: http://go/recall/-/aaaaaabFQoRHlzixHdtY/PEn28BT2vdPmCMU6Cqpqy
Bug: 150810705
Test: manual
Change-Id: I62fd28e5568865de12d868719de401aabeb78d13
If a notification is cancelled before it's inflated, make sure we still
remove the notification from the mAllNotifications collection
Test: atest NotificationEntryManagerTest
Fixes: 155778759
Change-Id: Ib8dc9cca4dc600278584ab52c8a73f8665840d73
For example if we are going from small to large, then the
crop needs to be expanded in the same frame that we reset the
scale and complete the resize. This is how the free resize
path works, so we just make the animate resize path also
work this way.
Bug: 150810705
Test: Resize pip small to big. Everything works!
Change-Id: I41c8b41bada159908227991001dfa24e70bf8545