1.修复了默认为仓库界面,启动程序后点击社区崩溃的问题。2.修复了保存源代码时,程序崩溃的问题,现在不崩溃了,改为弹出错误提示。3.修复了模组列表快速滚动时,程序崩溃的问题。4.修复了排行榜数据加载较慢,程序崩溃的问题。5.修复了最近的文件加载崩溃的问题。

This commit is contained in:
Cold-Mint 2023-01-28 21:43:40 +08:00
parent d14c4cf727
commit 7a4b00199e
30 changed files with 507 additions and 380 deletions

Binary file not shown.

View File

@ -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"
}

View File

@ -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 <clinit>():19:19 -> <clinit>
1:1:void <init>():44:44 -> <init>
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 <init>(android.os.Handler,com.coldmint.rust.core.interfaces.ApiCallBack,com.google.gson.Gson):26:26 -> <init>
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 <init>(java.lang.String):29:29 -> <init>
2:2:void <init>(java.lang.String,java.lang.Throwable):33:33 -> <init>
@ -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.<init>(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.IOException) -> <init>
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.<init>(com.coldmint.rust.core.interfaces.ApiCallBack,java.io.Exception) -> <init>
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 <init>(okhttp3.internal.connection.RealCall,okhttp3.EventListener,okhttp3.internal.connection.ExchangeFinder,okhttp3.internal.http.ExchangeCodec):40:40 -> <init>
2:2:void <init>(okhttp3.internal.connection.RealCall,okhttp3.EventListener,okhttp3.internal.connection.ExchangeFinder,okhttp3.internal.http.ExchangeCodec):50:50 -> <init>
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 <init>(okhttp3.internal.connection.Exchange,okio.Sink,long):201:201 -> <init>
2:2:void <init>(okhttp3.internal.connection.Exchange,okio.Sink,long):205:205 -> <init>
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 <init>(okhttp3.OkHttpClient,okhttp3.Request,boolean):74:74 -> <init>
8:8:void <init>(okhttp3.OkHttpClient,okhttp3.Request,boolean):78:78 -> <init>
9:9:void <init>(okhttp3.OkHttpClient,okhttp3.Request,boolean):110:110 -> <init>
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 <init>(java.io.IOException):25:26 -> <init>
1:2:void addConnectException(java.io.IOException):30:31 -> a
1:1:java.io.IOException getFirstConnectException():24:24 -> b

View File

