From 77a6e6107a421fc30af91ac1f0ac4efd0f2e036c Mon Sep 17 00:00:00 2001 From: TaaviE Date: Fri, 2 Oct 2020 02:02:58 +0300 Subject: [PATCH] Added a helper function and attribution to an existing one --- .../freeyourgadget/gadgetbridge/util/GB.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GB.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GB.java index 247d8ccb2..19dca62e0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GB.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GB.java @@ -187,20 +187,29 @@ public class GB { return GBApplication.getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE); } + public static final char[] HEX_CHARS = "0123456789ABCDEF".toCharArray(); + public static String hexdump(byte[] buffer, int offset, int length) { if (length == -1) { length = buffer.length - offset; } - final char[] hexArray = "0123456789ABCDEF".toCharArray(); + char[] hexChars = new char[length * 2]; for (int i = 0; i < length; i++) { int v = buffer[i + offset] & 0xFF; - hexChars[i * 2] = hexArray[v >>> 4]; - hexChars[i * 2 + 1] = hexArray[v & 0x0F]; + hexChars[i * 2] = HEX_CHARS[v >>> 4]; + hexChars[i * 2 + 1] = HEX_CHARS[v & 0x0F]; } return new String(hexChars); } + public static String hexdump(byte[] buffer) { + return hexdump(buffer, 0, buffer.length); + } + + /** + * https://stackoverflow.com/a/140861/4636860 + */ public static byte[] hexStringToByteArray(String s) { int len = s.length(); byte[] data = new byte[len / 2];