Android patch: Remove property android.icu.impl.ICUBinary.dataPath for apps targeting S+
This CL alone does not remove the property yet, because it provides
the replacement to set ICU4J data directories. The prebuilts and
libcore need to be updated to remove the property.
Pros:
1. The data directories are currently visible to app, but it's not
intended, because the data files and file format are the internal
implementation details.
2. having a recursive dependency between the ART module and the I18N
module can be avoided, and the relationship simplified, by no longer
relying on system properties to initialize ICU4J. Otherwise,
ART modules needs to ask the I18N module where the files are,
so it can set a system property, which tells the I18N module how
to initialize.
Instead, lazily generate the list of data directories when
ICUBinary class is initialized.
3. Can remove the @IntraCoreApi TimeZoneDataFiles.generateIcuDataPath()
in the CL after the ART prebuilts is updated.
Cons:
1. Maintain a large patch in ICU4J.
Note:
- TimeZoneDataFiles is removed from timezone-host target because
it's not used, and avoid new dependency on AndroidDataFiles.
Bug: 171979766
Bug: 139480281
Test: ant core (using the upstream icu4j build system)
Test: ./updatecldrdata.py
Test: m droid cts
Test: CtsIcuTestCases
Change-Id: Ic257a654595181642c6c96189b0d94a4a0954156
2 files changed