This reverts commit 9c2f0d751d.
The original commit, 17b2b2d458, had
missed adding api/test-current.txt.
Change-Id: I26a6325b3cee4c2412ee599f002cc6addb35d36f
The algorithm tries to find the first locale in the locale list
(usually from the user preference) that somewhat matches one of the
locales supported (usually from the list of locales supported by the
system or an app).
Locales match if both their language and their likely script is the
same. Otherwise they don't.
Bug: 25800576
Change-Id: I4fbc3f44ab16d41efebbf941e94a0bb30d598f82
This is a preparation work to pass LocaleList from TextView to IMEs via
EditorInfo.
Marshalling and unmrshlling LocaleList via Parcel is actually not so
difficult. We can reuse its internal data representation "localeTags"
as a canonical serialization format.
As for implementation, there are two choices. One is making LocaleList
Parcelable and the other is having a utility method to do that.
This CL uses Parcelable approach so that not only Framework but also
application developers can reuse the code.
Bug: 22859862
Change-Id: Ib28363bd5ff74228d2abeaa95004ec8bed72bddd
An upcoming change will remove "synchronized" from the API docs. This change
documents those cases where the guarantees can be determined from code
inspection.
Bug: 25767152
Change-Id: I75083ce01513ed315222304fe3f34190d40748cb
Also add a placeholder method for locale negotiation to LocaleList,
to be filled later.
There is no change in behavior expected by this CL yet. But once we
support setting the first locale to something the system doesn't
support, and implement the locale negotiation, this will cause the
system locale to be set to the first supported locale, instead of
just the default from Settings.
Change-Id: Iec983a5707daffb5bf54eac79ff0856a96631960
Introduced PathData in Java, which is effectively a thin layer around the
native instance. PathData holds the verbs and points which is being used
in path morphing/interpolation. The verbs and points can be interpreted
into skia path commands, which is now done in native and therefore saves
a handful of JNI calls during path creation.
Removed the old PathDataNode mechanism and changed the PathEvaluator
to use PathData instead.
Also added tests and a microbench. Also ran CTS tests for VectorDrawable
and AnimatedVectorDrawable, and passed all of the existing tests.
Change-Id: Ia166f5172ff031fe18b154327967f911a62caec1
These simple utility classes (used internally since Property was first introduced
way back in Jellybean) are the best way to avoid autoboxing when using the Property
approach to ObjectAnimator. But since their hidden, developers have to use the
autoboxing version (Property, the superclass) or know to come up with their own
primitive-optimized property subclasses.
This CL simply un-hides these two classes to make them usable outside of the framework.
Issue #21722783 Make [Int|Float]Property public
Change-Id: I7f3a456d108bf48587d711255d3577cce3ac5e24
There are two improvements in reporting size configurations:
1) duplicates are removed;
2) smallest width is reported separately;
Change-Id: I8f8235c99e6eefcae178e8d61e79ad0c4d6f1144
Also, compute LocaleList's string representation at construction.
This is to further push the cost of doing costly operations related
to LocaleLists to construction time.
Change-Id: Ia55b8ce66b1088ff54cb42eb1e11149b5bd10f17
Also propagates XML attrs from time picker to radial view during
construction, which allows the hour colors & etc. to be changed
inline without needing to set the timePickerStyle theme attribute.
Bug: 20333885
Change-Id: Ib42b9f5b93b5d6ce1dcbaa05f99cef40c9f9a9d3
When seeking forward in the Parcel, adding the extracted size to the Parcel.dataPosition()
can result in an overflow. Guard against this.
Bug:23909429
Change-Id: If37cdebbf05a92810300363d1a6ecd8b42b6da26
Previously printing a duration where a unit (except ms) was one and the
next smallest unit was zero would result in the duration being being
expressed in the next smallest unit. For example 1m0s0ms would be
formatted as 60s0ms.
Update testFormatHugeDuration to supporting times > 999 days
The implementation was fixed in 3d1933c45f
Change-Id: I9d609f7a0f82755ea653a205293a6e3785a10d1e
This keeps the existing single-locale APIs working (and adds
parameter annotations to them), while adding an API for setting and
getting the whole locale list. At the moment, the implementation
ignores the actual data in the locale list except for its primary
locale.
Also add a method to LocaleList to return the system's default locale
list. (Currently a one-member list just containing the system
default locale.)
Change-Id: Icea9d164ddae51f50dd71e18b5d91c96f233b8b8
We also deprecate the locale attribute, but works around the cases in
which people would call it.
Also add various methods to LocaleList to support the features
Configuration requires.
Change-Id: Iacc537e5fc1a3d4c1ea7e5517347876ca4e07e0a
This is a first implementation, just to get the basics in, so we can
experiement with how the system would interact with locale lists.
Change-Id: I75d386f24f693c6c1bdefc9386a7142aec2de37c
We now have a new whitelist you can put apps in, which
opts them out of the old battery saver mode and new app idle,
but doesn't keep them from going in to doze. This is for a few
special cases that we had previously whitelisted for battery saver,
and inherited to the new modes... ultimately we should figure out
how to get these apps out of the whitelist completely, but this
will help for now.
Apps in this new whitelist are not shown in the UI, because they
are still significantly restricted by not being able to operate
normally in doze. This also means they are still visible in the
list of all apps for the user to be able to put them on/off the
complete whitelist if that is what they really want.
In the course of doing this, I needed to clean up code in the
network policy manager to better separate management of the
two firewall rules that now have different whitelists applied
to them. This also hopefully just generally simplifies and cleans
up that code. Hopefully!
Change-Id: I92e15f2f85899571dd8b049b5e3eb1354f55f353
Add MultiSelectMaanger class to manager selection on a RecyclerView instance.
There are several outstanding issues that still need to be addressed
surrounding Grid mode as the GridLayout manager doesn't support
automatic column count calculation.
Also, we're missing the puddle effect on touch...
And probably other stuff. But it all *mostly* works.
Oh, also. Footers are currently commented out.
Add traditional unit tests for MultiSelectManager.
BUG: 22225617
Change-Id: I3cd26a10683f42053556d463a5d2f0d2a0bbde84
Request benchmarking of devices once per week during normal fstrim
maintenance window. Tunable parameter gives us the ability to change
frequency through global setting.
Track individual benchmark and trim results for each volume, and
use scrubbed volume identifier (based on adoptiong age) when logging
stats to drop box. Track last benchmark and trim time for each
volume separately.
Bug: 21831325
Change-Id: I53b3ed788f7820c2e5bceb2840339f5b4aada3f0
Since these alarms allow you to bypass the idle restrictions,
we don't want them to be so open-ended like other alarms. This
implements a policy where the alarm manager will only deliver these
types of alarms every X minutes to each application. For this
initial implementation, X is 1 minute under normal operation and
15 minutes when in idle mode.
To do this, I needed to introduce a new internal allow-while-idle
flag for system alarms, which applications can't get, and doesn't
have these new restrictions.
Also tweaked how the alarm manager handles the alarm window, so it
doesn't change if the alarm gets rescheduld; the window is now always
what as computed based on the time when the alarm was first
given to it.
Finally, fix TimeUtils to be able to correctly print times that
are > 999 days.
Change-Id: Ibad8c6a7c14b0624b54e82267be23224b4c31e84
This will allow gservices to tweak the settings and experiment
with different values for various doze constants.
The values are encoded in a string as a key=value list. Ex:
inactive_to=5000,idle_factor=0.01
Bug:21640379
Change-Id: Ie98a0e4893f9b46a64d961d6c5c5169b8b8ad742
When the RTL properties of a horizontal LinearLayout
changed, nobody enforced the view to be layouted anew,
even though its layout is dependent on the layout
direction. This could lead to stale layouts being
temporarily layouted the wrong way.
Bug: 20495301
Change-Id: I979c8d86ee711626b2901b65ebdf007c1eb1c0fa
Calling println_native with the value of ASSERT will set the abort
message. Unfortunately, there are numerous cases where one thread aborts,
but before that thread can communicate with debuggerd, another thread
calls wtf, which overwrites the abort message from the original
failing thread.
Fix this by changing this to an error level log message.
Bug: 21490722
Change-Id: I9500e2e63eea96722602fdd46c86939c001a7c65
Add 360dpi as a supported screen density to closer match some
hardware's physical specifications. This gives a dp multiplier of
2.25.
Bug 19529059
Change-Id: Ibf9c768fba53765ea684ff228d24caf091f27a3e
To follow the correct semantics for when restricts due to
device idle can be applied, power manager need to know about
uid process states like net policy so that it can allow
wake locks from apps that are in the foreground.
Since this is being added to a second place, I reworked things
so that the activity manager now keeps track of per-uid process
states and allows apps to register to listen to those, rather
than having to track lower-level process states and transform
them into an overall uid state. Both net policy and power
manager use this new facility.
Change-Id: I77359164c40d0f36fe1ef296dd9f9c3062431148