The issue was that: if navigation bar is requested to show while a
controller is playing an animation of hiding both status bar and
navigation bar, the animation will be canceled and will stay in an
intermediate state, and then, another controller will play an animation
of showing navigation bar. At the end, status bar will stay visible but
it should be invisible.
This CL fast-forwards the insets animation to the end state if it is
canceled.
Fix: 185459811
Test: Steps in the bug.
Change-Id: Id6ae321b6c153ed1d7155afd6111b193ac9c045c
This CL logically reverts my previous CL [1], which added an @hide
method
CursorAnchorInfo#createForAdditionalParentMatrix()
as a preparation to support CursorAnchorInfo API on ActivityView.
Now that InputMethodManager#reportActivityView() is removed [2], we
also do not need this @hide method any more too.
Note also that CursorAnchorInfo is now fully tested in CTS rather than
FrameworksCoreTests [3]. Thus it's fine with removing
CursorAnchorInfoTest.java from FrameworksCoreTests.
[1]: Ic7f9057623ffc61ec7a6121735dc39adecf4649d
e4410a135b
[2]: Idd60d96a39f827197d189beb5de016446576d9cd
44c499d853
[3]: Ib758bddff34b4722b39c94e7ad4e8f8da2bb8b92
c4ef1d6ec22dc2af2ed339fd4e78075903783be0
Bug: 115693908
Bug: 179161778
Test: atest CtsInputMethodTestCases:CursorAnchorInfoTest
Change-Id: I0a05453eeed863db5bfe4b965ab4bcbad67f2783
This CL logically reverts my previous CL [1], which re-enabled
CursorAnchorInfo API for ActivityView since ActivityView is finally
removed [2].
There should be no user/developer impact in this CL as
InputMethodManager#reportActivityView()
is called nowhere.
[1]: Id0411a80456182111bb5b681c6d1230b58e7ec2e
b4f328a2f3
[2]: Ic66f3740819634366edb20a34a7c8177af258c2f
5456990f7e
Bug: 115693908
Bug: 179161778
Test: atest CtsInputMethodTestCases
Test: atest CtsWindowManagerDeviceTestCases:ActivityViewTest
Change-Id: Idd60d96a39f827197d189beb5de016446576d9cd
For the Recents gesture animation, the navbar gets attached to
the app while dragging. The actual navbar attach/detach logic
lives in Core, so this change basically hacks the logic into
the core-side of shell transitions. This is ugly and should
be a temporary solution until that behavior can move to Shell.
This also had to add an ugly API on IATM because the lifecycle
of the navbar reparent is different from the transition lifecycle
in this instance because of LiveTiles.
Bug: 188595497
Test: With shell transit enabled, open app, swipe up to recents.
Observe navbar attached to app during drag and put back
on screen afterwards. Also, no more crash.
Change-Id: I1aba53314329e3fd7678a7e8a5fc8ffa0294e395
If we pass a copy of the surface package, we can release the original,
but we need to check that in this case the surface control doesn't get
reparented to null since the SurfaceView using the copy might already
use the surface.
Test: atest CtsWindowManagerDeviceTestCases:SurfaceControlViewHostTests#testTransferSurfacePackage
Bug: 181757194
Change-Id: Ibf084aa70f3821e7dc82fe45b194c07f307ebe1e
Currently, TextView uses its default implementation even developers
uses setViewTranslationCallback() to set their customized
ViewTranslationCallback, we should only set default TextView
implementation if developers don't set it.
The onViewTranslationResponse() will call getViewTranslationCallback
instead of getting TextView default implementation directly. This can
make sure we can get the expected ViewTranslationCallback.
Bug: 183467275
Test: manual
Test: atest CtsTranslationTestCases
Change-Id: I41417140f8985aec6c80f1bca3cfba804727d5df
Add an API to WindowInsets that allows apps to see the maximum bounds
of the system privacy indicator
Fixes: 185932128
Test: atest PrivacyIndicatorBoundsTests
Change-Id: I01d9e36ccbbea15752eccadfbce4c54bdd35ed5a
CL[1] used to fix some IME animation issue.
And simplified the check focused view logic.
But when window focus changed, the focused view
may still be null. So ImeFocusdController use the
DecorView to start an new Input and hide keyboard.
Use the focused view after focus change callbacks
when we call onPostWindowFocus as before.
[1]: Ib140801f1ce03b5566e756914f96dacba3ad8892
Bug: 186331446
Test: Manual test with the bug steps
Test: atest FocusHandlingTest#testRequestFocusOnWindowFocusChanged
Change-Id: I2f8fde0b6575db17955ff8b8804b61378f9d6dad
When tunnel mode is being used (meaning when there
is a sideband stream in one of the layers in SurfaceFlinger), the
blur can't be computed over that layer. In that case, SF blurs are
disabled, which results in a translucent buffer to be drawn.
This CL introduces a listener, which is registered with the
SurfaceFlinger and receives a callback whenever the tunnel mode
enabled state changes. This way, the BlurController can properly send
updates to apps that blurs are disabled/enabled.
Bug: 171457637
Test: atest TunnelModeStateListenerTest
Test: atest TunnelModeStateReporterTest
Change-Id: I6ffba1c342352ad65a32c0efc4ecbc07811245d9
Screen reader(Talkback) will read content description first if the
developers set. We only translate TextView text, this may cause the
screen reader will not read the translated text if the developers set
content description.
To fix the issue, we also send the content description to translate.
When the translated text is shown, we also set content description
with translated content description and reset to original content
description if show original text.
Bug: 187134784
Test: atest CtsTranslationTestCases
Change-Id: I6986384260627a0539780b7293d47666c442d852