diff --git a/libs/commons-codec.jar b/libs/commons-codec.jar deleted file mode 100644 index 957b6752..00000000 Binary files a/libs/commons-codec.jar and /dev/null differ diff --git a/libs/guava-r09.jar b/libs/guava-r09.jar deleted file mode 100644 index f8da8b1c..00000000 Binary files a/libs/guava-r09.jar and /dev/null differ diff --git a/src/net/sqlcipher/DatabaseUtils.java b/src/net/sqlcipher/DatabaseUtils.java index 6ed8b15c..785aa278 100644 --- a/src/net/sqlcipher/DatabaseUtils.java +++ b/src/net/sqlcipher/DatabaseUtils.java @@ -32,8 +32,6 @@ import java.util.HashMap; import java.util.Map; -import org.apache.commons.codec.binary.Hex; - import android.content.ContentValues; import android.content.OperationApplicationException; import android.os.Parcel; @@ -323,10 +321,23 @@ public static String getCollationKey(String name) { */ public static String getHexCollationKey(String name) { byte [] arr = getCollationKeyInBytes(name); - char[] keys = Hex.encodeHex(arr); + char[] keys = encodeHex(arr, HEX_DIGITS_LOWER); return new String(keys, 0, getKeyLen(arr) * 2); } + private static final char[] HEX_DIGITS_LOWER = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + + private static char[] encodeHex(final byte[] data, final char[] toDigits) { + final int l = data.length; + final char[] out = new char[l << 1]; + // two characters form the hex value. + for (int i = 0, j = 0; i < l; i++) { + out[j++] = toDigits[(0xF0 & data[i]) >>> 4]; + out[j++] = toDigits[0x0F & data[i]]; + } + return out; + } + private static int getKeyLen(byte[] arr) { if (arr[arr.length - 1] != 0) { return arr.length; diff --git a/src/net/sqlcipher/database/SQLiteDatabase.java b/src/net/sqlcipher/database/SQLiteDatabase.java index e37cd1ab..0832225e 100644 --- a/src/net/sqlcipher/database/SQLiteDatabase.java +++ b/src/net/sqlcipher/database/SQLiteDatabase.java @@ -52,8 +52,6 @@ import android.util.Log; import android.util.Pair; -import com.google.common.collect.Maps; - /** * Exposes methods to manage a SQLite database. *
SQLiteDatabase has methods to create, delete, execute SQL commands, and
@@ -320,7 +318,7 @@ public static void loadLibs (Context context, File workingDir)
* (@link setMaxCacheSize(int)}). its default is 0 - i.e., no caching by default because
* most of the apps don't use "?" syntax in their sql, caching is not useful for them.
*/
- /* package */ Map