The drawing matrix used in onDraw() is mDrawMatrix, but in setImageMatrix()
only mMatrix is updated. We need to call configureBounds() to update
mDrawMatrix if it was null. The is found in bug 2023281.
As described in http://b/issue?id=2017825
PopupWindow.getMaxAvailableHeight() does not include the padding in
the available height. To get the ACTV drop-down to actually fill
the screen, this change adds the padding to the value returned
by PopupWindow.getMaxAvailableHeight().
This is part of the fix for http://b/issue?id=2014450
RL was applying a horizontal offset to its children even when the gravity was only
specified for the vertical axis (and vice-versa.)
Also fix the ExpandableListView icons.
This adds a hidden method AutoCompleteTextView.isImeHidden(),
and uses that in SearchDialog to cancel the search dialog
when BACK is pressed, if there is no previous search component
to return to.
mlebeau says:
If we fill the whole screen then it makes the issue of the back
button a little more important. Specifically, right now if you have
the list expanded and you press back, the keyboard hides but it's not
really showing any more anyway so it seems like pressing the button
does nothing. We rationalized this by saying "part of the keyboard
will be showing so it won't be completely non-obvious that it was
hidden". But since really the right UX is to fill the screen, as part
of this we should probably also add logic to the back button such
that if it is pressed when the list is obscuring the keyboard
(i.e. softInputMode on the PopupWindow is INPUT_METHOD_NOT_NEEDED)
then we should hide the dialog entirely rather than closing the
keyboard.
This is part of the fix for http://b/issue?id=2014450
This change allows us to use drawables that match the current screen
density even when being loaded in compatibility mode. In this case,
the bitmap is loaded in the screen density, and the bitmap and
nine-patch drawables take care of accounting for the density difference.
This should be safe for existing applications, for the most part, since
they shouldn't really be pulling the bitmap out of the drawable. For
the small rare chance of them breaking, it worth getting the correct
graphics. Also this will only happen when there is actually a resource
of the matching density, and no existing apps should have resources for
anything besides the default density (though of course all of the
framework resources will be available in the native density).
As part of this, the bitmap density API has been changed to a single
integer provider the DPI unit density.
In some locales, there are no abbreviated month names; the abbreviated
date formats are essentially numeric. If the user is in such a locale,
have the DatePicker respect the date format setting so that the order
of the fields will match other numeric-only dates.
In locales that have abbreviated month names, continue to use the order
that is normal in spelled-out dates.
And update the order in updateDate() so that the new order is reflected
if you change the order setting and immediately go to change the date
without leaving and returning to the Date & Time settings in between.
At the same time, change DateFormat.getDateFormatOrder() back to working
the way it did in cupcake (prioritizing the date order preference over
the locale), even though the DatePicker no longer calls the method.
Bug 1805085
use by SearchDialog. SearchDialog wants to be able to say a dropdown should
not always be visible but still let it ignore outside touch when it does
show.
Fixes http://b/1997170
* changes:
Always call ensureImeVisible when the text field is clicked. We want this regardless of whether dropDownAlwaysVisible is true or not, as long as the popup is showing and is potentially obscuring the IME.
Before, if dropDownAlwaysVisible was false,
the soft keyboard height was always taken into
account when calculating the available vertical space for
the AutoCompleteTextView drop-down height.
This meant that the drop-down would never pop over the soft
keyboard when navigating in the drop-down list.
This change makes the drop-down pop over the soft keyboard
when the keyboard is not needed, regardless of the value of
dropDownAlwaysVisible.
Fixes http://b/issue?id=1978935
RelativeLayout.
There are unfortunately successful 3rd party apps declaring self dependencies.
There's no reason to crash the app so just ignore this issue.
IME again when the user presses right or left from a query-jammed
suggestion to continue editing. Previously we required the user
to press on the text field again in order to get the IME to show.
We accomplish this by factoring out the code to 'ensureImeVisible'
into a separate method and calling that from SearchDialog.
Fixes http://b/1976338
* changes:
Fix couple of issues in DatePicker The NumberPicker's listener needs to be invoked only if the current value changes when validating input. This removes the some unwanted duplicate calls to onChanged. Adjust day for month and leap years. note that updateDaySpinner directly sets the value on day picker and doesn't invoke the listener twice
The NumberPicker's listener needs to be invoked only if
the current value changes when validating input.
This removes the some unwanted duplicate calls to onChanged.
Adjust day for month and leap years. note that updateDaySpinner
directly sets the value on day picker and doesn't invoke the
listener twice
A restricted Context is a special type of Context that prevents specific features
from being used. For instance, android:onClick, used by View, can be dangerous when
used from within apps widgets. By using a restricted Context to inflate apps widgets,
widgets providers are prevented from using android:onClick.
The bug (1947162) is caused by the fact that sometimes, surfaceChanged() is called after onCompletion().
In surfaceChanged(), start() is called automatically. The fix is to use a flag is avoid calling start()
when onCompletion() has been called already.
On invoking the search UI, the drop down list box with past queries and shortcut items
appears after a few hundreds of milliseconds on screen. This was because we were
displaying the drop down within the onFilterCompleted callback after the list box filtered
the items based on the given query text. While that code path is necessary, for the first
invocation of the search dialog with an empty query we can show the list box before the
text stuff happens. This change does that, issuing an async request to show the drop
down after pending events have been processed.
Without this change, on an average it took 350ms for the code to show the drop down.
With this change, on an average it takes 150ms.
It looks like the drop down list had already been taken down before the
callback fired so it caused a null pointer exception. In this case just
do nothing instead.
Bug 1927858
RelativeLayout, when measured with AT_MOST, was applying the gravity on its
children way too early. This caused the RL to set its measured size to
a value that was larger than necessary. This fixes the issue by deferring
the positioning of the gravity-dependent children until the dimensions
of the layout are known.