diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-11-11 21:29:43 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-11-11 21:29:43 +0000 |
commit | 9803c079958647eaf475dc09f58ceb01b090164d (patch) | |
tree | a9b582c98f361b693b82c3a96a0a224625de3017 | |
parent | 184fbc429b02b418977510689bfe3173bfdb6a65 (diff) | |
parent | 0f19314567fb90d5832d8a30fc49d706c034274d (diff) | |
download | icu-android10-mainline-networking-release.tar.gz |
Snap for 6001391 from 0f19314567fb90d5832d8a30fc49d706c034274d to qt-aml-networking-releaseandroid-mainline-10.0.0_r6android10-mainline-networking-release
Change-Id: Ie3822be8f27685474e8a5f816b3f39aad912b9c4
-rw-r--r-- | android_icu4j/api/intra/current-api.txt | 11 | ||||
-rw-r--r-- | android_icu4j/libcore_bridge/src/java/com/android/icu/util/Icu4cMetadata.java | 43 | ||||
-rw-r--r-- | android_icu4j/libcore_bridge/src/native/Register.cpp | 1 | ||||
-rw-r--r-- | android_icu4j/libcore_bridge/src/native/com_android_icu_util_ICU4CMetadata.cpp | 70 | ||||
-rw-r--r-- | android_icu4j/src/main/tests/android/icu/extratest/android_icu_version.properties | 2 | ||||
-rw-r--r-- | android_icu4j/testing/src/android/icu/extratest/AndroidIcuVersionTest.java (renamed from android_icu4j/testing/src/android/icu/extratest/AndroidICUVersionTest.java) | 10 | ||||
-rw-r--r-- | android_icu4j/testing/src/android/icu/extratest/AndroidTransliteratorAvailableIdsTest.java | 6 | ||||
-rw-r--r-- | icu4j/Android.bp | 1 |
8 files changed, 132 insertions, 12 deletions
diff --git a/android_icu4j/api/intra/current-api.txt b/android_icu4j/api/intra/current-api.txt index 7df0c0176..7984134be 100644 --- a/android_icu4j/api/intra/current-api.txt +++ b/android_icu4j/api/intra/current-api.txt @@ -190,6 +190,17 @@ package com.android.icu.charset { } +package com.android.icu.util { + + public class Icu4cMetadata { + method public static String getCldrVersion(); + method public static String getIcuVersion(); + method public static String getTzdbVersion(); + method public static String getUnicodeVersion(); + } + +} + package com.android.icu.util.regex { public class NativeMatcher { diff --git a/android_icu4j/libcore_bridge/src/java/com/android/icu/util/Icu4cMetadata.java b/android_icu4j/libcore_bridge/src/java/com/android/icu/util/Icu4cMetadata.java new file mode 100644 index 000000000..0a7d45a4b --- /dev/null +++ b/android_icu4j/libcore_bridge/src/java/com/android/icu/util/Icu4cMetadata.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.icu.util; + +public class Icu4cMetadata { + + /** Returns the TZData version as reported by ICU4C. */ + @libcore.api.IntraCoreApi + public static native String getTzdbVersion(); + + /** + * Returns the version of the CLDR data in use, such as "22.1.1". + */ + @libcore.api.IntraCoreApi + public static native String getCldrVersion(); + + /** + * Returns the icu4c version in use, such as "50.1.1". + */ + @libcore.api.IntraCoreApi + public static native String getIcuVersion(); + + /** + * Returns the Unicode version our ICU supports, such as "6.2". + */ + @libcore.api.IntraCoreApi + public static native String getUnicodeVersion(); + +} diff --git a/android_icu4j/libcore_bridge/src/native/Register.cpp b/android_icu4j/libcore_bridge/src/native/Register.cpp index 0df2e7e65..012d6efce 100644 --- a/android_icu4j/libcore_bridge/src/native/Register.cpp +++ b/android_icu4j/libcore_bridge/src/native/Register.cpp @@ -34,6 +34,7 @@ jint JNI_OnLoad(JavaVM* vm, void*) { ScopedLocalFrame localFrame(env); #define REGISTER(FN) extern void FN(JNIEnv*); FN(env) + REGISTER(register_com_android_icu_util_Icu4cMetadata); REGISTER(register_com_android_icu_util_regex_NativePattern); REGISTER(register_com_android_icu_util_regex_NativeMatcher); REGISTER(register_com_android_icu_util_charset_NativeConverter); diff --git a/android_icu4j/libcore_bridge/src/native/com_android_icu_util_ICU4CMetadata.cpp b/android_icu4j/libcore_bridge/src/native/com_android_icu_util_ICU4CMetadata.cpp new file mode 100644 index 000000000..23753175a --- /dev/null +++ b/android_icu4j/libcore_bridge/src/native/com_android_icu_util_ICU4CMetadata.cpp @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <nativehelper/JNIHelp.h> +#include <nativehelper/jni_macros.h> + +#include "IcuUtilities.h" + +#include "unicode/uchar.h" +#include "unicode/ulocdata.h" +#include "unicode/uversion.h" +#include "unicode/timezone.h" + +static jstring versionString(JNIEnv* env, const UVersionInfo& version) { + char versionString[U_MAX_VERSION_STRING_LENGTH]; + u_versionToString(const_cast<UVersionInfo&>(version), &versionString[0]); + return env->NewStringUTF(versionString); +} + +static jstring Icu4cMetadata_getCldrVersion(JNIEnv* env, jclass) { + UErrorCode status = U_ZERO_ERROR; + UVersionInfo cldrVersion; + ulocdata_getCLDRVersion(cldrVersion, &status); + return versionString(env, cldrVersion); +} + +static jstring Icu4cMetadata_getIcuVersion(JNIEnv* env, jclass) { + UVersionInfo icuVersion; + u_getVersion(icuVersion); + return versionString(env, icuVersion); +} + +static jstring Icu4cMetadata_getUnicodeVersion(JNIEnv* env, jclass) { + UVersionInfo unicodeVersion; + u_getUnicodeVersion(unicodeVersion); + return versionString(env, unicodeVersion); +} + +static jstring Icu4cMetadata_getTzdbVersion(JNIEnv* env, jclass) { + UErrorCode status = U_ZERO_ERROR; + const char* version = icu::TimeZone::getTZDataVersion(status); + if (maybeThrowIcuException(env, "icu::TimeZone::getTZDataVersion", status)) { + return NULL; + } + return env->NewStringUTF(version); +} + +static JNINativeMethod gMethods[] = { + NATIVE_METHOD(Icu4cMetadata, getCldrVersion, "()Ljava/lang/String;"), + NATIVE_METHOD(Icu4cMetadata, getIcuVersion, "()Ljava/lang/String;"), + NATIVE_METHOD(Icu4cMetadata, getUnicodeVersion, "()Ljava/lang/String;"), + NATIVE_METHOD(Icu4cMetadata, getTzdbVersion, "()Ljava/lang/String;"), +}; + +void register_com_android_icu_util_Icu4cMetadata(JNIEnv* env) { + jniRegisterNativeMethods(env, "com/android/icu/util/Icu4cMetadata", gMethods, NELEM(gMethods)); +} diff --git a/android_icu4j/src/main/tests/android/icu/extratest/android_icu_version.properties b/android_icu4j/src/main/tests/android/icu/extratest/android_icu_version.properties index 33dd3e3e0..1f49e0245 100644 --- a/android_icu4j/src/main/tests/android/icu/extratest/android_icu_version.properties +++ b/android_icu4j/src/main/tests/android/icu/extratest/android_icu_version.properties @@ -1,2 +1,2 @@ -# Property file for AndroidICUVersionTest. +# Property file for AndroidIcuVersionTest. version=64.2.0.0 diff --git a/android_icu4j/testing/src/android/icu/extratest/AndroidICUVersionTest.java b/android_icu4j/testing/src/android/icu/extratest/AndroidIcuVersionTest.java index edcaf88ab..24b539bb7 100644 --- a/android_icu4j/testing/src/android/icu/extratest/AndroidICUVersionTest.java +++ b/android_icu4j/testing/src/android/icu/extratest/AndroidIcuVersionTest.java @@ -15,25 +15,23 @@ */ package android.icu.extratest; +import com.android.icu.util.Icu4cMetadata; import org.junit.Before; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.junit.Test; -import android.icu.dev.data.TestDataElements_testtypes; import android.icu.dev.test.TestFmwk; import android.icu.testsharding.MainTestShard; import android.icu.util.VersionInfo; -import libcore.icu.ICU; - import java.io.IOException; import java.io.InputStream; import java.util.Properties; @MainTestShard @RunWith(JUnit4.class) -public class AndroidICUVersionTest extends TestFmwk { +public class AndroidIcuVersionTest extends TestFmwk { private static final String PROP_FILE = "android_icu_version.properties"; private static final String VERSION_PROP_NAME = "version"; @@ -42,7 +40,7 @@ public class AndroidICUVersionTest extends TestFmwk { @Before public void setUp() throws IOException { - try (InputStream in = AndroidICUVersionTest.class.getResourceAsStream(PROP_FILE)) { + try (InputStream in = AndroidIcuVersionTest.class.getResourceAsStream(PROP_FILE)) { Properties prop = new Properties(); prop.load(in); String propValue = prop.getProperty(VERSION_PROP_NAME); @@ -61,7 +59,7 @@ public class AndroidICUVersionTest extends TestFmwk { expectedIcuVersion.getMinor() <= actualIcu4jVersion.getMinor()); // Check ICU4C. - VersionInfo actualIcu4cVersion = VersionInfo.getInstance(ICU.getIcuVersion()); + VersionInfo actualIcu4cVersion = VersionInfo.getInstance(Icu4cMetadata.getIcuVersion()); assertEquals("The ICU4C major version is not expected.", expectedIcuVersion.getMajor(), actualIcu4cVersion.getMajor()); assertTrue("ICU4C minor version can't be smaller than the expected.", diff --git a/android_icu4j/testing/src/android/icu/extratest/AndroidTransliteratorAvailableIdsTest.java b/android_icu4j/testing/src/android/icu/extratest/AndroidTransliteratorAvailableIdsTest.java index 729fafaa0..e376a631d 100644 --- a/android_icu4j/testing/src/android/icu/extratest/AndroidTransliteratorAvailableIdsTest.java +++ b/android_icu4j/testing/src/android/icu/extratest/AndroidTransliteratorAvailableIdsTest.java @@ -15,16 +15,12 @@ */ package android.icu.extratest; -import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import org.junit.runners.Parameterized; -import org.junit.runners.Suite; import android.icu.testsharding.MainTestShard; import android.icu.text.Transliterator; -import android.icu.text.UnicodeSet; import java.io.BufferedReader; import java.io.IOException; @@ -74,7 +70,7 @@ public class AndroidTransliteratorAvailableIdsTest { List<String> excludedIds) throws IOException { List<String> expectedIds = new ArrayList<>(); try (BufferedReader reader = new BufferedReader(new InputStreamReader( - AndroidICUVersionTest.class.getResourceAsStream(resourceFileName)))) { + AndroidIcuVersionTest.class.getResourceAsStream(resourceFileName)))) { String line; while((line = reader.readLine()) != null) { if (!line.isEmpty()) { diff --git a/icu4j/Android.bp b/icu4j/Android.bp index 84aff7088..61ccaaa53 100644 --- a/icu4j/Android.bp +++ b/icu4j/Android.bp @@ -35,6 +35,7 @@ java_library { "//external/icu/tools/srcgen", "//external/robolectric-shadows/robolectric", "//external/robolectric-shadows/shadows/framework", + "//system/timezone/input_tools/android/telephonylookup_generator", "//system/timezone/input_tools/android/tzlookup_generator", ], defaults: ["icu4j-defaults"], |