diff --git a/.gradle/7.3.3/checksums/checksums.lock b/.gradle/7.3.3/checksums/checksums.lock index 1aa4629..589627f 100644 Binary files a/.gradle/7.3.3/checksums/checksums.lock and b/.gradle/7.3.3/checksums/checksums.lock differ diff --git a/.gradle/7.3.3/checksums/md5-checksums.bin b/.gradle/7.3.3/checksums/md5-checksums.bin index dc3ae77..15445af 100644 Binary files a/.gradle/7.3.3/checksums/md5-checksums.bin and b/.gradle/7.3.3/checksums/md5-checksums.bin differ diff --git a/.gradle/7.3.3/checksums/sha1-checksums.bin b/.gradle/7.3.3/checksums/sha1-checksums.bin index ed4d561..6329ebd 100644 Binary files a/.gradle/7.3.3/checksums/sha1-checksums.bin and b/.gradle/7.3.3/checksums/sha1-checksums.bin differ diff --git a/.gradle/7.3.3/executionHistory/executionHistory.bin b/.gradle/7.3.3/executionHistory/executionHistory.bin index 448fe25..af1800c 100644 Binary files a/.gradle/7.3.3/executionHistory/executionHistory.bin and b/.gradle/7.3.3/executionHistory/executionHistory.bin differ diff --git a/.gradle/7.3.3/executionHistory/executionHistory.lock b/.gradle/7.3.3/executionHistory/executionHistory.lock index f090386..78d1323 100644 Binary files a/.gradle/7.3.3/executionHistory/executionHistory.lock and b/.gradle/7.3.3/executionHistory/executionHistory.lock differ diff --git a/.gradle/7.3.3/fileHashes/fileHashes.bin b/.gradle/7.3.3/fileHashes/fileHashes.bin index ce77db5..a25a2ea 100644 Binary files a/.gradle/7.3.3/fileHashes/fileHashes.bin and b/.gradle/7.3.3/fileHashes/fileHashes.bin differ diff --git a/.gradle/7.3.3/fileHashes/fileHashes.lock b/.gradle/7.3.3/fileHashes/fileHashes.lock index 2861543..0472718 100644 Binary files a/.gradle/7.3.3/fileHashes/fileHashes.lock and b/.gradle/7.3.3/fileHashes/fileHashes.lock differ diff --git a/.gradle/7.3.3/fileHashes/resourceHashesCache.bin b/.gradle/7.3.3/fileHashes/resourceHashesCache.bin index a8e79d4..b266af7 100644 Binary files a/.gradle/7.3.3/fileHashes/resourceHashesCache.bin and b/.gradle/7.3.3/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 99b4613..7955758 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 5674d5f..9167928 100644 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 632e9b3..770e428 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/app/build.gradle b/app/build.gradle index 5a0b6ed..b54e9d8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -31,8 +31,8 @@ android { applicationId "com.coldmint.rust.pro" minSdkVersion 21 targetSdkVersion 33 - versionCode 25 - versionName "2.1 Bata3(2023-1-27)" + versionCode 26 + versionName "2.1 Bata4(2023-1-28)" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/mapping.txt b/app/mapping.txt index cbf02ca..15b4155 100644 --- a/app/mapping.txt +++ b/app/mapping.txt @@ -67605,7 +67605,7 @@ com.bumptech.glide.disklrucache.DiskLruCache$Entry -> com.bumptech.glide.disklru 1:1:java.io.File getDirtyFile(int):874:874 -> k 1:3:java.lang.String getLengths():843:845 -> l 4:4:java.lang.String getLengths():847:847 -> l - 1:1:java.io.IOException invalidLengths(java.lang.String[]):866:866 -> m + 1:1:java.io.Exception invalidLengths(java.lang.String[]):866:866 -> m 1:1:void setLengths(java.lang.String[]):852:852 -> n 2:3:void setLengths(java.lang.String[]):857:858 -> n 4:4:void setLengths(java.lang.String[]):861:861 -> n @@ -71378,8 +71378,8 @@ com.bumptech.glide.load.resource.bitmap.Downsampler -> com.bumptech.glide.load.r 2:2:void logDecode(int,int,java.lang.String,android.graphics.BitmapFactory$Options,android.graphics.Bitmap,int,int,long):623:623 -> p 3:4:void logDecode(int,int,java.lang.String,android.graphics.BitmapFactory$Options,android.graphics.Bitmap,int,int,long):628:629 -> p 5:5:void logDecode(int,int,java.lang.String,android.graphics.BitmapFactory$Options,android.graphics.Bitmap,int,int,long):621:621 -> p - 1:1:java.io.IOException newIoExceptionForInBitmapAssertion(java.lang.IllegalArgumentException,int,int,java.lang.String,android.graphics.BitmapFactory$Options):655:655 -> q - 2:2:java.io.IOException newIoExceptionForInBitmapAssertion(java.lang.IllegalArgumentException,int,int,java.lang.String,android.graphics.BitmapFactory$Options):659:659 -> q + 1:1:java.io.Exception newExceptionForInBitmapAssertion(java.lang.IllegalArgumentException,int,int,java.lang.String,android.graphics.BitmapFactory$Options):655:655 -> q + 2:2:java.io.Exception newExceptionForInBitmapAssertion(java.lang.IllegalArgumentException,int,int,java.lang.String,android.graphics.BitmapFactory$Options):659:659 -> q 1:4:void releaseOptions(android.graphics.BitmapFactory$Options):703:706 -> r 1:13:void resetOptions(android.graphics.BitmapFactory$Options):711:723 -> s int round(double) -> t @@ -71504,7 +71504,7 @@ com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream -> com.bum 1:3:void close():130:132 -> close 4:5:void close():134:135 -> close 6:6:void close():137:137 -> close - 1:1:java.io.IOException streamClosed():99:99 -> d + 1:1:java.io.Exception streamClosed():99:99 -> d 1:3:void mark(int):200:202 -> mark 1:2:int read():230:231 -> read 3:3:int read():237:237 -> read @@ -73758,12 +73758,12 @@ com.bumptech.glide.util.ContentLengthInputStream -> com.bumptech.glide.util.b: com.bumptech.glide.util.ExceptionCatchingInputStream -> com.bumptech.glide.util.c: java.util.Queue QUEUE -> c java.io.InputStream wrapped -> a - java.io.IOException exception -> b + java.io.Exception exception -> b 1:1:void ():19:19 -> 1:1:void ():44:44 -> 1:2:void clearQueue():39:40 -> a 1:1:int available():54:54 -> available - 1:1:java.io.IOException getException():127:127 -> b + 1:1:java.io.Exception getException():127:127 -> b 1:3:com.bumptech.glide.util.ExceptionCatchingInputStream obtain(java.io.InputStream):27:29 -> c 4:4:com.bumptech.glide.util.ExceptionCatchingInputStream obtain(java.io.InputStream):31:31 -> c 5:5:com.bumptech.glide.util.ExceptionCatchingInputStream obtain(java.io.InputStream):33:33 -> c @@ -80022,12 +80022,12 @@ com.coldmint.rust.core.iflynote.IFlyNoteAPi$getCode$1 -> m.e$a: 1:5:void onResponse(okhttp3.Call,okhttp3.Response):69:73 -> a 6:8:void onResponse(okhttp3.Call,okhttp3.Response):75:77 -> a 9:9:void onResponse(okhttp3.Call,okhttp3.Response):80:80 -> a - 1:1:void onFailure(okhttp3.Call,java.io.IOException):64:64 -> b + 1:1:void onFailure(okhttp3.Call,java.io.Exception):64:64 -> b void $r8$lambda$FVi_IFJplmesumSnn19tL8yLhSM(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.iflynote.dataBean.DocData) -> c - void $r8$lambda$IEr9Zunn2MTJVsmRZrMPfZupfvU(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException) -> d + void $r8$lambda$IEr9Zunn2MTJVsmRZrMPfZupfvU(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception) -> d void $r8$lambda$o-TJR8eEdzATcOMeI8uFYMjKSII(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.String) -> e void $r8$lambda$uATSwPmnPU5NJ1GaRglL2OipzXI(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.iflynote.dataBean.NoteData) -> f - 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException):64:64 -> g + 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception):64:64 -> g 1:1:void onResponse$lambda-1(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.iflynote.dataBean.NoteData):73:73 -> h 1:1:void onResponse$lambda-2(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.iflynote.dataBean.DocData):77:77 -> i 1:1:void onResponse$lambda-3(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.String):80:80 -> j @@ -80626,11 +80626,11 @@ com.coldmint.rust.core.web.User$Companion$activateAccount$1 -> r.e$a$a: 1:1:void onResponse(okhttp3.Call,okhttp3.Response):48:48 -> a 2:3:void onResponse(okhttp3.Call,okhttp3.Response):50:51 -> a 4:5:void onResponse(okhttp3.Call,okhttp3.Response):55:56 -> a - 1:2:void onFailure(okhttp3.Call,java.io.IOException):42:43 -> b + 1:2:void onFailure(okhttp3.Call,java.io.Exception):42:43 -> b void $r8$lambda$3m0IADyBNZRbmo7yOkZzpQZQQC0(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.ApiResponse) -> c void $r8$lambda$ChCQroczIBqnhBdRBFQI49wgvoI(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception) -> d - void $r8$lambda$pqw46I-_Fy9kyoOMS8nWQeVsa_A(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException) -> e - 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException):43:43 -> f + void $r8$lambda$pqw46I-_Fy9kyoOMS8nWQeVsa_A(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception) -> e + 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception):43:43 -> f 1:1:void onResponse$lambda-1(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.ApiResponse):52:52 -> g 1:1:void onResponse$lambda-2(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception):57:57 -> h com.coldmint.rust.core.web.User$Companion$getSocialInfo$1 -> r.e$a$b: @@ -80642,11 +80642,11 @@ com.coldmint.rust.core.web.User$Companion$getSocialInfo$1 -> r.e$a$b: 1:1:void onResponse(okhttp3.Call,okhttp3.Response):89:89 -> a 2:3:void onResponse(okhttp3.Call,okhttp3.Response):91:92 -> a 4:5:void onResponse(okhttp3.Call,okhttp3.Response):96:97 -> a - 1:2:void onFailure(okhttp3.Call,java.io.IOException):83:84 -> b + 1:2:void onFailure(okhttp3.Call,java.io.Exception):83:84 -> b void $r8$lambda$H_IHH-GFQt2-njO_YEebotOhC6U(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception) -> c void $r8$lambda$PhARra_gg1YDyLa2Gl9R07PcsNc(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.SocialInfoData) -> d - void $r8$lambda$dZ_zHG_kUqZP7KMtrNkOHZDtq6A(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException) -> e - 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException):84:84 -> f + void $r8$lambda$dZ_zHG_kUqZP7KMtrNkOHZDtq6A(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception) -> e + 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception):84:84 -> f 1:1:void onResponse$lambda-1(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.SocialInfoData):93:93 -> g 1:1:void onResponse$lambda-2(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception):98:98 -> h com.coldmint.rust.core.web.User$login$1 -> r.e$b: @@ -80660,11 +80660,11 @@ com.coldmint.rust.core.web.User$login$1 -> r.e$b: 7:8:void onResponse(okhttp3.Call,okhttp3.Response):151:152 -> a 9:9:void onResponse(okhttp3.Call,okhttp3.Response):154:154 -> a 10:10:void onResponse(okhttp3.Call,okhttp3.Response):152:152 -> a - 1:2:void onFailure(okhttp3.Call,java.io.IOException):137:138 -> b - void $r8$lambda$9SW4GCuhrG2PTYFgme5Y_ESe9VM(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException) -> c + 1:2:void onFailure(okhttp3.Call,java.io.Exception):137:138 -> b + void $r8$lambda$9SW4GCuhrG2PTYFgme5Y_ESe9VM(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception) -> c void $r8$lambda$L1XosbjiMV9apeyeg_wzaorid7g(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.UserData) -> d void $r8$lambda$zDiP2W4pEPRi8g8_iNsXLcFtVUc(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception) -> e - 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException):138:138 -> f + 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception):138:138 -> f 1:1:void onResponse$lambda-1(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.UserData):148:148 -> g 1:1:void onResponse$lambda-2(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception):153:153 -> h com.coldmint.rust.core.web.User$register$1 -> r.e$c: @@ -80678,11 +80678,11 @@ com.coldmint.rust.core.web.User$register$1 -> r.e$c: 6:7:void onResponse(okhttp3.Call,okhttp3.Response):182:183 -> a 8:8:void onResponse(okhttp3.Call,okhttp3.Response):185:185 -> a 9:9:void onResponse(okhttp3.Call,okhttp3.Response):183:183 -> a - 1:1:void onFailure(okhttp3.Call,java.io.IOException):170:170 -> b - void $r8$lambda$oQ54xFVU_Ggo33z6NA-SklbM90o(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException) -> c + 1:1:void onFailure(okhttp3.Call,java.io.Exception):170:170 -> b + void $r8$lambda$oQ54xFVU_Ggo33z6NA-SklbM90o(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception) -> c void $r8$lambda$tBBqs8Wiu7ZAKBhGSohdn9cHf50(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.ApiResponse) -> d void $r8$lambda$ztrpDYKIX4ViGSuruzrZF_qUKhc(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception) -> e - 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException):170:170 -> f + 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception):170:170 -> f 1:1:void onResponse$lambda-1(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.ApiResponse):179:179 -> g 1:1:void onResponse$lambda-2(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception):184:184 -> h com.coldmint.rust.core.web.WebMod -> r.r: @@ -80702,11 +80702,11 @@ com.coldmint.rust.core.web.WebMod$Companion$list$1 -> r.r$a$a: 1:1:void (android.os.Handler,com.coldmint.rust.core.interfaces.ApiCallBack,com.google.gson.Gson):26:26 -> 1:3:void onResponse(okhttp3.Call,okhttp3.Response):34:36 -> a 4:5:void onResponse(okhttp3.Call,okhttp3.Response):40:41 -> a - 1:2:void onFailure(okhttp3.Call,java.io.IOException):28:29 -> b + 1:2:void onFailure(okhttp3.Call,java.io.Exception):28:29 -> b void $r8$lambda$CzUGRJ-ev_CuPP8v9eLfamA-PzY(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.WebModData) -> c void $r8$lambda$rOB5TZmseTyBtHk1dXnfaASEa9g(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception) -> d - void $r8$lambda$xnVPHNaCde2e-O5SYgG_mTV6lTA(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException) -> e - 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException):29:29 -> f + void $r8$lambda$xnVPHNaCde2e-O5SYgG_mTV6lTA(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception) -> e + 1:1:void onFailure$lambda-0(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception):29:29 -> f 1:1:void onResponse$lambda-1(com.coldmint.rust.core.interfaces.ApiCallBack,com.coldmint.rust.core.web.dataBean.WebModData):37:37 -> g 1:1:void onResponse$lambda-2(com.coldmint.rust.core.interfaces.ApiCallBack,java.lang.Exception):42:42 -> h com.coldmint.rust.core.web.dataBean.ApiResponse -> s.a: @@ -91661,11 +91661,11 @@ com.efs.sdk.net.OkHttpListener -> com.efs.sdk.net.OkHttpListener: 4:4:void callEnd(okhttp3.Call):314:314 -> callEnd 5:6:void callEnd(okhttp3.Call):310:311 -> callEnd 7:7:void callEnd(okhttp3.Call):317:317 -> callEnd - 1:1:void callFailed(okhttp3.Call,java.io.IOException):323:323 -> callFailed - 2:3:void callFailed(okhttp3.Call,java.io.IOException):325:326 -> callFailed - 4:4:void callFailed(okhttp3.Call,java.io.IOException):330:330 -> callFailed - 5:6:void callFailed(okhttp3.Call,java.io.IOException):327:328 -> callFailed - 7:7:void callFailed(okhttp3.Call,java.io.IOException):333:333 -> callFailed + 1:1:void callFailed(okhttp3.Call,java.io.Exception):323:323 -> callFailed + 2:3:void callFailed(okhttp3.Call,java.io.Exception):325:326 -> callFailed + 4:4:void callFailed(okhttp3.Call,java.io.Exception):330:330 -> callFailed + 5:6:void callFailed(okhttp3.Call,java.io.Exception):327:328 -> callFailed + 7:7:void callFailed(okhttp3.Call,java.io.Exception):333:333 -> callFailed 1:1:void callStart(okhttp3.Call):55:55 -> callStart 2:4:void callStart(okhttp3.Call):57:59 -> callStart 5:5:void callStart(okhttp3.Call):61:61 -> callStart @@ -91680,11 +91680,11 @@ com.efs.sdk.net.OkHttpListener -> com.efs.sdk.net.OkHttpListener: 4:4:void connectEnd(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol):160:160 -> connectEnd 5:5:void connectEnd(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol):158:158 -> connectEnd 6:6:void connectEnd(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol):163:163 -> connectEnd - 1:1:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.IOException):169:169 -> connectFailed - 2:3:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.IOException):171:172 -> connectFailed - 4:4:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.IOException):176:176 -> connectFailed - 5:6:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.IOException):173:174 -> connectFailed - 7:7:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.IOException):179:179 -> connectFailed + 1:1:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.Exception):169:169 -> connectFailed + 2:3:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.Exception):171:172 -> connectFailed + 4:4:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.Exception):176:176 -> connectFailed + 5:6:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.Exception):173:174 -> connectFailed + 7:7:void connectFailed(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy,okhttp3.Protocol,java.io.Exception):179:179 -> connectFailed 1:1:void connectStart(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy):107:107 -> connectStart 2:3:void connectStart(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy):109:110 -> connectStart 4:4:void connectStart(okhttp3.Call,java.net.InetSocketAddress,java.net.Proxy):113:113 -> connectStart @@ -108799,7 +108799,7 @@ com.google.gson.JsonElement -> com.google.gson.l: 1:5:java.lang.String toString():313:317 -> toString 6:6:java.lang.String toString():319:319 -> toString 1:1:boolean isJsonPrimitive():65:65 -> u -com.google.gson.JsonIOException -> com.google.gson.m: +com.google.gson.JsonException -> com.google.gson.m: long serialVersionUID -> b 1:1:void (java.lang.String):29:29 -> 2:2:void (java.lang.String,java.lang.Throwable):33:33 -> @@ -110963,7 +110963,7 @@ com.google.gson.stream.JsonReader -> com.google.gson.stream.a: 10:10:void skipValue():1247:1247 -> l0 11:11:void skipValue():1255:1255 -> l0 12:13:void skipValue():1258:1259 -> l0 - 1:1:java.io.IOException syntaxError(java.lang.String):1562:1562 -> m0 + 1:1:java.io.Exception syntaxError(java.lang.String):1562:1562 -> m0 1:3:java.lang.String getPath():1462:1464 -> q 4:6:java.lang.String getPath():1473:1475 -> q 7:7:java.lang.String getPath():1467:1467 -> q @@ -143324,12 +143324,12 @@ kotlin.io.FilesKt__UtilsKt -> kotlin.io.q: kotlin.io.FilesKt__UtilsKt$copyRecursively$1 -> kotlin.io.q$a: # {"id":"sourceFile","fileName":"Utils.kt"} kotlin.io.FilesKt__UtilsKt$copyRecursively$1 INSTANCE -> a - 1:1:java.lang.Void invoke(java.io.File,java.io.IOException):291:291 -> a + 1:1:java.lang.Void invoke(java.io.File,java.io.Exception):291:291 -> a 1:1:java.lang.Object invoke(java.lang.Object,java.lang.Object):291:291 -> invoke kotlin.io.FilesKt__UtilsKt$copyRecursively$2 -> kotlin.io.q$b: # {"id":"sourceFile","fileName":"Utils.kt"} kotlin.jvm.functions.Function2 $onError -> a - 1:1:void invoke(java.io.File,java.io.IOException):299:299 -> a + 1:1:void invoke(java.io.File,java.io.Exception):299:299 -> a 1:1:java.lang.Object invoke(java.lang.Object,java.lang.Object):299:299 -> invoke kotlin.io.LineReader -> kotlin.io.r: # {"id":"sourceFile","fileName":"Console.kt"} @@ -160667,8 +160667,8 @@ l.InputParserDataBean$$ExternalSyntheticOutline0 -> l.a: int com.coldmint.rust.core.dataBean.InputParserDataBean$$InternalSyntheticOutline$9$43c6e9a6682936d0d73d7540684449d85e4a4f5a97637c717abd6469ef665de3$0.m(java.lang.String,int,int) -> a m.IFlyNoteAPi$getCode$1$$ExternalSyntheticLambda0 -> m.a: com.coldmint.rust.core.interfaces.ApiCallBack com.coldmint.rust.core.iflynote.IFlyNoteAPi$getCode$1$$InternalSyntheticLambda$0$09dc785f8f6a4d524681713a24a020f419593dfe5c4cf6f171f90d9dc24da9a2$0.f$0 -> a - java.io.IOException com.coldmint.rust.core.iflynote.IFlyNoteAPi$getCode$1$$InternalSyntheticLambda$0$09dc785f8f6a4d524681713a24a020f419593dfe5c4cf6f171f90d9dc24da9a2$0.f$1 -> b - void com.coldmint.rust.core.iflynote.IFlyNoteAPi$getCode$1$$InternalSyntheticLambda$0$09dc785f8f6a4d524681713a24a020f419593dfe5c4cf6f171f90d9dc24da9a2$0.(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException) -> + java.io.Exception com.coldmint.rust.core.iflynote.IFlyNoteAPi$getCode$1$$InternalSyntheticLambda$0$09dc785f8f6a4d524681713a24a020f419593dfe5c4cf6f171f90d9dc24da9a2$0.f$1 -> b + void com.coldmint.rust.core.iflynote.IFlyNoteAPi$getCode$1$$InternalSyntheticLambda$0$09dc785f8f6a4d524681713a24a020f419593dfe5c4cf6f171f90d9dc24da9a2$0.(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception) -> void com.coldmint.rust.core.iflynote.IFlyNoteAPi$getCode$1$$InternalSyntheticLambda$0$09dc785f8f6a4d524681713a24a020f419593dfe5c4cf6f171f90d9dc24da9a2$0.run() -> run m.IFlyNoteAPi$getCode$1$$ExternalSyntheticLambda1 -> m.b: com.coldmint.rust.core.interfaces.ApiCallBack com.coldmint.rust.core.iflynote.IFlyNoteAPi$getCode$1$$InternalSyntheticLambda$0$d043a00f994d1295522b97c4f7e2080fe954709fe3c31b2deb5a40b45f62d25d$2.f$0 -> a @@ -161056,7 +161056,7 @@ okhttp3.Call$Factory -> okhttp3.e$a: okhttp3.Callback -> okhttp3.f: # {"id":"sourceFile","fileName":"Callback.kt"} void onResponse(okhttp3.Call,okhttp3.Response) -> a - void onFailure(okhttp3.Call,java.io.IOException) -> b + void onFailure(okhttp3.Call,java.io.Exception) -> b okhttp3.CertificatePinner -> okhttp3.g: # {"id":"sourceFile","fileName":"CertificatePinner.kt"} okhttp3.internal.tls.CertificateChainCleaner certificateChainCleaner -> b @@ -163450,7 +163450,7 @@ okhttp3.internal.Util -> okhttp3.internal.d: 1:1:boolean hasIntersection(java.lang.String[],java.lang.String[],java.util.Comparator):141:141 -> w 2:4:boolean hasIntersection(java.lang.String[],java.lang.String[],java.util.Comparator):144:146 -> w 1:1:long headersContentLength(okhttp3.Response):437:437 -> x - 1:1:void ignoreIoExceptions(kotlin.jvm.functions.Function0):396:396 -> y + 1:1:void ignoreExceptions(kotlin.jvm.functions.Function0):396:396 -> y 1:1:java.util.List immutableListOf(java.lang.Object[]):473:473 -> z okhttp3.internal.Util$asFactory$1 -> okhttp3.internal.d$a: # {"id":"sourceFile","fileName":"Util.kt"} @@ -163846,7 +163846,7 @@ okhttp3.internal.cache.DiskLruCache$Editor$newSink$$inlined$synchronized$lambda$ # {"id":"sourceFile","fileName":"DiskLruCache.kt"} int $index$inlined -> b okhttp3.internal.cache.DiskLruCache$Editor this$0 -> a - 1:4:void invoke(java.io.IOException):885:885 -> a + 1:4:void invoke(java.io.Exception):885:885 -> a 1:1:java.lang.Object invoke(java.lang.Object):825:825 -> invoke okhttp3.internal.cache.DiskLruCache$Entry -> okhttp3.internal.cache.d$c: # {"id":"sourceFile","fileName":"DiskLruCache.kt"} @@ -163930,9 +163930,9 @@ okhttp3.internal.cache.DiskLruCache$cleanupTask$1 -> okhttp3.internal.cache.d$e: okhttp3.internal.cache.DiskLruCache$newJournalWriter$faultHidingSink$1 -> okhttp3.internal.cache.d$f: # {"id":"sourceFile","fileName":"DiskLruCache.kt"} okhttp3.internal.cache.DiskLruCache this$0 -> a - 1:1:void invoke(java.io.IOException):304:304 -> a - 2:3:void invoke(java.io.IOException):1066:1067 -> a - 4:4:void invoke(java.io.IOException):305:305 -> a + 1:1:void invoke(java.io.Exception):304:304 -> a + 2:3:void invoke(java.io.Exception):1066:1067 -> a + 4:4:void invoke(java.io.Exception):305:305 -> a 1:1:java.lang.Object invoke(java.lang.Object):87:87 -> invoke okhttp3.internal.cache.DiskLruCache$snapshots$1 -> okhttp3.internal.cache.d$g: # {"id":"sourceFile","fileName":"DiskLruCache.kt"} @@ -164338,13 +164338,13 @@ okhttp3.internal.connection.ConnectionSpecSelector -> okhttp3.internal.connectio 5:5:okhttp3.ConnectionSpec configureSecureSocket(javax.net.ssl.SSLSocket):68:68 -> a 6:6:okhttp3.ConnectionSpec configureSecureSocket(javax.net.ssl.SSLSocket):70:70 -> a 7:10:okhttp3.ConnectionSpec configureSecureSocket(javax.net.ssl.SSLSocket):63:63 -> a - 1:1:boolean connectionFailed(java.io.IOException):83:83 -> b - 2:2:boolean connectionFailed(java.io.IOException):86:86 -> b - 3:3:boolean connectionFailed(java.io.IOException):89:89 -> b - 4:4:boolean connectionFailed(java.io.IOException):94:94 -> b - 5:5:boolean connectionFailed(java.io.IOException):97:97 -> b - 6:6:boolean connectionFailed(java.io.IOException):100:100 -> b - 7:7:boolean connectionFailed(java.io.IOException):103:103 -> b + 1:1:boolean connectionFailed(java.io.Exception):83:83 -> b + 2:2:boolean connectionFailed(java.io.Exception):86:86 -> b + 3:3:boolean connectionFailed(java.io.Exception):89:89 -> b + 4:4:boolean connectionFailed(java.io.Exception):94:94 -> b + 5:5:boolean connectionFailed(java.io.Exception):97:97 -> b + 6:6:boolean connectionFailed(java.io.Exception):100:100 -> b + 7:7:boolean connectionFailed(java.io.Exception):103:103 -> b 1:2:boolean isFallbackPossible(javax.net.ssl.SSLSocket):115:116 -> c okhttp3.internal.connection.Exchange -> okhttp3.internal.connection.c: # {"id":"sourceFile","fileName":"Exchange.kt"} @@ -164356,12 +164356,12 @@ okhttp3.internal.connection.Exchange -> okhttp3.internal.connection.c: okhttp3.internal.connection.RealConnection connection -> b 1:1:void (okhttp3.internal.connection.RealCall,okhttp3.EventListener,okhttp3.internal.connection.ExchangeFinder,okhttp3.internal.http.ExchangeCodec):40:40 -> 2:2:void (okhttp3.internal.connection.RealCall,okhttp3.EventListener,okhttp3.internal.connection.ExchangeFinder,okhttp3.internal.http.ExchangeCodec):50:50 -> - 1:1:java.io.IOException bodyComplete(long,boolean,boolean,java.io.IOException):177:177 -> a - 2:2:java.io.IOException bodyComplete(long,boolean,boolean,java.io.IOException):181:181 -> a - 3:3:java.io.IOException bodyComplete(long,boolean,boolean,java.io.IOException):183:183 -> a - 4:4:java.io.IOException bodyComplete(long,boolean,boolean,java.io.IOException):188:188 -> a - 5:5:java.io.IOException bodyComplete(long,boolean,boolean,java.io.IOException):190:190 -> a - 6:6:java.io.IOException bodyComplete(long,boolean,boolean,java.io.IOException):193:193 -> a + 1:1:java.io.Exception bodyComplete(long,boolean,boolean,java.io.Exception):177:177 -> a + 2:2:java.io.Exception bodyComplete(long,boolean,boolean,java.io.Exception):181:181 -> a + 3:3:java.io.Exception bodyComplete(long,boolean,boolean,java.io.Exception):183:183 -> a + 4:4:java.io.Exception bodyComplete(long,boolean,boolean,java.io.Exception):188:188 -> a + 5:5:java.io.Exception bodyComplete(long,boolean,boolean,java.io.Exception):190:190 -> a + 6:6:java.io.Exception bodyComplete(long,boolean,boolean,java.io.Exception):193:193 -> a 1:1:void cancel():153:153 -> b 1:5:okio.Sink createRequestBody(okhttp3.Request,boolean):70:74 -> c 1:2:void detachWithViolence():161:162 -> d @@ -164384,7 +164384,7 @@ okhttp3.internal.connection.Exchange -> okhttp3.internal.connection.c: 3:5:okhttp3.Response$Builder readResponseHeaders(boolean):110:112 -> q 1:1:void responseHeadersEnd(okhttp3.Response):117:117 -> r 1:1:void responseHeadersStart():100:100 -> s - 1:2:void trackFailure(java.io.IOException):166:167 -> t + 1:2:void trackFailure(java.io.Exception):166:167 -> t 1:1:okhttp3.Headers trailers():136:136 -> u 1:1:void webSocketUpgradeFailed():145:145 -> v 1:3:void writeRequestHeaders(okhttp3.Request):58:60 -> w @@ -164398,7 +164398,7 @@ okhttp3.internal.connection.Exchange$RequestBodySink -> okhttp3.internal.connect boolean closed -> d 1:1:void (okhttp3.internal.connection.Exchange,okio.Sink,long):201:201 -> 2:2:void (okhttp3.internal.connection.Exchange,okio.Sink,long):205:205 -> - 1:3:java.io.IOException complete(java.io.IOException):250:252 -> c + 1:3:java.io.Exception complete(java.io.Exception):250:252 -> c 1:4:void close():236:239 -> close 5:6:void close():242:243 -> close 7:7:void close():245:245 -> close @@ -164430,9 +164430,9 @@ okhttp3.internal.connection.Exchange$ResponseBodySource -> okhttp3.internal.conn 11:11:long read(okio.Buffer,long):295:295 -> J0 12:12:long read(okio.Buffer,long):300:300 -> J0 13:13:long read(okio.Buffer,long):274:274 -> J0 - 1:2:java.io.IOException complete(java.io.IOException):317:318 -> c - 3:5:java.io.IOException complete(java.io.IOException):320:322 -> c - 6:6:java.io.IOException complete(java.io.IOException):324:324 -> c + 1:2:java.io.Exception complete(java.io.Exception):317:318 -> c + 3:5:java.io.Exception complete(java.io.Exception):320:322 -> c + 6:6:java.io.Exception complete(java.io.Exception):324:324 -> c 1:2:void close():306:307 -> close 3:4:void close():309:310 -> close 5:5:void close():312:312 -> close @@ -164504,8 +164504,8 @@ okhttp3.internal.connection.ExchangeFinder -> okhttp3.internal.connection.d: 2:2:okhttp3.Route retryRoute():310:310 -> f 3:7:okhttp3.Route retryRoute():312:312 -> f 1:2:boolean sameHostAndPort(okhttp3.HttpUrl):325:326 -> g - 1:5:void trackFailure(java.io.IOException):260:264 -> h - 6:6:void trackFailure(java.io.IOException):266:266 -> h + 1:5:void trackFailure(java.io.Exception):260:264 -> h + 6:6:void trackFailure(java.io.Exception):266:266 -> h okhttp3.internal.connection.RealCall -> okhttp3.internal.connection.e: # {"id":"sourceFile","fileName":"RealCall.kt"} boolean canceled -> m @@ -164534,8 +164534,8 @@ okhttp3.internal.connection.RealCall -> okhttp3.internal.connection.e: 7:7:void (okhttp3.OkHttpClient,okhttp3.Request,boolean):74:74 -> 8:8:void (okhttp3.OkHttpClient,okhttp3.Request,boolean):78:78 -> 9:9:void (okhttp3.OkHttpClient,okhttp3.Request,boolean):110:110 -> - 1:2:java.io.IOException timeoutExit(java.io.IOException):395:396 -> A - 3:4:java.io.IOException timeoutExit(java.io.IOException):398:399 -> A + 1:2:java.io.Exception timeoutExit(java.io.Exception):395:396 -> A + 3:4:java.io.Exception timeoutExit(java.io.Exception):398:399 -> A 1:3:java.lang.String toLoggableString():463:465 -> B 1:1:okhttp3.Request request():124:124 -> S 1:1:okhttp3.Call clone():60:60 -> T @@ -164557,16 +164557,16 @@ okhttp3.internal.connection.RealCall -> okhttp3.internal.connection.e: 2:4:void cancel():138:140 -> cancel 5:5:void cancel():142:142 -> cancel 1:1:java.lang.Object clone():60:60 -> clone - 1:2:java.io.IOException callDone(java.io.IOException):557:558 -> d - 3:3:java.io.IOException callDone(java.io.IOException):346:346 -> d - 4:5:java.io.IOException callDone(java.io.IOException):561:562 -> d - 6:8:java.io.IOException callDone(java.io.IOException):349:349 -> d - 9:11:java.io.IOException callDone(java.io.IOException):352:354 -> d - 12:12:java.io.IOException callDone(java.io.IOException):356:356 -> d - 13:13:java.io.IOException callDone(java.io.IOException):349:349 -> d - 14:14:java.io.IOException callDone(java.io.IOException):360:360 -> d - 15:15:java.io.IOException callDone(java.io.IOException):362:362 -> d - 16:16:java.io.IOException callDone(java.io.IOException):364:364 -> d + 1:2:java.io.Exception callDone(java.io.Exception):557:558 -> d + 3:3:java.io.Exception callDone(java.io.Exception):346:346 -> d + 4:5:java.io.Exception callDone(java.io.Exception):561:562 -> d + 6:8:java.io.Exception callDone(java.io.Exception):349:349 -> d + 9:11:java.io.Exception callDone(java.io.Exception):352:354 -> d + 12:12:java.io.Exception callDone(java.io.Exception):356:356 -> d + 13:13:java.io.Exception callDone(java.io.Exception):349:349 -> d + 14:14:java.io.Exception callDone(java.io.Exception):360:360 -> d + 15:15:java.io.Exception callDone(java.io.Exception):362:362 -> d + 16:16:java.io.Exception callDone(java.io.Exception):364:364 -> d 1:2:void callStart():170:171 -> e 1:1:okhttp3.internal.connection.RealCall clone():122:122 -> f 1:4:okhttp3.Address createAddress(okhttp3.HttpUrl):434:437 -> g @@ -164615,18 +164615,18 @@ okhttp3.internal.connection.RealCall -> okhttp3.internal.connection.e: 19:19:okhttp3.internal.connection.Exchange initExchange$okhttp(okhttp3.internal.http.RealInterceptorChain):250:250 -> r 20:20:okhttp3.internal.connection.Exchange initExchange$okhttp(okhttp3.internal.http.RealInterceptorChain):249:249 -> r 21:21:okhttp3.internal.connection.Exchange initExchange$okhttp(okhttp3.internal.http.RealInterceptorChain):248:248 -> r - 1:1:java.io.IOException messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.IOException):290:290 -> s - 2:7:java.io.IOException messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.IOException):294:299 -> s - 8:8:java.io.IOException messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.IOException):301:301 -> s - 9:9:java.io.IOException messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.IOException):294:294 -> s - 10:11:java.io.IOException messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.IOException):304:305 -> s - 12:12:java.io.IOException messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.IOException):309:309 -> s - 13:13:java.io.IOException messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.IOException):294:294 -> s - 1:4:java.io.IOException noMoreExchanges$okhttp(java.io.IOException):317:320 -> t - 5:5:java.io.IOException noMoreExchanges$okhttp(java.io.IOException):322:322 -> t - 6:6:java.io.IOException noMoreExchanges$okhttp(java.io.IOException):317:317 -> t - 7:7:java.io.IOException noMoreExchanges$okhttp(java.io.IOException):325:325 -> t - 8:8:java.io.IOException noMoreExchanges$okhttp(java.io.IOException):317:317 -> t + 1:1:java.io.Exception messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.Exception):290:290 -> s + 2:7:java.io.Exception messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.Exception):294:299 -> s + 8:8:java.io.Exception messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.Exception):301:301 -> s + 9:9:java.io.Exception messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.Exception):294:294 -> s + 10:11:java.io.Exception messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.Exception):304:305 -> s + 12:12:java.io.Exception messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.Exception):309:309 -> s + 13:13:java.io.Exception messageDone$okhttp(okhttp3.internal.connection.Exchange,boolean,boolean,java.io.Exception):294:294 -> s + 1:4:java.io.Exception noMoreExchanges$okhttp(java.io.Exception):317:320 -> t + 5:5:java.io.Exception noMoreExchanges$okhttp(java.io.Exception):322:322 -> t + 6:6:java.io.Exception noMoreExchanges$okhttp(java.io.Exception):317:317 -> t + 7:7:java.io.Exception noMoreExchanges$okhttp(java.io.Exception):325:325 -> t + 8:8:java.io.Exception noMoreExchanges$okhttp(java.io.Exception):317:317 -> t 1:1:okio.Timeout timeout():60:60 -> timeout 1:1:java.lang.String redactedUrl$okhttp():468:468 -> u 1:1:java.net.Socket releaseConnectionNoEvents$okhttp():374:374 -> v @@ -164746,17 +164746,17 @@ okhttp3.internal.connection.RealConnection -> okhttp3.internal.connection.f: 4:4:boolean supportsUrl(okhttp3.HttpUrl):586:586 -> M 5:5:boolean supportsUrl(okhttp3.HttpUrl):590:590 -> M 6:6:boolean supportsUrl(okhttp3.HttpUrl):595:595 -> M - 1:1:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):703:703 -> N - 2:2:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):705:705 -> N - 3:3:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):707:707 -> N - 4:5:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):709:710 -> N - 6:6:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):714:714 -> N - 7:8:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):720:721 -> N - 9:10:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):724:725 -> N - 11:11:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):728:728 -> N - 12:12:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):730:730 -> N - 13:13:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):732:732 -> N - 14:14:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.IOException):735:735 -> N + 1:1:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):703:703 -> N + 2:2:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):705:705 -> N + 3:3:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):707:707 -> N + 4:5:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):709:710 -> N + 6:6:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):714:714 -> N + 7:8:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):720:721 -> N + 9:10:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):724:725 -> N + 11:11:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):728:728 -> N + 12:12:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):730:730 -> N + 13:13:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):732:732 -> N + 14:14:void trackFailure$okhttp(okhttp3.internal.connection.RealCall,java.io.Exception):735:735 -> N 1:1:okhttp3.Protocol protocol():737:737 -> a 1:1:okhttp3.Handshake handshake():684:684 -> b 1:1:okhttp3.Route route():637:637 -> c @@ -164789,9 +164789,9 @@ okhttp3.internal.connection.RealConnection -> okhttp3.internal.connection.f: 35:36:void connect(int,int,int,int,boolean,okhttp3.Call,okhttp3.EventListener):232:233 -> m 37:37:void connect(int,int,int,int,boolean,okhttp3.Call,okhttp3.EventListener):193:193 -> m 38:38:void connect(int,int,int,int,boolean,okhttp3.Call,okhttp3.EventListener):175:175 -> m - 1:4:void connectFailed$okhttp(okhttp3.OkHttpClient,okhttp3.Route,java.io.IOException):689:692 -> n - 5:5:void connectFailed$okhttp(okhttp3.OkHttpClient,okhttp3.Route,java.io.IOException):691:691 -> n - 6:6:void connectFailed$okhttp(okhttp3.OkHttpClient,okhttp3.Route,java.io.IOException):695:695 -> n + 1:4:void connectFailed$okhttp(okhttp3.OkHttpClient,okhttp3.Route,java.io.Exception):689:692 -> n + 5:5:void connectFailed$okhttp(okhttp3.OkHttpClient,okhttp3.Route,java.io.Exception):691:691 -> n + 6:6:void connectFailed$okhttp(okhttp3.OkHttpClient,okhttp3.Route,java.io.Exception):695:695 -> n 1:2:void connectSocket(int,int,okhttp3.Call,okhttp3.EventListener):283:284 -> o 3:3:void connectSocket(int,int,okhttp3.Call,okhttp3.EventListener):286:286 -> o 4:4:void connectSocket(int,int,okhttp3.Call,okhttp3.EventListener):288:288 -> o @@ -164945,8 +164945,8 @@ okhttp3.internal.connection.RouteDatabase -> okhttp3.internal.connection.i: 1:1:boolean shouldPostpone(okhttp3.Route):40:40 -> c okhttp3.internal.connection.RouteException -> okhttp3.internal.connection.j: # {"id":"sourceFile","fileName":"RouteException.kt"} - java.io.IOException lastConnectException -> a - java.io.IOException firstConnectException -> b + java.io.Exception lastConnectException -> a + java.io.Exception firstConnectException -> b 1:2:void (java.io.IOException):25:26 -> 1:2:void addConnectException(java.io.IOException):30:31 -> a 1:1:java.io.IOException getFirstConnectException():24:24 -> b diff --git a/app/src/main/java/com/coldmint/rust/pro/EditActivity.kt b/app/src/main/java/com/coldmint/rust/pro/EditActivity.kt index 6d31838..5018694 100644 --- a/app/src/main/java/com/coldmint/rust/pro/EditActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/EditActivity.kt @@ -34,6 +34,7 @@ import com.coldmint.rust.core.tool.FileOperator import com.coldmint.rust.core.web.ServerConfiguration import com.coldmint.rust.pro.adapters.FileAdapter import com.coldmint.rust.pro.base.BaseActivity +import com.coldmint.rust.pro.databean.ErrorInfo import com.coldmint.rust.pro.databinding.ActivityEditBinding import com.coldmint.rust.pro.databinding.EditStartBinding import com.coldmint.rust.pro.edit.CodeToolAdapter @@ -47,6 +48,8 @@ import com.coldmint.rust.pro.viewmodel.EditStartViewModel import com.coldmint.rust.pro.viewmodel.EditViewModel import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar +import com.google.firebase.crashlytics.ktx.crashlytics +import com.google.firebase.ktx.Firebase import io.github.rosemoe.sora.lang.completion.CompletionPublisher import io.github.rosemoe.sora.text.CharPosition import io.github.rosemoe.sora.text.ContentReference @@ -160,6 +163,20 @@ class EditActivity : BaseActivity() { * 加载主要的观察者 */ fun loadMainObserve() { + viewModel.memberErrorInfoFun = { + val info = ErrorInfo() + val saveData = String.format(getString(R.string.compile_error_message), it) + info.allErrorDetails = it + info.activityLog = "EditActivity-编译代码错误" + info.save() + CoreDialog(this).setTitle(R.string.compile_error) + .setMessage(saveData) + .setPositiveButton(R.string.share) { + FileOperator.shareFile(this, info.getLogFile()) + }.setNegativeButton(R.string.dialog_cancel) { + + }.show() + } viewModel.needSaveLiveData.observe(this) { if (it) { CoreDialog(this).setTitle(R.string.edit_function).setMessage(R.string.text_changed) @@ -1344,22 +1361,26 @@ class EditActivity : BaseActivity() { // } // } R.id.save_text -> { - val openedSourceFile = - viewModel.openedSourceFileListLiveData.getOpenedSourceFile(viewBinding.tabLayout.selectedTabPosition) - val needSave = - openedSourceFile.isChanged(viewBinding.codeEditor.text.toString()) - if (needSave) { - viewModel.compilerFile(openedSourceFile) { - viewModel.openedSourceFileListLiveData.getOpenedSourceFile( - viewBinding.tabLayout.selectedTabPosition - ).save(it) + try { + val openedSourceFile = + viewModel.openedSourceFileListLiveData.getOpenedSourceFile(viewBinding.tabLayout.selectedTabPosition) + val needSave = + openedSourceFile.isChanged(viewBinding.codeEditor.text.toString()) + if (needSave) { + viewModel.compilerFile(openedSourceFile) { + viewModel.openedSourceFileListLiveData.getOpenedSourceFile( + viewBinding.tabLayout.selectedTabPosition + ).save(it) + } } + Snackbar.make( + viewBinding.recyclerview, + R.string.save_complete2, + Snackbar.LENGTH_SHORT + ).show() + } catch (e: Exception) { + e.printStackTrace() } - Snackbar.make( - viewBinding.recyclerview, - R.string.save_complete2, - Snackbar.LENGTH_SHORT - ).show() } R.id.show_line_number -> { viewBinding.codeEditor.isLineNumberEnabled = diff --git a/app/src/main/java/com/coldmint/rust/pro/UserListActivity.kt b/app/src/main/java/com/coldmint/rust/pro/UserListActivity.kt index 59d2ffc..556d685 100644 --- a/app/src/main/java/com/coldmint/rust/pro/UserListActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/UserListActivity.kt @@ -98,7 +98,7 @@ class UserListActivity : BaseActivity() { override fun onResponse(t: FollowUserListData) { if (t.code == ServerConfiguration.Success_Code) { val dataList = t.data - if (dataList != null) { + if (dataList != null && dataList.size > 0) { viewBinding.loadLayout.isVisible = false viewBinding.recyclerView.isVisible = true val adapter = UserAdapter(this@UserListActivity, dataList) diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ApplicationListAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ApplicationListAdapter.kt index 295f809..9af847f 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ApplicationListAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/ApplicationListAdapter.kt @@ -39,7 +39,7 @@ import kotlin.concurrent.thread * @constructor */ class ApplicationListAdapter( - context: Context, dataList: MutableList + context: Context, dataList: MutableList ) : BaseAdapter(context, dataList) { val handler: Handler by lazy { @@ -66,8 +66,14 @@ class ApplicationListAdapter( position: Int ) { val packageManager = context.packageManager - Glide.with(context).load(data.applicationInfo.loadIcon(packageManager)).apply(GlobalMethod.getRequestOptions()) - .into(viewBinding.appIconView) + try { + Glide.with(context).load(data.applicationInfo.loadIcon(packageManager)) + .apply(GlobalMethod.getRequestOptions()) + .into(viewBinding.appIconView) + } catch (e: Exception) { + //解决内存超标问题 + e.printStackTrace() + } val appName = data.applicationInfo.loadLabel(packageManager).toString() viewBinding.appNameView.text = appName viewBinding.appVersionView.text = data.versionName diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ModAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ModAdapter.kt index caa7d9d..e16e549 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ModAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/ModAdapter.kt @@ -74,7 +74,11 @@ class ModAdapter(context: Context, dataList: MutableList) : } override fun getPopupText(position: Int): String { - val s = dataList[position].modName - return getInitial(s).toString() + return if (dataList.size > position) { + val s = dataList[position].modName + getInitial(s).toString() + } else { + "#" + } } } \ No newline at end of file diff --git a/app/src/main/java/com/coldmint/rust/pro/adapters/ModPageAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/adapters/ModPageAdapter.kt index 7708abd..8b04123 100644 --- a/app/src/main/java/com/coldmint/rust/pro/adapters/ModPageAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/adapters/ModPageAdapter.kt @@ -26,7 +26,11 @@ class ModPageAdapter( } val historyUnitFragment: HistoryUnitFragment by lazy { - HistoryUnitFragment(fragmentActivity, modClass, fileDataBase) + val fragment = HistoryUnitFragment() + fragment.fragmentActivity = fragmentActivity + fragment.modClass = modClass + fragment.fileDataBase = fileDataBase + fragment } fun setAllUnitsChanged(changed: ((Int) -> Unit)?) { diff --git a/app/src/main/java/com/coldmint/rust/pro/base/BaseAdapter.kt b/app/src/main/java/com/coldmint/rust/pro/base/BaseAdapter.kt index 380d747..dcabb77 100644 --- a/app/src/main/java/com/coldmint/rust/pro/base/BaseAdapter.kt +++ b/app/src/main/java/com/coldmint/rust/pro/base/BaseAdapter.kt @@ -152,7 +152,7 @@ abstract class BaseAdapter( * @param index Int */ fun removeItem(index: Int) { - if (index < dataList.size) { + if (index > -1 && index < dataList.size) { val data = dataList[index] dataList.removeAt(index) handler.post { diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/HistoryUnitFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/HistoryUnitFragment.kt index cecbdbd..66c7cfe 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/HistoryUnitFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/HistoryUnitFragment.kt @@ -27,10 +27,12 @@ import java.util.concurrent.Executors * @date 2022/1/14 15:54 */ class HistoryUnitFragment( - val fragmentActivity: FragmentActivity, - val modClass: ModClass, val fileDataBase: FileDataBase ) : BaseFragment() { + var fragmentActivity: FragmentActivity? = null + var modClass: ModClass? = null + var fileDataBase: FileDataBase? = null + //当内容改变时的数据监听 var whenNumberChanged: ((Int) -> Unit)? = null val executorService: ExecutorService = Executors.newSingleThreadExecutor() @@ -56,12 +58,15 @@ class HistoryUnitFragment( fun loadList() { val handler = Handler(Looper.getMainLooper()) executorService.submit { + if (fileDataBase == null) { + return@submit + } handler.post { viewBinding.unitError.isVisible = false viewBinding.progressBar.isVisible = true viewBinding.unitList.isVisible = false } - val dataList = fileDataBase.getHistoryDao().getAll().toMutableList() + val dataList = fileDataBase!!.getHistoryDao().getAll().toMutableList() if (dataList.isEmpty()) { handler.post { showInfoToView(R.string.not_find_history) @@ -84,7 +89,7 @@ class HistoryUnitFragment( needUpDateUnitsList = true } executorService.submit { - fileDataBase.getHistoryDao().delete(historyRecord) + fileDataBase!!.getHistoryDao().delete(historyRecord) } true }, @@ -119,13 +124,15 @@ class HistoryUnitFragment( * @param file SourceFileClass */ fun openEditActivity(file: SourceFile) { - val bundle = Bundle() - val path = file.file.absolutePath - bundle.putString("path", path) - bundle.putString("modPath", modClass.modFile.absolutePath) - val intent = Intent(requireContext(), EditActivity::class.java) - intent.putExtra("data", bundle) - fragmentActivity.startActivityForResult(intent, 2) + if (modClass != null && fragmentActivity != null) { + val bundle = Bundle() + val path = file.file.absolutePath + bundle.putString("path", path) + bundle.putString("modPath", modClass!!.modFile.absolutePath) + val intent = Intent(requireContext(), EditActivity::class.java) + intent.putExtra("data", bundle) + fragmentActivity!!.startActivityForResult(intent, 2) + } } /** diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/RankingFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/RankingFragment.kt index 3da8809..ebaf939 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/RankingFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/RankingFragment.kt @@ -88,6 +88,9 @@ class RankingFragment : BaseFragment() { viewBinding.swipeRefreshLayout.isVisible = false WebMod.instance.list(object : ApiCallBack { override fun onResponse(t: WebModListData) { + if (!isAdded) { + return + } if (t.code == ServerConfiguration.Success_Code) { val list = t.data if (list != null && list.isNotEmpty()) { diff --git a/app/src/main/java/com/coldmint/rust/pro/fragments/WarehouseFragment.kt b/app/src/main/java/com/coldmint/rust/pro/fragments/WarehouseFragment.kt index 881fa43..8ffc269 100644 --- a/app/src/main/java/com/coldmint/rust/pro/fragments/WarehouseFragment.kt +++ b/app/src/main/java/com/coldmint/rust/pro/fragments/WarehouseFragment.kt @@ -50,6 +50,8 @@ class WarehouseFragment : BaseFragment() { override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) { viewBinding.pager.adapter = WarehouseAdapter(this) + //解决启动为仓库页面,点击社区,再返回仓库重复崩溃的问题 + viewBinding.pager.isSaveEnabled = false loadTab() } diff --git a/app/src/main/java/com/coldmint/rust/pro/tool/GlobalMethod.kt b/app/src/main/java/com/coldmint/rust/pro/tool/GlobalMethod.kt index de90af9..e2db104 100644 --- a/app/src/main/java/com/coldmint/rust/pro/tool/GlobalMethod.kt +++ b/app/src/main/java/com/coldmint/rust/pro/tool/GlobalMethod.kt @@ -11,6 +11,9 @@ import android.graphics.Color import android.graphics.Paint import android.graphics.drawable.Drawable import android.os.Build +import android.os.Handler +import android.os.Looper +import android.os.Message import android.util.TypedValue import android.view.Gravity import android.view.View @@ -225,29 +228,33 @@ object GlobalMethod { fun showUpdateLog(context: Context, modId: String) { WebMod.instance.getUpdateRecord(modId, object : ApiCallBack { override fun onResponse(t: WebModUpdateLogData) { - if (t.code == ServerConfiguration.Success_Code) { - val data = t.data - if (data != null && data.isNotEmpty()) { - val stringBuilder = StringBuilder() - data.forEach { - stringBuilder.append(it.versionName) - stringBuilder.append("\n") - stringBuilder.append(it.updateLog) - stringBuilder.append("\n") - stringBuilder.append(it.time) - stringBuilder.append("\n\n------\n\n") + try { + if (t.code == ServerConfiguration.Success_Code) { + val data = t.data + if (data != null && data.isNotEmpty()) { + val stringBuilder = StringBuilder() + data.forEach { + stringBuilder.append(it.versionName) + stringBuilder.append("\n") + stringBuilder.append(it.updateLog) + stringBuilder.append("\n") + stringBuilder.append(it.time) + stringBuilder.append("\n\n------\n\n") + } + val title = + context.getString(R.string.update_record) + "(" + data.size + ")" + MaterialAlertDialogBuilder(context).setTitle(title) + .setMessage(stringBuilder.toString()).setCancelable(false) + .setPositiveButton(R.string.dialog_ok) { i, i2 -> + }.show() + } else { + Toast.makeText(context, t.message, Toast.LENGTH_SHORT).show() } - val title = - context.getString(R.string.update_record) + "(" + data.size + ")" - MaterialAlertDialogBuilder(context).setTitle(title) - .setMessage(stringBuilder.toString()).setCancelable(false) - .setPositiveButton(R.string.dialog_ok) { i, i2 -> - }.show() } else { Toast.makeText(context, t.message, Toast.LENGTH_SHORT).show() } - } else { - Toast.makeText(context, t.message, Toast.LENGTH_SHORT).show() + } catch (e: Exception) { + e.printStackTrace() } } diff --git a/app/src/main/java/com/coldmint/rust/pro/viewmodel/EditViewModel.kt b/app/src/main/java/com/coldmint/rust/pro/viewmodel/EditViewModel.kt index 40c790e..907c576 100644 --- a/app/src/main/java/com/coldmint/rust/pro/viewmodel/EditViewModel.kt +++ b/app/src/main/java/com/coldmint/rust/pro/viewmodel/EditViewModel.kt @@ -14,6 +14,8 @@ import com.coldmint.rust.pro.livedata.OpenedSourceFileListLiveData import com.coldmint.rust.pro.tool.AppSettings import com.coldmint.rust.pro.tool.CompletionItemConverter import com.coldmint.rust.pro.tool.GlobalMethod +import com.google.firebase.crashlytics.ktx.crashlytics +import com.google.firebase.ktx.Firebase import java.io.File import java.text.SimpleDateFormat import java.util.* @@ -36,7 +38,13 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application var targetFile: File? = null val codeTranslate by lazy { - CodeTranslate(getApplication()) + val c = CodeTranslate(getApplication()) + c.setCompileErrorRecordFun { + //将信息上传至FireBase + Firebase.crashlytics.setCustomKey("type", "代码编译错误") + Firebase.crashlytics.recordException(it) + } + c } /** @@ -44,6 +52,11 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application */ var modClass: ModClass? = null + /** + * 错误信息回调 + */ + var memberErrorInfoFun: ((String) -> Unit)? = null + /** * 是否正在复制文件 */ @@ -136,11 +149,15 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application */ fun compilerFile( openedSourceFile: OpenedSourceFile, - func: (String) -> Unit + func: (String) -> Unit, ) { codeTranslate.setTranslate(false) - codeTranslate.start(openedSourceFile.getEditText()) { - func.invoke(it) + codeTranslate.start(openedSourceFile.getEditText()) { success, data -> + if (success) { + func.invoke(data) + } else { + memberErrorInfoFun?.invoke(data) + } } } @@ -173,9 +190,14 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application val code = FileOperator.readFile(File(getNowOpenFilePath())) ?: return@submit it.setTranslation(code) codeTranslate.setTranslate(true) - codeTranslate.start(code){ - codeLiveData.postValue(it) - loadingLiveData.postValue(false) + codeTranslate.start(code) { success, data -> + if (success) { + codeLiveData.postValue(data) + loadingLiveData.postValue(false) + } else { + //翻译失败 + memberErrorInfoFun?.invoke(data) + } } return@submit } @@ -192,26 +214,30 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application executorService.submit { val code = FileOperator.readFile(File(path)) ?: return@submit codeTranslate.setTranslate(true) - codeTranslate.start(code){ - CompletionItemConverter.setSourceFilePath(path) - val openedSourceFile = OpenedSourceFile(path) - openedSourceFile.setTranslation(it) - val index = openedSourceFileListLiveData.add(openedSourceFile) - if (index == -1) { - nowFilePath = path - codeLiveData.postValue(it) - addHistoryRecord(SourceFile(File(path))) - } else { - val oldOpenedSourceFile = - openedSourceFileListLiveData.getOpenedSourceFile(index) - //如果不是当前打开的文件 - if (nowFilePath != oldOpenedSourceFile.file.absolutePath) { - nowFilePath = oldOpenedSourceFile.file.absolutePath - codeLiveData.postValue(oldOpenedSourceFile.getEditText()) - openedSourceFileListLiveData.refresh() + codeTranslate.start(code) { success, data -> + if (success) { + CompletionItemConverter.setSourceFilePath(path) + val openedSourceFile = OpenedSourceFile(path) + openedSourceFile.setTranslation(data) + val index = openedSourceFileListLiveData.add(openedSourceFile) + if (index == -1) { + nowFilePath = path + codeLiveData.postValue(data) + addHistoryRecord(SourceFile(File(path))) + } else { + val oldOpenedSourceFile = + openedSourceFileListLiveData.getOpenedSourceFile(index) + //如果不是当前打开的文件 + if (nowFilePath != oldOpenedSourceFile.file.absolutePath) { + nowFilePath = oldOpenedSourceFile.file.absolutePath + codeLiveData.postValue(oldOpenedSourceFile.getEditText()) + openedSourceFileListLiveData.refresh() + } } + loadingLiveData.postValue(false) + } else { + memberErrorInfoFun?.invoke(data) } - loadingLiveData.postValue(false) } } } @@ -311,8 +337,12 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application */ fun saveOneFile(openedSourceFile: OpenedSourceFile) { codeTranslate.setTranslate(false) - codeTranslate.start(openedSourceFile.getEditText()){ - openedSourceFile.save(it) + codeTranslate.start(openedSourceFile.getEditText()) { success, code -> + if (success) { + openedSourceFile.save(code) + } else { + memberErrorInfoFun?.invoke(code) + } } } @@ -330,16 +360,24 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application if (openedSourceFile.isChanged(text)) { needSave = true codeTranslate.setTranslate(false) - codeTranslate.start(openedSourceFile.getEditText()){ - openedSourceFile.save(it) + codeTranslate.start(openedSourceFile.getEditText()) { success, code -> + if (success) { + openedSourceFile.save(code) + } else { + memberErrorInfoFun?.invoke(code) + } } } } else { if (openedSourceFile.isNeedSave()) { needSave = true codeTranslate.setTranslate(false) - codeTranslate.start(openedSourceFile.getEditText()){ - openedSourceFile.save(it) + codeTranslate.start(openedSourceFile.getEditText()) { success, code -> + if (success) { + openedSourceFile.save(code) + } else { + memberErrorInfoFun?.invoke(code) + } } } } diff --git a/app/src/main/java/com/coldmint/rust/pro/viewmodel/StartViewModel.kt b/app/src/main/java/com/coldmint/rust/pro/viewmodel/StartViewModel.kt index 6ee7df2..a37b105 100644 --- a/app/src/main/java/com/coldmint/rust/pro/viewmodel/StartViewModel.kt +++ b/app/src/main/java/com/coldmint/rust/pro/viewmodel/StartViewModel.kt @@ -40,6 +40,8 @@ import com.coldmint.rust.pro.tool.CompletionItemConverter import com.coldmint.rust.pro.tool.GlobalMethod import com.google.android.material.color.DynamicColors import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.firebase.crashlytics.ktx.crashlytics +import com.google.firebase.ktx.Firebase import java.io.File import java.util.* import java.util.concurrent.Executors @@ -132,12 +134,14 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio val status = AppSettings.getValue(AppSettings.Setting.LoginStatus, false) if (!status) { needLoginLiveData.value = true + Firebase.crashlytics.setUserId("") return } //验证登录 val token = AppSettings.getValue(AppSettings.Setting.Token, "") if (token.isBlank()) { needLoginLiveData.value = true + Firebase.crashlytics.setUserId("") } else { User.getUserActivationInfo(token, object : ApiCallBack { override fun onFailure(e: Exception) { @@ -147,6 +151,7 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio ) if (localTime == (-2).toLong()) { isActivationLiveData.value = true + Firebase.crashlytics.setUserId("") } else { val nowTime = System.currentTimeMillis() //本地时间大于当前时间 激活 @@ -166,6 +171,7 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio time ) isActivationLiveData.value = activationInfo.data.activation + Firebase.crashlytics.setUserId(activationInfo.data.account) } else { // 用户登录失败 verifyErrorMsgLiveData.value = activationInfo.message diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3e92d85..5d226a8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -944,6 +944,8 @@ 更新次数 点击头像登录 登录发现更多内容! + 编译错误 + 很抱歉,源文件编译失败了。错误信息为:\n%1$s 登录后即可解锁关注系统 \ No newline at end of file diff --git a/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/CodeTranslate.kt b/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/CodeTranslate.kt index 21e48a9..61826d8 100644 --- a/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/CodeTranslate.kt +++ b/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/CodeTranslate.kt @@ -88,6 +88,19 @@ class CodeTranslate(val context: Context) { //翻译模式 private var translateMode: Boolean = true + /** + * 设置编译异常记录 + */ + private var compileErrorRecord: ((Exception) -> Unit)? = null + + /** + * 设置编译异常上报 + */ + public fun setCompileErrorRecordFun(func: ((Exception) -> Unit)?) { + compileErrorRecord = func + } + + /** * 设置是否启用英文模式 当启用时禁用翻译和编译功能 * @param enable Boolean @@ -116,9 +129,10 @@ class CodeTranslate(val context: Context) { /** * 开始工作 - * @param func Function1 + * + * @param func (是否翻译成功,结果)若true,则结果为翻译结果,false结果为异常信息 */ - fun start(input: String, func: (String) -> Unit) { + fun start(input: String, func: (Boolean, String) -> Unit) { val handler = Handler(Looper.getMainLooper()) val scope = CoroutineScope(Job()) num++ @@ -137,219 +151,229 @@ class CodeTranslate(val context: Context) { "代码翻译", isError = true ) handler.post { - func.invoke(input) + func.invoke(true, input) } return@launch } - val tokenizer = StringTokenizer(input, CodeTranslate.split, true) - //缓存翻译数据,以便加速重复数据的翻译 - val translationMap = HashMap() - //保存每次代码的翻译结果 - val codeResult = StringBuilder() - //保存完整的翻译结果 - val translationResult = StringBuilder() - var codeBlockType = CodeBlockType.Key - //保存资源引用值(应该看做整体处理) - val referenceResult = StringBuilder() - while (tokenizer.hasMoreTokens()) { - val code = tokenizer.nextToken() - if (translationMap.containsKey(code)) { - if (codeBlockType == CodeBlockType.Reference) { - referenceResult.append(translationMap[code]) + try { + val tokenizer = StringTokenizer(input, CodeTranslate.split, true) + //缓存翻译数据,以便加速重复数据的翻译 + val translationMap = HashMap() + //保存每次代码的翻译结果 + val codeResult = StringBuilder() + //保存完整的翻译结果 + val translationResult = StringBuilder() + var codeBlockType = CodeBlockType.Key + //保存资源引用值(应该看做整体处理) + val referenceResult = StringBuilder() + while (tokenizer.hasMoreTokens()) { + val code = tokenizer.nextToken() + if (translationMap.containsKey(code)) { + if (codeBlockType == CodeBlockType.Reference) { + referenceResult.append(translationMap[code]) + } else { + translationResult.append(translationMap[code]) + } } else { - translationResult.append(translationMap[code]) - } - } else { - codeResult.clear() - when (code) { - "\n" -> { - if (codeBlockType == CodeBlockType.Reference) { - val referenceValue = referenceResult.toString() - val codeInfo = if (translateMode) { - codeDataBase.getCodeDao().findCodeByCode(referenceValue) - } else { - codeDataBase.getCodeDao().findCodeByTranslate(referenceValue) + codeResult.clear() + when (code) { + "\n" -> { + if (codeBlockType == CodeBlockType.Reference) { + val referenceValue = referenceResult.toString() + val codeInfo = if (translateMode) { + codeDataBase.getCodeDao().findCodeByCode(referenceValue) + } else { + codeDataBase.getCodeDao() + .findCodeByTranslate(referenceValue) + } + if (codeInfo == null) { + translationResult.append(referenceResult) + } else { + translationResult.append( + if (translateMode) { + codeInfo.translate + } else { + codeInfo.code + } + ) + } + DebugHelper.printLog( + CodeTranslate.debugKey, + "追加引用值[" + referenceValue + "]", + "翻译行引用处理" + ) + referenceResult.clear() } - if (codeInfo == null) { - translationResult.append(referenceResult) + codeBlockType = CodeBlockType.Key + codeResult.append(code) + } + "\r" -> { + } + " ", ",", "(", ")", "=", "%", "{", "}", "+", "*", "/" -> { + if (codeBlockType == CodeBlockType.Reference) { + referenceResult.append(code) } else { - translationResult.append( - if (translateMode) { - codeInfo.translate - } else { - codeInfo.code - } + codeResult.append( + code ) } + } + ":" -> { + if (codeBlockType == CodeBlockType.Reference) { + referenceResult.append(code) + } else { + if (codeBlockType == CodeBlockType.Key) { + codeBlockType = + CodeBlockType.Value + } + codeResult.append(code) + } + } + else -> if (codeBlockType == CodeBlockType.Note) { + codeResult.append(code) + } else if (codeBlockType == CodeBlockType.Reference) { + //资源引用值应该被整体处理 DebugHelper.printLog( CodeTranslate.debugKey, - "追加引用值[" + referenceValue + "]", - "翻译行引用处理" + "翻译添加引用值[" + code + "]", + "翻译代码处理" ) - referenceResult.clear() - } - codeBlockType = CodeBlockType.Key - codeResult.append(code) - } - "\r" -> { - } - " ", ",", "(", ")", "=", "%", "{", "}", "+", "*", "/" -> { - if (codeBlockType == CodeBlockType.Reference) { referenceResult.append(code) } else { - codeResult.append( - code - ) - } - } - ":" -> { - if (codeBlockType == CodeBlockType.Reference) { - referenceResult.append(code) - } else { - if (codeBlockType == CodeBlockType.Key) { - codeBlockType = - CodeBlockType.Value - } - codeResult.append(code) - } - } - else -> if (codeBlockType == CodeBlockType.Note) { - codeResult.append(code) - } else if (codeBlockType == CodeBlockType.Reference) { - //资源引用值应该被整体处理 - DebugHelper.printLog( - CodeTranslate.debugKey, - "翻译添加引用值[" + code + "]", - "翻译代码处理" - ) - referenceResult.append(code) - } else { - if (code.startsWith("#")) { - codeBlockType = CodeBlockType.Note - codeResult.append(code) - } else if (code.startsWith("[") && code.endsWith("]")) { - val symbolPosition = code.lastIndexOf("_") - if (symbolPosition > 0) { - val sectionPrefixName = code.substring(1, symbolPosition) - codeResult.append("[") - val info = if (translateMode) { - codeDataBase.getSectionDao() - .findSectionInfoByCode(sectionPrefixName) + if (code.startsWith("#")) { + codeBlockType = CodeBlockType.Note + codeResult.append(code) + } else if (code.startsWith("[") && code.endsWith("]")) { + val symbolPosition = code.lastIndexOf("_") + if (symbolPosition > 0) { + val sectionPrefixName = code.substring(1, symbolPosition) + codeResult.append("[") + val info = if (translateMode) { + codeDataBase.getSectionDao() + .findSectionInfoByCode(sectionPrefixName) + } else { + codeDataBase.getSectionDao() + .findSectionInfoByTranslate(sectionPrefixName) + } + if (translateMode) { + codeResult.append( + info?.translate ?: sectionPrefixName + ) + } else { + codeResult.append( + info?.code ?: sectionPrefixName + ) + } + codeResult.append("_") + codeResult.append(code.substring(symbolPosition + 1)) } else { - codeDataBase.getSectionDao() - .findSectionInfoByTranslate(sectionPrefixName) + val sectionCode = code.substring(1, code.length - 1) + codeResult.append("[") + val info = if (translateMode) { + codeDataBase.getSectionDao() + .findSectionInfoByCode(sectionCode) + } else { + codeDataBase.getSectionDao() + .findSectionInfoByTranslate(sectionCode) + } + if (translateMode) { + codeResult.append( + info?.translate ?: sectionCode + ) + } else { + codeResult.append( + info?.code ?: sectionCode + ) + } + codeResult.append("]") } - if (translateMode) { - codeResult.append( - info?.translate ?: sectionPrefixName - ) - } else { - codeResult.append( - info?.code ?: sectionPrefixName - ) - } - codeResult.append("_") - codeResult.append(code.substring(symbolPosition + 1)) } else { - val sectionCode = code.substring(1, code.length - 1) - codeResult.append("[") - val info = if (translateMode) { - codeDataBase.getSectionDao() - .findSectionInfoByCode(sectionCode) + //翻译代码 + val codeInfo = if (translateMode) { + codeDataBase.getCodeDao().findCodeByCode(code) } else { - codeDataBase.getSectionDao() - .findSectionInfoByTranslate(sectionCode) + codeDataBase.getCodeDao().findCodeByTranslate(code) } - if (translateMode) { - codeResult.append( - info?.translate ?: sectionCode - ) - } else { - codeResult.append( - info?.code ?: sectionCode - ) - } - codeResult.append("]") - } - } else { - //翻译代码 - val codeInfo = if (translateMode){ - codeDataBase.getCodeDao().findCodeByCode(code) - }else{ - codeDataBase.getCodeDao().findCodeByTranslate(code) - } - if (codeInfo == null) { - if (code.contains("_")) { - val lineParser = LineParser(code) - lineParser.symbol = "_" - lineParser.analyse(object : LineParserEvent { - override fun processingData( - lineNum: Int, - lineData: String, - isEnd: Boolean - ): Boolean { - val temCodeInfo = if (translateMode) { - codeDataBase.getCodeDao() - .findCodeByCode(lineData.trim()) - } else { - codeDataBase.getCodeDao() - .findCodeByTranslate(lineData.trim()) - } - if (temCodeInfo == null) { - codeResult.append(lineData) - } else { - if (translateMode) { - codeResult.append(temCodeInfo.translate) + if (codeInfo == null) { + if (code.contains("_")) { + val lineParser = LineParser(code) + lineParser.symbol = "_" + lineParser.analyse(object : LineParserEvent { + override fun processingData( + lineNum: Int, + lineData: String, + isEnd: Boolean + ): Boolean { + val temCodeInfo = if (translateMode) { + codeDataBase.getCodeDao() + .findCodeByCode(lineData.trim()) } else { - codeResult.append(temCodeInfo.code) + codeDataBase.getCodeDao() + .findCodeByTranslate(lineData.trim()) } + if (temCodeInfo == null) { + codeResult.append(lineData) + } else { + if (translateMode) { + codeResult.append(temCodeInfo.translate) + } else { + codeResult.append(temCodeInfo.code) + } + } + if (!isEnd) { + codeResult.append(lineParser.symbol) + } + return true } - if (!isEnd) { - codeResult.append(lineParser.symbol) - } - return true - } - }) + }) + } else { + codeResult.append(code) + } } else { - codeResult.append(code) - } - } else { - //是否需要检查值 - if (codeBlockType == CodeBlockType.Key) { - val type = getValueData(codeInfo.type) - val tag = type?.tag - if (!tag.isNullOrBlank()) { - //如果此类型为特殊标注,那么设置为注释 - codeBlockType = - CodeBlockType.Reference + //是否需要检查值 + if (codeBlockType == CodeBlockType.Key) { + val type = getValueData(codeInfo.type) + val tag = type?.tag + if (!tag.isNullOrBlank()) { + //如果此类型为特殊标注,那么设置为注释 + codeBlockType = + CodeBlockType.Reference + } + } + if (translateMode) { + codeResult.append(codeInfo.translate) + } else { + codeResult.append(codeInfo.code) } } - if (translateMode) - { - codeResult.append(codeInfo.translate) - }else{ - codeResult.append(codeInfo.code) - } } } } + //如果代码不是注释,也不是换行,不是冒号,那么缓存它。 + if (codeBlockType != CodeBlockType.Note && codeBlockType != CodeBlockType.Reference && code != ":" && code != "\n") { + translationMap[code] = codeResult.toString() + } + translationResult.append(codeResult.toString()) + DebugHelper.printLog( + CodeTranslate.debugKey, + "代码[" + code + "]译文[" + codeResult.toString() + "]是否翻译[" + (code != codeResult.toString()) + "]", + "翻译" + ) } - //如果代码不是注释,也不是换行,不是冒号,那么缓存它。 - if (codeBlockType != CodeBlockType.Note && codeBlockType != CodeBlockType.Reference && code != ":" && code != "\n") { - translationMap[code] = codeResult.toString() - } - translationResult.append(codeResult.toString()) - DebugHelper.printLog( - CodeTranslate.debugKey, - "代码[" + code + "]译文[" + codeResult.toString() + "]是否翻译[" + (code != codeResult.toString()) + "]", - "翻译" - ) + } + handler.post { + func.invoke(true, translationResult.toString()) + } + } catch (e: Exception) { + compileErrorRecord?.invoke(e) + e.printStackTrace() + handler.post { + //第一个布尔值表示是否翻译成功 + func.invoke(false, e.toString()) } } - handler.post { - func.invoke(translationResult.toString()) - } + } } diff --git a/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/CompressionManager.kt b/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/CompressionManager.kt index 9e0624c..29ea8aa 100644 --- a/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/CompressionManager.kt +++ b/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/CompressionManager.kt @@ -138,20 +138,20 @@ class CompressionManager private constructor() { } } flag = true - } catch (ex: IOException) { + } catch (ex: Exception) { ex.printStackTrace() flag = false } finally { } } - } catch (ex: IOException) { + } catch (ex: Exception) { ex.printStackTrace() flag = false } finally { if (zipFile != null) { try { zipFile.close() - } catch (ex: IOException) { + } catch (ex: Exception) { flag = false } } @@ -235,7 +235,7 @@ class CompressionManager private constructor() { if (zipOutputStream != null) { zipOutputStream!!.close() } - } catch (e: IOException) { + } catch (e: Exception) { e.printStackTrace() } zipOutputStream = null diff --git a/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/ModClass.kt b/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/ModClass.kt index d25bedb..f72a706 100644 --- a/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/ModClass.kt +++ b/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/ModClass.kt @@ -46,7 +46,7 @@ class ModClass(file: File) { * * @return 模组名称 */ - lateinit var modName: String + var modName: String = "Null" private var upDateTime: Long = 0 /** diff --git a/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/turret/TurretSketchpadView.kt b/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/turret/TurretSketchpadView.kt index 6b366ff..be2c031 100644 --- a/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/turret/TurretSketchpadView.kt +++ b/assistantCoreLibrary/src/main/java/com/coldmint/rust/core/turret/TurretSketchpadView.kt @@ -27,6 +27,9 @@ class TurretSketchpadView(context: Context, attributeSet: AttributeSet? = null) * @return Bitmap */ fun scaleBitmap(bitmap: Bitmap, size: Float): Bitmap? { + if (size <= 0) { + return null + } //创建新的图像背景 val matrix = Matrix() matrix.setScale(size, size)