summaryrefslogtreecommitdiff
path: root/core/java/android/view/InputChannel.java
Commit message (Collapse)AuthorAgeFilesLines
* Add maxTargetSdk restriction to unused APIs.Mathew Inwood2020-10-291-1/+2
| | | | | | | | | | | | | | | | | | | These are APIs that have @UnsupportedAppUsage but for which we don't have any evidence of them currently being used, so should be safe to remove from the unsupported list. This is a resubmit of ag/12929664 with some APIs excluded that caused test failures; see bugs 171886397, 171888296, 171864568. APIs excluded: Landroid/bluetooth/le/ScanRecord;->parseFromBytes([B)Landroid/bluetooth/le/ScanRecord; Landroid/os/Process;->myPpid()I Landroid/os/SharedMemory;->getFd()I Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH:I Bug: 170729553 Test: Treehugger Change-Id: I8285daa8530260251ecad6f3f38f98e263629ca7
* Revert "Add maxTargetSdk restriction to unused APIs."Hongwei Wang2020-10-281-2/+1
| | | | | | | | | This reverts commit 72f07d6a8a32db4a0dedd7682a0b3385be2b9cd6. Reason for revert: Droidcop-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?testMethod=testAppZygotePreload&testClass=android.app.cts.ServiceTest&atpConfigName=suite%2Ftest-mapping-presubmit-retry_cloud-tf&testModule=CtsAppTestCases&fkbb=6936597&lkbb=6936969&lkgb=6936551&testResults=true&branch=git_master&target=cf_x86_phone-userdebug>, bug b/171886397 Bug: 171886397 Change-Id: Ibe0f0430a3451477c1ee8ef56a596e91ea1e7672
* Add maxTargetSdk restriction to unused APIs.Mathew Inwood2020-10-271-1/+2
| | | | | | | | | | These are APIs that have @UnsupportedAppUsage but for which we don't have any evidence of them currently being used, so should be safe to remove from the unsupported list. Bug: 170729553 Test: Treehugger Change-Id: I4c8fd0006f950de9955242e93968fb0996ceb372
* Second reland "Use new create/removeInputChannel()."Garfield Tan2020-09-221-4/+3
| | | | | | | | | Make sure the token in InputMonitorHost remains valid. Bug: 167947395 Bug: 169173706 Test: atest NexusLauncherTests:com.android.launcher3.ui.TaplTestsLauncher3 Change-Id: I05ebf15588bea8f0f321b61e82417f1594843554
* Revert "Reland "Use new create/removeInputChannel().""Garfield Tan2020-09-221-3/+4
| | | | | | | | | | | | | Revert "Reland "Let InputFlinger create the server InputChannel"" Revert submission 12655292-hide-server-input-channel Reason for revert: b/169173706 Reverted Changes: Iefbfd9313:Reland "Let InputFlinger create the server InputCh... I14837d545:Reland "Use new create/removeInputChannel()." Change-Id: I2e002829ad2f077e1f118d0b09d274002b71afa9
* Reland "Use new create/removeInputChannel()."Garfield Tan2020-09-211-4/+3
| | | | | | | | | Bug: 169083114 Bug: 169088136 Bug: 167947395 Test: Gesture navigation works. Test: atest TaplTestsLauncher3 Change-Id: I14837d5458a98972b2f90e826aaed25eb1df47ec
* Revert "Use new create/removeInputChannel()."Roshan Pius2020-09-211-3/+4
| | | | | | | | | | | | | | | Revert "Let InputFlinger create the server InputChannel" Revert submission 12594832-hide_server_input_channel Reason for revert: <INSERT REASONING HERE> Reverted Changes: I7033caf10:Use new create/removeInputChannel(). I35f768c8a:Let InputFlinger create the server InputChannel Bug: 169083114 Bug: 169088136 Change-Id: I3aa320272d4092b17e76558ddc67222fbef3b2b8
* Use new create/removeInputChannel().Garfield Tan2020-09-181-4/+3
| | | | | | | | | | | | This way we can restrict server channel in InputFlinger. Also always use std::move() to move ownership when creating Java object for InputChannel. Bug: 167947395 Test: Touch events are still dispatched. Test: WmTests:DisplayPolicyTests#testUpdateHideNavInputEventReceiver Change-Id: I7033caf1015ec4bae65beab2c65bdeb4070f4775
* Remove @UnsupportedAppUsage and @SuppressWarnings annotations.Chris Ye2020-02-291-12/+9
| | | | | Bug: 113624847 Change-Id: I821e1c2f02265133c04b45ea51e897dab2e41365
* Remove InputChannel.finalize() by using NativeAllocationRegistryChris Ye2020-02-271-26/+53
| | | | | | | | | | Remove InputChannel.finalize() by using NativeAllocationRegistry, for native object destruction. Refactor native input channel API to align the native input channel object with java input channel object. Bug: 113624847 Change-Id: Iabd2709885816aeb921f82d1905f93112fefb12d
* Use new UnsupportedAppUsage annotation.Artur Satayev2019-12-181-1/+1
| | | | | | | | Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library. Bug: 145132366 Test: m && diff unsupportedappusage_index.csv Change-Id: I5be7335b23a92b8ac80d2fd890198273b66ad644
* Remove InputChannel::setTokenSiarhei Vishniakou2019-11-011-5/+0
| | | | | | | | | The token is now generated at the native level, inside InputTransport, when you open an inputchannelpair. It is read-only. Bug: 142581626 Test: presubmit Change-Id: I67314f9854c2f720eb4fc2cb489755eae8863f8f
* Enable views to be placed in windowless surfaces.Robert Carr2019-06-271-0/+9
| | | | | | | | | | | | | | For purposes of parcelling SurfaceControl to embed view hierarchies across processes. We also want these Surfaces to receive input, but we can't let the clients call setInputWindowInfo directly (or we could have issues with clients stealing focus, etc...) and so we provide a method blessInputSurface which has the WM configure a surface for input with a minimal and safe set of parameters. Test: WindowlessWmTests Bug: 111373437 Bug: 134365580 Change-Id: I45fde62ba9b810e783d62c4dd5442abd038734d5
* Expose input region monitoring to system components.Michael Wright2019-04-031-11/+11
| | | | | | | | This is to allow SysUI to detect system-wide gestures. Test: manual Bug: 123748692 Change-Id: Ic1e2cd6afea219d0e20b29e7150c9a42b75c7a67
* All Parcelable CREATOR fields are @NonNull.Jeff Sharkey2019-02-281-1/+1
| | | | | | | | | If they were null, then the Parcelable would fail to work. Bug: 126726802 Test: manual Change-Id: I7929ffa2f20e5de1c8e68e8263cca99496e9d014 Exempt-From-Owner-Approval: Trivial API annotations
* WindowManager: Communicate with input system by WindowTokens.Robert Carr2018-11-141-5/+16
| | | | | | | | | | | | | | | | Once we switch to a model of passing InputWindowInfo through SurfaceFlinger, the handles will be parcelled and we will no longer receive the same literal object back from "interceptKeyBeforeQueueing" or other input callbacks. This means the approach of saddling a WindowState on to the object for later retreival will no longer work. Instead we pass the IBinder WindowState#mClient in when registering the input channel, and modify the input system to pass it back to us as a sort of UUID. Bug: 80101428 Bug: 113136004 Bug: 111440400 Test: Home button still works. Change-Id: I0f41e0d08b034aa037518c3a8fb21be1453565da
* Add @UnsupportedAppUsage annotationsMathew Inwood2018-08-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | For packages: android.view.textservice android.view.textclassifier.logging android.view.textclassifier android.view.inputmethod android.view.autofill android.view.accessibility android.view This is an automatically generated CL. See go/UnsupportedAppUsage for more details. Exempted-From-Owner-Approval: Mechanical changes to the codebase which have been approved by Android API council and announced on android-eng@ Bug: 110868826 Test: m Change-Id: I4147b038ed7adf0311ee9918b44766f82a057eaf
* AArch64: Use long for pointers in view/input classesAshok Bhat2014-01-091-1/+1
| | | | | | | | | | | | | | For storing pointers, long is used in view/input classes, as native pointers can be 64-bit. In addition, some minor changes have been done to conform with standard JNI practice (e.g. use of jint instead of int in JNI function prototypes) Change-Id: Iafda9f4653c023bcba95b873637d935d0b569f5d Signed-off-by: Ashok Bhat <ashok.bhat@arm.com> Signed-off-by: Marcus Oakland <marcus.oakland@arm.com> Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
* Correctly manage the lifecycle of IME InputChannels.Jeff Brown2013-04-041-1/+11
| | | | | | | | | | | | | | | | | InputChannels are normally duplicated when sent to a remote process over Binder but this does not happen if the recipient is running within the system server process. This causes problems for KeyGuard because the InputMethodManagerService may accidentally dispose the channel that KeyGuard is using. Fixed the lifecycle of InputChannels that are managed by the IME framework. We now return a duplicate of the channel to the application and then take care to dispose of the duplicate when necessary. In particular, InputBindResult disposes its InputChannel automatically when returned through Binder (using PARCELABLE_WRITE_RETURN_VALUE). Bug: 8493879 Change-Id: I08ec3d13268c76f3b56706b4523508bcefa3be79
* Use input transport for communications between app and IME.Jeff Brown2013-03-261-3/+7
| | | | | | | | | | | | | | | | | | | The input method manager service now supplies an input channel for communication while creating an IME session on behalf of the application. This change significanly reduces the overhead of IME event dispatch by using a standard input channel to send input events rather than using binder. This results in fewer thread context switches and fewer object allocations. What's more, the IME may perform additional batching of the motion events that it receives which may help it catch up if it is getting behind while processing them. Bug: 7984576 Bug: 8473020 Change-Id: Ibe26311edd0060cdcae80194f1753482e635786f
* Use PARCELABLE_WIRTE_RETURN_VALUE flag in InputChannel.Jeff Brown2011-08-121-5/+2
| | | | | | | | | | | | | Bug: 5161290 Replace mDisposeAfterWriteToParcel with code that takes advantage of the standard Parcel API support for releasing resources after writing a Binder reply. This change makes it less likely that InputChannels will leak accidentally when passed across a Binder. Change-Id: Id37706e7b88d074e8e4ac687c88f0db8963200f2
* Add support for new input sources.Jeff Brown2010-07-151-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Added several new coordinate values to MotionEvents to capture touch major/minor area, tool major/minor area and orientation. Renamed NDK input constants per convention. Added InputDevice class in Java which will eventually provide useful information about available input devices. Added APIs for manufacturing new MotionEvent objects with multiple pointers and all necessary coordinate data. Fixed a bug in the input dispatcher where it could get stuck with a pointer down forever. Fixed a bug in the WindowManager where the input window list could end up containing stale removed windows. Fixed a bug in the WindowManager where the input channel was being removed only after the final animation transition had taken place which caused spurious WINDOW DIED log messages to be printed. Change-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68
* First stab at attaching native event dispatching.Dianne Hackborn2010-06-221-2/+3
| | | | | | | | | | | | Provides the basic infrastructure for a NativeActivity's native code to get an object representing its event stream that can be used to read input events. Still work to do, probably some API changes, and reasonable default key handling (so that for example back will still work). Change-Id: I6db891bc35dc9683181d7708eaed552b955a077e
* More native input event dispatching.Jeff Brown2010-06-211-1/+1
| | | | | | | | | | | Added ANRs handling. Added event injection. Fixed a NPE ActivityManagerServer writing ANRs to the drop box. Fixed HOME key interception. Fixed trackball reporting. Fixed pointer rotation in landscape mode. Change-Id: I50340f559f22899ab924e220a78119ffc79469b7
* Native input dispatch rewrite work in progress.Jeff Brown2010-06-131-0/+152
The old dispatch mechanism has been left in place and continues to be used by default for now. To enable native input dispatch, edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy. Includes part of the new input event NDK API. Some details TBD. To wire up input dispatch, as the ViewRoot adds a window to the window session it receives an InputChannel object as an output argument. The InputChannel encapsulates the file descriptors for a shared memory region and two pipe end-points. The ViewRoot then provides the InputChannel to the InputQueue. Behind the scenes, InputQueue simply attaches handlers to the native PollLoop object that underlies the MessageQueue. This way MessageQueue doesn't need to know anything about input dispatch per-se, it just exposes (in native code) a PollLoop that other components can use to monitor file descriptor state changes. There can be zero or more targets for any given input event. Each input target is specified by its input channel and some parameters including flags, an X/Y coordinate offset, and the dispatch timeout. An input target can request either synchronous dispatch (for foreground apps) or asynchronous dispatch (fire-and-forget for wallpapers and "outside" targets). Currently, finding the appropriate input targets for an event requires a call back into the WindowManagerServer from native code. In the future this will be refactored to avoid most of these callbacks except as required to handle pending focus transitions. End-to-end event dispatch mostly works! To do: event injection, rate limiting, ANRs, testing, optimization, etc. Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25