* changes:
Decrease avatar and sender name sizes in MessagingStyle
Fixed various conversation layout appearences
Implemented FacePile if no group icon is present
Fixed the behavior of headers in conversation groups
Ensured correct coloring of badge in dark mode
Fixed an issue where the bubble badge was visible independent of the icon
Improved transitions for expanding messaging notifications
Adjusted single line representation to include a colon
Made the expand button positioning conditional on expanded state
Ensured that the sender of the first message is hidden
Baseline for the new ConversationLayout
This way the lifetime can be bound to the animation. Otherwise
the InsetController owns the lifetime, and it can be challenging
to synchronize the two (we would need to update all the running
animations when we rebuild the control list).
Bug: 150918857
Test: Existing tests pass
Change-Id: I86017b2eaee29ab0d8174479d187c9b7dd014305
mNextServedView is set to null when the next view focus is lost.
but we should not set mNextServedView as null when received the
next view focus is lost but the view is not the current served view.
It can happen when received next view focused but input connection will
disconnect when mNextServidedView is null.
The issue is found when the Activity has ListView which added SearchView
as a list item.
When the Activity is launched, input connection will be started when
activity window focused and served view will be SearchView since search
view request focus by default, then when user taps SearchView,
several view focus in/out events comes out quickly that may cause
mNextServedView set to null when the conteiner View lost focus, so input
connection will be disconnected since ImeFocusController#checkFocus checked
there is no next served view.
The fix is to set mNextServedView as null only when the current served view
loses focus.
Fix: 148974380
Test: atest FocusHandlingTests
Change-Id: I9e90428387fcf43fbf86a8407de7535913202872
Centrialize SystemTextClassifier fields into a class, e.g. userId,
useDefault, callingPackageName. Then all the TextClassifer request
should contain this class object. This helps to scalability if we
want to add new fields.
Bug: 149080832
Test: atest FrameworksCoreTests:android.view.textclassifier
Test: atest FrameworksCoreTests:android.widget.TextViewActivityTest
Test: atest CtsTextClassifierTestCases
Test: Manual. Check the parameters are expected when doing smart
selection, smart linkfy.
Change-Id: I224208adac333e2da7b4213f0905f6fb0abb8b2e
Change-Id: Iaef82c1d6ec8893888258820ac103f1b988eecfa
API Council provided the following feedback:
1. Rename addView() to setView()
2. Add getView()
Bug: 151311937
Test: Existing tests pass
Change-Id: I26665c8bb8d0c10c5eb4228feb4ff13ee89f0d7b
This reverts commit c549e19c5e.
Reason for revert: Droidcop: Potential culprit for Bug X - verifying through Forrest before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.
Change-Id: I2ab42d96d2599dfcc946fa48b3940e2bd92b22b0
Introduced a new Layout for Conversation Notifications.
There are still various open issues that will be
fixed in follow up Cls
Bug: 150905003
Test: Add conversations, obverve visuals
Change-Id: I8ab2e2988d3205a4491006df68ec14235109466f
There is no need to introduce jank risk and run the inset
animations on the main thread if the app doesn't listen to
animation events. In that case, move the animations onto a
separate thread.
Bug: 118118435
Test: Inspect systrace
Change-Id: Ib6e4b4ce8e9dd8e27761ced6eb8d7700b6236a32
When leaving PIP SysUI might need to know the target mode
and bounds to animate correctly. taskInfoChanged may
not have yet been dispatched though. A simple solution is
to provide the info in TaskVanished.
Bug: 150716630
Test: Existing tests pass
Change-Id: I871f745198d6b4bc92cc5701128c5489c154f4f9
This adds a notion of per caller wallpaper zoom, in order to support
simultaneous clients.
The shade might be pulled down while in overview, for example, and we
must coordinate between launcher and systemui.
Bug: 149792636
Bug: 146387434
Test: atest NotificationShadeWindowViewTest
Test: atest WallpaperControllerTests
Test: manual
Change-Id: I588ba56d3d2704845d033ea2a5890ce812b9ee07
We support the PIP transition by adding setChildWindowingMode
and setWindowingMode primitives. This allows the organizer to
replicate the old behavior during the enter pip animation of
switching the Task to PIP but having the activity continue to
render it's full-screen UI, or the opposite on the other
transition. This is a temporary solution to handle
the boundaries between Fullscreen and PIP states and the trade-off
between TaskOrg and WindowManager. Once TaskOrganizer controls
all windowing modes it won't be needed.
Bug: 149947030
Test: TaskOrganizerTests
Change-Id: I7eeb1b5fb8c5d00a00b6de976f61484f1d067048
It's useful for apps to know which inset types they can currently
control, as otherwise they have to poll by calling
controlInsetsAnimation repeatedly.
This can be used when apps want to apply a custom animation
immediately during startup as soon as possible.
Fixes: 150780468
Test: InsetsControllerTest
Test: CTS will be added soon
Test: WindowInsetsActivity
Change-Id: Ic0388c11d759843d3ac9edd8ef23904c9ce05c46
Otherwise we shift entire SF schedule for nothing...
Test: Open IME, inspect systrace
Bug: 118118435
Change-Id: I1352860a8f04271cd5dc72366ffc317175db5e3a
We handle changes to the leashes from the UI thread, but use
the same SurfaceControl wrapper object from the RenderThread with
SyncRtSurfaceTransactionApplier. This means that at the time
we release a SurfaceControl from the UI thread we might have already
scheduled a SyncRtSurfaceTransactionApplier to use it, and actually
that could be in the process of running, leading to racy access and
crashes. To fix this we release the SurfaceControl from the RenderThread
so that it happens behind all existing operations.
Bug: 151086678
Test: Existing tests pass.
Change-Id: I2308d1c64f3f368c32587f99ddfb9e05955f821f
In cases where we are replacing the client surface transparently (e.g.
preserved surfaces), we call reparentChildren to move client added
Surfaces of the preserved Surface to the new Layer. However we are calling
this on the WSA layer, and so we end up reparenting the BLAST Surface
to the new layer. But since we always construct a new BLAST surface on the
WM side, we end up with 2! Rather than try and juggle about when we need
to or need not to construct a BLAST surface and reparenting them across
preservedSurfaces, it seemed either to just use the BLAST surface as the
root of the reparentChildren operation.
Bug: 150013915
Test: Enable BLAST, use split-screen
Change-Id: I1357200b41d183c2331b684ff636dd40a3b98168
With Hierarchical animation, the animation layer will no longer
be a fixed fullscreen layer but animate on the parent container's surface.
In order to run a remote animation, the animation controller needs to
know bounds of the target relative to both its parent and the screen.
The CL includes:
1) RemoteAnimationTarget changes:
- Add localBounds field for indicating the target bounds which
the coodiates relatives to its parent.
- Add screenScreenBounds field to replace souceContainerBounds
to reflect the target bounds relatives to the screen.
- Mark position & sourceContainerBounds as deprecated.
2) Modified related places to set correct localBounds information.
Test: build / run, make sure installing the old version of launcher on
the this new platform change still compatible without crash.
Test: manual as follow steps:
- Launching app from launcher to split-screen secondary stack
- Swipe up to overview screen and drag TaskView to see if the TaskView
surface is shfted, expected is not.
Bug: 148780840
Change-Id: Id9dbf6de193ab73fe94bc24ef6a27edc93380a14
This CL reverts the touch mode behavior to that in N and prior.
Bug: 135752906
Bug: 147710276
Test: Mouse click causes entering to touch mode.
Test: ViewTest#testTouchMode
Change-Id: I9d6a8ad95fba524701df7d318732d553fce958f8
Merged-In: Id5fbb500eed279c66ed6817c2b7d001a5a68737a
(cherry picked from commit 391c123e9e)