Bug 3370191
The documented behavior is to hide the error when the text changes.
However, this should not be the case if the error was reset by a text watcher.
Comparing errorBefore and errorAfter as was done before is not sufficient in the
case where the error is reset to the same value. String pool optimization will re-use
the same Object and it will look like the error has not been modified (hence the
blinking behavior reported in the bug).
For this reason, TextView has a mErrorWasChanged flag. The fix is to export methods
that can use this flag as in done inside TextView when a physical keyboard is used.
These methods are hidden.
Change-Id: Ie3ec59a368f3b1588b81242890b971ac48e8ff7e
Bug 3381317
Also generalized and uniformized the use of peekInstance. Added null
tests, and isActive tests before hiding.
Change-Id: Ifd1a053fd920841333e0ebab3e2a8d26b469a0f6
while selectiong the last day of the week.
The NumberPicker widget was getting into an inconsitent state when
reaching the end of the range (non wrapping selector wheel) and
the user touches the location of the hidden increment/decrement
button.
Change-Id: Id54103295dd2574030e2c29996061faa659a5bb7
Bug 3365301
This is a first implementation. The text inside the tabs is clipped
and can be hardly readable.
A nicer complimentary solution is to reduce the 40dip padding in portrait mode.
Change-Id: I19439ee6a63c3f9dcdcc944ddbbc18a81949db79
-> A memory optimization was causing AdapterViewAnimator to give up its
reference to its adapter, rendering the widget dead.
-> Did testing, and it doesn't appear that this optimization was
making a difference, so it appears safe to remove.
Change-Id: I274c5f73862cbda2dc5411d5c94a9ba1ac1e3635
- Fix for crash when detaching from window
- Potential fix for occasional IllegalStateException when updating List based widgets
Change-Id: I3d3f2bb691552a1136111043db686c4926b510c6
...Invalid index 0, size is 0 at
android.app.ActivityThread.performPauseActivity(ActivityThread.java:2326)
It looks like if an arrow key is dispatched between the time the
list view is told its data set has changed and it does the resulting
layout pass, we could try to move the position to a now invalid
index. This may prevent that from happening.
Also put in a better error message if saving state of a fragment
whose target is no longer in the fragment manager.
And fix a bug in PackageManager where we could return a null from
queryIntentActivities().
And add a new API to find out whether a fragment is being removed,
to help fix issue #3306021: NPE at
android.app.AlertDialog.getDefaultDialogTheme(AlertDialog.java)
Next, for new HC apps we can delay committing data to
storage until the activity is stopped.
Finally, use the new multi-threaded AyncTask executor in a few
places, so we don't have worked blocked by long-running tasks from
the application.
Change-Id: I27b2aafedf2e1bf3a2316309889613fa539760f3
Bug 3381320
The tests were inconsistent between makeBlink and onDraw.
If the text is non-editable, do not draw the cursor.
Change-Id: I0405e59444261a553e868b3ae5bdddd278f60bb2
Bug 3381317
Changes made in https://android-git.corp.google.com/g/#change,91880
displayed the IME onFocus. However, the test was not consistent to what
is done in touch event. textIsEditable is now checked too.
Change-Id: If11382c1c90a557839b87d62494253470c42b621
Previously, display lists were used only if hardware acceleration
was enabled for an application (hardwareAccelerated=true) *and* if
setDrawingCacheEnabled(true) was called. This change makes the framework
use display lists for all views in an application if hardware acceleration
is enabled.
In addition, display list renderering has been optimized so that
any view's recreation of its own display list (which is necessary whenever
the visuals of that view change) will not cause any other display list
in its parent hierarchy to change. Instead, when there are any visual
changes in the hierarchy, only those views which need to have new
display list content will recreate their display lists.
This optimization works by caching display list references in each
parent display list (so the container of some child will refer to its
child's display list by a reference to the child's display list). Then when
a view needs to recreate its display list, it will do so inside the same
display list object. This will cause the content to get refreshed, but not
the reference to that content. Then when the view hierarchy is redrawn,
it will automatically pick up the new content from the old reference.
This optimization will not necessarily improve performance when applications
need to update the entire view hierarchy or redraw the entire screen, but it does
show significant improvements when redrawing only a portion of the screen,
especially when the regions that are not refreshed are complex and time-
consuming to redraw.
Change-Id: I68d21cac6a224a05703070ec85253220cb001eb4
bug:3375074
1. The logic for updating the higher rank fields on wrapping of
lower rank ones was incorrect. Updated that logic.
2. On reaching the min/max date the spinners did not stop
when reaching that date. Now spinners stop at min/max.
3. Fixed a couple of edge case bugs while setting the
the min and max dates of the DatePicker on the fly.
4. Restricted the scrolling/flinging to end at the min
and max dates.
Change-Id: Ibb588ea2cf951cf8d50328bbfbe7ebdad7ee8067
Bug 3374144
The fix in https://android-git.corp.google.com/g/#change,91880 is not
sufficient. An updated adapter needs to be able to force an update of
the poup result list.
Addded a flag that prevents the popup from being re-opened when it has
previously been closed by a user action.
Change-Id: I45fab056c8ebd6dc4317430213f2bc37b51b79e3