To simplify InputMethodManager code logic, have a wrapper
class which encapsulates IPCs from InputMethodManager to
InputMethodService.
Bug: 167948374
Test: atest CtsInputMethodTestCases
Change-Id: Ifb4f86098011fe74cf4159446106d6c15c30fa30
TextServicesManager#getEnabledSpellCheckerInfos() was introduced in
commit 4c7423735e
as #getEnabledSpellCheckersList().
Then, the following commit added SuppressLint("NullableCollections"):
commit d7f33cd648
As this API has been introduced recently in Android S timeframe, I think
it's better to fix the API behavior before it's finalized.
Bug: 180625329
Test: m checkapi
Change-Id: I33d3c86a0c19c0082299e383e50d3860b072e79d
In the InlineSuggestionFactory, it will filter the tooltips by the
field let only the first one can pass to the IME and drop others.
When the IME inflates the inline suggestion, if there is a tooltip of
the suggestion view, inflates the tooltip view at the same time. It
will create the InlineTooltipUi that will be a popup window and
contains the surface view of the tooltip.
Bug: 172024354
Test: atest CtsAutoFillServiceTestCases:InlineTooltipTest
Change-Id: I6f20dcad6d03432017e684964eca52dff2609205
The inline suggestion tooltip is used to show some descriptions for a
specific inline suggestion to let the user easily understand the
suggestion and promo the suggestion. Or educates the user how to
operate the inline strip.
The patch defines some APIs to enable the suggestion provider to
conveniently provide tooltips for the user.
Bug: 172024354
Test: atest CtsAutoFillServiceTestCases:InlineTooltipTest
Change-Id: I5b0fc481b7352da2804f0e4f4633f1698a69109b
"Must store Binder.clearCallingIdentity() token as final variable.."
Restoring identity isn't really needed here, but it's better to have to
be defensive -- in case we do add something later for which the calling
identity needs to be restored.
Bug: 177500482
Bug: 182896753
Test: mmma frameworks/base/ RUN_ERROR_PRONE=true
Change-Id: I72acc40f8776d46b3f875cde1759fe03a25e222b
This reverts commit 7c8010211d.
Reason for revert: Original change broke the build. This is a clean
revert. The next change in the relation chain here fixes the error.
Bug: 177500482
Bug: 182896753
Test: mmma frameworks/base/ RUN_ERROR_PRONE=true
CTS-Coverage-Bug: 182853869
Change-Id: I0a0ce22feb2e54769103f8f4eecbffe425099412
1. Only send navigation bar target when:
- It is the transition of launching an app
- In gesture navigation bar mode
- The navigation bar is not controlled by fixed rotation or recents
2. Add a windowType field to RemoteAnimationTarget so that the remote
clients could use this to find the non-app window they want.
3. Handle the onAnimationFinish() callback for non-app adapters.
Bug: 139273001
Test: atest RemoteAnimationControllerTest
Change-Id: I0612163502bdda01c4bdbae3b0ecda47efedad51
Insets source window can be moved by the display area policy so that
the window would not on the edge of the display. This makes the window
cannot provide insets to the display frame. The default animation uses
the display frame to compute insets, so the moved types cannot be
animated properly.
This CL adds an insets hint to InsetsSourceControl. It is the insets
computed from its owning window bounds. With the insets hint, the insets
animation can be played regardless of the display frame.
This CL also fixes an issue that the insets animation would be played in
the wrong direction by the fixed-rotation window.
Bug: 175775686
Fix: 181939099
Fix: 163018915
Test: atest ImeInsetsSourceConsumerTest InsetsAnimationControlImplTest
InsetsControllerTest InsetsSourceConsumerTest
DisplayImeControllerTest
WindowInsetsTests (manual)
Change-Id: Ic6a8a215bd9b3a3b1af18e425dabe803c9be323e
This is primarily intended for Input Methods, so they can offer
complementary translation experiences to the UI Translation.
But it could also be useful to the applications being translated too, so
it's added to UiTranslationManager.
The states are intentionally different from the ones in the View API -
these are about the UI Translation feature lifecycle, whereas the View
states are about the display states (shown/hidden).
Bug: 177500482
Test: manual - with a sample IME
CTS-Coverage-Bug: 182853869
Change-Id: I8255e18c29a229c8ea3b89098b76124ee8955bdc
Splits the connection callback out from the session
callbacks.
Use ListenableFuture at the ScrollCaptureClient layer
to safely chain together futures, provide a better
exception handling/reporting path, and allow for
cancellation of background tasks.
Bug: 180671218
Test: atest ScrollCaptureClientTest ScrollCaptureConnectionTest
Test: atest ScrollCaptureFrameworkSmokeTest
Change-Id: Ibc8536d12a5554f62b3d7e1f4f717d3589ec45e0
SpellCheckerSessionListener callback methods will be called on
the provided executor.
This CL also adds more description for 'bundle' parameter.
Bug: 179804789
Test: atest CtsInputMethodTestCases:SpellCheckerTest
Change-Id: I43f9f04fc335ad45d2580f4711b19aee214bc7dd
At the end of autoEnterPip transition, followings happen in sequence
- Transition finishes in Launcher side, which operates on the
animation leash
- RecentsAnimationController.TaskAnimationAdapter#onCleanup has the final
chance to set the Task leash
- PipTaskOrganizer gets onTaskAppeared callback and commits Task into
pinned mode
What's been changed here
- Transition in Launcher no longer in charge of settle the final transaction
- RecentsAnimationController.TaskAnimationAdapter#onCleanup sets the
Task leash to be in sync with the final state in Launcher side
- PipTaskOrganizer commits the final leash transaction together with
WindowContainerTransaction that enters PiP
Known issue: transition from landscape is not polished
Video: http://rcll/aaaaaabFQoRHlzixHdtY/hT5SXvaCy28P4UtfuoKiDw
Bug: 181342797
Test: see video
Change-Id: Ieabd6991ea5174099714ec22970198bebde1e336
If InputMethodService declares suppressesSpellChecker="true", the system
SpellCheckerService will be disabled.
With TextView, when IMSs are switched while the user is editing,
SuggestionSpans that were previously added will not be removed even if
the next IMS declares suppressesSpellChecker="true".
This is because we don't know if the SuggestionSpans were from Spell
Checker, App, or IMS.
Bug: 153473490
Test: atest CtsInputMethodTestCases:SpellCheckerTest
Change-Id: Ia22b8758111087818beea8c07b1c173f1a94b8e4
Revert "Add cts for InputMethodService configChanges"
Revert submission 13727407-167948419
Reason for revert:
Possible root cause of Bug 182604598.
Reverted Changes:
Ib94fddadb:Avoid IME restart for configChanges
Ieca327b2e:Add cts for InputMethodService configChanges
Bug: 167948419
Bug: 182604598
Test: presubmit
Change-Id: I3accc55ac65d0e2ec30c3f6023680fda27ad3e97
Replaced with BLASTSync for a few months now.
Bug: 168505645
Test: Existing tests pass, this was already non running code.
Change-Id: Iee6423e923d8bdedc508c021e63b313787450896
Previously, Editor.onDrop used a try/finally block to request and
release URI permissions. This doesn't work for the case when an app
sets an OnReceiveContentListener (or subclasses TextView and overrides
the onReceiveContent() method). If using a background thread to
process the content in the custom impl for receiving content,
permissions will be revoked in the finally block before the app has
had a chance to process the URI.
With this change, when Editor requests permissions, they will be bound
to the app process and released automatically when the app process
terminates.
Bug: 181178998
Test: atest CtsWindowManagerDeviceTestCases:CrossAppDragAndDropTests
Test: Manually verified using development/samples/ReceiveContentDemo
Change-Id: I7ae38069fb741925211b42c7ff28784eb9722ce3
Since ControlledInputConnectionWrapper is the only derived class
of IInputConnectionWrapper hence it doesn't have a reason keep them
separate.
Bug: 167948374
Bug: 163450598
Test: atest CtsInputMethodTestCases
Change-Id: Ice1ea23dcb2351b56ef03b507d8aec8f8fb7b30a
the app bounds.
Fixes Display#getRealMetrics sandboxing bug, where a non-null
configuration results in DisplayInfo ignoring max bounds width
and height for app bounds. Consistent with non-sandboxing
implementation of Display#getRealMetrics
Bug: 182377479
Test: atest FrameworksMockingCoreTests:android.view.DisplayTests
Change-Id: I067aeb020e1ca214aa269182c475b4553de0eb09
- Create a new method in StatusBar to enable/disable nav bar luma
sampling.
- Modify the IRcentsAnimationController.detachNavigationBarFromApp() API
to notify the server side whether we should run the fade-in animation
or not.
- Don't let fixed rotation animation control the navigation when it's
controlled by recents animation and vice versa.
- Don't attach nav bar when it's in split screen mode and in landscape.
- Translate the nav bar surface to match the secondary app's bounds in
split screen mode in portrait.
Bug: 139273001
Test: atest RecentsAnimationControllerTest CommandQueueTest
Change-Id: I06dc2dd0655bc8a2e6ad03808576e55294a322e8