Commit Graph

19632 Commits

Author SHA1 Message Date
Zeyin Wu
44c8a5b43b Merge "Add setContainerTitle API" 2022-11-07 16:42:17 +00:00
Tiger Huang
fedf2cf795 Merge "Describe requested visibilities in public types (5/n: consumer)" 2022-11-07 07:15:02 +00:00
Zeyin Wu
bf86a1b0ba Add setContainerTitle API
Test: atest android.view.accessibility.cts.AccessibilityNodeInfoTest
Bug: 191984454
Change-Id: I82874c095aab641257a9735654294a06abac3e45
2022-11-06 22:40:27 +00:00
TreeHugger Robot
657812fb22 Merge "Fix some typos in MotionEvent#obtain JavaDoc" 2022-11-04 20:22:38 +00:00
Taran Singh
48cba7c99a Merge "API for realtime Scribe gesture preview" 2022-11-04 18:12:07 +00:00
Harry Cutts
ab98306d9e Merge "Update JavaDoc for InputDevice touchpad sources" 2022-11-04 15:25:17 +00:00
Harry Cutts
3472c79777 Merge "Add MotionEvent#obtain overload for classification" 2022-11-04 13:17:10 +00:00
Rhed Jao
bedef9c26f Merge "Enforce package visibility rules on switch input method apis" 2022-11-04 10:47:38 +00:00
Rhed Jao
567dafb881 Enforce package visibility rules on switch input method apis
Bug: 227207653
Test: atest InputMethodSubtypeTest
Test: atest InputMethodServiceLifecycleTest
Change-Id: Ib5ba67f708b8ebe12b5120c126022eb84ce720cb
2022-11-04 14:16:34 +08:00
Taran Singh
95baa907de API for realtime Scribe gesture preview
Introduce new API to support gesture preview as user is operating over
text.

Bug: 254726230
Bug: 254727073
Test: InputConnectionEndToEndTest

Change-Id: I6c2ac5a5aaeaeab78411d24870f573670304e898
2022-11-03 18:04:00 +00:00
TreeHugger Robot
78f3bff690 Merge "Remove requestCursorUpdatesFromImm() again" 2022-11-03 17:32:13 +00:00
Harry Cutts
ccaf86da8f Fix some typos in MotionEvent#obtain JavaDoc
This was pointed out by a presubmit on the previous CL for an individual
JavaDoc entry, but let's fix it for all of them.

Bug: 257028305
Test: none
Change-Id: I4d0aaf3c4d0cb53a532d523a9802c1363e637b50
2022-11-03 15:57:05 +00:00
Harry Cutts
2892de61dc Add MotionEvent#obtain overload for classification
Bug: 257028305
Test: atest CtsHardwareTestCases (no new failures)
Change-Id: I3255b01fb136b11f4afecc6db4b26725ca3a36d5
2022-11-03 15:41:18 +00:00
John Reck
ae963f8b4f Merge "Add missing nullability annotations" 2022-11-03 14:29:30 +00:00
Tiger
a4b747496b Describe requested visibilities in public types (5/n: consumer)
This CL removes mRequestedVisible from InsetsSourceConsumer since the
information can be queried from InsetsController.

This CL also stores the public insets type in InsetsSourceConsumer.
Eventually, the internal insets type will be removed.

Bug: 253420890
Bug: 234093736
Test: atest ImeInsetsSourceConsumerTest InsetsAnimationControlImplTest
      InsetsControllerTest InsetsSourceConsumerTest
Change-Id: I8e2070676d2161cc9e8fc28a3dd49cefb362f26c
2022-11-03 16:42:54 +08:00
TreeHugger Robot
ebb99da896 Merge "Remove an unused param from IMMS#showInputMethodPickerFromClient()" 2022-11-03 00:16:41 +00:00
John Reck
3e79a16b56 Add missing nullability annotations
It's never valid to draw to a null Canvas

Test: make
Change-Id: Iaad788cb9e5f1ff2965d2fac23f7ba7a00069b81
2022-11-02 15:18:46 -04:00
Yohei Yukawa
a488ba266c Remove an unused param from IMMS#showInputMethodPickerFromClient()
This is the 2nd attempt to submit this cleanup [1], after a revert [2] due to some build failure.

This is a follow up CL to our previous CL [3], which introduced

  InputMethodManagerService#showInputMethodPickerFromClient(
          @NonNull IInputMethodClient client,
          int auxiliarySubtypeMode, int displayId);

Somehow the "client" has never been used, which is fine because the
actual caller verification is done by requiring WRITE_SECURE_SETTINGS
permission.

