Commit Graph

141 Commits

Author SHA1 Message Date
The Android Open Source Project
dbccd44a63 Merge commit 'b873a17ce7be0a9771c24999adca6964431728f6' into HEAD
Change-Id: I938755073e70602cc8f51ce9bd420fdcf870cecd
2013-11-22 11:18:57 -08:00
John Spurlock
c68d577f29 Allow IMEs to extend below nav bar, remove SystemUI veto.
Layout IMEs below the nav bar, offset by bottom padding and
associated guard rectangle with a black background to ensure
they do not appear as islands during transitions.

This makes it safe to remove the SystemUI forced opaque transition
when showing an IME, making the overall transition less expensive,
quicker and smoother overall.

Bug:11058746
Change-Id: I460912ee7c117480c57b947ed31eca330819f32c
2013-10-09 16:23:15 -04:00
Jean Chalard
c743cb9477 Don't send the same values to onUpdateSelection repeatedly
If the IME is repeatedly changing the text in its
onUpdateSelection handler, this will crash it with a
stack overflow exception. It's better than the old behavior,
which would result in a busyloop likely to make the
device completely unresponsive.

Bug: 10301239
Change-Id: I170cfb8ef20fc056d4725931890a987aefcaea8b
2013-09-12 16:52:56 +09:00
Henrik Baard
857cdff078 Memory leak in IInputMethodSessionWrapper executeMessage
In some cases the executeMessage is called with
mInputMethodSession == null. For the messages

DO_UPDATE_SELECTION, DO_APP_PRIVATE_COMMAND

memory is leaked. This commit recycles the args freeing
the allocated memory.
2013-08-11 10:23:59 +02:00
Satoshi Kataoka
240b6bf975 Fix possible NPE in IInputMethodWrapper
Bug: 9093124

Change-Id: If62138a85e46f217ad2d3eda140715961006dcdc
2013-07-01 19:19:31 +09:00
Satoshi Kataoka
c56191f829 Resolve inconsistent conditions in InputMethodService
This change is addressing this issue by
1. call doFinishInput in onDestroy
2. fix the inconsistent condition of "mInputStarted"

Bug: 9197136
Change-Id: Iefe6b284e148e31bd212b255c41cb2cf548723d7
2013-05-30 20:14:22 +09:00
Satoshi Kataoka
f09993ca1d am 1a546dca: Merge "Fixed the problem ime invisible status despite being the icon that appears in the statusbar."
* commit '1a546dca77b47b86c87ddf4de7a76662ef8bd48b':
  Fixed the problem ime invisible status despite being the icon that appears in the statusbar.
2013-04-18 15:28:18 -07:00
Jeff Brown
c28867a1d6 Use input transport for communications between app and IME.
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
2013-03-26 15:42:39 -07:00
Michael Wright
52a5352626 Separate sessionCreated and finishedEvents callbacks
Bug: 8276952
Change-Id: If7051086c060fcce5d1e958ebbddec0784c851da
2013-03-21 17:47:40 -07:00
Craig Mautner
f403b1fe50 Clear mWindowAdded when window was not added. DO NOT MERGE
If ViewRootImpl throws BadTokenException when adding a window, clear
the indication that a window has been added. That way when the
window is destroyed it doesn't try to clean it up.

Fixes bug 8409506.

Change-Id: I270740762f21ed4ec7f235344a3adaeaa033c483
2013-03-19 16:58:00 -07:00
Craig Mautner
e4bbb1cc45 Catch BadTokenException and continue.
BadTokenException is a normal consequence of swapping IMEs while there
is a DO_SHOW_SOFT_INPUT message in the IIMethodWrapper queue. This
race condition cannot be avoided without an unacceptable lock down of
InputMethodManagerService.

Fixes bug 8387663.
Fixes bug 8263462.

