1b71bf819c59c4b8ea5e6a8b0929f5057ba6a01e1Sam Juddpackage com.bumptech.glide.util; 21060a63023f1e07fd579d0edd94256560f0eab7dSam Judd 3fcca8d79a3a04e71924d06799de2af46c923a84eSam Juddimport android.annotation.TargetApi; 4a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Juddimport android.graphics.Bitmap; 5a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Juddimport android.os.Build; 6a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd 71060a63023f1e07fd579d0edd94256560f0eab7dSam Juddpublic class Util { 896006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd private static final char[] hexArray = "0123456789abcdef".toCharArray(); 996006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd private static final char[] sha256Chars = new char[64]; //32 bytes from sha-256 -> 64 hex chars 101060a63023f1e07fd579d0edd94256560f0eab7dSam Judd 1196006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd public static String sha256BytesToHex(byte[] bytes) { 1296006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd return bytesToHex(bytes, sha256Chars); 1396006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd } 1496006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd 1596006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd // Taken from: 1696006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd // http://stackoverflow.com/questions/9655181/convert-from-byte-array-to-hex-string-in-java/9655275#9655275 1796006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd private static String bytesToHex(byte[] bytes, char[] hexChars) { 1896006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd int v; 1996006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd for ( int j = 0; j < bytes.length; j++ ) { 2096006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd v = bytes[j] & 0xFF; 2196006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd hexChars[j * 2] = hexArray[v >>> 4]; 2296006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd hexChars[j * 2 + 1] = hexArray[v & 0x0F]; 231060a63023f1e07fd579d0edd94256560f0eab7dSam Judd } 2496006426c97d4e4a3b4378585a847b50cd8b63d7Sam Judd return new String(hexChars); 251060a63023f1e07fd579d0edd94256560f0eab7dSam Judd } 26a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd 27a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd /** 28a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd * Returns the in memory size of the given {@link Bitmap}. 29a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd */ 30fcca8d79a3a04e71924d06799de2af46c923a84eSam Judd @TargetApi(19) 31a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd public static int getSize(Bitmap bitmap) { 32a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd if (Build.VERSION.SDK_INT >= 19) { 33a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd return bitmap.getAllocationByteCount(); 34a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd } else { 35a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd return bitmap.getHeight() * bitmap.getRowBytes(); 36a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd } 37a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd } 38a55e2011ddbc4c2bac3789903ec338b892aacf10Sam Judd 391060a63023f1e07fd579d0edd94256560f0eab7dSam Judd} 40