Let's remove such an unused parameter for simplicity.

There must be no observable behavior change.

 [1]: I2f27160cbe7d83201c8f52dbb6dcb774a5b8ae43
      3efbbb5e49
 [2]: I343828ad83d50436211004753f1b9ba1b13b60ca
      2fb98cdab1
 [3]: Ic7d7c5a7ad8005a3fbd9d1c1b73e3c5a39a07001
      0b05f9e49d

Bug: 234882948
Bug: 256952514
Test: presubmit
Test: lunch aosp_bramble-userdebug && make -j
Change-Id: Ia536d8793f0022179dfafd1cbf21091537375992
2022-11-02 18:31:56 +00:00
TreeHugger Robot
5a97c93a7a Merge "Add @hide IMM#setRequestCursorUpdateDisplayIdCheck()" 2022-11-02 17:29:41 +00:00
Yohei Yukawa
d4b0e8a107 Add @hide IMM#setRequestCursorUpdateDisplayIdCheck()
This is a follow up CL to our previous CL [1], which re-introduced

  InputMethodManager#reportVirtualDisplayGeometry()

for some special form factors.

For apps that only aim to bypass display ID mismatch check in

  RemoteInputConnectionImpl#requestCursorUpdatesInternal(),

this CL gives a much simpler and easier-to-maintain @hide method

  InputMethodManager#setRequestCursorUpdateDisplayIdCheck().

  [1]: I35b491da5a340844e17542d7a6198f8152bbeda3
       708c957fa3

Bug: 224424149
Bug: 256926300
Test: presubmit
Change-Id: I9e1f62e3d5d2a385dce8a9633b5b73f8e7f0ccef
2022-11-02 10:26:49 -07:00
Ziqi Chen
6745a77c6c Merge "Add a new API CursorAnchorInfo#getTextAppearanceInfo()." 2022-11-02 08:18:02 +00:00
Hieu Dang
4826cefb6c Merge "Revert "Remove an unused param from IMMS#showInputMethodPickerFromClient()"" 2022-11-02 07:20:24 +00:00
Hieu Dang
2fb98cdab1 Revert "Remove an unused param from IMMS#showInputMethodPickerFromClient()"
This reverts commit 3efbbb5e49.

Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=git_master&target=aosp_bramble-userdebug&lkgb=9245415&lkbb=9246274&fkbb=9245423, bug https://buganizer.corp.google.com/issues/256952514

Change-Id: I343828ad83d50436211004753f1b9ba1b13b60ca
Bug: 256952514
2022-11-02 07:19:39 +00:00
czq
50f792e09d Add a new API CursorAnchorInfo#getTextAppearanceInfo().
Add a new group of information related to text appearance in
CursorAnchorInfo, which is extracted from TextView.

Bug: 231894524

Test: atest android.view.inputmethod.cts.CursorAnchorInfoTest#testBuilder
atest android.view.inputmethod.cts.CursorAnchorInfoTest#testEquality
atest android.view.inputmethod.cts.InputMethodServiceTest#testOnUpdateCursorAnchorInfo

Change-Id: I8b96f055506b0a426dcfc6334db867dda7073868
2022-11-02 11:40:08 +08:00
Yohei Yukawa
e7058e49a7 Merge "Remove an unused param from IMMS#showInputMethodPickerFromClient()" 2022-11-02 01:52:35 +00:00
Yohei Yukawa
e21c66fb60 Merge "Add missing @RequiresPermission to IMM" 2022-11-02 00:08:39 +00:00
Yohei Yukawa
515e3ce276 Merge "Clarify required permission in IMM#getInputMethodListAsUser()" 2022-11-02 00:05:48 +00:00
TreeHugger Robot
f65ce2308b Merge "Add threading comments for the delegate initiation callback" 2022-11-01 23:52:56 +00:00
Yohei Yukawa
3a05ca923d Remove requestCursorUpdatesFromImm() again
This CL removes an unused method

  RemoteInputConnectionImpl#requestCursorUpdatesFromImm(),

which was originally introduced [1] then removed [2], and
accidentally added again [3].

Anyway, this method is no longer used and can be removed safely.

 [1]: I3d6b1728d62139785593af14c24cb52bf2c91e31
      71aa1a31d1
 [2]: Ia72a9fe0ceac1798ee1989eaae3906e8e1b696bf
      5854c92bad
 [3]: I53bcb62e03ac1c371feb60d1385c88c921754092
      3e3ff1a3d2

