From a361a2c11cb27aabc912527309c6fe5e228cc527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E9=87=91=E5=8D=8E?= <1533761530@qq.com> Date: Thu, 21 Mar 2024 17:42:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=BD=AF=E8=A7=A3=E7=A0=81?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executionHistory/executionHistory.bin | Bin 8540799 -> 8820100 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/5.6.4/fileHashes/fileHashes.bin | Bin 537291 -> 537491 bytes .gradle/5.6.4/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../5.6.4/fileHashes/resourceHashesCache.bin | Bin 64671 -> 65419 bytes .gradle/5.6.4/javaCompile/classAnalysis.bin | Bin 666115 -> 709856 bytes .gradle/5.6.4/javaCompile/jarAnalysis.bin | Bin 666509 -> 747525 bytes .gradle/5.6.4/javaCompile/javaCompile.lock | Bin 17 -> 17 bytes .gradle/5.6.4/javaCompile/taskHistory.bin | Bin 143602 -> 143602 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes app/build.gradle | 4 +- .../trans88/taxiappkotlin/Configurations.java | 8 ++++ .../java/cn/trans88/taxiappkotlin/TaxiApp.kt | 4 ++ .../logic/model/AdvertiseProcess.java | 17 +++++++++ .../logic/network/JoeyDownloadManager.java | 14 ++++--- .../logic/network/ProcessingCommands.kt | 35 +++++++++++++++++- .../taxiappkotlin/logic/network/WsManager.kt | 18 ++++++++- .../taxiappkotlin/ui/play/PlayerRule.kt | 10 ++--- local.properties | 2 +- release/output.json | 2 +- 20 files changed, 96 insertions(+), 18 deletions(-) diff --git a/.gradle/5.6.4/executionHistory/executionHistory.bin b/.gradle/5.6.4/executionHistory/executionHistory.bin index dc60665ff9c613b7dbf384f5619338a2bcd023e8..976805dd4d47c178450da7c1dde1dcc40deb1183 100644 GIT binary patch delta 9446 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 delta 16374 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 diff --git a/.gradle/5.6.4/executionHistory/executionHistory.lock b/.gradle/5.6.4/executionHistory/executionHistory.lock index a373e32706bd638f6e928a8b6ce47c6f55375541..24f4de8b752bf8cc67c481679e4a1d20979d4d0a 100644 GIT binary patch literal 17 UcmZS95bwRu%IMn300xZD0Uy}|YXATM literal 17 UcmZS95bwRu%IMn300xYU03VbCCIA2c diff --git a/.gradle/5.6.4/fileHashes/fileHashes.bin b/.gradle/5.6.4/fileHashes/fileHashes.bin index af39b31eb3ed9f4496f68aff181e57d72f9465d0..7c7ecc710b0c08e31103fce8b48b31948df152b9 100644 GIT binary patch delta 10963 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 bf;Edi?vQG|;0VXarAMhzGji!?ExG(3HhK`z delta 10063 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 diff --git a/.gradle/5.6.4/fileHashes/fileHashes.lock b/.gradle/5.6.4/fileHashes/fileHashes.lock index a682a41bc6667fd4d9ba10423eb9a11f47fa166a..223baa8a686f4e19dab6d3a84bc51ab6b3327403 100644 GIT binary patch literal 17 UcmZP;xZ=oT?Pb z$glsr*ZRYEeyGa1lea2c@&_FAHw{&v4-xzGc=J=`LPq{8(>kB-ZQ+LMUccE_bten| zEYo*hs=KE`1wU{8tI5d3&!eDft?UvD)qZgES8WAmfjd9%%<$Y7BnuJ!_i!_>KG2-f9B1pCRL0~axW+A9&Oz`&-_sfqub`jJ&sKL zkMydhi>bbcYL48zb05$}DyqDv(z>2P1pi*#oO!r|kzamih3g{GGzqBE$#2Y*CUYIF z;P3nq*S}7{0xE32x$@{r4*rZw#-7??jZhOjC)?UtZVoy(ftlYqD7Ec;cP>;SdvdO0 z;AX8$8yNZJyh3uGzmtJVsBgY_8R(F;2`@TM9I1i|_D*iR5g<_hvnR9f^|cKU!9Vji zpS%I`+QN;B1%jJ<-v|jzu5IRr39O_#8a1BJbwv6DubljGZ-E^M}&p S{@62<8C#Vm$47Ml`62)nfy{vb delta 184 zcmV;p07w6e{{x@-1F$q00X(xc7{~#W6&e|nMjDW_?ivULvko7?1GDBLPyv%pBrvm< zBxnJ%7ACL+v)(HB0kiHb7Xz~$FbM>+J~U7Pv!*q10RkPdlf}bTlQP7plk&tDlR3p1 zlWN6avu-yMg#kUYfxJNiv)aC}1hb;Ue*u#@#gUV4H!!mj#&8I;n$ExjlXgK!v%1o- m0h9JZkh2oiAOw@nMlX|j*%-5_*>V8_9m%mFND{M+>=F=(08K&w diff --git a/.gradle/5.6.4/javaCompile/classAnalysis.bin b/.gradle/5.6.4/javaCompile/classAnalysis.bin index 10a254f139690a176993575a7f0efc6dd18f6015..8a5ed167cea85f9f1f6ab6eedec9f8c047b6c1d1 100644 GIT binary patch delta 2348 zcmdVb{a2IM9RP6dO`hi=pxjuyLIWE~d6SnSFH#W#2Bp?kP(aX9wW1XZ+7$vgMqLp^ zi4o*2zy+lxSWkhWD{0Ux6E@J=0aBDIn+^zA-WAS)QA8B%lHQ!1o}K*zyXSm=`Q-cD z_xnxOy;Xy?uJvoIK$h0WN&`^QADd?%v~DvoG_yOuR`tIsK^hC2s~5yR)WTP4=U)8; zTI@T;uCuhHcJYxm)}|05uP<&+*$1~#+&rtA`b|3uSLAv7J#l|LV&tVWRD;yoW+yox)%0 zv!tjXeqQ&-oPhn5!=Nxj_5qETvSTlmeoZ z!UzQ@Cw({IIzB4zxPEACX)Vny`Hn1WgZm(2nyb>}IUi81w8sZJ;6r3u>EwE8$cbX= z`$T#R3V3MXRQG_32NNcxg%=3H^uBMBJG9? zJoKG%Ci8dWa;ol1;?@HNELv0Ae`0ROA*x+I*sT}Fqs*r}yFM0YP?SEyxxG*lI;T{f&?d^?ZpVxLZ~;vYipJlQxlt?;;7J{<7y2wEW}H|m z+CX*d2q_+bD*%eoO0U?sk5Y|HAr*sA2~cF;)%#zbx=A(UFtPao>hC~Q%WadrbIw#N zkK*8A7`7_#uP!RP>g%>tzaIL@*aAm1Mg5}#=csRtA-Th_5ulTA?<}|mt*M3<5a}rN zgU~TvA$tV%!P5ty$R08ORDnEfoz8k9#y^2sf=Tp?9eeP`bhaI(b$O(=CD>8)j>f!W z>;fvcJ6Yq_VO-1lK{9)ceaJ)p*F%DJu~9VjgCTM&i**KQS#5v>*hEvU6_Lj$SpA8@ z+4RPXe>a}<{&aFz!ODPe=L;{Je{Gq2lP0fG5OXEFz@jZyEusC->Zsyy{5+q{MCaR% zNIvc~rj~w0k_!x@O-|iSwoQJSroP)rRD}j@sMOux?`qr&&#hQG0pqZ>irp;y@Ta>o ztsOt~(GUFVam54-#}`#>401?x9NQgWd|s~Gu-hXTMz$BTPl52Gp|O=~qsNWM_JtT1 zKZX)~pp>ma3UoB>8{JjfpKmDPVOGOK$M;-w2q|2mdSpMTJIlVqL5F=BNxd0y`V%YL z0E$W6G+Pc3XPy4H=gV_xYL19JoniGi;wxKLQ!RZ$wKJ56e`F;*)FVng9aXZ0YDXaP zoo5T6@b>H{y?w#?#+g^e;FbkegPfZlY?z7^(cDcXB<>kI0Z_rvUlhYPHdB3j8gE`? z|;cBS?H1jYB8am^wtK~83QxwTeD#8nM$jR23o945vSu3}oLRuK%3oUiKnF&Y(v+A8W_U9I0w9 zVGmQT9aS73Lg$)3qnI;H~}XXPQS>HE4p{yxG`_OK{5o~ zQ=afikMgbcpMGzw&DG{4aXF{2ImPKg!3S3x-|JiRBvHtD@u9jW-%X#2C z-2wr<$cD|*w@rqBfi!&>>b~5tL5}!#w*cXwXl^}7$ED+}ztt~${e5=Yn4xF=Xa|iw eFYV%1|7VjeNksy8#)8=15UBqj&$rw#`+oyvVG)G@ delta 593 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 DZyxFm delta 75 zcmZp@pxb+0V}pqVqwr)?i5rtuC09&-DjCGYcypuT5Alr#4r0xY9_@}Ej6lo;#LPg< V0>rF9%m&2lK+Lh-(Sy_HF#rUa8BYKJ diff --git a/.gradle/5.6.4/javaCompile/javaCompile.lock b/.gradle/5.6.4/javaCompile/javaCompile.lock index 11fb4bb169cfec89951ef82a301587e9930d0a71..abeb0433a76cca7344d01aeb579d9aebce6b0ab5 100644 GIT binary patch literal 17 VcmZS1TlD&yyQHrj0~oN)1^_fT1c3km literal 17 VcmZS1TlD&yyQHrj0~oN`0su4G1S0?d diff --git a/.gradle/5.6.4/javaCompile/taskHistory.bin b/.gradle/5.6.4/javaCompile/taskHistory.bin index 94e7268510d3c5edc03b1ec07b99cefc42ee24a6..a9f3ef6194416726e179e2fe88707e2869160bd3 100644 GIT binary patch delta 41 zcmV+^0M`HV;Ry2K2!MnEv;spg5r8kk_-LGhBj=h!3J9$TR`8e6F9KYburLBbi^dU& delta 41 zcmV+^0M`HV;Ry2K2!MnEv;spg5yi0y#eN#wL&`mg4s$Gc{_vO4F9KYburLBblK&Dz diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 4d49910c7c8c891dff4f6a666c7a11f5f81e17ce..d297c0b29deafc76e5d7743329be02936a934c15 100644 GIT binary patch literal 17 VcmZR6$@fd*U7gb|1~6dr0{}Rb1jzsZ literal 17 VcmZR6$@fd*U7gb|1~6d#0suKU1#SQU diff --git a/app/build.gradle b/app/build.gradle index efe13df..c135b6c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,8 +21,8 @@ android { applicationId "net.sysolution.taxiapp" minSdkVersion 21 targetSdkVersion 29 - versionCode 249 - versionName "3.3.3-beta26.4.0.8-debug" + versionCode 251 + versionName "3.3.3-beta26.4.0.9-release" //alphaxx - 预览版本,不会对外发布,由测试人员测试,会有很多bug //Betaxx - 公开测试版本,会发给其他工作人员,会有较多版本 diff --git a/app/src/main/java/cn/trans88/taxiappkotlin/Configurations.java b/app/src/main/java/cn/trans88/taxiappkotlin/Configurations.java index 76aa19f..8343e7d 100644 --- a/app/src/main/java/cn/trans88/taxiappkotlin/Configurations.java +++ b/app/src/main/java/cn/trans88/taxiappkotlin/Configurations.java @@ -454,6 +454,14 @@ public class Configurations { context.getSharedPreferences("config", Context.MODE_PRIVATE).edit().putInt("logInterval", logInterval).apply(); } + public String progressList(){ + return context.getSharedPreferences("config", Context.MODE_PRIVATE).getString("progressList", ""); + } + + public void progressListSave(String s){ + context.getSharedPreferences("config", Context.MODE_PRIVATE).edit().putString("progressList", s).apply(); + } + } diff --git a/app/src/main/java/cn/trans88/taxiappkotlin/TaxiApp.kt b/app/src/main/java/cn/trans88/taxiappkotlin/TaxiApp.kt index c97f8ef..5809d10 100644 --- a/app/src/main/java/cn/trans88/taxiappkotlin/TaxiApp.kt +++ b/app/src/main/java/cn/trans88/taxiappkotlin/TaxiApp.kt @@ -15,6 +15,7 @@ import cn.trans88.taxiappkotlin.logic.dao.DaoSession import cn.trans88.taxiappkotlin.logic.dao.HelperDaoDB import cn.trans88.taxiappkotlin.logic.exception.CrashHandler import cn.trans88.taxiappkotlin.logic.model.Advertise +import cn.trans88.taxiappkotlin.logic.model.AdvertiseProcess import cn.trans88.taxiappkotlin.logic.model.BackgroundType import cn.trans88.taxiappkotlin.logic.model.Regions import cn.trans88.taxiappkotlin.logic.network.JoeyDownloadManager @@ -39,6 +40,7 @@ import java.util.* import java.util.concurrent.CopyOnWriteArrayList import kotlin.collections.ArrayList import kotlin.collections.HashMap +import kotlin.collections.HashSet class TaxiApp:Application() { @@ -67,6 +69,8 @@ class TaxiApp:Application() { val timerTaskMap = HashMap>() //存储定时广告的列表 var timedAds:ArrayList = ArrayList() + //存储未上传成功的下载进度 + var processList:HashSet = HashSet() var activity:PlayActivity? = null //gps日志定时器 diff --git a/app/src/main/java/cn/trans88/taxiappkotlin/logic/model/AdvertiseProcess.java b/app/src/main/java/cn/trans88/taxiappkotlin/logic/model/AdvertiseProcess.java index 14b3972..eec0b93 100644 --- a/app/src/main/java/cn/trans88/taxiappkotlin/logic/model/AdvertiseProcess.java +++ b/app/src/main/java/cn/trans88/taxiappkotlin/logic/model/AdvertiseProcess.java @@ -1,5 +1,7 @@ package cn.trans88.taxiappkotlin.logic.model; +import java.util.Objects; + public class AdvertiseProcess { private String type = "notify_download_ad_progress"; private String ad_id; @@ -20,4 +22,19 @@ public class AdvertiseProcess { public void setProgress(String progress) { this.progress = progress; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AdvertiseProcess that = (AdvertiseProcess) o; + return Objects.equals(type, that.type) && + Objects.equals(ad_id, that.ad_id) && + Objects.equals(progress, that.progress); + } + + @Override + public int hashCode() { + return Objects.hash(type, ad_id, progress); + } } diff --git a/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/JoeyDownloadManager.java b/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/JoeyDownloadManager.java index 0a995b8..576d408 100644 --- a/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/JoeyDownloadManager.java +++ b/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/JoeyDownloadManager.java @@ -192,6 +192,7 @@ public class JoeyDownloadManager { downloadListener = new JoeyDownloadListener() { @Override protected void completed(BaseDownloadTask task) { + YoungUtil.YoungLog("下载完成 --》 completed"); YoungUtil.YoungLog("Download " + task.getUrl() + " successful, [Size/Speed ==> " @@ -226,7 +227,7 @@ public class JoeyDownloadManager { advertiseProcess.setProgress(String.valueOf(100)); String progressJson = new Gson().toJson(advertiseProcess); YoungUtil.YoungLog("广告:"+task.getTag()+",下载完成进度100"); - WsManager.INSTANCE.send(progressJson); +// WsManager.INSTANCE.send(progressJson); try { RefreshPlayer.refresh(); @@ -313,11 +314,12 @@ public class JoeyDownloadManager { advertiseProcess.setProgress(String.valueOf(100)); String progressJson = new Gson().toJson(advertiseProcess); YoungUtil.YoungLog("广告:"+task.getTag().toString()+",下载完成进度100"); - WsManager.INSTANCE.send(progressJson); - try{ - Thread.sleep(500); - }catch (Exception e){} - WsManager.INSTANCE.send(progressJson); +// WsManager.INSTANCE.send(progressJson); + +// try{ +// Thread.sleep(500); +// }catch (Exception e){} +// WsManager.INSTANCE.send(progressJson); } // if (progress%5==0){ // AdvertiseProcess advertiseProcess =new AdvertiseProcess(); diff --git a/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/ProcessingCommands.kt b/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/ProcessingCommands.kt index 7ef182e..65f63cb 100644 --- a/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/ProcessingCommands.kt +++ b/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/ProcessingCommands.kt @@ -22,6 +22,7 @@ import cn.trans88.taxiappkotlin.ui.play.isOverdue import cn.trans88.taxiappkotlin.util.YoungUtil import com.google.gson.Gson import com.google.gson.JsonParser +import com.google.gson.reflect.TypeToken import com.trs88.kurolibrary.execute.KuroExecutor import com.trs88.kurolibrary.file.KuroFileUtil import java.io.* @@ -298,6 +299,7 @@ object ProcessingCommands { //edit by ljh @2024/3/14 Configurations.config(TaxiApp.instance()).isSoftDecodeSave(loggerSwitch.isSoftDeCode) taxiApp.isSoftDecode = loggerSwitch.isSoftDeCode + "是否软解码:${taxiApp.isSoftDecode}".logd() baseResponse.type = type val response = gson.toJson(baseResponse) @@ -356,6 +358,7 @@ object ProcessingCommands { beatTimer!!.cancel() beatTimer!!.purge() beatTimer = null + } beatTimer = Timer() @@ -395,9 +398,25 @@ object ProcessingCommands { } /** - *发送所有广告信息 + * 发送所有广告信息 */ private fun sendAllAdvertiseInfo(task: String, type: String) { + //提交未上传成功的下载进度 + try { + val progressListJson = Configurations.config(taxiApp).progressList() + if (!progressListJson.isNullOrEmpty()){ + "progressListJson:$progressListJson".logd() + val progressList = gson.fromJson(progressListJson,object : TypeToken>(){}.type) as HashSet + for (advertiseProcess in progressList) { + send(gson.toJson(advertiseProcess)) + } + Configurations.config(taxiApp).progressListSave("") + taxiApp.processList.clear() + } + } catch (e: Exception) { + "exception:${e?.message}".loge() + } + val baseResponse = gson.fromJson(task) val positionAdvertises = DaoUtil.getPositionAdvertise().loadAll() @@ -593,7 +612,7 @@ object ProcessingCommands { val sanleResponse = SanleResponse() sanleResponse.task_id = taskId - sanleResponse.id =id + sanleResponse.id = id sanleResponse.type = type val response = gson.toJson(sanleResponse) send(response) @@ -826,6 +845,12 @@ object ProcessingCommands { sanleResponse.type = type val response = gson.toJson(sanleResponse) send(response) + + val advertiseProcess = AdvertiseProcess() + advertiseProcess.ad_id = positionAdvertise.task_id + advertiseProcess.progress = 100.toString() + val progressJson = Gson().toJson(advertiseProcess) + send(progressJson) } /** @@ -1042,6 +1067,12 @@ object ProcessingCommands { sanleResponse.type = type val response = gson.toJson(sanleResponse) send(response) + + val advertiseProcess = AdvertiseProcess() + advertiseProcess.ad_id = sanleAdvertise.task_id + advertiseProcess.progress = 100.toString() + val progressJson = Gson().toJson(advertiseProcess) + send(progressJson) // send("服务器日志 ${Xixun.getCardId()} 添加广告 id =${sanleAdvertise.id}") } diff --git a/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/WsManager.kt b/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/WsManager.kt index 1aeb211..2ce8365 100644 --- a/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/WsManager.kt +++ b/app/src/main/java/cn/trans88/taxiappkotlin/logic/network/WsManager.kt @@ -14,6 +14,7 @@ import cn.trans88.taxiappkotlin.ext.logd import cn.trans88.taxiappkotlin.ext.loge import cn.trans88.taxiappkotlin.logic.Repository import cn.trans88.taxiappkotlin.logic.dao.DaoUtil +import cn.trans88.taxiappkotlin.logic.model.AdvertiseProcess import cn.trans88.taxiappkotlin.logic.model.CurrentPlayAdvertises import cn.trans88.taxiappkotlin.util.KuroTimer import cn.trans88.taxiappkotlin.util.KuroTimerTask @@ -357,7 +358,22 @@ object WsManager { // if(!(heartbeatContext.equals(msg))){ // Repository.taxiApp.saveLog("回复服务器 $msg") // } - + if (msg.contains("notify_download_ad_progress")) { + "notify_download_ad_progress ----> $msg".logd() + if (mWebSocket == null) { + try { + val process = Repository.taxiApp.gson.fromJson( + msg, + AdvertiseProcess::class.java + ) + Repository.taxiApp.processList.add(process) + val json = Repository.taxiApp.gson.toJson(Repository.taxiApp.processList) + Configurations.config(Repository.taxiApp).progressListSave(json) + } catch (e:Exception){ + "exception:${e?.message}".loge() + } + } + } mWebSocket?.send(msg) // mWebSocket?.send(msg) ?: throw IllegalArgumentException("mWebSocket is null not send!") } diff --git a/app/src/main/java/cn/trans88/taxiappkotlin/ui/play/PlayerRule.kt b/app/src/main/java/cn/trans88/taxiappkotlin/ui/play/PlayerRule.kt index 58e444a..b498f0b 100644 --- a/app/src/main/java/cn/trans88/taxiappkotlin/ui/play/PlayerRule.kt +++ b/app/src/main/java/cn/trans88/taxiappkotlin/ui/play/PlayerRule.kt @@ -35,11 +35,11 @@ fun Advertise.isReady(): Boolean { if(media_type != MaterialType.Text.ordinal){ /* 这里exist判断不准,文件存在被判定为不存在 略作改动 - if (!File(this.pathName).exists()) { - YoungUtil.YoungLog("${this.pathName}的广告本地不存在,重新下载 ready返回false") - downloadFile() - ready = false - } + if (!File(this.pathName).exists()) { + YoungUtil.YoungLog("${this.pathName}的广告本地不存在,重新下载 ready返回false") + downloadFile() + ready = false + } */ //edit by yzd @20211222 val file = File(this.pathName) diff --git a/local.properties b/local.properties index d70b3ff..d288f8f 100644 --- a/local.properties +++ b/local.properties @@ -4,5 +4,5 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Mon Mar 18 15:40:17 GMT+08:00 2024 +#Thu Mar 21 16:48:54 GMT+08:00 2024 sdk.dir=D\:\\Android\\sdk diff --git a/release/output.json b/release/output.json index fcc39a0..a4ccdcf 100644 --- a/release/output.json +++ b/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":249,"versionName":"3.3.3-beta26.4.0.8-debug","enabled":true,"outputFile":"TaxiApp_v3.3.3-beta26.4.0.8-debug{249}.apk","fullName":"release","baseName":"release","dirName":""},"path":"TaxiApp_v3.3.3-beta26.4.0.8-debug{249}.apk","properties":{}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":251,"versionName":"3.3.3-beta26.4.0.9-release","enabled":true,"outputFile":"TaxiApp_v3.3.3-beta26.4.0.9-release{251}.apk","fullName":"release","baseName":"release","dirName":""},"path":"TaxiApp_v3.3.3-beta26.4.0.9-release{251}.apk","properties":{}}] \ No newline at end of file