Drawable has setAlpha(int), but no getAlpha() (although some subclasses have added the
method). This makes it more tedious to use the property. For example, animations that wish to
animate this property must explicitly give it a start value since this value cannot be queried
from the object.
The trick is that setAlpha(int) is abstract, only implemented by subclasses. We cannot take this
approach for getAlpha(), as we would break all subclasses of Drawable until they implemented the
method. Instead, we'll add a default method which returns an invalid value, making it easier for
clients of the method to detect whether the value is valid.
All subclasses of Drawble in frameworks have been changed to add an override of getAlpha() when
appropriate.
Issue #7485875 Drawables is missing getAlpha()
Change-Id: I06b6e35f1a56d202838eca44759c85c82595020a
Drawable has setAlpha(int), but no getAlpha() (although some subclasses have added the
method). This makes it more tedious to use the property. For example, animations that wish to
animate this property must explicitly give it a start value since this value cannot be queried
from the object.
The trick is that setAlpha(int) is abstract, only implemented by subclasses. We cannot take this
approach for getAlpha(), as we would break all subclasses of Drawable until they implemented the
method. Instead, we'll add a default method which returns an invalid value, making it easier for
clients of the method to detect whether the value is valid.
All subclasses of Drawble in frameworks have been changed to add an override of getAlpha() when
appropriate.
Issue #7485875 Drawables is missing getAlpha()
Change-Id: I3211bb03789282e010356bad92da0a4a9fe9afb3
If the calendar view of the date picker dialog is shown we
do not use a formatted date as the dialog title since the
calendar view shows it, instead we show a static "Set date"
title. However, the initial state of the date picker dialog
on a tablet has a formatted date since the date picker widget
does not do a correct check whether the calendar view is shown
which returns a false negative resulting in a title with a
formatted date being added since the dialog thinks it has no
calendar view.
Change-Id: Ibf4c433b34ab1ee1bc1dc386689664a32283fb6a
This fixes a bug where secondary user widgets weren't being updated
properly because the system was checking for SYSTEM_UID which no
longer works with keyguard in a separate process. The symptom was an
app with a listview, like Gmail, would always show an empty list for
secondary users.
Change-Id: I3749a7a0b39f1eb7922966af0fbdcefdd804e41e
Call updateSelection in endBatchEdit instead of onDraw.
This works because all edits go through a batch edit,
which is already the case although the next change will
enforce it going forward.
This is step 3 of a four-step refactoring.
Bug: 8000119
Change-Id: Ia5e257382e2ef2168726bf3d9c7c84f9379ba376
When the selection is set via Selection#setSelection, the
Editor needs to know so that it can call back to a bound
IME, if any. This adds a watcher to catch these events.
This is step 2 of a four-step refactoring.
Bug: 8000119
Change-Id: Ia01aee853d5cafb4820fd234bc24b587ad3f7dd0
This is step 1 of a four-step change which will move where
updateSelection is called in regular text fields. The new
behavior will be to call it for each actual batch of
changes, instead of doing it in the render loop which leads
to both false positives and true negatives.
Bug: 8000119
Change-Id: I17bd91a129b18d5451fe1d8e7794ae20165de309
- instead of passing the screen size as a constant for computing the
layout size in RTL mode, we just use a real constant. Any value would
work actually, as soon as the value would not be null.
Change-Id: If9f5b38afa88938db36a795bfc8a403ad660726b
GridLayout uses a constraint solver to perform its layout operation. Some layout problems
result in systems of constraints that are inconsistent and so cannot be solved. GridLayout
detects this condition and makes corrections so as to always guarantee that the layout
operation will complete. In those cases where corrections are made, GridLayout issues a
warning to the Log. This CL allows (internal) clients of GridLayout to both swtich off
the logging and/or detect when this condition is encountered.
Change-Id: I5b871003381f81cf0a76ad3de767e7f8b8349923
ListView child views with transientState (setHasTransientState(true)) are not
handled correctly when the data set changes, such as when an item is added
or removed. The problem is that the transient views are cached by their
position, but this position is out of sync between the ListView and the adapter
until the ListView layout process is complete.
A better way, which unfortunately only works on ListViews with stable IDs, is
to cache the views by their itemID instead, and to use that ID to determine when
and where to reuse/retrieve a transient view during the ListView layout.
Issue #8254775 View.setHasTransient state has side-effects when deleting content in ListView
Change-Id: Ic3b1669ed79dd6cf9e4c1c6c26f9d75ccf074b3e
The original fix:
https://googleplex-android-review.googlesource.com/#/c/273122/1
was incorrect as it left GridLayout to simply ignore views with GONE status.
Instead, views with GONE status must cause their corresponding rows and
columns to collapse to zero width/height in the case where the rows/columns
are not flexible.
The actual bug is the result of the fact that getBaseLine() is not parameterized
by the height/size of the view for which the baseline is being requested. In the case of
a view that is GONE, GridLayout will request the baseline of a component that has zero height,
and get results other than 0 (which is doesn't make sense). Prevent this with a specific check.
This CL should fix 8184401 without causing:
https://b.corp.google.com/issue?id=8192858
Change-Id: Ic74888b499466bbfac5fb97d49eede5b6c343127
When the "delete" pop-up is clicked (and the wrapped text removed), the
creator of the span will receive a notification of the action.
Similarly, if the user modifies (i.e., add/remove a char), the creator of
the span will receive a notification too. The notification will not contain any
information about how the text has been modified.
Bug: 6905960
Change-Id: Ic227b8fd50066699915f69a54f225fb5330867c4
The exposed APIs are slightly simpler than the full APIs used internally.
Only APIs useful to applications are exposed.
Change-Id: Ie03014628d40ad5ef63dedbc52ce3def84429d54
Allow developers to specify shadow properties for text in a
TextAppearance, not just in direct TextView attributes.
Change-Id: I873fbaf2c26683895e1eea2d02b5d9b17ca333d0
According to ListView's layoutChildren logic, it detaches all children
and rebuilds its children based on visible area which might omit
invisible elements in the adapter.
In this case, arrowScroll methods only tries to find next scroll
candidates from its children so user is unable to scroll more with
D-pad.
This fixes the issue by look forward next child among the adapter as
well as children.
Bug: 7346868
Change-Id: I01ab19ad899b5bcb5ab420ddf08c9ffd136933d1
# By Sungmin Choi
# Via Android Git Automerger (2) and others
* commit '044a4c3e4a42aae4faac8b92ea05f122cdf45f7c':
avoid multiple-"0" to exceed the length of upper bound