Change-Id: I2c21573cf972145ab08e66604cdb9344139a3f31
2013-03-15 11:38:44 -07:00
Craig Mautner
ca0ac718cb Remove WindowManager messages from remote queue.
When a new IME is attached it is not enough to remove the
WindowManager messages from the local queue, but the ones in
the previous IME queue must also be removed.

Fixes bug 8263462.

Change-Id: I9e916c6052a83dc7691bcba0b6ab8328b9b7cc36
2013-03-14 09:43:02 -07:00
Craig Mautner
6efb4c746f Put debug back in for b/b8263462.
Previous CL did not fix.

Change-Id: Ief9e8f519480fa41248d53e5b0187c9657f00b79
2013-03-13 11:12:26 -07:00
jungheang.lee
217fd2903d Fixed the problem ime invisible status despite being the icon that appears in the statusbar.
[Reproduce the Path]
Precondition : Set "Auto-rotate screen" option to ENABLE

Calendar App lunch -> Rotate device to "Landscape" -> Touch "+" button(Add new Schedule)
-> Check the ime icons of the Status bar

Ime invisible status despite being the icon that appears in the statusbar.
Displays an icon in the status bar when the ime was actually visible state is modified to check.

Change-Id: If103ab909c5bfa6391eb51a696fb8b8f0b18808c
2013-02-28 16:08:26 +09:00
Mita Yun
d44280e288 resolved conflicts for merge of ebcbfb3f to master
Change-Id: I0658dd4a1418fbad91d9663e5b52418a979dc683
2012-12-10 16:50:22 -08:00
Mita Yun
ed218c706d Use asynchronous messages for input method events.
Improves the throughput of IME event handling by ensuring that
input events do not get serialized behind UI traversal and
drawing messages such as when the UI is animating.

Added support for creating an asynchronous Handler as part of a
HandlerCaller.  It turns out we should be using an asynchronous
Handler not only in IME dispatch but also in accessibility and
wallpaper events where HandlerCaller is used.  So fixed those
services to also use an asynchronous Handler.

Change-Id: I0b19140c9d5ca6ee300c1a150c48312fd55ed8eb
2012-12-06 18:11:32 -08:00
Satoshi Kataoka
350d4cbec1 am ae41ba15: am 4424951f: am 1e29e49c: Merge "Reduce jankiness of the transition between a text field with FLAG_NO_FULLSCREEN and a text field with FLAG_NO_EXTRACT_UI" into jb-mr1.1-dev
* commit 'ae41ba156364f5625280c4229169899adea965d5':
  Reduce jankiness of the transition between a text field with FLAG_NO_FULLSCREEN and a text field with FLAG_NO_EXTRACT_UI
2012-11-08 15:55:59 -08:00
Satoshi Kataoka
8b117c8578 Reduce jankiness of the transition between a text field with FLAG_NO_FULLSCREEN and a text field with FLAG_NO_EXTRACT_UI
Bug: 7393485

Currently, the extract text view blinks at the transition of InputMethodService.
This change reduces this blinking by making the extract text view invisible when the extract text view is hidden.

Change-Id: I9af96058283a9a5b60707d025ad1abbbbc23c16f
2012-11-07 22:03:55 +09:00
Tadashi G. Takaoka
cb95cd6bae Fix downTime of InputMethodService.sendDownUpKeyEvents method
Bug: 7403935
Change-Id: I9074269c9a5f5b54b632da11151ad46c3494dc19
2012-10-26 17:20:59 +09:00
Jeff Sharkey
6e2bee75ce Migrate more System and Secure settings to Global.
Includes telephony, WindowManager, PackageManager, and debugging
settings.  Update API to point towards moved values.

Bug: 7231764, 7231252, 7231156
Change-Id: I5828747205708872f19f83a5bc821ed0a801cb79
2012-10-02 13:55:15 -07:00
Victoria Lease
b38070caa5 IME support for trackball and generic motion events
Trackball and generic motion events now pass through the IME in case
it would like to handle them before passing them on to the view
hierarchy.

