From 536998ec34f1989742597f25116520f2ac6cc763 Mon Sep 17 00:00:00 2001 From: qiaowei Date: Wed, 10 Jul 2019 16:15:24 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E8=AF=91=E6=96=87?= =?utf8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- config.xml | 2 +- .../app/src/main/assets/www/findpwd.html | 10 +- .../app/src/main/assets/www/js/card.js | 11 +- .../app/src/main/assets/www/js/index.js | 5 +- .../app/src/main/assets/www/js/main.js | 107 ++++++++----- .../app/src/main/assets/www/js/paypwdset.js | 9 +- .../app/src/main/assets/www/js/scan.js | 146 +++++++----------- .../app/src/main/assets/www/js/security.js | 11 +- .../app/src/main/assets/www/js/server.js | 10 +- .../app/src/main/assets/www/js/signxy.js | 7 +- .../android/app/src/main/assets/www/main.html | 5 +- .../android/app/src/main/assets/www/scan.html | 4 +- .../app/src/main/assets/www/security.html | 7 +- .../app/src/main/res/values/strings.xml | 2 +- .../android/app/src/main/res/xml/config.xml | 2 +- platforms/browser/config.xml | 2 +- platforms/ios/dlapp.xcarchive/Info.plist | 2 +- .../Applications/dlapp.app/Assets.car | Bin 290696 -> 290696 bytes .../01J-lp-oVM-view-Ze5-6b-2t3.nib | Bin 2285 -> 2287 bytes .../UIViewController-01J-lp-oVM.nib | Bin 832 -> 832 bytes .../Frameworks/libswiftAVFoundation.dylib | Bin 665936 -> 665936 bytes .../dlapp.app/Frameworks/libswiftCore.dylib | Bin 23297568 -> 23297568 bytes .../Frameworks/libswiftCoreAudio.dylib | Bin 408608 -> 408608 bytes .../Frameworks/libswiftCoreFoundation.dylib | Bin 335280 -> 335280 bytes .../Frameworks/libswiftCoreGraphics.dylib | Bin 857648 -> 857648 bytes .../Frameworks/libswiftCoreImage.dylib | Bin 335072 -> 335072 bytes .../Frameworks/libswiftCoreMedia.dylib | Bin 400112 -> 400112 bytes .../dlapp.app/Frameworks/libswiftDarwin.dylib | Bin 499744 -> 499744 bytes .../Frameworks/libswiftDispatch.dylib | Bin 1377360 -> 1377360 bytes .../Frameworks/libswiftFoundation.dylib | Bin 11552336 -> 11552336 bytes .../dlapp.app/Frameworks/libswiftMetal.dylib | Bin 395696 -> 395696 bytes .../Frameworks/libswiftObjectiveC.dylib | Bin 400112 -> 400112 bytes .../Frameworks/libswiftQuartzCore.dylib | Bin 338256 -> 338256 bytes .../libswiftSwiftOnoneSupport.dylib | Bin 1610592 -> 1610592 bytes .../dlapp.app/Frameworks/libswiftUIKit.dylib | Bin 655616 -> 655616 bytes .../dlapp.app/Frameworks/libswiftos.dylib | Bin 396976 -> 396976 bytes .../dlapp.app/Frameworks/libswiftsimd.dylib | Bin 1323760 -> 1323760 bytes .../Applications/dlapp.app/Info.plist | Bin 2262 -> 2275 bytes .../dlapp.app/MainViewController.nib | Bin 943 -> 943 bytes .../dlapp.app/_CodeSignature/CodeResources | 140 ++++++++--------- .../Applications/dlapp.app/config.xml | 2 +- .../Products/Applications/dlapp.app/dlapp | Bin 2034256 -> 2034256 bytes .../Applications/dlapp.app/www/js/scan.js | 4 +- platforms/ios/dlapp/config.xml | 2 +- platforms/ios/dlapp/dlapp-Info.plist | 2 +- 46 files changed, 254 insertions(+), 241 deletions(-) diff --git a/.gitignore b/.gitignore index 621d0ea..edf24b6 100644 --- a/.gitignore +++ b/.gitignore @@ -25,7 +25,6 @@ $RECYCLE.BIN/ # iOS Platform platforms/ios/Build/ platforms/ios/www/ -platforms/ios/cordova/console.log *.xcuserdatad # Android Platform @@ -36,7 +35,7 @@ platforms/android/local.properties platforms/android/CordovaLib/build platforms/android/CordovaLib/gen platforms/android/CordovaLib/local.properties - +platforms/android/app/src/main/assets/www # wp8 platforms/wp8/bin platforms/wp8/obj diff --git a/config.xml b/config.xml index 4eb721b..af731f8 100644 --- a/config.xml +++ b/config.xml @@ -1,6 +1,6 @@ - dlapp + dlapp A sample Apache Cordova application that responds to the deviceready event. diff --git a/platforms/android/app/src/main/assets/www/findpwd.html b/platforms/android/app/src/main/assets/www/findpwd.html index a538505..ea9e5d5 100644 --- a/platforms/android/app/src/main/assets/www/findpwd.html +++ b/platforms/android/app/src/main/assets/www/findpwd.html @@ -25,7 +25,7 @@
- +
@@ -33,7 +33,7 @@
- +
@@ -41,14 +41,14 @@
-
下一步
+
下一步
- - \ No newline at end of file + + \ No newline at end of file diff --git a/platforms/android/app/src/main/assets/www/js/card.js b/platforms/android/app/src/main/assets/www/js/card.js index 9e3fe81..0c0a91e 100644 --- a/platforms/android/app/src/main/assets/www/js/card.js +++ b/platforms/android/app/src/main/assets/www/js/card.js @@ -27,20 +27,13 @@ var app = { if (ret.buttonIndex == 2) { $.showLoading("正在处理"); var param={ - "pwd":pwd + "paypwd":pwd } V1CardLost(param,function(ok,ret){ if(ok){ $.hideLoading(); if(ret.code==200){ - window.localStorage.removeItem("randomcode"); - var signed = window.localStorage.getItem("signed"); - window.localStorage.setItem("paypwdset",ret.paypwdset); - if(isEmpty(signed)||signed!='yes'){ - window.location='signxy.html' - }else{ - window.location='main.html' - } + $.alert("卡片挂失成功", "提示"); }else{ $.alert(ret.msg, "错误"); } diff --git a/platforms/android/app/src/main/assets/www/js/index.js b/platforms/android/app/src/main/assets/www/js/index.js index a2381c8..ba4ea86 100644 --- a/platforms/android/app/src/main/assets/www/js/index.js +++ b/platforms/android/app/src/main/assets/www/js/index.js @@ -41,10 +41,7 @@ var app = { if(ret.now-t>1000*60*10){ window.location = "login.html"; }else{ - window.localStorage.setItem("userid",ret.userid); - window.localStorage.setItem("signed",ret.signed); - window.localStorage.setItem("paypwdset",ret.paypwdset); - window.localStorage.setItem("name",ret.name); + window.location = "main.html"; } } diff --git a/platforms/android/app/src/main/assets/www/js/main.js b/platforms/android/app/src/main/assets/www/js/main.js index a5b788d..87d6f53 100644 --- a/platforms/android/app/src/main/assets/www/js/main.js +++ b/platforms/android/app/src/main/assets/www/js/main.js @@ -7,13 +7,14 @@ var app = { onDeviceReady: function() { var uid = window.localStorage.getItem("token"); + console.log(CURRENT_INDEX); $('#scanBtn').click(function() { - window.location = "scan.html"; - /*app.checkBefore(function() { + //window.location = "scan.html"; + app.checkBefore(function() { app.checkOther(function() { window.location = "scan.html"; }) - })*/ + }) }); $('#qrcodeBtn').click(function() { app.checkBefore(function() { @@ -53,62 +54,75 @@ var app = { }, initData: function() { this.loadBill() - this.initView(); + }, - loadBill:function(){ + loadBill: function() { $("#loaddata").show() $("#nodata").hide(); - var param={ - "pageno":1 + var param = { + "pageno": 1 } - V1Bills(param,function(ok,ret){ - if(ok){ + V1Bills(param, function(ok, ret) { + if (ok) { console.log(ret) - if(ret.code==200){ - $("#maingt").text(ret.t+"!") + if (ret.code == 200) { + $("#maingt").text(ret.t + "!") $("#user-amount").text(ret.amount) $("#user-point").text(ret.point) - if(ret.page&&ret.page.count>0){ + if (ret.needrebind) { + window.localStorage.removeItem("userid"); + } else { + window.localStorage.setItem("userid", ret.userid); + } + window.localStorage.setItem("signed", ret.signed); + window.localStorage.setItem("paypwdset", ret.paypwdset); + window.localStorage.setItem("name", ret.name); + if (ret.page && ret.page.count > 0) { GLOBAL_TODAY = ret.today; GLOBAL_YESTERDAY = ret.yesterday; app.initBillView(ret.page) - }else{ + app.initView(); + } else { $("#loaddata").hide() $("#nodatahint").text("暂无数据") - $("#nodata").show(); - } - }else{ + $("#nodata").show(); + app.initView(); + } + } else { $("#loaddata").hide() $("#nodatahint").text("数据加载异常") - $("#nodata").show(); + $("#nodata").show(); + app.initView(); } - }else{ + } else { $("#loaddata").hide() $("#nodatahint").text("请求数据失败") $("#nodata").show(); - } + app.initView(); + } }) }, - initBillView:function(page){ - var html =''; - for(var i=0;i'; - html +='
'; - html +='
'; - html +='
'+bean.transdesc+'
'; - if(bean.tradeflag=='in'){ - html +='
+'+bean.amount+'
'; - }else{ - html +='
'+bean.amount+'
'; + initBillView: function(page) { + var html = ''; + for (var i = 0; i < page.data.length; i++) { + var bean = page.data[i] + html += '
'; + html += '
'; + html += '
'; + html += '
' + bean.transdesc + '
'; + if (bean.tradeflag == 'in') { + html += '
+' + bean.amount + '
'; + } else { + html += '
' + bean.amount + '
'; } - html +='
'; + html += '
'; } $("#billcontent").html(html); $("#loaddata").hide() - $("#nodata").hide(); - $("#billcontent").show(); + $("#nodata").hide(); + $("#billcontent").show(); + }, initView: function() { var userid = window.localStorage.getItem("userid"); @@ -127,14 +141,14 @@ var app = { $("#usersign").text("已签约"); $("usersign").css("color", "#757575"); } - var phone = window.localStorage.getItem("phoneX"); - if(!isEmpty(phone)){ + var phone = window.localStorage.getItem("phoneX"); + if (!isEmpty(phone)) { $("#userphone").text(phone) } - var name = window.localStorage.getItem("name"); - if(isEmpty(name)){ + var name = window.localStorage.getItem("name"); + if (isEmpty(name)) { $("#username").text("匿名") - }else{ + } else { $("#username").text(name) $("#homename").text(name) } @@ -196,9 +210,20 @@ var app = { } } }, + toSign:function(){ + window.location = 'signxycheck.html' + }, toBillDetail: function(refno) { - window.localStorage.setItem("currentrefno",refno); - window.location='billdetail.html'; + window.localStorage.setItem("currentrefno", refno); + window.location = 'billdetail.html'; + }, + toCard:function(){ + var userid = window.localStorage.getItem("userid"); + if (isEmpty(userid)) { + window.location = 'bindcard.html' + }else{ + window.location = 'cardinfor.html' + } } }; app.initialize(); \ No newline at end of file diff --git a/platforms/android/app/src/main/assets/www/js/paypwdset.js b/platforms/android/app/src/main/assets/www/js/paypwdset.js index 0fc1c95..8824574 100644 --- a/platforms/android/app/src/main/assets/www/js/paypwdset.js +++ b/platforms/android/app/src/main/assets/www/js/paypwdset.js @@ -45,10 +45,17 @@ var app = { window.localStorage.removeItem("randomcode"); var signed = window.localStorage.getItem("signed"); window.localStorage.setItem("paypwdset",ret.paypwdset); + window.localStorage.removeItem("paypwdtype"); if(isEmpty(signed)||signed!='yes'){ window.location='signxy.html' }else{ - window.location='main.html' + $.alert("支付密码设置成功", "提示", function() { + if(paypwdtype=='find'){ + window.location='security.html' + }else{ + window.location='main.html' + } + }); } }else{ $.alert(ret.msg, "错误"); diff --git a/platforms/android/app/src/main/assets/www/js/scan.js b/platforms/android/app/src/main/assets/www/js/scan.js index 07a89fc..e75eba8 100644 --- a/platforms/android/app/src/main/assets/www/js/scan.js +++ b/platforms/android/app/src/main/assets/www/js/scan.js @@ -15,6 +15,7 @@ var app = { } else { $.alert('插件加载失败'); } + //showRet("http://ykt.supwisdom.com:9116/epay/wxpage/index") function onDone(err, status) { if (err) { console.log(err); @@ -24,6 +25,7 @@ var app = { //绑定扫描监听 // `QRScanner.cancelScan()` is called. QRScanner.scan(displayContents); + function displayContents(err, text) { if (err) { // an error occurred, or the scan was canceled (error code `6`) @@ -31,17 +33,18 @@ var app = { } else { // The scan completed, display the contents of the QR code: //$.alert(text, '提示'); - showRet(text) + showRet(text); + QRScanner.destroy(); } } //开始扫描,需要将页面的背景设置成透明 QRScanner.show(); - console.log("QRScanner.scan"); + console.log("QRScanner.scan"); } else if (status.denied) { // The video preview will remain black, and scanning is disabled. We can // try to ask the user to change their mind, but we'll have to send them // to their device settings with `QRScanner.openSettings()`. - $.alert('无法请求道相机权限,请在设置中开启', '提示'); + $.alert('无法请求道相机权限,请在设置中开启', '提示'); } else { // we didn't get permission, but we didn't get permanently denied. (On // Android, a denial isn't permanent unless the user checks the "Don't @@ -53,7 +56,7 @@ var app = { }, receivedEvent: function() { var light = false; - $('#lightBtn').click(function () { + $('#lightBtn').click(function() { if (light) { QRScanner.enableLight(); } else { @@ -62,98 +65,65 @@ var app = { light = !light; }); }, - goPage:function(){ + goPage: function() { QRScanner.destroy(); - window.location="main.html" + window.location = "main.html" } }; app.initialize(); var inAppBrowserRef; - function showRet(url) { - - var target = "_blank"; - - var options = "location=yes,hidden=yes,beforeload=yes"; - - inAppBrowserRef = cordova.InAppBrowser.open(url, target, options); - - inAppBrowserRef.addEventListener('loadstart', loadStartCallBack); - - inAppBrowserRef.addEventListener('loadstop', loadStopCallBack); - - inAppBrowserRef.addEventListener('loaderror', loadErrorCallBack); - - inAppBrowserRef.addEventListener('beforeload', beforeloadCallBack); - - inAppBrowserRef.addEventListener('message', messageCallBack); -} -function loadStartCallBack() { - - $('#status-message').text("loading please wait ..."); - -} - -function loadStopCallBack() { - - if (inAppBrowserRef != undefined) { - - inAppBrowserRef.insertCSS({ code: "body{font-size: 25px;" }); - - inAppBrowserRef.executeScript({ code: "\ - var message = 'this is the message';\ - var messageObj = {my_message: message};\ - var stringifiedMessageObj = JSON.stringify(messageObj);\ - webkit.messageHandlers.cordova_iab.postMessage(stringifiedMessageObj);" - }); - - $('#status-message').text(""); - - inAppBrowserRef.show(); + if(isEmpty(url)){ + return; } - -} - -function loadErrorCallBack(params) { - - $('#status-message').text(""); - - var scriptErrorMesssage = - "alert('Sorry we cannot open that page. Message from the server is : " - + params.message + "');" - - inAppBrowserRef.executeScript({ code: scriptErrorMesssage }, executeScriptCallBack); - - inAppBrowserRef.close(); - - inAppBrowserRef = undefined; - -} - -function executeScriptCallBack(params) { - - if (params[0] == null) { - - $('#status-message').text( - "Sorry we couldn't open that page. Message from the server is : '" - + params.message + "'"); + var userid = window.localStorage.getItem("userid"); + if(url.indexOf("?")>0){ + url=url+'&uid='+userid; + }else{ + url=url+'?uid='+userid; } - + inAppBrowserRef = cordova.ThemeableBrowser.open(url, '_blank', { + statusbar: { + color: '#03a9f4ff' + }, + toolbar: { + height: 44, + color: '#03a9f4ff' + }, + title: { + color: '#ffffffff', + showPageTitle: true + }, + backButton: { + image: 'back.png', + imagePressed: 'back.png', + align: 'left', + event: 'backPressed' + }, + closeButton: { + image: 'close.png', + imagePressed: 'close.png', + align: 'left', + event: 'closePressed' + }, + backButtonCanClose: true + }).addEventListener('backPressed', function(e) { + //alert('back pressed'); + }).addEventListener('closePressed', function(e) { + //alert('closePressed pressed'); + inAppBrowserRef.close(); + window.location = "main.html" + }).addEventListener(cordova.ThemeableBrowser.EVT_ERR, function(e) { + console.error(e.message); + }).addEventListener(cordova.ThemeableBrowser.EVT_WRN, function(e) { + console.log(e.message); + }); + inAppBrowserRef.addEventListener('loadstart', loadStartCallBack); + inAppBrowserRef.addEventListener('beforeload', beforeloadCallBack); } - -function beforeloadCallBack(params, callback) { - - if (params.url.startsWith("http://www.example.com/")) { - - // Load this URL in the inAppBrowser. - callback(params.url); - } else { - - // The callback is not invoked, so the page will not be loaded. - $('#status-message').text("This browser only opens pages on http://www.example.com/"); - } +function loadStartCallBack(params,callback) { + console.log("1",params.url); } - -function messageCallBack(params){ - $('#status-message').text("message received: "+params.data.my_message); +function beforeloadCallBack(params,callback) { + console.log("2",params.url); } diff --git a/platforms/android/app/src/main/assets/www/js/security.js b/platforms/android/app/src/main/assets/www/js/security.js index 441d577..3586930 100644 --- a/platforms/android/app/src/main/assets/www/js/security.js +++ b/platforms/android/app/src/main/assets/www/js/security.js @@ -10,8 +10,15 @@ var app = { var phone = window.localStorage.getItem("phoneX"); }, - doNext: function() { - + editPwd: function() { + window.location = "editpwd.html"; + }, + toPayPwd: function() { + window.location = "paypwdmng.html"; + }, + logout:function(){ + window.localStorage.removeItem("token"); + window.location = "login.html"; } }; app.initialize(); diff --git a/platforms/android/app/src/main/assets/www/js/server.js b/platforms/android/app/src/main/assets/www/js/server.js index 96d5023..3194de9 100644 --- a/platforms/android/app/src/main/assets/www/js/server.js +++ b/platforms/android/app/src/main/assets/www/js/server.js @@ -2,9 +2,17 @@ var dev = true; var SERVER = ""; var GLOBAL_TODAY=""; var GLOBAL_YESTERDAY=""; +var CURRENT_INDEX=1; if (dev) { SERVER = "http://172.28.43.3:8099/payapi/mobileapi"; } +function V1Cardinfor(callback) { + ajaxPost("/v1/cardinfor", {}, callback) +} + +function V1Pwdset(param,callback) { + ajaxPost("/v1/pwdset", param, callback) +} function V1Billdetail(param,callback) { ajaxPost("/v1/billdetail", param, callback) @@ -105,7 +113,7 @@ function ajaxPost(url, param, callback) { dataType: "json", data: param, crossDomain: true, - timeout: 5000, + timeout: 10000, headers: hd, success: function(result) { if (callback) { diff --git a/platforms/android/app/src/main/assets/www/js/signxy.js b/platforms/android/app/src/main/assets/www/js/signxy.js index b259a5b..f97f3d4 100644 --- a/platforms/android/app/src/main/assets/www/js/signxy.js +++ b/platforms/android/app/src/main/assets/www/js/signxy.js @@ -13,7 +13,12 @@ var app = { $.hideLoading(); if(ret.code==200){ $("#content").html(ret.page); - $("#btn").show(); + if(isEmpty(ret.signed)||ret.signed!='yes'){ + $("#btn").show(); + $("#content").css("bottom","135px"); + }else{ + $("#content").css("bottom","10px"); + } }else{ $.alert(ret.msg, "错误"); } diff --git a/platforms/android/app/src/main/assets/www/main.html b/platforms/android/app/src/main/assets/www/main.html index 2cb4444..57c416c 100644 --- a/platforms/android/app/src/main/assets/www/main.html +++ b/platforms/android/app/src/main/assets/www/main.html @@ -209,7 +209,7 @@
    -
  • +
  • @@ -218,7 +218,7 @@
  • -
  • +
  • @@ -261,7 +261,6 @@ var tab = new auiTab({ element: document.getElementById("footer"), }, function(ret) { - console.log(ret) if (ret.index == 1) { $("#main1").show(); $("#main2").hide(); diff --git a/platforms/android/app/src/main/assets/www/scan.html b/platforms/android/app/src/main/assets/www/scan.html index 80b62bb..9907fa0 100644 --- a/platforms/android/app/src/main/assets/www/scan.html +++ b/platforms/android/app/src/main/assets/www/scan.html @@ -20,8 +20,8 @@
    扫一扫
    - - + +
    diff --git a/platforms/android/app/src/main/assets/www/security.html b/platforms/android/app/src/main/assets/www/security.html index 9cc54d3..d9811ec 100644 --- a/platforms/android/app/src/main/assets/www/security.html +++ b/platforms/android/app/src/main/assets/www/security.html @@ -22,7 +22,7 @@
      -
    • +
    • @@ -31,7 +31,7 @@
  • -
  • +
  • @@ -41,6 +41,9 @@
+
+ 退出登录 +
diff --git a/platforms/android/app/src/main/res/values/strings.xml b/platforms/android/app/src/main/res/values/strings.xml index d4d339a..e68e2c4 100644 --- a/platforms/android/app/src/main/res/values/strings.xml +++ b/platforms/android/app/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ dlapp - @string/app_name + 大理APP @string/launcher_name diff --git a/platforms/android/app/src/main/res/xml/config.xml b/platforms/android/app/src/main/res/xml/config.xml index 3be6168..0bff711 100644 --- a/platforms/android/app/src/main/res/xml/config.xml +++ b/platforms/android/app/src/main/res/xml/config.xml @@ -34,7 +34,7 @@ - dlapp + dlapp A sample Apache Cordova application that responds to the deviceready event. diff --git a/platforms/browser/config.xml b/platforms/browser/config.xml index a7be4bc..df4c7f6 100644 --- a/platforms/browser/config.xml +++ b/platforms/browser/config.xml @@ -1,6 +1,6 @@ - dlapp + dlapp A sample Apache Cordova application that responds to the deviceready event. diff --git a/platforms/ios/dlapp.xcarchive/Info.plist b/platforms/ios/dlapp.xcarchive/Info.plist index ae2c172..1ea4592 100644 --- a/platforms/ios/dlapp.xcarchive/Info.plist +++ b/platforms/ios/dlapp.xcarchive/Info.plist @@ -20,7 +20,7 @@ ArchiveVersion 2 CreationDate - 2019-07-10T07:54:28Z + 2019-07-10T08:13:18Z Name dlapp SchemeName diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Assets.car b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Assets.car index 6f3a3a925e8da9e1698489d05060bd9ad16efd8b..4dcb824b98127bfb9a82148ffc9da1f2bbb3c9d4 100644 GIT binary patch delta 62 zcmV-E0Kxx=-w}x45wHvb0tTM54g!_|1pWtSRI{i9A1sqcE@6WxFo!5G0k@SDxF9EmgF9I8s XljoXYw`jxyPvDbBE+x0zqywzVd(<3? diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib index 7f4b36a4eb3e8030a4200fdaa7ebd65d17f1f12d..4265641012a0ffc68665f541541cc86ea805ca49 100644 GIT binary patch delta 1001 zcmZ`&O-NKx6h8LmzImN~N3Ar??8hij$f8Y~Kp_x<=yw-pIgnuU>^UV7F>{^gy}kFw zlAdAEsQto_HYP;1s9oz?w5VN+h-gtl%i47AonA`T;(hn$-1~j!e&@WeiMhl`L*^*} zyr8cs2C$MwumJK|nUjOAC&h>qV^T~=@j&|1LGX;r=R@M9^j`VFYwo{s#alOc$HjZ; ze{lVegZ?L1ei;hB@!VXH{ox6NOMzVa3C@E``l>k3Rde@B4bKI2oDbLY+Pv7#UEa+3 zPz%rTophj;4`z3BZ}!PKqos-xdW3Ppn^;Mh#r1?-`T^^RLpD+hK7; zk~MjiW^c0p;6N(rP}T>!&ZkbFIg+-Wi>K`NE~i_i-ADpLcU8Hx)3}^=Zt0G=p}WJi z#uj1Q84f3ZkGO6a>Mqt415JP!ioni-;tXoz9ru zv=p~Rv8iqSfM7Ijq3A)6iWl$RJa`dN5qi~%Zze3QwjT1EnfLN`{{Q!Oe?-4WhugAq z0Pq@rohHCKTz^{t#hesUiXkaS2mJd?jB#&*u}S7larcQYW~BR)=Ux@q8|J;u%Xb6b zdtZEz-bXGzN%u>hf0eoUg8!5GznHhcMIGa}33Gj$F;UN?XkgNB#(j%g+Zl6XEI-)6 ziiN$*^A9jKaFDsPFRmKd&8X)&Z9v|mN?VRbkWBM|rl(nVA4{h)PP#YvM(nJr3BWFcT_uu?)2(=x zM9?U%g2psk{}U6mP3MW`D$Na=b(-5WDKd0G%0NN~qy(gz#Y=^@C#VuEs1o#$_~Z^5 zBqL;kHsSd(z$1zSgd(+(<8(Vx6>h<`qDul;bgD9{OMp37c<}!3djg zl)zB0Pi_3mopRf|c{sj*-<}xaR(R?1Cvdx{uIo+qo$OB~9i@0ZD$3haR*)b~LCT6p z+cAKSXXvh_nGETOug1U>-H22j8YEAlae~&@{?2WF9pBYi{3LQm?rILv=3v2^{{uSl B>OKGf diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib index a974fba3077dfe6ee58530d3d97134fdd2b7737d..450a88232d554fc3c11240a3102e3b765ee71805 100644 GIT binary patch delta 369 zcmZwC%SyvQ6b9h5ni!Aw2N_XIUAj;ZDu|-kg}Yt`S_qkv1dFSBGMO|@Z_%QK;zr-V zH|R6?M4pV`%FV|x=bxW5OKWLm7OfVW?lwv%T(FElbqYULUsuvl(qI^R&m*FCe z-&OR1@u&J~ofLXIhG9%#j~s$YN+^(h?MOS&DpQ%My*N0$U`~gL>Lq(<^DevRWp-R= zM?opIv&!jt+w+4P?stUSm~OJ8GKe{OU{ z*tVdtZDDK6vc`=Wc8op(3=9l?Ts%Osn~MWTHgoX<$#yW=113AcWEV$|r;}S|PHM4# zd0uK!FBdydSsNE8knHCY1d_d6jFWkpSiA|W zri-JixFo-*GATc?D5aIPl@(R1Izn$3$1DRwFWsC1-TW|L-7=sXbfZ#Db4%c&x|c+j)E+=ZE*_FL*v)pMk*(1A`YTix5DOr}8c-1XHoJ zuP-=-V@472qXe%xdyZ(vjs0s+87>A16<>!O| zRnG!Xi`&ZuP@nL*xU{4ZDn>3x<)f8JE|dHmpfgO^`t%>=Y2g6?8F)6eEos8zUf)cO zUlv0P8@K44Rd{Q=WDEdvc-=?94M3$q+)4sm07;-o9jhV*rrG*Ikmu;B64zH&l|7a6#4t>NR8MDu0^M`P|3}5^J|n){p-5te(cE+ zhh!5aG5Q?fs6pAr#VKmuRPlj8jm%n<#)%gREO0>XC?){F)wWI2>W=zLfl*yyA6w6( z+a<129+PT5l!qU-?{A_#41Ur^@Xayow+uKyLyRfq=rls)-+M2ON!yG1?A1Vw2M{Tdwa` zc?b$3L((hf?IyOzqJFY@4?JS?y*iOudj+Rdb7}*` zt6F+0wd#A>wk-9kr*#dxa>5Y-+#Ls8UB%BPI22-oLEy*N3oFO>K0bq#r!HIZrVgm;?oel&A$ z-%90ij&%2CY2zD-jY$sqfG8Fm?=w1lY5pSh`+I1oaAU6dq(v#*igzU2r>?nQsXqU# z14)b-_#i`7q;)zy{TpJdV1=cS25`>)%&14&#rN!L^#&i#_EQ`Ak=Am6wg0iX%1!0@ zdu-xqDDIdV z!lMWd(HK%3fX^S!;^UdBGvksgU{t$vT%4HwIHzFi;<)qu`!8(x<@&0M zgN|?JH(rjG-ofn7X=c;dY>d#B79=-6sIjMoANi)5A#z_t zY@oI&4(n-##2CRa##g+^4n7z!HXE1wkrm$I(W&|Lma&7@{Xz2CSv{P=rW93gs52LY zNJJOR%d3^EMH~JrE4Q*uW1&uWdG_X+T>rr=haS(Gzq~#MkCVS<@x;*ebF{WA48V@! zkA$LYC;}Y#Hgm&)ak)S!4?M5mEuMR{F|0@j zm9aAVw(oYE>ip5uvVlLg5(j7~W7nn-L~jBgvH5##Xr17AS|<;K)(NRQE>d~1GuRTf zlG$SuVKcG64kWHdono_Tn1CFykSBn z0dsXtw>L3Vfg3YxA!xF)zKwi-=@&KwM!Ol!KBd@+t@Ut0r*mxyPrpgC*+7kL)bS() zArNWfrfrGPGEybsLLG=6O5RX58+!vB*+|3OEyUIX>Z@%8QxDc6Tbip`co_bCQr3~R zb-_<_Y9v`MQPtW8CX|l8b<=-W*G*p(;ClnHxJ;{>&LA$ag7;cc%_(#KTtuaMrroF& zUaYxEkWcwE#iyuhsQBc^#lLh}8B|XShgH7Cct5 z+`sq4WMhBqkg`(`Rq{7Ecm@@ilni9SQg^lB72&h`?rqzwUiV600jR1Hhb;H>yh9v2}Bwk_wjR)WM?0$+D2^p(1qUXX3@0nP^*;X~#7K1YZ4z zb)#OS;^tuaeL-*Hz@3Ld=(3X$G<>f@+|tgw20)43pJINWZWtU^Pvp07#-ywpN>vg3 G)c*@W#t%LK delta 2266 zcmZ|P_gfN*0>*Jg6r2q;OR-GLqgmo&SjPoI2yRpeH;4#YxX6)-=IWHAfo&t^iH3%t9mD<8}H*2-GZD1IB&p~DgptsFg2%`K;`6*rQ_1q zm8Io@rn*3#xoyE)QFd$hJFRy@Xvsmt0GW2WT`imSoW$Bb_DKxkU0?$a+IYx+3FS(y zh+A%y=-eZ*uat9*%{;n3->FQ9Bgrfb)S76^$r`E105pMW=MajBu=U4$ABw$khZW?r+8DR=_WI6D5M*vQ8Ep4Uzq@ykNw#=}7Lta06rd>3dI@gt5k=oz-#!NVP zrKyUn@-Y%uT0XsBvC4l7E&J1yw0<6YsAS3W$uG8$N6>++3DeGHOYpK`Dl}K2{nFhm zK*Fwq3t{hi4_STfnf{i!5Vges?9PX~fNk);H^WMny0>1=5$X$vg!$+U?yg32-UENU z)vY7UQ7FynV=XMVMB1)@c6VeK*U+j}Kz_G5Ii|%oNPA5xW`ZaSAy1V9^C9=H2?=GDr} zs%^`Z;l&FBhDafk-8cLvn^E8no7{+%#Vw1zWgs8LcHg(RWF9R?tSQoS{4`Ct9-P_2 z5#as}{ChU9Y%~}RgWbE|m>wJVxNn3s)-U!IowEl*Yujc3I)DBMGm(a>d0|@t6wa5Mg{%J#^V2LGhS^C$E$g$XdPPbqe++1%eRxC z#-xs2extX-cSt!_CSmh+wiD@rtY0&cb5g^QOnaC#KmkV5JbjP+oFD81Nv6v z_>#;hnp&w{ite#5U8EJ?lCVKR;lUoxVP_~XC=*GIJRjr~iwWnzSZsXMf7xh8T4IR= zXGRc#=t(%uB!n`&@UHN9Mwp8yZ&w816c<&zv|3I%Sm0fnQ9E;O<+wTdnz!}>=DU8n znXeLLw0+}}>NNEDV?mJg9CJxq#lM&~&_25Oo}HxOsM#EAb1*(J>_AUj*y6eFix{1O z_n}d6?2+m_^N_|n0*b1#&qq4O^$*1T{<9ZdsN@x+CNUjTKbl!t^>kSS9y1k<;9gaB z=(kg=>^sn80ABr`2f4W&a~(Bxb@sCA`+&KEUYP_Tbq~Ye+N@^Yho;{;GA~DhC(^MC%VC zhV6J1WG!w}iV?dt9xGpF>yja}O z51kJRIz;k+uSONtt#^*Ekmj8vR@d*35oISyKMw-e=mjgqlyWwSmn3S&n~_c8*}(di z4P^G%6+rdCZBPJkQ9_m(a%!(kIID~TFhFrCP7 zi*!XUD(59fN$b$)og|A70tKKJ+BUx&rdfg3Cr3Hh_DgK5in{L7YM zmT|al=E{5XT(a_9Fn|y60|6iign%#*0ir+*hyw{A38a8DSPo=>ERX~8UEdn$^!BisoM>r&u1142}?}zzfe+8^1RGZ(WZS;W;w9pTw~H03~I8!ZOV>R z8w)}Jg~9M*MRPRP(3DiXU6a!SbUla>3|osWMlnW|xNrxmzprzeQG0E57oj+LxYnyN0LD#3rYMdf4B3$IVTB9BRvox2v31GiV=vKD+Ex0?m(iTH6X2 z*|0jruD=hwHdW6uAJIB#o>M^f z=2WQ($39z_xPJUoGf!LB{`-*M8CAB=mlAgYW}(%?s#u{3OPf1mq~DhL3r4$S6p4=D z{$fUi=mlFGp*(6&>8`Fj5OJ1yrAfCzF5h)=VJ)dopChrD;r-Z@wvoT}(`qa~FMTX4P*;Z!^l`cxhk4WT7hc|{qR@M69+SiczjB2=H z#bhq4PqBIzjU_H2_y2>-%FCevZ{P!b!A9T*{6PTN1Oh=22nL%$2nYpXARI&hI@kiX zf^C2SBEfbL1)@O=V1ih{0&yT7B!EPa1d>4tNCjzN2S^7yK?e8@u)!{{8|(plK_=J- z_Jb^N0Az!MAO{=*hrtnW6dVJ`!3l5@nS4Xbtd^k}SJ!trdHd|X4I`QrKMNO|D|h(E>VCxeGi7q#RG6&r z6!M&SSE)_%8s?~K)5cT`jVS@)3`bX!xD*0qqm84lhhbE_cYu*EJ)zhDW~Hc-XrAnB zMq(upBMqsftscHkUhXk|sm4B(_=sP_v!vhVD@tb=?;G4vR>sXb@p0bqKL6UsT!&J> z&akSpgZSEXeqzYU9e3JfG^FaYJ4CzG9{S#Ru!f&0SJf(Haa4)EfiPxq&HHgj{zr?? z*OrVLMi(x0$aN;QpDdWaBVf5xFZbw9FY_z7*e%fp@n(W;{=qXkCPx*$c$XK+A12tV zTD$%#A8<=QXjJaXmrDJ*Jmcmlqow@{CQ|b5aGC4+(S8?k)#?k9<40IR!XJ*U*U4Fb zhV=z|{P&7Sw`)d6!j_*IncG=W@2)_9T~u*@a-@prXTkocu$QFwSt)xpaR=X(1T#$! zzKc`1&^GSu<*}z0kG{vHFUW(Q4 zkndk{ibK_X;Y2Y@I$tU_F!3g8GPr)e6jPUgyPj{d!>5*g@`t^+o^PXI(M{f-+?e2o z2RKt@-oo_u9gY1e7))XNe+{&5fbp_2Ox9d|P`H8jFtM6!!f*AANHxFLP)Y>MVgt=w}&yj zhy)XN^OUXe2|lioELy;?eeQP>AY1kuXL?!Z6r8Z5L~RdL$-&?6_EHZCs;ECG7W=_Q z@}A?1tGCRV#|il>CliYz_MOv9i0Yd0%D2t387OKh3y!;4Lten+^N%vsI6?QxpLIx4 zt2!?!jkR}I`HOMWb;og&3dUs7z;V?h;cCX+G8;cw&s)9UJN4B^@ICvvtE`#E#HWL; z*$f6w0K@mj} zLlH-jK#@d|LXk#Ujv|91iz0_2kFo+q0Ywo-31uaUGKva{Dhd`w4MiOVhoXV93Plq| z3uQHmHp&_l9TYsuS`=LrJrsQu0~A9P0tyku2*nu11jQ7Egkpwbj$(nb4rM)xCCUaA zD-<${HHr<2Es7nAJ&FSg1;r7?3B?(OisFLeisFXij^cshiQ9)`JlLw@B~VdI+^5kaN+`7@$@m=qJ|ZAqSK$x&f6TjyWjLA%b{NOx>|?(U+c8obD8C#qLzDF$agUzpxDGi-n(^%zdmB~t$eRYS=Hvih|{_Pvz^o8 zRm-uvG|JTtJX3m)#kjEx-I$u1nc7Y(^T->M`%;?LuJ*I`O3}s#q}6*uoF=6^r&|WJPL!xOQu-?1JbqfKR{Pk@8>gz2d8u^CE%Sc$ zV!ifUzH+ibXG_VaCAIHD&D<@mj!v~fGbZxHj#oCl0U~ku`Ak~4Vf&5$2VQPG A-~a#s delta 3736 zcmZ|Q`8yP9AIEWnlwAnTSPK!djImXiF}7g_V_%yIV>gp5BTB_VNQ-_L~{{i=PeZF_q!hX>zaF*jFR((Vxkk0o`fR7Ku zSJF&1!=@KIWfePN06!1_f?ydC0?WY)APhu+C=dhUKmtetDXa z$9M~$4fb5?3W{qhQSPk`;e8i(lVGXJY8m5d1;@Dq?`Mle11K*>1REG!f_m3h`(r(a z5@zjqy76uS&8DUVVUjf@MWLt@KfbPlDf9S&Y# z1bnBucWUad>V3@~B$u>n(3LG+-}b312T1xFzxH)V&8^t;&i#{>-(pS4U0J_Trp2)= z10|tlIuZi>SV7quW0{rZ$t{UI_3L{Mip(llx`vkEH0cvqcBGq!t)C$wA(n}!P@PCo z#5iMnGQrKyt3+)bT>qvr2|zFvcP+)L&3f zBc!Nd*B?)gU+Q1*J@xSms8C|Bs-a);k z4LW?s`}DpR88|J`qRkcE{T02FAG}Y?kCxhh`AM&ie%Og;rfpwj8>J@s6{Pjc>xa&Y zNsKoRKJb(>lbgBQ)LdA^@X0VMCn&X!-j%yQs9$*S!;Z0mr-^q%)H_FN#Xbeja`AKD zoE@fV0)Zvjk1|rQXYR*WMvYniK3;ZeTiNrL>5e!PxBDmGXid=ZHtlO8Naob^YW{3O zGqcjFne$No(r!9ORIKX%2bWcxO9$@219$>2;0=6$FYp8YAOHk{Ag~26026El!5{>L z0u~4Z;UEG;f+!FTVn8fl0}j{*;=pzg4-!BkNCI4t40eDNkP3E!T_6qY27AC>kPb4y zZy*z7fo!l3pFi`=*Q|}duy9ms(CrOem8NsB8R;kGHXfwQ(~-? z!Pw6yg3l5B?gj*0n&WN4*9DyWuhqF}I&B>8F4uM`kM8d4?hiNF{StF%K~^;TGyCO~ zdAZa-tF!9qQQwurYfKT3e#1Ngv1A$FW?E2*fabbB-(9j2%z&rrNU;eC=&*sFfRFR`R&y?d&KP zn-jjxg%t1Q!HSMxv7N~F5%^fg;Ge^*@juK+y)!cLG<~=zjcZ%S<#>2iB(FL$ZCaetMm@f1-bH{(vhZ?UEB`Cg^=tZL_(;{AAz zyet!Y+3)FJ&v#OMIxy2O>MDxfeZD`(QO#Gr;Tt8KzNHXGSYE^`i^V3k{7Y1K||CHqBJGb6u$EDg$=`_%QK*L_2B zcW}mA%9F{ln`_)9*W*jG_{xT)N^UeC&a7cq1$u0W4xE1x^XkFLN?p$mq5F8-X2!}< zrH9h9w(m70E^Yc!IMld2;fc!3A&;Tmn3B8TPxwV$FT7+%U75_}mpgu3#-Gq5tsG_(2 z+HSmH`v4AuDeL-YocMo#iQ-Me?lv3o3E6w3>d3Da!>8wDDk?uF+wnCGUTc)xYVl*7 zra|6q_A!F{R8BL#@P~DiS3Z|>Xvtm0eAg7YUp`en>6dZx-Ff^Vcc7qx%T=+IA>H4P z$*b%6F-{^i(c8c`(KCubFb*Y|>DU@LyG6R$Q#n-j&vDWW2|kHYA@L-~C{~;|*^n5+ za-fqOg6*QhevZ?&mY~V28YQo&@vU9D)^m|rS5GRqP`aSeP(7SK*jnnTjGv@;=vH2r z_uokeAFm`Zv^~=_@O6%jqi2=^ro~E-`ZOTrK zHJi#ycy)bRMkj}>XnlQ|a*;EW^a16Yc-c%>l%!^XFOCnsFyB&i~EgMUTw42 z@_XWW@vlA7G5i9uKgKzZZL{Xbz&ii+EgqoI_%RRx6hV|_C_*U9QC6S`qllo0qKKi0 zqe!4gqDY~vM3F|3L6JpSg(8O{kD`FG8U>4jLs3LgLQzIhK~Y6fLs^5e7DXLJ14R>M z9f}r;Hp+Sw9TZ&@J(LY7`X~k{hA2iTcobt40*VQWDT*12If@0!MwCq`n^7!LtWc~` zh$ti!8x%5%Es7nAJ&FU0BMJq@3B?(Oib6wiL2*TKL!qO%qj;crqIjWrqxhisqWGcs zqXeJ?q6DFAL1AFpDKsYL%30as+gDNreBwF3b9TP5-en02Tg=$jDc+b!A?LOSCm`#2Ebq*Mmt_kPpGIP~^T+R7P zK0`&)NMZ0u+#EfGdFH^%rP&|nz~f_D$ki!YhsC%-9MgSCu%<@hdA5r;zCSF~$xg(+NGyGv9#PaIbD^JMXl(5>opg6!wAXpba~?kEOubOo zqu))z5)|sCbljfZsRKC$7UjH*0quC{^~p3&ea5NeAfZFP@4 qai@-^jm=SM|JZ0nrWO=zldcJqi8XB^J^F3&yoMxy`r~G1CjNiuC^tg@ diff --git a/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreAudio.dylib b/platforms/ios/dlapp.xcarchive/Products/Applications/dlapp.app/Frameworks/libswiftCoreAudio.dylib index b30124452396debe6221952ab1e5abc19391a9bf..8827440e3a7fe4c6e32db3e8262d9e3e8331a1ea 100755 GIT binary patch delta 2323 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