@ -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<ActivityEditBinding>() {
* 加载主要的观察者
*/
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,6 +1361,7 @@ class EditActivity : BaseActivity<ActivityEditBinding>() {
// }
// }
R.id.save_text -> {
try {
val openedSourceFile =
viewModel.openedSourceFileListLiveData.getOpenedSourceFile(viewBinding.tabLayout.selectedTabPosition)
val needSave =
@ -1360,6 +1378,9 @@ class EditActivity : BaseActivity<ActivityEditBinding>() {
R.string.save_complete2,
Snackbar.LENGTH_SHORT
).show()
} catch (e: Exception) {
e.printStackTrace()
}
}
R.id.show_line_number -> {
viewBinding.codeEditor.isLineNumberEnabled =

View File

@ -98,7 +98,7 @@ class UserListActivity : BaseActivity<ActivityUserListBinding>() {
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)

View File

@ -66,8 +66,14 @@ class ApplicationListAdapter(
position: Int
) {
val packageManager = context.packageManager
Glide.with(context).load(data.applicationInfo.loadIcon(packageManager)).apply(GlobalMethod.getRequestOptions())
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

View File

@ -74,7 +74,11 @@ class ModAdapter(context: Context, dataList: MutableList<ModClass>) :
}
override fun getPopupText(position: Int): String {
return if (dataList.size > position) {
val s = dataList[position].modName
return getInitial(s).toString()
getInitial(s).toString()
} else {
"#"
}
}
}

View File

@ -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)?) {

View File

@ -152,7 +152,7 @@ abstract class BaseAdapter<ViewBindingType : ViewBinding, DataType>(
* @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 {

View File

@ -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<FragmentHistoryBinding>() {
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) {
if (modClass != null && fragmentActivity != null) {
val bundle = Bundle()
val path = file.file.absolutePath
bundle.putString("path", path)
bundle.putString("modPath", modClass.modFile.absolutePath)
bundle.putString("modPath", modClass!!.modFile.absolutePath)
val intent = Intent(requireContext(), EditActivity::class.java)
intent.putExtra("data", bundle)
fragmentActivity.startActivityForResult(intent, 2)
fragmentActivity!!.startActivityForResult(intent, 2)
}
}
/**

View File

@ -88,6 +88,9 @@ class RankingFragment : BaseFragment<FragmentRankingBinding>() {
viewBinding.swipeRefreshLayout.isVisible = false
WebMod.instance.list(object : ApiCallBack<WebModListData> {
override fun onResponse(t: WebModListData) {
if (!isAdded) {
return
}
if (t.code == ServerConfiguration.Success_Code) {
val list = t.data
if (list != null && list.isNotEmpty()) {

View File

@ -50,6 +50,8 @@ class WarehouseFragment : BaseFragment<FragmentWarehouseBinding>() {
override fun whenViewCreated(inflater: LayoutInflater, savedInstanceState: Bundle?) {
viewBinding.pager.adapter = WarehouseAdapter(this)
//解决启动为仓库页面,点击社区,再返回仓库重复崩溃的问题
viewBinding.pager.isSaveEnabled = false
loadTab()
}

View File

@ -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,6 +228,7 @@ object GlobalMethod {
fun showUpdateLog(context: Context, modId: String) {
WebMod.instance.getUpdateRecord(modId, object : ApiCallBack<WebModUpdateLogData> {
override fun onResponse(t: WebModUpdateLogData) {
try {
if (t.code == ServerConfiguration.Success_Code) {
val data = t.data
if (data != null && data.isNotEmpty()) {
@ -249,6 +253,9 @@ object GlobalMethod {
} else {
Toast.makeText(context, t.message, Toast.LENGTH_SHORT).show()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun onFailure(e: Exception) {

View File

@ -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)
codeTranslate.start(code) { success, data ->
if (success) {
codeLiveData.postValue(data)
loadingLiveData.postValue(false)
} else {
//翻译失败
memberErrorInfoFun?.invoke(data)
}
}
return@submit
}
@ -192,14 +214,15 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application
executorService.submit {
val code = FileOperator.readFile(File(path)) ?: return@submit
codeTranslate.setTranslate(true)
codeTranslate.start(code){
codeTranslate.start(code) { success, data ->
if (success) {
CompletionItemConverter.setSourceFilePath(path)
val openedSourceFile = OpenedSourceFile(path)
openedSourceFile.setTranslation(it)
openedSourceFile.setTranslation(data)
val index = openedSourceFileListLiveData.add(openedSourceFile)
if (index == -1) {
nowFilePath = path
codeLiveData.postValue(it)
codeLiveData.postValue(data)
addHistoryRecord(SourceFile(File(path)))
} else {
val oldOpenedSourceFile =
@ -212,6 +235,9 @@ class EditViewModel(application: Application) : BaseAndroidViewModel(application
}
}
loadingLiveData.postValue(false)
} else {
memberErrorInfoFun?.invoke(data)
}
}
}
}
@ -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)
}
}
}
}

View File

@ -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<ActivationInfo> {
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

View File

@ -944,6 +944,8 @@
<string name="update_number">更新次数</string>
<string name="click_profile_picture_login">点击头像登录</string>
<string name="log_in_discover_more">登录发现更多内容!</string>
<string name="compile_error">编译错误</string>
<string name="compile_error_message">很抱歉,源文件编译失败了。错误信息为:\n%1$s</string>
<string name="follow_introduction">登录后即可解锁关注系统</string>
</resources>

View File

@ -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<String, Unit>
*
* @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,11 +151,12 @@ class CodeTranslate(val context: Context) {
"代码翻译", isError = true
)
handler.post {
func.invoke(input)
func.invoke(true, input)
}
return@launch
}
try {
val tokenizer = StringTokenizer(input, CodeTranslate.split, true)
//缓存翻译数据,以便加速重复数据的翻译
val translationMap = HashMap<String, String>()
@ -169,7 +184,8 @@ class CodeTranslate(val context: Context) {
val codeInfo = if (translateMode) {
codeDataBase.getCodeDao().findCodeByCode(referenceValue)
} else {
codeDataBase.getCodeDao().findCodeByTranslate(referenceValue)
codeDataBase.getCodeDao()
.findCodeByTranslate(referenceValue)
}
if (codeInfo == null) {
translationResult.append(referenceResult)
@ -274,9 +290,9 @@ class CodeTranslate(val context: Context) {
}
} else {
//翻译代码
val codeInfo = if (translateMode){
val codeInfo = if (translateMode) {
codeDataBase.getCodeDao().findCodeByCode(code)
}else{
} else {
codeDataBase.getCodeDao().findCodeByTranslate(code)
}
if (codeInfo == null) {
@ -325,10 +341,9 @@ class CodeTranslate(val context: Context) {
CodeBlockType.Reference
}
}
if (translateMode)
{
if (translateMode) {
codeResult.append(codeInfo.translate)
}else{
} else {
codeResult.append(codeInfo.code)
}
}
@ -348,8 +363,17 @@ class CodeTranslate(val context: Context) {
}
}
handler.post {
func.invoke(translationResult.toString())
func.invoke(true, translationResult.toString())
}
} catch (e: Exception) {
compileErrorRecord?.invoke(e)
e.printStackTrace()
handler.post {
//第一个布尔值表示是否翻译成功
func.invoke(false, e.toString())
}
}
}
}

View File

@ -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

View File

@ -46,7 +46,7 @@ class ModClass(file: File) {
*
* @return 模组名称
*/
lateinit var modName: String
var modName: String = "Null"
private var upDateTime: Long = 0
/**

View File

@ -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)