summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-11-11 21:29:43 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-11-11 21:29:43 +0000
commit9803c079958647eaf475dc09f58ceb01b090164d (patch)
treea9b582c98f361b693b82c3a96a0a224625de3017
parent184fbc429b02b418977510689bfe3173bfdb6a65 (diff)
parent0f19314567fb90d5832d8a30fc49d706c034274d (diff)
downloadicu-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.txt11
-rw-r--r--android_icu4j/libcore_bridge/src/java/com/android/icu/util/Icu4cMetadata.java43
-rw-r--r--android_icu4j/libcore_bridge/src/native/Register.cpp1
-rw-r--r--android_icu4j/libcore_bridge/src/native/com_android_icu_util_ICU4CMetadata.cpp70
-rw-r--r--android_icu4j/src/main/tests/android/icu/extratest/android_icu_version.properties2
-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.java6
-rw-r--r--icu4j/Android.bp1
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"],