Previously the offset between the touch event and the start / end of
the word could result in a negative value - we don't care or want
this value to be negative. The negative value also causes the returned
offset to be outside the bounds of the text which resulted in a crash.
Bug: 19705184
Change-Id: I4287df7778c246dd10654f1a1f1e57538e940730
As a first step in unifying the cut/copy/paste ActionMode in Editor
with the paste/replace popup, I'm moving the replace option to
the CAB ActionMode. Paste is already there, so for now all options
are together.
Missing things to address in upcoming CLs:
- Invoke the ActionMode in all cases where the popup shows up now,
ensuring only the options that are currently available show up.
- Get rid of the current popup
- Make the ActionMode a floating toolbar (pending feature completion)
- Define a keyboard shortcut for replace?
Note that since the ActionMode still shows up in the ActionBar and
replace has no icon it now appears as text and takes up lots of
space. This will improve when we can switch to using a floating
toolbar.
Change-Id: Ib6b60bae9b58e4db96b9c4cee556e19d3f1bb466
The methods were previously defined on Looper but on reflection
they actually make more sense on the MessageQueue instead since
the Looper class is primarily concerned with thread lifecycle
rather than the actual messages themselves.
Change-Id: Iff356b94754fc9960774fa17e3eec9604229cba6
The loop isn't technically idle at this time, it's just checking
whether any file descriptors have pending events. However it's
still a good signal as to whether the loop is alive.
Added a real isIdle() function.
Bug: 19532373
Change-Id: Idd273e8774f469ccafb00d560818cf279dfd6ba6
Ensures PopupMenu works correctly when multiple calls are made to show
and dismiss. Ensure PopupWindow works correctly when multiple calls are
made to showAsDropDown and dismiss (fixes multiple clicks on Spinner).
Bug: 19672907
Bug: 19671831
Change-Id: Ib92accd8fd70a1ff1f8cda27155347b007a4d25b
One of the exit conditions of the loop immediately above the code is
when a BreakIterator finishes its input and emits BreakIterator.DONE,
which we were then mistakenly then using as a parameter for setting
spans.
Bug: 12936072
Bug: 5555929
Change-Id: Ib4aba113f2e7838cd040076160c1dd0fb90adb1a
The "moreChars" predicate (which is used in ellipsis computation) was
slightly incorrect, sometimes being computed as false when the line
break is at the end of a paragraph but not the end of the buffer.
This patch makes the behavior consistent with shipping versions.
Bug: 19676414
Change-Id: I72e16794e895c2eb765b21feaf59fcdccc4857f1
Bug: 10237116
This CL implements the postmessage API for webview. It provides
a way for java applications to post messages to JS frames and
establish message channels, and then do full-duplex communication
after that.
Change-Id: Idbc2918552a4c9fd28ae1ddf19bd360e71f8a4a2
The settings constants for various volumes do nothing and are
used by nothing since API version 2. These are however backed
up in the cloud which is a waste of resource. This change
removes these constants from the SDK while keeping them hidden
to avoid breaking released apps and also prevents unnecessary
backup.
Change-Id: I2e91863115f5a4b997a14f8d0f57b4dc9689cfab
This fixes a rare crash in the undo system. In particular, if the
TextView did not have a cursor and the first operation was a
programmatic insert/append the "old cursor position" would be -1.
Attempting to undo would try to restore the cursor to -1 and crash.
Test will land separately in CTS.
Bug: 19332904
Change-Id: I9aa18c1e3621b99d13ac707e483154382effb81c