While I was at it, I also...
...fixed the documentation on InputMethodService.onKeyUp()
...added documentation to InputMethodService.onTrackballEvent()
...added trackball and generic motion events to the "input" command
...fixed input consistency verification involving ACTION_OUTSIDE

Bug: 7050005
Change-Id: I40ab68df4a9542af6df25de6ec2ec500e4c02902
2012-09-10 14:01:42 -07:00
Jeff Brown
98365d7663 Refactor for multi-display support.
Split WindowManagerImpl into two parts, the WindowManager
interface implementation remains where it is but the global
communications with the window manager are now handled by
the WindowManagerGlobal class.  This change greatly simplifies
the challenge of having separate WindowManager instances
for each Context.

Removed WindowManagerImpl.getDefault().  This represents the
bulk of this change.  Most of the usages of this method were
either to perform global functions (now handled by WindowManagerGlobal)
or to obtain the default display (now handled by DisplayManager).

Explicitly associate each new window with a display and make
the Display object available to the View hierarchy.

Add stubs for some new display manager API features.

Start to split apart the concepts of display id and layer stack.
since they operate at different layers of abstraction.
While it's true that each logical display uniquely corresponds to a
surface flinger layer stack, it is not necessarily the case that
they must use the same ids.  Added Display.getLayerStack()
and started using it in places where it was relatively easy to do.

Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
2012-08-19 22:42:08 -07:00
Svetoslav Ganov
758143ecfe Window position not reported if the window is not moved.
1.If a window is shown but never moved the window window
  is never notified for its current location. Therefore,
  accessibility nodes do not contain correct bounds in
  screen coordinates.

bug:6926295

Change-Id: I7df18b095d33ecafffced75aba9e4f4693b0c393
2012-08-06 23:49:38 -07:00
Dianne Hackborn
836531b0c4 Add API to turn on HW drawing in IMEs.
Change-Id: Ib6a8bda46223ce1153f32834daf02a820d16136e
2012-08-01 19:00:38 -07:00
Kurt Partridge
b369a141ed Documentation cleanup
Change-Id: Id3d15b643e6ed29c52dc9c9eb02836eb64277dae
2012-07-19 23:41:17 -07:00
Jean Chalard
405bc51c5d Add/refine comments to reflect key event policies
Make clearer how the platform is handling key events following some
unfortunate uses by third party applications. Also highlight the
changes in Jelly Bean default keyboard.

Bug: 6566711
Change-Id: Ibcdaf54c6d629fd0733529bfe2fffc82f555f084
2012-05-29 19:41:02 +09:00
Svetoslav Ganov
b6a0b09bf5 Interaction model of KeyboarView should be same as latimIME
1. In latin IME key up types in - now the keyboad view does the same.

bug:6534935

Change-Id: I91cd40c5cd541199f3fb43e4d0bf26be511dcd09
2012-05-22 19:47:02 -07:00
satok
2f913d951c Fix the issue that the ime switch icon is remaining after closing VoiceInput
Change-Id: I4fd6b7b6c1e8a2603626d82ed3587716bea519d3
2012-05-10 01:48:03 +09:00
Quddus Chong
4f8b71e41d am a97a7b5a: am 6971153d: Merge "docs: Fixed method description for onKeyDown(int keyCode, KeyEvent event). Bug: 6318537" into ics-mr1
* commit 'a97a7b5a6efac20a112c1833579a0a2b17bc058e':
  docs: Fixed method description for onKeyDown(int keyCode, KeyEvent event). Bug: 6318537
2012-04-12 13:01:00 -07:00
Quddus Chong
ee71b1fa2d docs: Fixed method description for onKeyDown(int keyCode, KeyEvent event).
Bug: 6318537

