1. NumberPicker is trying to greedily grow to its max size
but if the max size is not specified the default value
was the max integer which makes the widget get quite
tall in some cases. Now the widget tries to reach the
max size only if it has been specified.
2. NumberPicker was not computing its min width when the array
of display values is set.
3. DatePicker' layout for the old Theme was adding a margin on
the right of the group of spinners and if the calendar view
is not shown the spinners were not centered. Added the spinners
right margin to the left margin of the calendar view.
4. TimePickerDialog was using the wrong conext and was not dismissable
on an outside touch. Same for the DatePickerDialog context.
bug:5646161
Change-Id: Ic15f9b3e6291b76493604230ceb4f783a04d4ac7
Several issues here:
1. when selection has been set to size 0 (should not be possible, but see 2.),
moving any of the selection handles will create an IOOB because we add/substract 1
with no test. Added min/max.
2. the text change detection, which stop selection mode, was done in
handleTextChanged. We need to go deeper. Some methods (such as setText())
directly call the more atomic sendOnTextChange(). Moved the test down
to this method. As a result, pressing the 'x' button in the QuickSearchBox
correctly stops selection mode (it used to leave an empty selection).
This change may also solve some weird similar issues in extracted mode where
it is sometimes possible to end up with a 0-length selection.
It may also impact Bug 5555929 since spellCheckSpans will now be correctly
updated on ANY text change.
3. the before != after test is flawed. When this method is called, the text
has been changed and selection mode should be stopped even when the new text
happens to have the same size.
Change-Id: I869ef728662f4350f22ed6149dd42db193c333ed
Bugs 5599728 and 5319237.
mInputContentType should be set for a "modern" cupcake
environment says a comment in TextView.
However, it is possible to call onEditorAction on a
TextView that didn't use any of the method that lazily
create that field. This is for instance achieved using
the extracted mode in landscape (Done, Next actions)
or in Contacts, that feature a Next/Done button in the
IME.
As a result, the action is ignored.
The patch is to force the creation of the mInputContentType
when the EditText is associated to the IME.
Change-Id: I5beec5a52e9eec0c209af37d68791bb6ff83d6f6
* Don't call context.getResources() redundantly when unnecessary;
similarly for Resources.getCompatibilityInfo()
* During bitmap creation, don't bother clearing to 0: it's unnecessary
because now that the raw bits are stored in a VM-side byte array, it
was cleared at initialization time. Also, don't use the sanity-
checking public entry point to erase to a color, because we know
that we're by definition in a "legal" path to erase to the initial
contents and don't need to incur the overhead of the (inappropriate)
sanity checking.
Change-Id: Idaca4d64fdecefd5d51337646ead32e1db510e02
1. The dismiss method in a PopupWindow is first removing the
popup View from the WindowManager and then if the content
View differs from the popup View the former is removed from
the latter. Then dismiss() clears the dismissed flag so a
subsequent call to dismiss() is a NOP. However, removing
a View both from the WindowManager and from its parent
ViewGroup triggers stuff wich may lead to a subsequent call
to dismiss(). This leads to a stack overflow exception.
bug:5598944
Change-Id: I2aeeda591be3e9aa98fec1ee17ea8f0e746e6992
Fix a bug that caused animated drawables to not schedule properly when
a view has not yet been attached. Also make ImageViews update their
drawable visibility state properly, which will handle scheduling
concerns as ImageViews are attached and detached from their windows.
This should also fix the bug where animated notification icons in the
status bar do not animate until the posting app posts an update to the
notification.
Change-Id: I24c403182831258d1f251736e920c9efe1d38299
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
Partially addresses Bug 5547923
In landscape, tapping on the text
1. starts extracted text mode
2. displays the cursor handle or the selection popup window.
As a result, some ghost effects and race conditions create an
unpleasing visual experience.
Fixed this by not doing 2. in case extracted mode will start.
The drawback of this quicl fix is that the user will have to
tap again to get the handle/suggestion. That can be fixed later
if needed.
Change-Id: I10e1d8399bb35e5b2cd5cba1295f7d29d051cae0
Pre-Holo spinners had a far more "buttony" look that expressed the
disabled state clearly, but Holo spinners are more subtle. As a result
we want to mark the contained view representing the current item as
disabled when the spinner itself is disabled.
Express this as a private framework style attribute that cannot be
changed at runtime.
Change-Id: Icff2ef2b8a3b1a96cbf00e4c75eda41a4dada7b3
The min width and height were enforced with an exception which
is not correct since a view not having enough space should not
terminate the application. Now the insufficient vertical or
horizontal space is propagated by setting the
MEASURED_STATE_TOO_SMALL flag and respecting the constraints
imposed while measuring (consistent with the rest of the View
hierarchy).
bug:5572237
Change-Id: I2dbeb5451d3426cc983b41f6023c7b0fc52c7da3
- Don't try to create a thumbnail bitmap on the client side. This
wastes 64k, and isn't needed since we are doing screenshots.
- Optimize View to put all of the callback pointers out of line.
Added a couple new APIs so these don't need to be protected/public.
- Lazily create ViewGroup's cache paint.
- Change FrameworkPerf app to not use HW accel drawing, to give better
comparison with GB.
Change-Id: Iec56d02459820d74a4cc9c7ec9c1856563c82c7b
1. Now the NumberPicker has minWidth/minHeight that is the lower bound
of the correspodning size for which the widget looks well enough to
be usable. There is also maxWidth/masHeight that is the upper bound
of the corresponding size for which the widget looks best. The picker
tries to greedily reach the max dimesions for which it looks best.
2. The NumberPicker was not taking care of the max width of the items
is shows numbers/strings mapped to numbers. Now if not explicitly
specified the widget computes the maxWidth at which it looks best
based on the content it shows.
3. Removed an unnecessary layout for number picker on tablets.
4. Updated the TimePicker/DatePicker to not hard-code width for the
number pickers it uses, rahter wrap the content.
bug:5417100
Change-Id: I432aa96185961e59a058a2565b15265ba7394818
Tweak to the logic to take account of margins when gravity = FILL is used and
there is a measurement dependency between the axes (as in mulit-line text).
Cherry pick ecab117864 to MR1
Change-Id: Ic0c95a4618bdb32acca75219796c66c1fc467610
In Recents in landscape, we were seeing blue flashes when scrolling; generally, almost every scrolling container should be delaying child presses to prevent this problem
A recent patch taking scroll into account was applied at the wrong
level. isVisible() expects positions that already take scroll into
account. isOffsetVisible() is where the initial bug was.
Cherry pick of 144415 from master.
Change-Id: I06ceebfb3d7b24aa4adba886c24fcf9d8dd39d2e
1. Now the NumberPicker has a max height and width for which is looks
good but can still shrink if there is not enough available space.
bug:5512787
Change-Id: Ieea88cafa8408e1d4160bab4bfe2b771bd79f7f8