> Fixing isRootNamespace check
> Updating ViewTree when ViewStub is inflated
> Applying ViewGroupAction on previously found views instead of finding it again
as the viewTree might have changed.
Test: am instrument -w -e class android.widget.RemoteViewsTest com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner
Bug: 32639592
Change-Id: I0815fb3a981efbc04fb0d080b81949985c2d9bc3
Dependent on ag/1550196 where API is defined.
Bug: 31015360
Bug: 26545374
Test: runtest --path
frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java,
other test classes.
Change-Id: I968b9e3352d7880e3fc438f12de628a2da057e0a
This patch uses the previously introduced TokenBucket to rate limit
ApfProgramEvents, still allowing for burst of ApfProgramEvents when a
new interface is set up (due to ipv4 provisioning, multicast lock, ipv6 RAs
triggering new APF program events in short amounts of time).
Test: new test in IpConnectivityMetricsTest
Bug: 1550402
Change-Id: I1a544a8d62e6b02f0ed0088ab76c4bad338d2f44
This patch adds a TokenBucket class that can accumulate and distribute
tokens over time.
Test: comes with unit tests.
Bug: 32198637
Change-Id: Iefde02a0696de93fd2b2d5dc46889e29d269385e
preferred_time_zones.xml is not referenced in any code and has been
deleted here.
TimeUtilsTest.java is broken / out of date and semi-duplicates code
in android.util.cts.TimeUtilsTest. It has been deleted here.
time_zones_by_country.xml file has not been updated since (at least)
2009.
Ideally this information would be updated as needed when the
timezone rule data is updated on device. This change just brings the
data up to date without addressing that issue. Given the apparent,
non-obvious, ordering requirements it may not be possible to use
zone1970.tab data directly.
---------------
Impact assessment:
At the time of writing time_zones_by_country.xml is used from:
Non-public methods:
android.util.TimeUtils.getTimeZones(String)
Public methods:
android.util.TimeUtils.getTimeZone(int, boolean, long, String)
android.util.TimeUtils.getTimeZonesWithUniqueOffsets(String)
Therefore there is some app / user benefit from updating it.
Within the framework, this affects:
telephony.ServiceStateTracker - in some circumstances when receiving
offset information from cell networks when better information is not
available.
There is some clockwork code affected that uses the calls for similar
purposes.
---------------
Notes on file formats / mapping the IANA source data:
The updated data was sourced from the IANA tzdata 2016g file
called zone1970.tab. The time_zones_by_country.xml file was manually
edited in a text editor using criteria detailed below.
The zone1970.tab file maps country codes (column 1) to a zone ID
(column 3). A country can be mapped to multiple zones. The zone.tab file
that was likely used in the past is similar in content and format. See
the zone.tab file header for details of the differences.
The time_zones_by_country.xml can have multiple entries for each
country, starting with a comment.
Comments exist for each (Country, Offset) pair. The name is
free-text, the offset is a non-DST offset for a zone as of 14th Oct
2016 using the 2016g data.
<!-- {Country name}, {offset from UTC} -->
Countries are listed in ASCII ascending order of the country code.
Within each country offsets are mostly ordered east to
west. An exception appears to be Australia. The data may have a
secondary order of "best match" (e.g. maybe by population). This might
be important for getTimeZone(int, boolean, long, String)) since it
returns the first match for a given offset, dst, country.
The timezone offset, transition information itself (offset, dst) is
pulled from the timezone rules data on the device, not this file.
The data is encoded for each (Country, Offset) pair by a sequence
of:
<timezone code="xx">{Olson ID}</timezone>
xx is the country code from column 1 in the zone1970.tab file, the
element content is the zone ID from column 3.
---------------
Notes on the changes made to time_zones_by_country.xml:
There are various changes in this commit associated with switching from
zone.tab to zone1970.tab as a data source: zone.tab uses different
Olson IDs due to the different criteria used by these files.
The offset in each case will be the same so will have no practical
effect on offsets / zone detection, though will affect the exemplar
location for the zone found.
The remaining changes reflect actual zone / offset changes that
have occurred.
When adding new zones or rearranging existing ones they have been
positioned so as not to modify the first zone for each country or
the first zone per offset because of the uncertainty about the
secondary ordering. This is to avoid the risk of now picking a
different zone for a country or {country + dst + offset}. This
has resulted in a couple of places where the ordering is
non-intuitive.
The zone names and the offset information contained in the comments was
checked semi-manually using other 2016g data, i.e. the base offset of
each zone was checked against output from a script that created a
TimeZone object from each Olson ID in the file and output the raw
(non-DST) offset.
---------------
Change specifics:
Changes made due to zone1970.tab vs zone.tab:
ANTIGUA AND BARBUDA
ANGUILLA
ANGOLA
ALAND ISLANDS
ARUBA
BOSNIA AND HERZEGOVINA
BURKINA FASO
BAHRAIN
BENIN
BOTSWANA
CONGO
CENTRAL AFRICAN REPUBLIC
CONGO
CAMEROON
DJIBOUTI
DOMINICA
ERITREA
ETHIOPIA
GABON
GRENADA
GUERNSEY
GAMBIA
GUINEA
GUADELOUPE
EQUATORIAL GUINEA
CROATIA
ISLE OF MAN
JERSEY
CAMBODIA
COMOROS
SAINT KITTS AND NEVIS
KUWAIT
CAYMAN ISLANDS
LAO PEOPLE'S DEMOCRATIC REPUBLIC
SAINT LUCIA
LIECHTENSTEIN
LESOTHO
MONTENEGRO
MADAGASCAR
MACEDONIA
MALI
NORTHERN MARIANA ISLANDS
MAURITANIA
MONTSERRAT
MALAWI
NIGER
OMAN
RWANDA
SAINT HELENA
SLOVENIA
SVALBARD AND JAN MAYEN
SLOVAKIA
SIERRA LEONE
SAN MARINO
SENEGAL
SOMALIA
SAO TOME AND PRINCIPE
SWAZILAND
TOGO
TANZANIA
UGANDA
UNITED STATES MINOR OUTLYING ISLANDS
HOLY SEE
SAINT VINCENT AND THE GRENADINES
VIRGIN ISLANDS
YEMEN
MAYOTTE
ZAMBIA
ZIMBABWE
---------
Changes due to new data:
ANTARCTICA
ARGENTINA
AUSTRALIA
BRAZIL
CANADA
CHINA
MICRONESIA
INDIA
MYANMAR
MEXICO
PAPUA NEW GUINEA
PALESTINE
RUSSIAN FEDERATION
UNITED STATES
UKRAINE
---------
Removal of NETHERLANDS ANTILLES (country code "an"):
"an" no longer present in the IANA data.
The country code is no longer in use.
https://en.wikipedia.org/wiki/ISO_3166-2:AN
New country entries for:
Saint Barthélemy
Caribbean Netherlands
Curaçao
Collectivity of Saint Martin
Sint Maarten
---------
Changes due to new data *and* with differences between zone1970.tab
and zone.tab:
GERMANY
South Sudan (entirely new)
VIET NAM
FRENCH SOUTHERN TERRITORIES
---------
Changes to comments or arrangement of existing entries due to non-DST
offset changes since the last update:
Antarctica/Mawson
Europe/Minsk
America/Resolute
Atlantic/Stanley
Asia/Pyongyang
America/Cancun
America/Grand_Turk
Pacific/Fakaofo
Europe/Istanbul
America/Caracas
Pacific/Apia
Bug: 25338903
Test: Build / CtsUtilTestCases
Change-Id: I87e3db795f55ddd92e7402459c5e97aa70b9301e
* Extend this API to take tree URI
* Add toString(), equals() and hashCode() to Path
* Address Jeff's comments in ag/1513538
* Add unit tests for findPath
Bug: 30948740
Change-Id: Iaf852d0e40fae37623e9bb9ffa1c6fbe334c1b21
(cherry picked from commit d4ab7ade7171a4382ef4f61f2a5f078a17800e83)
This patch fixes the following issues in LocalLog:
- reverseDump() uses a descending iterator with linear complexity
instead of a quadratic loop using get(index) on a linked list.
- reverseDump() is added to ReadOnlyLocalLog.
- synchronized section in log() is restricted to mutation of internal
list.
- formatting of the log message does not create an internal
StringBuilder.
- the instance variable mNow is removed: it was only used inside log()
as a local variable.
- remaining instance variables are qualified with final.
- the linked list is replaced by a fixed capacity array-backed queue.
Test: added unit tests
Change-Id: I1a54f0ad26dd35448d3297ea24df1fd626d20ef3
Test: Add new non-CTS print workflow tests. These tests will cover
general printing workflows such as the situation fixed in this
change.
Change-Id: I33b6842bba164c45a6afbc09f2e0c9b0a523ef30
When we create a file that already exists, we try attaching a suffix
like "(1)" to the filename to avoid the conflict. The newly added
rename method should do the same, since developers may not have
access to delete the conflicting file.
Test: boots, rename via UI, new unit tests
Bug: 31545404
Change-Id: Ie397eebb0fbf98cf079eee3bbbb6c6b7ca627d91
When we create a file that already exists, we try attaching a suffix
like "(1)" to the filename to avoid the conflict. The newly added
rename method should do the same, since developers may not have
access to delete the conflicting file.
Test: boots, rename via UI, new unit tests
Bug: 31545404
Change-Id: Ie397eebb0fbf98cf079eee3bbbb6c6b7ca627d91
LoaderManagers configure their host callback lazily as their
associated fragment is brought up through its lifecycle states. In the
case of fragments on the fragment back stack this could happen very
late, if at all. As a LoaderManager's host callback references the
host Activity, this means that a LoaderManager could keep a destroyed
Activity reference alive.
Update the host callbacks of all LoaderManagers eagerly during the
restore non-configuration instance phase.
Bug: 30653222
Test: core/tests/coretests/src/android/app/LoaderLifecycleTest.java
Change-Id: I5d2b81daae5e7cae429fcf4934e64b3ce281140c
This change adds a new pathMatch attribute to the intent-filter tag
that supports a subset of regular expression syntax. Supported
tokens include dot (.) and set ([]) and supported modifiers include
zero-or-more (*), one-or-more(+) and ranges ({}).
Change-Id: I2ec3bc8a9eb3e94d21caf34a1ed0f3fd3fb33a35
Bug: 30805203
With I63af3a6ecbf92, we create RenderNode lazily, but
blocks containing contents that protrude from line top or
bottom cannot be simply lazily redrawn after edit or
scroll.
With this CL, we check if the contents protrude from line
top or bottom by comparing the text bounds with relevant
font metrics values and we always redrawn such blocks after
edit or scroll.
Bug: 27889485
Change-Id: I666da5eeb39f780c341597f347bfcba21eb34295
A ScaleGestureDectector is attached to an activity.
A pinch and zoom action has been created, and mimics the action by first
sending a down motion on the two points,
which then moves to the supplied end coordinates in the number of steps
(PINCH_STEP_COUNT).
Bug: 30751698
Change-Id: Id654025f47dfc10d852e9f2eb428a969fc7de95c