Change-Id: I4fb0f103bfe3ddf485e1bfa76eb39a51adce1aaa
2012-04-12 12:34:53 -07:00
Ken Wakasa
f76a50ce8f Fix obvious typos under frameworks/base/core
Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
2012-03-09 22:48:43 +09:00
Adam Powell
b98a81f86a Add support for optional titles in action modes
Optional titles will only be displayed in the CAB if they entirely fit
instead of ellipsizing.

Fixes bug 5821883

Change-Id: I0cfd6d4fd34a4fa9f520499d577706da30606811
2012-02-24 16:59:03 -08:00
Gilles Debunne
14568c3f76 Fixes around extract mode
Stop selection mode after Edit/Copy while in extracted mode.

The selection mode was started by a long press in the ExtractedEditText.
Selection Copy in the menu simply sends the id to the context menu.
SelectionMode is not stopped in the underlying text since it was not
started there. Stop it directly in the ExtractedEditText.

Cut and paste do stop the mode because the text is modified.

Change-Id: Id7dbfa99de404c4eb85ced9627c99af4895ac628
2012-01-13 16:23:35 -08:00
Gilles Debunne
e300be9c29 IOOB is Suggestions
Bug 5555929

This problem only happens when in landscape extracted text mode.

A suggestion pick from the popup window replaces the text in the ExtractedText,
when it should do it in the underlying source EditText instead.

When the replacement text is longer than the replaced text and is at the end
of the text, an IOOB occurs because the ExtractedText was not modified (we now
correctly change the source text using replaceText_internal).

This is basically an implementation of the TODO comment next to setSpan in
TextView.

Change-Id: I6575137530e0bb5c9ac7e40cc2bba9c66dc254d2
2011-12-06 15:46:58 -08:00
Svetoslav Ganov
55f937abe1 Adding a system preference whether to speak passwords in accessibility mode.
By default we do not speak passwords if the user has no headset. However,
many users find this too restrictive and would like a way to enable
password announcement. While we cannot speak the passwords all the time
,to avoid leaking them, we expose a preference so each user can choose
the option that best works for him/her.

bug:5712607

Change-Id: I6eb0c40834abe5297f7dc74be02d180a5bef0174
2011-12-05 14:54:59 -08:00
Gilles Debunne
39ba6d9c4c Extracted text problems
Bug 5557258: recent text editing changed in ExtractedText mode is
broken. The modifications of the text performed by:
- drag and drop
- text suggestions, deletion
- voice IME's delete button

all change the ExtractEditText itself, while they should affect the underlying
EditText (and the change will be forwarded to the ExtractEditText). As a results,
changes are not actually modifying the underlying text.

Created new protected methods in TextView, overloaded in ExtractTextView to
affect the underlying text instead.

Changes to spans should also be forwarded to the original TV (see the 2 TODOs),
this is tracked in bug 5589158.

Change-Id: Ibfec272469e8db191b3875e7576e32481a9dc1bd
2011-11-10 10:00:08 +01:00
Svetoslav Ganov
67578618fb Update KeyBoardView to reflect the interaction model in Latin IME
A new patch checked in Latin IME makes it behave like any other Views. Touch
explore announces the letter under the finger and subsequent tap types in the
letter. Making KeyBoardView consistent with that.

bug:5552217

Change-Id: Ifeb6c3f071a5d64d0a16de584bf04ea40fff62fc
2011-11-01 16:29:50 -07:00
Dianne Hackborn
2c84cfc001 Various performance and other work.
- IME service now switches between visible and perceptible depending on
  whether it is being showm, allowing us to more aggressively free its
  memory when not shown.

- The activity display time is no longer delayed by the activity
  transition animation.

- New -R (repeat) option for launching activities with the am command.

- Improved some documentation on Loader to be clear about some methods
  that apps should not normally call.

- FrameworkPerf test now allows you to select individual tests to run.

