fix: decode Logger.java and fix WARN/tag corruption
This commit is contained in:
@@ -1,95 +1,104 @@
|
||||
cGFja2FnZSBhbmRyb2lkLnNlcmlhbHBvcnQudXRpbHM7CgppbXBvcnQgYW5kcm9pZC5vcy5CdWls
|
||||
ZDsKCmltcG9ydCBqYXZhLnV0aWwuSWxsZWdhbEZvcm1hdEV4Y2VwdGlvbjsKCgovKioKICogQ3Jl
|
||||
YXRlZCBieSBBZGl0eWEgR2FuZ2FzYWdhciBvbiAxMy1KdWx5LTIwLgogKiBGb3IgQ3JvcERhdGEg
|
||||
VGVjaG5vbG9neSBQdnQuIEx0ZC4KICovCgpwdWJsaWMgY2xhc3MgTG9nZ2VyIHsKICAgIHByaXZh
|
||||
dGUgc3RhdGljIFN0cmluZyBUQUc9IlRFU1RfTE9HIjsKCiAgICBwdWJsaWMgc3RhdGljIGZpbmFs
|
||||
IGludCBWRVJCT1NFID0gYW5kcm9pZC51dGlsLkxvZy5WRVJCT1NFOwogICAgcHVibGljIHN0YXRp
|
||||
YyBmaW5hbCBpbnQgREVCVUcgPSBhbmRyb2lkLnV0aWwuTG9nLkRFQlVHOwogICAgcHVibGljIHN0
|
||||
YXRpYyBmaW5hbCBpbnQgSU5GTyA9IGFuZHJvaWQudXRpbC5Mb2cuSU5GTzsKICAgIHB1YmxpYyBz
|
||||
dGF0aWMgZmluYWwgaW50IFdBUk4gPSBhbmRyb2lkLnV0aWwuTG9nLldBUk47CiAgICBwdWJsaWMg
|
||||
c3RhdGljIGZpbmFsIGludCBFUlJPUiA9IGFuZHJvaWQudXRpbC5Mb2cuRVJST1I7CiAgICBwdWJs
|
||||
aWMgc3RhdGljIGZpbmFsIGludCBBU1NFUlQgPSBhbmRyb2lkLnV0aWwuTG9nLkFTU0VSVDsKCiAg
|
||||
ICBwcml2YXRlIExvZ2dlcigpIHt9CgogICAgcHVibGljIHN0YXRpYyBpbnQgdihmaW5hbCBTdHJp
|
||||
bmcgdGFnLCBmaW5hbCBTdHJpbmcgbXNnKSB7IHJldHVybiBsb2coVkVSQk9TRSwgdGFnLCBtc2cs
|
||||
IChUaHJvd2FibGUpIG51bGwpOyB9CiAgICBwdWJsaWMgc3RhdGljIGludCB2KGZpbmFsIFN0cmlu
|
||||
ZyB0YWcsIGZpbmFsIFN0cmluZyBtc2csIGZpbmFsIE9iamVjdC4uLiBhcmdzKSB7IHJldHVybiBs
|
||||
b2coVkVSQk9TRSwgdGFnLCBtc2csIGFyZ3MpOyB9CgogICAgcHVibGljIHN0YXRpYyBpbnQgZChm
|
||||
aW5hbCBTdHJpbmcgbXNnKSB7IHJldHVybiBsb2coREVCVUcsIFRBRywgbXNnLCAoVGhyb3dhYmxl
|
||||
KSBudWxsKTsgfQogICAgcHVibGljIHN0YXRpYyBpbnQgZChmaW5hbCBTdHJpbmcgdGFnLCBmaW5h
|
||||
bCBTdHJpbmcgbXNnKSB7IHJldHVybiBsb2coREVCVUcsIHRhZywgbXNnLCAoVGhyb3dhYmxlKSBu
|
||||
dWxsKTsgfQogICAgcHVibGljIHN0YXRpYyBpbnQgZChmaW5hbCBTdHJpbmcgdGFnLCBmaW5hbCBT
|
||||
dHJpbmcgbXNnLCBmaW5hbCBPYmplY3QuLi4gYXJncykgeyByZXR1cm4gbG9nKERFQlVHLCB0YWcs
|
||||
IG1zZywgYXJncyk7IH0KICAgIHB1YmxpYyBzdGF0aWMgaW50IGQoZmluYWwgU3RyaW5nIG1zZywg
|
||||
ZmluYWwgT2JqZWN0Li4uIGFyZ3MpIHsgcmV0dXJuIGxvZyhERUJVRywgVEFHLCBtc2csIGFyZ3Mp
|
||||
OyB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIGRMb25nKFN0cmluZyBUQUcsIFN0cmluZyBtZXNz
|
||||
YWdlKSB7CiAgICAgICAgaW50IG1heExvZ1NpemUgPSAyMDAwOwogICAgICAgIGZvciAoaW50IGkg
|
||||
PSAwOyBpIDw9IG1lc3NhZ2UubGVuZ3RoKCkgLyBtYXhMb2dTaXplOyBpKyspIHsKICAgICAgICAg
|
||||
ICAgaW50IHN0YXJ0ID0gaSAqIG1heExvZ1NpemU7CiAgICAgICAgICAgIGludCBlbmQgPSBNYXRo
|
||||
Lm1pbigoaSArIDEpICogbWF4TG9nU2l6ZSwgbWVzc2FnZS5sZW5ndGgoKSk7CiAgICAgICAgICAg
|
||||
IGFuZHJvaWQudXRpbC5Mb2cuZChUQUcsIG1lc3NhZ2Uuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKTsK
|
||||
ICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBpbnQgaShmaW5hbCBTdHJpbmcgdGFn
|
||||
LCBmaW5hbCBTdHJpbmcgbXNnKSB7IHJldHVybiBsb2coSU5GTywgdGFnLCBtc2csIChUaHJvd2Fi
|
||||
bGUpIG51bGwpOyB9CiAgICBwdWJsaWMgc3RhdGljIGludCBpKGZpbmFsIFN0cmluZyB0YWcsIGZp
|
||||
bmFsIFN0cmluZyBtc2csIGZpbmFsIE9iamVjdC4uLiBhcmdzKSB7IHJldHVybiBsb2coSU5GTywg
|
||||
dGFnLCBtc2csIGFyZ3MpOyB9CgogICAgcHVibGljIHN0YXRpYyBpbnQgdyhmaW5hbCBTdHJpbmcg
|
||||
dGFnLCBmaW5hbCBTdHJpbmcgbXNnKSB7IHJldHVybiBsb2coV0FSTiwgdGFnLCBtc2csIChUaHJv
|
||||
d2FibGUpIG51bGwpOyB9CiAgICBwdWJsaWMgc3RhdGljIGludCB3KGZpbmFsIFN0cmluZyB0YWcs
|
||||
IGZpbmFsIFN0cmluZyBtc2csIGZpbmFsIE9iamVjdC4uLiBhcmdzKSB7IHJldHVybiBsb2coV0FY
|
||||
Tiwgd…mFnLCBtc2csIGFyZ3MpOyB9CgogICAgcHVibGljIHN0YXRpYyBpbnQgZShmaW5hbCBTdHJp
|
||||
bmcgdGFnLCBmaW5hbCBTdHJpbmcgbXNnKSB7IHJldHVybiBsb2coRVJST1IsIHRhZywgbXNnLCAo
|
||||
VGhyb3dhYmxlKSBudWxsKTsgfQogICAgcHVibGljIHN0YXRpYyBpbnQgZShmaW5hbCBTdHJpbmcg
|
||||
dGFnLCBTdHJpbmcgbXNnLCBmaW5hbCBPYmplY3QuLi4gYXJncykgeyByZXR1cm4gbG9nKEVSUk9S
|
||||
LCB0YWcsIG1zZywgYXJncyk7IH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgZUxvbmcoU3RyaW5n
|
||||
IFRBRywgU3RyaW5nIG1lc3NhZ2UpIHsKICAgICAgICBpbnQgbWF4TG9nU2l6ZSA9IDIwMDA7CiAg
|
||||
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWVzc2FnZS5sZW5ndGgoKSAvIG1heExvZ1NpemU7
|
||||
IGkrKykgewogICAgICAgICAgICBpbnQgc3RhcnQgPSBpICogbWF4TG9nU2l6ZTsKICAgICAgICAg
|
||||
ICAgaW50IGVuZCA9IE1hdGgubWluKChpICsgMSkgKiBtYXhMb2dTaXplLCBtZXNzYWdlLmxlbmd0
|
||||
aCgpKTsKICAgICAgICAgICAgYW5kcm9pZC51dGlsLkxvZy5kKFRBRywgbWVzc2FnZS5zdWJzdHJp
|
||||
bmcoc3RhcnQsIGVuZCkpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGludCB3
|
||||
dGYoZmluYWwgU3RyaW5nIHRhZywgZmluYWwgU3RyaW5nIG1zZykgeyByZXR1cm4gbG9nKEFTU0VS
|
||||
VCwgdGFnLCBtc2csIChUaHJvd2FibGUpIG51bGwpOyB9CiAgICBwdWJsaWMgc3RhdGljIGludCB3
|
||||
dGYoZmluYWwgU3RyaW5nIHRhZywgZmluYWwgU3RyaW5nIG1zZywgZmluYWwgT2JqZWN0Li4uIGFy
|
||||
Z3MpIHsgcmV0dXJuIGxvZyhBU1NFUlQsIHRhZywgbXNnLCBhcmdzKTsgfQoKICAgIHB1YmxpYyBz
|
||||
dGF0aWMgYm9vbGVhbiBpc0xvZ2dhYmxlKGZpbmFsIFN0cmluZyB0YWcsIGludCBsZXZlbCkgeyBy
|
||||
ZXR1cm4gYW5kcm9pZC51dGlsLkxvZy5pc0xvZ2dhYmxlKHRhZywgbGV2ZWwpOyB9CgogICAgcHJp
|
||||
dmF0ZSBzdGF0aWMgaW50IGxvZyhmaW5hbCBpbnQgbGV2ZWwsIGZpbmFsIFN0cmluZyB0YWcsIGZp
|
||||
bmFsIFN0cmluZyBtc2csIGZpbmFsIE9iamVjdFtdIGFyZ3MpIHsKICAgICAgICBpZiAoYXJncyA9
|
||||
PSBudWxsIHx8IGFyZ3MubGVuZ3RoID09IDApIHsgcmV0dXJuIGxvZyhsZXZlbCwgdGFnLCBtc2cs
|
||||
IChUaHJvd2FibGUpIG51bGwpOyB9CiAgICAgICAgaW50IGwgPSBhcmdzLmxlbmd0aDsKICAgICAg
|
||||
ICBUaHJvd2FibGUgdHI7CiAgICAgICAgT2JqZWN0W10gZmFyZ3M7CiAgICAgICAgaWYgKGFyZ3Nb
|
||||
bCAtIDFdIGluc3RhbmNlb2YgVGhyb3dhYmxlKSB7CiAgICAgICAgICAgIGwgLT0gMTsgdHIgPSAo
|
||||
VGhyb3dhYmxlKSBhcmdzW2xdOyBmYXJncyA9IG5ldyBPYmplY3RbbF07IFN5c3RlbS5hcnJheWNv
|
||||
cHkoYXJncywgMCwgZmFyZ3MsIDAsIGwpOwogICAgICAgIH0gZWxzZSB7IHRyID0gbnVsbDsgZmFy
|
||||
Z3MgPSBhcmdzOyB9CiAgICAgICAgaWYgKGwgPT0gMCkgeyByZXR1cm4gbG9nKGxldmVsLCB0YWcs
|
||||
IG1zZywgdHIpOyB9CiAgICAgICAgcmV0dXJuIGxvZyhsZXZlbCwgdGFnLCBtc2csIGZhcmdzLCB0
|
||||
cik7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgaW50IGxvZyhmaW5hbCBpbnQgbGV2ZWwsIGZp
|
||||
bmFsIFN0cmluZyB0YWcsIGZpbmFsIFN0cmluZyBtc2csIGZpbmFsIE9iamVjdFtdIGFyZ3MsIGZp
|
||||
bmFsIFRocm93YWJsZSB0cikgewogICAgICAgIGlmIChtc2cuY29udGFpbnMoIiUiKSkgewogICAg
|
||||
ICAgICAgICB0cnkgeyByZXR1cm4gbG9nKGxldmVsLCB0YWcsIFN0cmluZy5mb3JtYXQobXNnLCBh
|
||||
cmdzKSwgdHIpOyB9IGNhdGNoIChJbGxlZ2FsRm9ybWF0RXhjZXB0aW9uIGUpIHt9CiAgICAgICAg
|
||||
fQogICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcihtc2cpOwogICAg
|
||||
ICAgIGZvciAoT2JqZWN0IGEgOiBhcmdzKSB7IHNiLmFwcGVuZChhKTsgfQogICAgICAgIHJldHVy
|
||||
biBsb2cobGV2ZWwsIHRhZywgc2IudG9TdHJpbmcoKSwgdHIpOwogICAgfQoKICAgIHByaXZhdGUg
|
||||
c3RhdGljIGludCBsb2coZmluYWwgaW50IGxldmVsLCBmaW5hbCBTdHJpbmcgdGFnLCBmaW5hbCBT
|
||||
dHJpbmcgbXNnLCBmaW5hbCBUaHJvd2FibGUgdHIpIHsKICAgICAgICBpZiAoIVNlcmlhbFBvcnRD
|
||||
b25zdGFudHMuTE9HX0VOQUJMRUQpIHsgcmV0dXJuIC0xOyB9CiAgICAgICAgdHJ5IHsgU2VyaWFs
|
||||
UG9ydEFwcFV0aWxzLmdldEluc3RhbmNlKCkuYXBwZW5kTG9nKG1zZyk7IH0gY2F0Y2ggKEV4Y2Vw
|
||||
dGlvbiBlKSB7fQogICAgICAgIHN3aXRjaCAobGV2ZWwpIHsKICAgICAgICAgICAgY2FzZSBWRVJC
|
||||
T1NFOiByZXR1cm4gdHIgPT0gbnVsbCA/IGFuZHJvaWQudXRpbC5Mb2cudih0YWcsIG1zZykgOiBh
|
||||
bmRyb2lkLnV0aWwuTG9nLnYodGFnLCBtc2csIHRyKTsKICAgICAgICAgICAgY2FzZSBERUJVRzog
|
||||
cmV0dXJuIHRyID09IG51bGwgPyBhbmRyb2lkLnV0aWwuTG9nLmQodGFnLCBtc2cpIDogYW5kcm9p
|
||||
ZC51dGlsLkxvZy5kKHRhZywgbXNnLCB0cik7CiAgICAgICAgICAgIGNhc2UgSU5GTzogcmV0dXJu
|
||||
IHRyID09IG51bGwgPyBhbmRyb2lkLnV0aWwuTG9nLmkodGFnLCBtc2cpIDogYW5kcm9pZC51dGls
|
||||
LkxvZy5pKHRhZywgbXNnLCB0cik7CiAgICAgICAgICAgIGNhc2UgV0FSTjogcmV0dXJuIHRyID09
|
||||
IG51bGwgPyBhbmRyb2lkLnV0aWwuTG9nLncodGFnLCBtc2cpIDogYW5kcm9pZC51dGlsLkxvZy53
|
||||
KHRhZywgbXNnLCB0cik7CiAgICAgICAgICAgIGNhc2UgRVJST1I6IHJldHVybiB0ciA9PSBudWxs
|
||||
ID8gYW5kcm9pZC51dGlsLkxvZy5lKHRhZywgbXNnKSA6IGFuZHJvaWQudXRpbC5Mb2cuZSh0YWcs
|
||||
IG1zZywgdHIpOwogICAgICAgICAgICBjYXNlIEFTU0VSVDoKICAgICAgICAgICAgICAgIGlmIChC
|
||||
dWlsZC5WRVJTSU9OLlNES19JTlQgPj0gQnVpbGQuVkVSU0lPTl9DT0RFUy5GUk9ZTykgewogICAg
|
||||
ICAgICAgICAgICAgICAgIHJldHVybiB0ciA9PSBudWxsID8gYW5kcm9pZC51dGlsLkxvZy53dGYo
|
||||
dGFnLCBtc2cpIDogYW5kcm9pZC51dGlsLkxvZy53dGYodGFnLCBtc2csIHRyKTsKICAgICAgICAg
|
||||
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyID09IG51bGwgPyBh
|
||||
bmRyb2lkLnV0aWwuTG9nLmUodGFnLCBtc2cpIDogYW5kcm9pZC51dGlsLkxvZy5lKHRhZywgbXNn
|
||||
LCB0cik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBJ
|
||||
bGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgbG9nIGxldmVsOiAiICsgbGV2ZWwpOwog
|
||||
ICAgICAgIH0KICAgIH0KfQo=
|
||||
package android.serialport.utils;
|
||||
|
||||
import android.os.Build;
|
||||
|
||||
import java.util.IllegalFormatException;
|
||||
|
||||
|
||||
/**
|
||||
* Created by Aditya Gangasagar on 13-July-20.
|
||||
* For CropData Technology Pvt. Ltd.
|
||||
*/
|
||||
|
||||
public class Logger {
|
||||
private static String TAG="TEST_LOG";
|
||||
|
||||
public static final int VERBOSE = android.util.Log.VERBOSE;
|
||||
public static final int DEBUG = android.util.Log.DEBUG;
|
||||
public static final int INFO = android.util.Log.INFO;
|
||||
public static final int WARN = android.util.Log.WARN;
|
||||
public static final int ERROR = android.util.Log.ERROR;
|
||||
public static final int ASSERT = android.util.Log.ASSERT;
|
||||
|
||||
private Logger() {}
|
||||
|
||||
public static int v(final String tag, final String msg) { return log(VERBOSE, tag, msg, (Throwable) null); }
|
||||
public static int v(final String tag, final String msg, final Object... args) { return log(VERBOSE, tag, msg, args); }
|
||||
|
||||
public static int d(final String msg) { return log(DEBUG, TAG, msg, (Throwable) null); }
|
||||
public static int d(final String tag, final String msg) { return log(DEBUG, tag, msg, (Throwable) null); }
|
||||
public static int d(final String tag, final String msg, final Object... args) { return log(DEBUG, tag, msg, args); }
|
||||
public static int d(final String msg, final Object... args) { return log(DEBUG, TAG, msg, args); }
|
||||
|
||||
public static void dLong(String TAG, String message) {
|
||||
int maxLogSize = 2000;
|
||||
for (int i = 0; i <= message.length() / maxLogSize; i++) {
|
||||
int start = i * maxLogSize;
|
||||
int end = Math.min((i + 1) * maxLogSize, message.length());
|
||||
android.util.Log.d(TAG, message.substring(start, end));
|
||||
}
|
||||
}
|
||||
|
||||
public static int i(final String tag, final String msg) { return log(INFO, tag, msg, (Throwable) null); }
|
||||
public static int i(final String tag, final String msg, final Object... args) { return log(INFO, tag, msg, args); }
|
||||
|
||||
public static int w(final String tag, final String msg) { return log(WARN, tag, msg, (Throwable) null); }
|
||||
public static int w(final String tag, final String msg, final Object... args) { return log(WARN, tag, msg, args); }
|
||||
|
||||
public static int e(final String tag, final String msg) { return log(ERROR, tag, msg, (Throwable) null); }
|
||||
public static int e(final String tag, String msg, final Object... args) { return log(ERROR, tag, msg, args); }
|
||||
|
||||
public static void eLong(String TAG, String message) {
|
||||
int maxLogSize = 2000;
|
||||
for (int i = 0; i <= message.length() / maxLogSize; i++) {
|
||||
int start = i * maxLogSize;
|
||||
int end = Math.min((i + 1) * maxLogSize, message.length());
|
||||
android.util.Log.d(TAG, message.substring(start, end));
|
||||
}
|
||||
}
|
||||
|
||||
public static int wtf(final String tag, final String msg) { return log(ASSERT, tag, msg, (Throwable) null); }
|
||||
public static int wtf(final String tag, final String msg, final Object... args) { return log(ASSERT, tag, msg, args); }
|
||||
|
||||
public static boolean isLoggable(final String tag, int level) { return android.util.Log.isLoggable(tag, level); }
|
||||
|
||||
private static int log(final int level, final String tag, final String msg, final Object[] args) {
|
||||
if (args == null || args.length == 0) { return log(level, tag, msg, (Throwable) null); }
|
||||
int l = args.length;
|
||||
Throwable tr;
|
||||
Object[] fargs;
|
||||
if (args[l - 1] instanceof Throwable) {
|
||||
l -= 1; tr = (Throwable) args[l]; fargs = new Object[l]; System.arraycopy(args, 0, fargs, 0, l);
|
||||
} else { tr = null; fargs = args; }
|
||||
if (l == 0) { return log(level, tag, msg, tr); }
|
||||
return log(level, tag, msg, fargs, tr);
|
||||
}
|
||||
|
||||
private static int log(final int level, final String tag, final String msg, final Object[] args, final Throwable tr) {
|
||||
if (msg.contains("%")) {
|
||||
try { return log(level, tag, String.format(msg, args), tr); } catch (IllegalFormatException e) {}
|
||||
}
|
||||
StringBuilder sb = new StringBuilder(msg);
|
||||
for (Object a : args) { sb.append(a); }
|
||||
return log(level, tag, sb.toString(), tr);
|
||||
}
|
||||
|
||||
private static int log(final int level, final String tag, final String msg, final Throwable tr) {
|
||||
if (!SerialPortConstants.LOG_ENABLED) { return -1; }
|
||||
try { SerialPortAppUtils.getInstance().appendLog(msg); } catch (Exception e) {}
|
||||
switch (level) {
|
||||
case VERBOSE: return tr == null ? android.util.Log.v(tag, msg) : android.util.Log.v(tag, msg, tr);
|
||||
case DEBUG: return tr == null ? android.util.Log.d(tag, msg) : android.util.Log.d(tag, msg, tr);
|
||||
case INFO: return tr == null ? android.util.Log.i(tag, msg) : android.util.Log.i(tag, msg, tr);
|
||||
case WARN: return tr == null ? android.util.Log.w(tag, msg) : android.util.Log.w(tag, msg, tr);
|
||||
case ERROR: return tr == null ? android.util.Log.e(tag, msg) : android.util.Log.e(tag, msg, tr);
|
||||
case ASSERT:
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
|
||||
return tr == null ? android.util.Log.wtf(tag, msg) : android.util.Log.wtf(tag, msg, tr);
|
||||
} else {
|
||||
return tr == null ? android.util.Log.e(tag, msg) : android.util.Log.e(tag, msg, tr);
|
||||
}
|
||||
default: throw new IllegalArgumentException("Invalid log level: " + level);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user