Bug: 210039666
Test: presubmit
Change-Id: I4d0bf0ac371e1f9f214258906231d6ae85bdce3e
2022-11-01 16:14:04 -07:00
Taran Singh
79dbdbac77 Merge "Make text optional for InsertGesture" 2022-11-01 22:44:55 +00:00
TYM Tsai
98e013f664 Merge "Reset Autofill dialog if the content is changed" 2022-11-01 22:17:38 +00:00
TYM Tsai
6106c85a44 Merge "Avoid to hold a strong reference to Context object" 2022-11-01 22:16:44 +00:00
Justin Ghan
c4409a13be Add threading comments for the delegate initiation callback
Bug: 228100684
Bug: 256870186
Test: N/A
Change-Id: I6db21adad640d27a3efd020aa9f829276993bbe7
2022-11-01 14:18:24 -07:00
Yohei Yukawa
3efbbb5e49 Remove an unused param from IMMS#showInputMethodPickerFromClient()
This is a follow up CL to our previous CL [1], which introduced

  InputMethodManagerService#showInputMethodPickerFromClient(
          @NonNull IInputMethodClient client,
          int auxiliarySubtypeMode, int displayId);

Somehow the "client" has never been used, which is fine because the
actual caller verification is done by requiring WRITE_SECURE_SETTINGS
permission.

Let's remove such an unused parameter for simplicity.

There must be no observable behavior change.

 [1]: Ic7d7c5a7ad8005a3fbd9d1c1b73e3c5a39a07001
      0b05f9e49d

Bug: 234882948
Test: presubmit
Change-Id: I2f27160cbe7d83201c8f52dbb6dcb774a5b8ae43
2022-11-01 13:12:09 -07:00
Yohei Yukawa
e619330356 Add missing @RequiresPermission to IMM
This is mechanical refactoring that has no behavior change.

 - Add missing @RequiresPermission
 - Describe when INTERACT_ACROSS_USERS_FULL is required
 - Apply the same annotation order
 - Use the same import pattern around permissions

Fix: 256239860
Test: presubmit
Change-Id: I5ba2210e4de54b6941dba148471746f20720f9c6
2022-11-01 13:11:10 -07:00
Yohei Yukawa
05e924b2ab Clarify required permission in IMM#getInputMethodListAsUser()
This is a follow up CL to our previous CL [1], which exposed

  InputMethodManager#getInputMethodListAsUser(int userId) [2]

as an @TestApi.

One thing to clarify is that INTERACT_ACROSS_USERS_FULL permission is
required when and only when "userId" is different from the one of the
calling process.  To make it clear, this CL adds "conditional = true"
like other @RequiresPermission usages in InputMethodManager.

This is just about (Test) API annotation.  There must be no observable
behavior change.

 [1]: I4b73d9374d7a2ce4c9dfc48682a43d5d48b39042
      ec8b1449f2
 [2]: I5b50b5fe143c74c87b331bda3e5bcc4d6248436e
      d20eef826c

Bug: 256239860
Test: presubmit
Change-Id: I14867e528d4292f1f8713b1d9b491fc5ed6c1abb
2022-11-01 13:08:35 -07:00
Sally Yuen
fa16d9b083 Merge "Add AccessibilityDisplayProxy and register/unregister methods" 2022-11-01 19:38:20 +00:00
TreeHugger Robot
d6ffb3b531 Merge "Require TEST_INPUT_METHOD instead in IMM#addVirtualStylusIdForTestSession()" 2022-11-01 17:57:00 +00:00
Yohei Yukawa
943864be04 Merge "Make TEST_INPUT_METHOD @TestAPI" 2022-11-01 17:19:02 +00:00
Alec Mouri
35487fa8ee Merge "Tag UnsupportedAppUsages in SurfaceView with alternatives" 2022-11-01 16:33:40 +00:00
Wei Sheng Shih
341acd7c29 Merge "Fixes NPE crash when VRI#setView fail before input stage was create." 2022-11-01 10:10:04 +00:00
TYM Tsai
c3380c162b Avoid to hold a strong reference to Context object
We only use parts of Context in the Content Capture manager and
main session, we don't need to cache context object which will
cause some memory issues.

This change will extract the necessary information to save it, instead
of caching the entire context object.

Bug: 256247718
Fixes: 239192932
Test: atest CtsContentCaptureServiceTestCases
Change-Id: Id7b5e8617c521f31879199b0f2c7e18204bb7526
2022-11-01 09:48:04 +00:00
Ming-Shin Lu
43013d1d62 Merge "Update showSoftInput javadoc" 2022-11-01 06:10:56 +00:00
Haoyu Zhang
167691ce12 Merge "Introduce TextBoundsInfo" 2022-11-01 05:00:28 +00:00
Ming-Shin Lu
b3214c5176 Update showSoftInput javadoc
For the app developers to understand the editor view of requesting
showSoftInput requires the view and its window must be focused and
serverd by an input method.

