Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61500655 authored by Neil Fuller's avatar Neil Fuller Committed by Gerrit Code Review
Browse files

Merge "Switch ByteStringUtils over to HexEncoding impl"

parents 6c702ac5 cdc3a10d
Loading
Loading
Loading
Loading
+4 −31
Original line number Original line Diff line number Diff line
@@ -16,14 +16,14 @@


package android.util;
package android.util;


import libcore.util.HexEncoding;

/**
/**
 * A utility class for common byte array to hex string operations and vise versa.
 * A utility class for common byte array to hex string operations and vise versa.
 *
 *
 * @hide
 * @hide
 */
 */
public final class ByteStringUtils {
public final class ByteStringUtils {
    private static final char[] HEX_LOWERCASE_ARRAY = "0123456789abcdef".toCharArray();
    private static final char[] HEX_UPPERCASE_ARRAY = "0123456789ABCDEF".toCharArray();


    private ByteStringUtils() {
    private ByteStringUtils() {
    /* hide constructor */
    /* hide constructor */
@@ -39,16 +39,7 @@ public final class ByteStringUtils {
            return null;
            return null;
        }
        }


        final int byteLength = bytes.length;
        return HexEncoding.encodeToString(bytes, true /* upperCase */);
        final int charCount = 2 * byteLength;
        final char[] chars = new char[charCount];

        for (int i = 0; i < byteLength; i++) {
            final int byteHex = bytes[i] & 0xFF;
            chars[i * 2] = HEX_UPPERCASE_ARRAY[byteHex >>> 4];
            chars[i * 2 + 1] = HEX_UPPERCASE_ARRAY[byteHex & 0x0F];
        }
        return new String(chars);
    }
    }


    /**
    /**
@@ -61,24 +52,6 @@ public final class ByteStringUtils {
            return null;
            return null;
        }
        }


        final char[] chars = str.toCharArray();
        return HexEncoding.decode(str, false /* allowSingleChar */);
        final int charLength = chars.length;
        final byte[] bytes = new byte[charLength / 2];

        for (int i = 0; i < bytes.length; i++) {
            bytes[i] =
                    (byte) (((getIndex(chars[i * 2]) << 4) & 0xF0)
                            | (getIndex(chars[i * 2 + 1]) & 0x0F));
        }
        return bytes;
    }

    private static int getIndex(char c) {
        for (int i = 0; i < HEX_UPPERCASE_ARRAY.length; i++) {
            if (HEX_UPPERCASE_ARRAY[i] == c || HEX_LOWERCASE_ARRAY[i] == c) {
                return i;
            }
        }
        return -1;
    }
    }
}
}