Loading core/java/android/text/TextUtils.java +10 −0 Original line number Diff line number Diff line Loading @@ -1943,6 +1943,16 @@ public class TextUtils { return charSequence; } /** * Prepends {@code start} and appends {@code end} to a given {@link StringBuilder} * * @hide */ public static void wrap(StringBuilder builder, String start, String end) { builder.insert(0, start); builder.append(end); } private static Object sLock = new Object(); private static char[] sTemp = null; Loading core/java/android/view/accessibility/AccessibilityEvent.java +20 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import android.os.Parcelable; import android.text.TextUtils; import android.util.Pools.SynchronizedPool; import com.android.internal.util.BitUtils; import java.util.ArrayList; import java.util.List; Loading Loading @@ -852,6 +854,22 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par return mContentChangeTypes; } private static String contentChangeTypesToString(int types) { return BitUtils.flagsToString(types, AccessibilityEvent::singleContentChangeTypeToString); } private static String singleContentChangeTypeToString(int type) { switch (type) { case CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION: { return "CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION"; } case CONTENT_CHANGE_TYPE_SUBTREE: return "CONTENT_CHANGE_TYPE_SUBTREE"; case CONTENT_CHANGE_TYPE_TEXT: return "CONTENT_CHANGE_TYPE_TEXT"; case CONTENT_CHANGE_TYPE_UNDEFINED: return "CONTENT_CHANGE_TYPE_UNDEFINED"; default: return Integer.toHexString(type); } } /** * Sets the bit mask of node tree changes signaled by an * {@link #TYPE_WINDOW_CONTENT_CHANGED} event. Loading Loading @@ -1187,7 +1205,8 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par builder.append(super.toString()); if (DEBUG) { builder.append("\n"); builder.append("; ContentChangeTypes: ").append(mContentChangeTypes); builder.append("; ContentChangeTypes: ").append( contentChangeTypesToString(mContentChangeTypes)); builder.append("; sourceWindowId: ").append(mSourceWindowId); if (mSourceNode != null) { builder.append("; mSourceNodeId: ").append(mSourceNode.getSourceNodeId()); Loading core/java/com/android/internal/util/BitUtils.java +16 −0 Original line number Diff line number Diff line Loading @@ -18,12 +18,14 @@ package com.android.internal.util; import android.annotation.Nullable; import android.text.TextUtils; import libcore.util.Objects; import java.nio.ByteBuffer; import java.util.Arrays; import java.util.UUID; import java.util.function.IntFunction; /** * A utility class for handling unsigned integers and unsigned arithmetics, as well as syntactic Loading Loading @@ -132,4 +134,18 @@ public final class BitUtils { public static long bitAt(int bitIndex) { return 1L << bitIndex; } public static String flagsToString(int flags, IntFunction<String> getFlagName) { StringBuilder builder = new StringBuilder(); int count = 0; while (flags != 0) { final int flag = 1 << Integer.numberOfTrailingZeros(flags); flags &= ~flag; if (count > 0) builder.append(", "); builder.append(getFlagName.apply(flag)); count++; } TextUtils.wrap(builder, "[", "]"); return builder.toString(); } } Loading
core/java/android/text/TextUtils.java +10 −0 Original line number Diff line number Diff line Loading @@ -1943,6 +1943,16 @@ public class TextUtils { return charSequence; } /** * Prepends {@code start} and appends {@code end} to a given {@link StringBuilder} * * @hide */ public static void wrap(StringBuilder builder, String start, String end) { builder.insert(0, start); builder.append(end); } private static Object sLock = new Object(); private static char[] sTemp = null; Loading
core/java/android/view/accessibility/AccessibilityEvent.java +20 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import android.os.Parcelable; import android.text.TextUtils; import android.util.Pools.SynchronizedPool; import com.android.internal.util.BitUtils; import java.util.ArrayList; import java.util.List; Loading Loading @@ -852,6 +854,22 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par return mContentChangeTypes; } private static String contentChangeTypesToString(int types) { return BitUtils.flagsToString(types, AccessibilityEvent::singleContentChangeTypeToString); } private static String singleContentChangeTypeToString(int type) { switch (type) { case CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION: { return "CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION"; } case CONTENT_CHANGE_TYPE_SUBTREE: return "CONTENT_CHANGE_TYPE_SUBTREE"; case CONTENT_CHANGE_TYPE_TEXT: return "CONTENT_CHANGE_TYPE_TEXT"; case CONTENT_CHANGE_TYPE_UNDEFINED: return "CONTENT_CHANGE_TYPE_UNDEFINED"; default: return Integer.toHexString(type); } } /** * Sets the bit mask of node tree changes signaled by an * {@link #TYPE_WINDOW_CONTENT_CHANGED} event. Loading Loading @@ -1187,7 +1205,8 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par builder.append(super.toString()); if (DEBUG) { builder.append("\n"); builder.append("; ContentChangeTypes: ").append(mContentChangeTypes); builder.append("; ContentChangeTypes: ").append( contentChangeTypesToString(mContentChangeTypes)); builder.append("; sourceWindowId: ").append(mSourceWindowId); if (mSourceNode != null) { builder.append("; mSourceNodeId: ").append(mSourceNode.getSourceNodeId()); Loading
core/java/com/android/internal/util/BitUtils.java +16 −0 Original line number Diff line number Diff line Loading @@ -18,12 +18,14 @@ package com.android.internal.util; import android.annotation.Nullable; import android.text.TextUtils; import libcore.util.Objects; import java.nio.ByteBuffer; import java.util.Arrays; import java.util.UUID; import java.util.function.IntFunction; /** * A utility class for handling unsigned integers and unsigned arithmetics, as well as syntactic Loading Loading @@ -132,4 +134,18 @@ public final class BitUtils { public static long bitAt(int bitIndex) { return 1L << bitIndex; } public static String flagsToString(int flags, IntFunction<String> getFlagName) { StringBuilder builder = new StringBuilder(); int count = 0; while (flags != 0) { final int flag = 1 << Integer.numberOfTrailingZeros(flags); flags &= ~flag; if (count > 0) builder.append(", "); builder.append(getFlagName.apply(flag)); count++; } TextUtils.wrap(builder, "[", "]"); return builder.toString(); } }