Bug: 256517410
Test: build
Change-Id: Ibe52263a01f62140862527fd59111b914ad5e18c
2022-11-01 03:17:12 +00:00
TreeHugger Robot
9fa6872e1c Merge "Handwriting initiation delegation" 2022-11-01 01:07:57 +00:00
Taran Singh
1258fa8548 Make text optional for InsertGesture
text to insert should be optional field for InsertGesture. This allows
IME to use this gesture to move cursor.

Fix: 255839545
Test: atest InputConnectionEndToEndTest
Change-Id: Ibbffff210007dc7900b442d3d46232432e5dbbb2
2022-10-31 19:23:47 +00:00
Yohei Yukawa
e9490612d5 Introduce @hide ParcelableHandwritingGesture
This is a follow up CL to our previous CL [1], which introduced
HandwritingGesture and several subclasses.

One of the challenge is that we only wanted to make child classes
Parcelable, while keeping the abstract base class HandwritingGesture
non-Parcelable.  Although InputConnection has only one method

  InputConnection#performHandwritingGesture(
          HandwritingGesture, ResultReceiver),

in the IPC layer IRemoteInputConnection needed to define methods for
each subclass, e.g.

 * performHandwritingSelectGesture(in InputConnectionCommandHeader,
       in SelectGesture, ...)
 * performHandwritingInsertGesture(in InputConnectionCommandHeader,
       in InsertGesture, ...)
 * performHandwritingDeleteGesture(in InputConnectionCommandHeader,
       in DeleteGesture, ...)

because their abstract class HandwritingGesture is not Parcelable.

To avoid such method definitions (and lots of type-based dispatching /
merging logic), this CL introduces

  ParcelableHandwritingGesture

as a generic Parcelable container of HandwritingGesture subclasses.
You can freely use ParcelableHandwritingGesture in AIDL method
definitions as follows.

  performHandwritingGesture(in InputConnectionCommandHeader,
        in ParcelableHandwritingGesture, ...)

In the Java side, you can easily wrap objects as follows.

  var parcelableGesture = ParcelableHandwritingGesture.of(gesture);
  var unparceledGesture = parcelableGesture.get();

Note that this CL is still an internal cleanup. There must be no
developer observable behavior change.

 [1]: I53bcb62e03ac1c371feb60d1385c88c921754092
      3e3ff1a3d2

Bug: 234882948
Bug: 239783077
Test: presubmit
Test: atest FrameworksCoreTests:ParcelableHandwritingGestureTest
Change-Id: I158026087653f6772a78cc2394e678ae9741fb00
2022-10-31 08:08:54 -07:00
wilsonshih
f1a574074a Fixes NPE crash when VRI#setView fail before input stage was create.
Also catch RuntimeException for addToDisplayAsUser in case the throwing
type was not RemoteException.

Bug: 253200800
Test: Simulate to throw a runtime exception in WMS#addWindow, and verify
VRI#setView should catch that exception, and clear resources without
crash.

Change-Id: Ia113b836e4a18c656093f9db7f63e9c50c427e6c
2022-10-31 21:21:56 +08:00
Yohei Yukawa
cba800ef2f Require TEST_INPUT_METHOD instead in IMM#addVirtualStylusIdForTestSession()
This is a follow up CL to our previous CL [1], which introduced an @TestApi

  InputMethodManager#addVirtualStylusIdForTestSession(),

which internally requires INJECT_EVENTS permission.

Now that TEST_INPUT_METHOD is also available [2], let's require it
instead of INJECT_EVENTS for better consistency with other test APIs
defined in InputMethodManager.

This CL also add @RequiresPermission(TEST_INPUT_METHOD) to

  InputMethodManager#addVirtualStylusIdForTestSession()

to make it clear that it's guarded with the permission.

 [1]: I7399c0a56c04f024d65c16d459818cc2c5cdbc7f
      d96ef57bc4
 [2]: Ie79a3e9d41ce22605ae083594d639c37d08b7def
      b869c78380

Bug: 256239860
Test: atest CtsInputMethodTestCases:StylusHandwritingTest
Change-Id: Icdbb4ade2bd4b5066984e209efcf0ca93bfa08ca
2022-10-28 19:53:46 -07:00