Editable TextView now display a cursor controller under the insertion
point so that it can be precisely moved.
Change-Id: Ia2e6ddc57d249647ff6683e10e4226db3df27223
Prior to this change, every singleLine TextView would create, draw
and compose a layer on every draw dispatch. This was unnecessary and
expensive.
Change-Id: Ia4f79d7fc8f485784fe6b795f0f196d38d579838
Not closing the cursors was a bit of a bug since the documenation explicitly says that it would close the cursors. This will get rid of all the warnings that are printed out in the finalizer about the cursor not being closed.
Change-Id: I8dcedbdf7378cea7407502445269b5b0bded1a3d
Merge commit 'bc337d2f675e8417be5534439e1b4ed1bc45a9c7'
* commit 'bc337d2f675e8417be5534439e1b4ed1bc45a9c7':
Fix a bug where requestDisallowInterceptTouchEvent does not get called
Minor changes in the Adapters.java helper class.
Extracts data out of a XML document using an XPath-like syntax.
Change-Id: I0617b0783f11c86118b42cd8485d54440810c805
Merge commit '73ccafb5b843cdcf9c8f761fc72a69b4b7942aaf' into gingerbread-plus-aosp
* commit '73ccafb5b843cdcf9c8f761fc72a69b4b7942aaf':
Fix a bug where requestDisallowInterceptTouchEvent does not get called
Previous CL https://android-git.corp.google.com/g/55138 was submitted
before the suggested change was uploaded.
setSelection() was called twice by onTouchEvent, once to the previous
position, and then to the new position (unless the IME got displayed,
so that in that case the cursor is not moved).
The second call was actually triggering a call for a scroll of 0 since
the view is already displaying the cursor. This scroll is filtered out by a
shortcut in ScrollView. The first setSelection's scroll does not have
the same issue (since the previous cursor's position is out of screen
and requires a scroll) and it is then applied, effectively moving the cursor
to a new position but scrolling to the previous position.
The fix is to call setSelection only once, after the IME has been asked
to display. The cursor is moved to the old/new position depending on the
resultCode in onReceiveResult in CommitSelectionReceiver.
Bug: http://b/issue?id=2778954
Change-Id: I157d7ae451574e8a6fffb894eb1d6880acfe01d1
setSelection() was called twice by onTouchEvent, once to the previous
position, and then to the new position (unless the IME got displayed,
so that in that case the cursor is not moved).
The second call was actually triggering a call for a scroll of 0 since
view is already displaying the cursor. This scroll is filtered out by a
shortcut in ScrollView. The first setSelection's scroll does not have
the same issue (since the previous cursor's position is out of screen
and requires a scroll) and it then applied, effectively moving the cursor
to a new position but the scrolling to the previous position.
The fix is to call setSelection only once, after the IME has been asked
to display. The cursor is moved to the old/new position depending on the
resultCode in onReceiveResult in CommitSelectionReceiver.
Bug: http://b/issue?id=2778954
Change-Id: I0983fdf18993e63b230e093e703f95efe6e2d7a8
onLoadClass(Class ) was replaced by onLoadClass(Class<?> ) in CL 54712.
This changes the API and may introduce errors in users' implementations.
Change reverted.
Change-Id: Ie578a444168423959b44857f22e13f004e108965
These changes are similar to those of CL 49296. They do not include the
generic fixes done on GenericInflater.java, which had issues and broke the build.
Added a asSubClass method in LayoutInflater which will (correctly) throw a
ClassCastException when the inflated class is not a View subclass.
Performance testing on these changes showed a 10% performance improvement,
which is still to be explained.
Change-Id: Id4d3b45f0945baccdbbda15fcce095e855b23c9a
- Where previously ViewAnimator only exposed inAnimation and outAnimation as
XML attributes, modified to also include the animateFirstView flag so that
widgets can optionally choose to omit the animation for the first child
view.
- Changed the behavior of ViewFlipper so that simple visibility changes do not
trigger extraneous and distracting animations.
Change-Id: I34b3abad33102978a94f0aed5aaab9af30ba49c7
Merge commit '864c68ea452baa0f4f298faf2155af45a9b6d60c'
* commit '864c68ea452baa0f4f298faf2155af45a9b6d60c':
Added an addAll to the ArrayAdapter
WLAN: Reset power save mode to startup value after DHCP response.
Add PageUp and PageDown hot keys
Should accept "application/vnd.wap.multipart.alternative" message.
replaced deprecated getIntent with parseURI
It behaves the same as ArrayList.addAll, since
the Object containing the Objects in the Adapter
is a List. Now you can add multiple Objects
at once, instead of looping over a Collection
and add all items one by one.
Unittests will be submitted to the cts project
Change-Id: I16f3286a8ca4cda7eb9f1a99c2aab1cc45b2550f
Add internal API (getTextRunAdvances) to Paint, use when measuring.
Add internal API (getTextRunCursor) to Paint, use when determining
valid cursor positions.
Remove java-level shaping code. Remove 'prep' code in TextLine
(except for replacement text) since shaping now is done on the fly as
needed in native.
Provide explicit shaping context bounds to internal text measuring,
cursor movement, and rendering APIs.
Update for to changes in external API in ushape.h.
Change-Id: I146958b624802ce8553125e5c3c6c03031bc9608
- The problem is taht the calculation of indices does not take the
difference in original and modified text lengths into account.
- If reportExtractedText() is called from the onDraw() function,
mInputMethodState is not reset.
The error can occur when the user is editing formatted text using a full screen editor.
One example of formatted text is phone numbers (e.g. dashes are added to North American
numbers by the PhoneNumberFormattingTextWatcher class).
If the two first digits are removed from the number 555-666-777, the new number becomes 566--777.
This is due incorrect calculation of start and end indices of the changed text. The error is in
the TextView class and the problem is that the calculation does not take the difference in original
and modified text lengths into account.
Change-Id: If12d0f571873a6f1874102377432affb64ee21e8
When changing a ProgressBar from indeterminate to determinate, the display was
not being invalidated correctly and would freeze the progress bar.
Bug: 1296117
Change-Id: I2e0a9b76da919b5388f1dbc1c8f4b030355eb8ce
(optionally) to use it. Added associated styles.
ListPopupWindow allows apps to present a popup window of options to
the user that will correctly dodge the IME if needed.
Change-Id: I509c6c45036856daab686a6edeb7a9de1e72eb0a
Also remove unused debugging code that depends on junit.
Remove trailing whitespace in changed code.
Change-Id: Ie02d1b8220c599a672ee6e91af0fba634e0f620c