summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AconfigFlags.bp9
-rw-r--r--core/java/android/text/format/DateIntervalFormat.java11
-rw-r--r--core/tests/coretests/src/android/text/format/DateIntervalFormatTest.java9
3 files changed, 29 insertions, 0 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp
index d62cba910673..4f58f6867f9b 100644
--- a/AconfigFlags.bp
+++ b/AconfigFlags.bp
@@ -98,6 +98,7 @@ aconfig_declarations_group {
"framework-jobscheduler-job.flags-aconfig-java",
"framework_graphics_flags_java_lib",
"hwui_flags_java_lib",
+ "libcore_exported_aconfig_flags_lib",
"power_flags_lib",
"sdk_sandbox_flags_lib",
"surfaceflinger_flags_java_lib",
@@ -140,6 +141,14 @@ java_aconfig_library {
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
+// Core Libraries / libcore
+java_aconfig_library {
+ name: "libcore_exported_aconfig_flags_lib",
+ aconfig_declarations: "libcore-aconfig-flags",
+ mode: "exported",
+ defaults: ["framework-minus-apex-aconfig-java-defaults"],
+}
+
// Telecom
java_aconfig_library {
name: "telecom_flags_core_java_lib",
diff --git a/core/java/android/text/format/DateIntervalFormat.java b/core/java/android/text/format/DateIntervalFormat.java
index e8236fda42b6..8dea3228eb0c 100644
--- a/core/java/android/text/format/DateIntervalFormat.java
+++ b/core/java/android/text/format/DateIntervalFormat.java
@@ -26,6 +26,7 @@ import android.icu.util.ULocale;
import android.util.LruCache;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.libcore.Flags;
import java.text.FieldPosition;
import java.util.TimeZone;
@@ -123,4 +124,14 @@ public final class DateIntervalFormat {
&& c.get(Calendar.SECOND) == 0
&& c.get(Calendar.MILLISECOND) == 0;
}
+
+
+ @VisibleForTesting(visibility = PACKAGE)
+ public static boolean isLibcoreVFlagEnabled() {
+ // Note that the Flags class is expected to be jarjar-ed in the build-time.
+ // See go/repackage_flags
+ // The full-qualified name should be like
+ // com.android.internal.hidden_from_bootclasspath.com.android.libcore.Flags
+ return Flags.vApis();
+ }
}
diff --git a/core/tests/coretests/src/android/text/format/DateIntervalFormatTest.java b/core/tests/coretests/src/android/text/format/DateIntervalFormatTest.java
index 71c068d7ad46..9750de386271 100644
--- a/core/tests/coretests/src/android/text/format/DateIntervalFormatTest.java
+++ b/core/tests/coretests/src/android/text/format/DateIntervalFormatTest.java
@@ -35,6 +35,7 @@ import static android.text.format.DateUtils.FORMAT_SHOW_YEAR;
import static android.text.format.DateUtils.FORMAT_UTC;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import android.icu.util.Calendar;
import android.icu.util.TimeZone;
@@ -683,4 +684,12 @@ public class DateIntervalFormatTest {
assertEquals("February 27\u2009\u2013\u2009March 1, 2004",
fmt.apply(1077840000000L, 1078185600000L));
}
+
+ @Test
+ public void testIsLibcoreVFlagEnabled() {
+ // This flag has been fully ramped. It should never be false.
+ assertTrue(DateIntervalFormat.isLibcoreVFlagEnabled());
+ // Call a Android V API in libcore.
+ assertEquals("\ud840\udc2b", Character.toString(0x2002B));
+ }
}