Change-Id: Id1f73de66dc93d63212183958a72119ad174318b
2011-10-31 16:52:34 -07:00
Svetoslav Ganov
bd39ca7014 Make prompt for headset while typing a password if accessibilbity is on less verbose.
If accessibility is enabled and there is no headset we do not speak the pressed keys.
In such a case we provide a prompt to the blind user to use a headset. This was announced
on every keypress which is quite annoying. Now this is announced only once.

bug:5342234

Change-Id: Ibe55ad991ad2153d09cde57b030544948fa0d73b
2011-10-04 17:05:55 -07:00
Chet Haase
a95e1087b2 Fix 5335993, calculate correct size of lockscreen buttons
The buttons on the lockscreen were sized at startup time,
before the actual size of the keyboard's container (KeyboardView)
was known. Also, horizontal/vertical gaps were not taken into
account in calculating perecent sizes of the keys. This change
causes resize events (including the first one where the container
size is finally known) to recalculate the keys' sizes and positions
according to correct sizing of the container and the keyboard's gaps.

Change-Id: I5ba7a401226ed4b100e5739f3405388955d97997
2011-09-19 16:52:13 -07:00
satok
a0b1cc0fb1 Merge "Call onFinishInputView in onDestroy" 2011-09-14 21:13:06 -07:00
Adam Powell
86ed436b83 Fix bug 5237737 - ActionBar should fire an accessibility event when
action mode is turned on/off

Fire AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED when action modes
come and go to give an indication of UI change on the level of a menu
or dialog opening/closing.

Change-Id: Id36c6153b0722b4b6927c8d36503e8ac57c2d2b2
2011-09-14 16:19:44 -07:00
satok
f17db9f525 Call onFinishInputView in onDestroy
onFinishInputView is called in InputMethodService#hideWindow but not in onDestroy.
For closing IMS safely, onFinishInputView should be called in onDestroy.

Bug: 5265534
Bug: 4697071

Change-Id: I2947b62326e3e0644f1c079eafc839a9981e902b
2011-09-14 21:37:04 +09:00
satok
41ccb08f5a Merge "Skip the exit animation when the IME is destroyed." 2011-09-13 19:11:05 -07:00
satok
c0c8765719 Skip the exit animation when the IME is destroyed.
Bug: 4529563

Change-Id: I6fb2ea3601e1cc6fa8858d006819698dcabdd5ca
2011-09-12 19:17:43 +09:00
Gilles Debunne
34703b6d30 The back key stops selection mode in extracted text mode.
The previous behavior stopped the extracted text mode, leaving the
text selected and without handles in the app.

As what happens in normal (non extracted) mode, the back key now
stops the text selection mode. A second back will get the user back
to normal mode.

Change-Id: I2e8d2d7a1a1e1344997da75438f8df804fb8735c
2011-09-08 16:14:57 -07:00
satok
76866208f8 Merge "Send onViewClicked in the extract mode" 2011-09-07 19:50:54 -07:00
satok
a67a3cfc7c Send onViewClicked in the extract mode
Bug: 5257838
Change-Id: I16547aab86812f2db45deb879ad887dc38968164
2011-09-08 11:46:35 +09:00
Adam Powell
36a97e4030 Fix bug 5228657 - Input method window rendered with titlebar
Use the correct Holo-based IME theme for IMEs targeting >= 11 and < ICS.

Change-Id: Id154a927ab8439c357dc44996155f92414e2c876
2011-09-07 11:27:49 -07:00
Svetoslav Ganov
e8b8e1aed0 Adding accessibility support to the PIN lock screen.
1. The password lock screen is accessible and with this
   change the PIN lock screen is accessibile as well.
   This is enough to cover the enterprise use case of
   imposed lock of the deivce. we will hide the options
   for pattern since it is hard for use by a blind person.
   We may reconsider this for subsequent releases.

bug:4978246

Change-Id: I069f8ebe1ff7ea1591cab42ea580f00f3d31b2e6
2011-08-22 09:46:08 -07:00