diff --git a/app/src/main/java/org/fdroid/fdroid/Utils.java b/app/src/main/java/org/fdroid/fdroid/Utils.java index c6bb9b571..1d66b371a 100644 --- a/app/src/main/java/org/fdroid/fdroid/Utils.java +++ b/app/src/main/java/org/fdroid/fdroid/Utils.java @@ -145,7 +145,7 @@ public final class Utils { InputStream input = null; OutputStream output = null; try { - input = new FileInputStream(inFile); + input = new FileInputStream(inFile); output = new FileOutputStream(outFile); Utils.copy(input, output); return true; @@ -372,6 +372,11 @@ public final class Utils { } } + /** + * Get the checksum hash of the file {@code apk} using the algorithm in {@code algo}. + * {@code apk} must exist on the filesystem and {@code algo} must be supported + * by this device, otherwise an {@link IllegalArgumentException} is thrown. + */ public static String getBinaryHash(File apk, String algo) { FileInputStream fis = null; try { @@ -387,13 +392,8 @@ public final class Utils { byte[] mdbytes = md.digest(); return toHexString(mdbytes).toLowerCase(Locale.ENGLISH); - } catch (IOException e) { - Log.e(TAG, "Error reading \"" + apk.getAbsolutePath() - + "\" to compute " + algo + " hash.", e); - return null; - } catch (NoSuchAlgorithmException e) { - Log.e(TAG, "Device does not support " + algo + " MessageDisgest algorithm"); - return null; + } catch (IOException | NoSuchAlgorithmException e) { + throw new IllegalArgumentException(e); } finally { closeQuietly(fis); } @@ -476,7 +476,7 @@ public final class Utils { @Override public void handleTag(boolean opening, String tag, Editable output, - XMLReader reader) { + XMLReader reader) { switch (tag) { case "ul": if (opening) { @@ -525,7 +525,7 @@ public final class Utils { String versionName = null; try { versionName = context.getPackageManager() - .getPackageInfo(context.getPackageName(), 0).versionName; + .getPackageInfo(context.getPackageName(), 0).versionName; } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, "Could not get client version name", e); }