Deprecate android.text.AndroidCharacter
AndroidCharacter was added to compensate for limitations in
java.lang.Character, but it has been outdated and its functionality
is provided with a much better API by android.icu.lang.UCharacter.
Bug: 32551718
Test: cts-tradefed run cts-dev --module CtsTextTestCases --test android.text.cts.AndroidCharacterTest
Change-Id: Iec1969dc5787a4ebb0e68cdc213d3d0cdc3b2d0d
diff --git a/api/current.txt b/api/current.txt
index c294d8a..c5f3d8e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -38749,7 +38749,7 @@
method public java.lang.CharSequence subSequence(int, int);
}
- public class AndroidCharacter {
+ public deprecated class AndroidCharacter {
ctor public AndroidCharacter();
method public static void getDirectionalities(char[], byte[], int);
method public static int getEastAsianWidth(char);
diff --git a/api/system-current.txt b/api/system-current.txt
index a3672b3..d1ce22a 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -41937,7 +41937,7 @@
method public java.lang.CharSequence subSequence(int, int);
}
- public class AndroidCharacter {
+ public deprecated class AndroidCharacter {
ctor public AndroidCharacter();
method public static void getDirectionalities(char[], byte[], int);
method public static int getEastAsianWidth(char);
diff --git a/api/test-current.txt b/api/test-current.txt
index 11f1c5c..0d86091 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -38848,7 +38848,7 @@
method public java.lang.CharSequence subSequence(int, int);
}
- public class AndroidCharacter {
+ public deprecated class AndroidCharacter {
ctor public AndroidCharacter();
method public static void getDirectionalities(char[], byte[], int);
method public static int getEastAsianWidth(char);
diff --git a/core/java/android/text/AndroidCharacter.java b/core/java/android/text/AndroidCharacter.java
index b150b6e..c5f1a01 100644
--- a/core/java/android/text/AndroidCharacter.java
+++ b/core/java/android/text/AndroidCharacter.java
@@ -17,9 +17,11 @@
package android.text;
/**
- * AndroidCharacter exposes some character properties that are not
- * easily accessed from java.lang.Character.
+ * AndroidCharacter exposes some character properties that used to be not
+ * easily accessed from java.lang.Character, but are now available in ICU.
+ * @deprecated Use various methods from {@link android.icu.lang.UCharacter}, instead.
*/
+@Deprecated
public class AndroidCharacter
{
public static final int EAST_ASIAN_WIDTH_NEUTRAL = 0;
diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java
index 6262fc2..58bc9a7 100644
--- a/core/java/android/text/TextUtils.java
+++ b/core/java/android/text/TextUtils.java
@@ -22,6 +22,7 @@
import android.annotation.PluralsRes;
import android.content.Context;
import android.content.res.Resources;
+import android.icu.lang.UCharacter;
import android.icu.util.ULocale;
import android.os.Parcel;
import android.os.Parcelable;
@@ -545,9 +546,10 @@
}
public char charAt(int off) {
- return AndroidCharacter.getMirror(mSource.charAt(mEnd - 1 - off));
+ return (char) UCharacter.getMirror(mSource.charAt(mEnd - 1 - off));
}
+ @SuppressWarnings("deprecation")
public void getChars(int start, int end, char[] dest, int destoff) {
TextUtils.getChars(mSource, start + mStart, end + mStart,
dest, destoff);