From 17616504ab0bba93b30ab7abc67108ee5253f39a Mon Sep 17 00:00:00 2001 From: SuperMonster003 Date: Sat, 2 Dec 2023 13:52:14 +0800 Subject: [PATCH] =?UTF-8?q?6.5.0=20-=20=E6=96=B0=E5=A2=9E=20opencc=20?= =?UTF-8?q?=E6=A8=A1=E5=9D=97;=20=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E9=97=AE=E9=A2=98;=20=E4=BC=98=E5=8C=96=E6=89=93?= =?UTF-8?q?=E5=8C=85=E5=BA=94=E7=94=A8=E5=8A=9F=E8=83=BD=E5=8F=8A=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=AE=A1=E7=90=86=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +- README.md | 93 +- app/build.gradle.kts | 86 +- .../autojs/autojs/statics/RhinoE4XTest.java | 2 +- app/src/main/AndroidManifest.xml | 14 +- .../{assets => assets-app}/doc/CHANGELOG.md | 41 + .../main/{assets => assets-app}/doc/RHINO.md | 0 .../main/{assets => assets-app}/docs/404.html | 12 +- .../{assets => assets-app}/docs/activity.html | 12 +- .../main/{assets => assets-app}/docs/all.html | 914 +++++++++++++- .../docs/androidBundleType.html | 12 +- .../docs/androidRectType.html | 12 +- .../{assets => assets-app}/docs/apiLevel.html | 12 +- .../main/{assets => assets-app}/docs/app.html | 12 +- .../{assets => assets-app}/docs/appType.html | 12 +- .../{assets => assets-app}/docs/arrayx.html | 12 +- .../docs/assets/dnt_helper.js | 0 .../docs/assets/fonts.css | 0 .../fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 | Bin .../assets/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 | Bin .../fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 | Bin .../assets/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 | Bin .../assets/fonts/S6uyw4BMUTPHjx4wXg.woff2 | Bin .../assets/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 | Bin .../{assets => assets-app}/docs/assets/sh.css | 0 .../docs/assets/sh_java.js | 0 .../docs/assets/sh_javascript.js | 0 .../docs/assets/sh_main.js | 0 .../docs/assets/style.css | 0 .../{assets => assets-app}/docs/autojs.html | 12 +- .../docs/automator.html | 12 +- .../{assets => assets-app}/docs/barcode.html | 12 +- .../{assets => assets-app}/docs/base64.html | 12 +- .../{assets => assets-app}/docs/canvas.html | 12 +- .../docs/changelog.html | 28 +- .../{assets => assets-app}/docs/color.html | 12 +- .../docs/colorTable.html | 12 +- .../docs/colorType.html | 12 +- .../{assets => assets-app}/docs/console.html | 53 +- .../docs/consoleBuildOptionsType.html | 25 +- .../{assets => assets-app}/docs/context.html | 12 +- .../docs/continuation.html | 12 +- .../docs/coverpage.html | 12 +- .../{assets => assets-app}/docs/crypto.html | 12 +- .../docs/cryptoCipherOptionsType.html | 12 +- .../docs/cryptoKeyPairType.html | 12 +- .../docs/cryptoKeyType.html | 12 +- .../docs/dataTypes.html | 39 +- .../{assets => assets-app}/docs/device.html | 12 +- .../{assets => assets-app}/docs/dialogs.html | 12 +- .../docs/documentation.html | 12 +- .../main/{assets => assets-app}/docs/e4x.html | 12 +- .../{assets => assets-app}/docs/engines.html | 12 +- .../docs/eventEmitterType.html | 12 +- .../{assets => assets-app}/docs/events.html | 12 +- .../docs/exceptions.html | 12 +- .../{assets => assets-app}/docs/files.html | 12 +- .../{assets => assets-app}/docs/floaty.html | 12 +- .../{assets => assets-app}/docs/global.html | 12 +- .../docs/glossaries.html | 12 +- .../{assets => assets-app}/docs/http.html | 12 +- .../docs/httpHeaderGlossary.html | 12 +- .../docs/httpRequestBuilderOptionsType.html | 12 +- .../docs/httpRequestHeadersType.html | 12 +- .../docs/httpRequestMethodsGlossary.html | 12 +- .../docs/httpResponseBodyType.html | 16 +- .../docs/httpResponseHeadersType.html | 12 +- .../docs/httpResponseType.html | 12 +- .../{assets => assets-app}/docs/i18n.html | 12 +- .../{assets => assets-app}/docs/image.html | 12 +- .../docs/imageWrapperType.html | 12 +- ...ation-append-script-name-on-title-dark.png | Bin ...tification-append-script-name-on-title.png | Bin ...6-notification-big-content-sample-dark.png | Bin ...utojs6-notification-big-content-sample.png | Bin ...notification-big-text-for-content-dark.png | Bin ...ojs6-notification-big-text-for-content.png | Bin ...tojs6-notification-content-sample-dark.png | Bin .../autojs6-notification-content-sample.png | Bin ...autojs6-notification-item-details-dark.png | Bin .../autojs6-notification-item-details.png | Bin .../images/autojs6-notification-list-dark.png | Bin ...notification-list-with-same-names-dark.png | Bin ...ojs6-notification-list-with-same-names.png | Bin .../docs/images/autojs6-notification-list.png | Bin ...autojs6-notification-title-sample-dark.png | Bin .../autojs6-notification-title-sample.png | Bin .../docs/images/ex-gravity.png | Bin .../docs/images/ex-layout-gravity.png | Bin .../docs/images/ex-marginLeft.png | Bin .../docs/images/ex-padding.png | Bin .../docs/images/ex-properties.png | Bin .../docs/images/ex-w.png | Bin .../docs/images/ex1-horizontal.png | Bin .../docs/images/ex1-margin.png | Bin .../docs/images/ex1.png | Bin .../docs/images/ex2-margin.png | Bin .../h-distance-color-detection-dark.png | Bin .../images/h-distance-color-detection.png | Bin .../hs-distance-color-detection-dark.png | Bin .../images/hs-distance-color-detection.png | Bin .../docs/images/logo.png | Bin .../rgb-difference-color-detection-dark.png | Bin .../images/rgb-difference-color-detection.png | Bin .../rgb-distance-color-detection-dark.png | Bin .../images/rgb-distance-color-detection.png | Bin ...hted-rgb-distance-color-detection-dark.png | Bin .../weighted-rgb-distance-color-detection.png | Bin .../{assets => assets-app}/docs/index.html | 20 +- .../docs/injectableWebClientType.html | 12 +- .../docs/injectableWebViewType.html | 12 +- .../docs/intentType.html | 12 +- .../{assets => assets-app}/docs/keys.html | 12 +- .../{assets => assets-app}/docs/manual.html | 12 +- .../{assets => assets-app}/docs/mathx.html | 16 +- .../{assets => assets-app}/docs/media.html | 12 +- .../docs/mimeTypeGlossary.html | 12 +- .../{assets => assets-app}/docs/modules.html | 12 +- .../{assets => assets-app}/docs/notice.html | 12 +- .../docs/noticeBuilderType.html | 12 +- .../docs/noticeChannelOptionsType.html | 12 +- .../docs/noticeOptionsType.html | 12 +- .../docs/noticePresetConfigurationType.html | 12 +- .../docs/notificationChannelGlossary.html | 12 +- .../{assets => assets-app}/docs/numberx.html | 12 +- .../main/{assets => assets-app}/docs/ocr.html | 12 +- .../docs/ocrOptionsType.html | 12 +- .../docs/okhttp3HttpUrlType.html | 16 +- .../docs/okhttp3RequestType.html | 12 +- .../docs/omniTypes.html | 16 +- .../assets-app/docs/openCCConversionType.html | 423 +++++++ app/src/main/assets-app/docs/opencc.html | 1062 +++++++++++++++++ .../docs/opencvPointType.html | 16 +- .../docs/opencvRectType.html | 24 +- .../docs/opencvSizeType.html | 18 +- .../{assets => assets-app}/docs/overview.html | 12 +- .../{assets => assets-app}/docs/plugins.html | 12 +- .../plugins/docsify-copy-code@2-styles.css | 0 .../docs/plugins/docsify-copy-code@2.js | 0 .../docs/plugins/zoom-image-styles.css | 0 .../docs/plugins/zoom-image.js | 0 .../{assets => assets-app}/docs/polyfill.html | 12 +- .../{assets => assets-app}/docs/progress.html | 16 +- .../main/{assets => assets-app}/docs/qa.html | 12 +- .../{assets => assets-app}/docs/qrcode.html | 12 +- .../{assets => assets-app}/docs/recorder.html | 12 +- .../{assets => assets-app}/docs/runtime.html | 12 +- .../{assets => assets-app}/docs/s13n.html | 12 +- .../docs/scriptingJava.html | 12 +- .../{assets => assets-app}/docs/sensors.html | 12 +- .../{assets => assets-app}/docs/shell.html | 12 +- .../{assets => assets-app}/docs/shizuku.html | 17 +- .../{assets => assets-app}/docs/sidebar.html | 20 +- .../docs/storageType.html | 12 +- .../{assets => assets-app}/docs/storages.html | 12 +- .../{assets => assets-app}/docs/tasks.html | 12 +- .../{assets => assets-app}/docs/threads.html | 12 +- .../{assets => assets-app}/docs/timers.html | 12 +- .../{assets => assets-app}/docs/toast.html | 12 +- .../main/{assets => assets-app}/docs/ui.html | 12 +- .../docs/uiObjectActionsType.html | 12 +- .../docs/uiObjectCollectionType.html | 12 +- .../docs/uiObjectType.html | 18 +- .../docs/uiSelectorType.html | 91 +- .../{assets => assets-app}/docs/util.html | 12 +- .../docs/versionType.html | 12 +- .../main/{assets => assets-app}/docs/web.html | 12 +- .../docs/webSocketType.html | 12 +- .../editor/theme/dark_plus.json | 0 .../editor/theme/light_plus.json | 0 .../{assets => assets-app}/indices/all.json | 0 .../indices/all_android_classes.json | 0 .../indices/glossary.json | 0 .../indices/xml-nodes.json | 0 .../js-beautify/beautify.js | 0 .../js-beautify/xml_formatter.js | 0 ...\254\344\277\241\346\201\257 [v6.1.0+].js" | 0 ...oot \346\243\200\346\237\245 [v6.1.0+].js" | 0 ...07\344\273\266\344\270\212\344\274\240.js" | 0 ...07\344\273\266\344\270\213\350\275\275.js" | 0 ...67\345\217\226\347\275\221\351\241\265.js" | 0 .../sample/Java API/liveConnect.js | 0 .../sample/JavaScript/E4X.js | 0 .../sample/JavaScript/HelloWorld.js | 0 .../JavaScript/\346\225\260\345\255\227.js" | 0 ...addleOCR (\345\206\205\347\275\256API).js" | 0 ...(\345\216\237\345\247\213\347\261\273).js" | 0 ...2\345\233\276\350\257\206\345\210\253).js" | 0 .../sample/OCR/test.png | Bin ...23\344\272\221\351\237\263\344\271\220.js" | 0 ...16\345\217\260\350\277\233\347\250\213.js" | 0 ...23\344\272\221\351\237\263\344\271\220.js" | 0 .../sample/Shell/\351\224\201\345\261\217.js" | 0 .../Toast\347\233\221\345\220\254.js" | 0 ...11\351\224\256\347\233\221\345\220\254.js" | 0 ...46\346\221\270\347\233\221\345\220\254.js" | 0 ...32\347\237\245\347\233\221\345\220\254.js" | 0 ...23\345\211\215\347\250\213\345\272\217.js" | 0 ...06\346\236\220\345\270\203\345\261\200.js" | 0 ...47\345\210\266\347\250\213\345\272\217.js" | 0 ...\247\344\273\273\345\212\241 [v6.1.0+].js" | 0 ...nt) \344\273\273\345\212\241 [v6.1.0+].js" | 0 ...\250\344\273\273\345\212\241 [v6.1.0+].js" | 0 ...\245\344\273\273\345\212\241 [v6.1.0+].js" | 0 ...37\345\231\250\344\277\241\346\201\257.js" | 0 ...37\345\231\250\344\277\241\346\201\257.js" | 0 .../main.js" | 0 .../project.json" | 0 .../hello.txt" | 0 .../main.js" | 0 .../project.json" | 0 ...2\345\237\237\346\211\276\350\211\2621.js" | 0 ...2\345\237\237\346\211\276\350\211\2622.js" | 0 ...76\347\211\207\345\244\204\347\220\206.js" | 0 ...\262\350\275\254\346\215\242 [v6.1.0+].js" | 0 ...70\347\202\271\351\242\234\350\211\262.js" | 0 ...76\345\271\266\344\277\235\345\255\230.js" | 0 ...42\347\202\271\344\275\215\347\275\256.js" | 0 .../\346\211\276\345\233\276/block.png" | Bin .../\346\211\276\345\233\276/mario.png" | Bin .../\346\211\276\345\233\276/super_mario.jpg" | Bin ...56\345\217\267\346\226\271\345\235\227.js" | 0 ...\272\344\275\215\347\275\256 [v6.2.0+].js" | 0 ...72\351\251\254\351\207\214\345\245\245.js" | 0 ...41\347\263\212\346\211\276\350\211\262.js" | 0 ...76\347\241\256\346\211\276\350\211\262.js" | 0 ...07\345\271\266\344\277\235\345\255\230.js" | 0 ...26\345\222\214\346\243\200\346\265\213.js" | 0 ...37\345\255\220\345\217\230\351\207\217.js" | 0 ...01\346\200\247\345\256\236\351\252\214.js" | 0 ...11\351\224\256\347\233\221\345\220\254.js" | 0 ...00\345\215\225\347\244\272\344\276\213.js" | 0 ...50\344\270\216\345\205\263\351\227\255.js" | 0 ...32\346\227\266\346\211\247\350\241\214.js" | 0 ...52\347\216\257\346\211\247\350\241\214.js" | 0 ...\237\346\211\247\350\241\214 [v6.1.0+].js" | 0 ...50\345\257\271\350\257\235\346\241\206.js" | 0 ...\271\350\257\235\346\241\206 [v6.1.0+].js" | 0 .../\345\215\225\351\200\211\346\241\206.js" | 0 .../\345\244\232\351\200\211\346\241\206.js" | 0 ...75\345\257\271\350\257\235\346\241\206.js" | 0 .../\347\241\256\350\256\244\346\241\206.js" | 0 ...25\350\256\241\347\256\227\345\231\250.js" | 0 .../\350\217\234\345\215\225.js" | 0 .../\350\276\223\345\205\245\346\241\206.js" | 0 ...\257\346\237\245\350\257\242 [v6.1.0+].js" | 0 ...\257\347\224\265\347\240\201 [v6.1.0+].js" | 0 ...\216\347\261\273\345\220\215 [v6.1.0+].js" | 0 ...5\344\270\272\345\250\261\344\271\220).js" | 0 ...\217\350\247\210\345\231\250 [v6.2.0+].js" | 0 ...\236\344\272\213\351\241\271 [v6.2.0+].js" | 0 ...\236\344\272\213\351\241\271 [v6.3.1+].js" | 0 ...07\346\215\242\346\230\276\347\244\272.js" | 0 ...06\351\242\221\346\226\207\344\273\266.js" | 0 ...50\346\210\267\350\260\203\346\237\245.js" | 0 ...42\346\250\241\346\235\277\344\270\200.js" | 0 ...73\345\275\225\347\225\214\351\235\242.js" | 0 ...11\345\215\223\345\270\203\345\261\200.js" | 0 ...70\350\275\275\345\272\224\347\224\250.js" | 0 ...24\347\224\250\345\267\245\345\205\267.js" | 0 ...34\346\255\242\345\272\224\347\224\250.js" | 0 ...346\266\210\346\201\257 (QQ) [v6.2.0+].js" | 0 ...7 (\345\276\256\344\277\241) [v6.2.0+].js" | 0 ...257\344\273\230\345\256\235) [v6.2.0+].js" | 0 ...270\272 Shell \350\257\255\345\217\245.js" | 0 ...23\345\274\200\345\272\224\347\224\250.js" | 0 ...13\346\213\211\350\217\234\345\215\225.js" | 0 ...27\350\241\250\346\216\247\344\273\266.js" | 0 ...41\347\211\207\345\270\203\345\261\200.js" | 0 ...76\347\211\207\346\216\247\344\273\266.js" | 0 ...11\346\241\206\346\216\247\344\273\266.js" | 0 ...\263\346\216\247\344\273\266 [v6.3.1+].js" | 0 ...11\351\222\256\346\216\247\344\273\266.js" | 0 ...07\346\234\254\346\216\247\344\273\266.js" | 0 ...11\346\213\251\346\216\247\344\273\266.js" | 0 ...56\345\213\276\351\200\211\346\241\206.js" | 0 ...03\345\261\200\346\250\241\346\235\277.js" | 0 ...34\350\211\262\346\214\211\351\222\256.js" | 0 ...56\345\213\276\351\200\211\346\241\206.js" | 0 ...07\346\237\245\347\234\213\345\231\250.js" | 0 ...45\346\241\206\346\216\247\344\273\266.js" | 0 ...46\346\235\241\346\216\247\344\273\266.js" | 0 ...37\351\232\217\346\234\272\346\225\260.js" | 0 ...35\345\255\230\346\227\245\345\277\227.js" | 0 ...15\345\220\214\347\272\247\345\210\253.js" | 0 ...\203\347\224\250\346\240\210 [v6.1.0+].js" | 0 ...17\345\214\226\350\276\223\345\207\272.js" | 0 ...57\346\250\241\346\213\237\345\231\250.js" | 0 ...47\345\260\217\344\275\215\347\275\256.js" | 0 ...07\346\234\254\346\226\207\344\273\266.js" | 0 ...72\346\226\207\344\273\266\345\244\271.js" | 0 ...346\215\242 (\351\253\230\347\272\247).js" | 0 ...26\347\240\201\350\275\254\346\215\242.js" | 0 ...07\346\234\254\346\226\207\344\273\266.js" | 0 ...07\346\234\254\346\226\207\344\273\266.js" | 0 ...11\346\214\207\344\270\213\346\273\221.js" | 0 ...11\346\214\207\346\215\217\345\220\210.js" | 0 ...14\346\214\207\346\215\217\345\220\210.js" | 0 ...(R) \346\226\260\345\242\236 [v6.1.0+].js" | 0 ...ie) \346\226\260\345\242\236 [v6.1.0+].js" | 0 ...03\345\275\242\346\211\213\345\212\277.js" | 0 ...72\351\200\232\347\237\245\346\240\217.js" | 0 ...73\345\267\246\344\270\212\350\247\222.js" | 0 ...\225\346\210\252\345\233\276 [v6.1.0+].js" | 0 ...15\346\235\202\345\257\271\350\261\241.js" | 0 ...00\345\215\225\346\225\260\346\215\256.js" | 0 .../\351\232\217\346\211\213\350\256\260.js" | 0 ...6\265\213\350\257\225 (main) [v6.3.1+].js" | 0 ...346\265\213\350\257\225 (ui) [v6.3.1+].js" | 0 ...54\346\265\256\346\226\207\345\255\227.js" | 0 ...54\346\265\256\346\226\207\345\255\227.js" | 0 ...32\346\234\254\346\214\211\351\222\256.js" | 0 ...44\347\234\274\346\250\241\345\274\217.js" | 0 ...\223\345\205\245\346\241\206 [v6.3.1+].js" | 0 ...43\350\276\223\345\205\245\346\241\206.js" | 0 ...(\347\256\200\345\215\225\347\211\210).js" | 0 ...\200\345\215\225\347\211\210 [v6.2.0+].js" | 0 ...\230\347\272\247\347\211\210 [v6.2.0+].js" | 0 ...\252\345\220\203\350\233\207 [v6.2.0+].js" | 0 ...\237\345\272\224\347\211\210 [v6.2.0+].js" | 0 ...14\347\232\204\350\204\232\346\234\254.js" | 0 ...25\345\210\266\346\226\207\344\273\266.js" | 0 ...32\346\234\254\344\273\273\345\212\241.js" | 0 ...32\346\234\254\346\226\207\344\273\266.js" | 0 ...\254\350\257\273\345\206\231 [v6.0.3+].js" | 0 ...\257\347\233\221\346\265\213 [v6.0.3+].js" | 0 ...\266\346\243\200\346\265\213 [v6.0.3+].js" | 0 ...\214\346\227\266\351\227\264 [v6.0.3+].js" | 0 ...\201\351\234\207\345\212\250 [v6.1.0+].js" | 0 ...\217\351\234\207\345\212\250 [v6.1.0+].js" | 0 ...\207\344\277\241\346\201\257 [v6.4.2+].js" | 0 ...76\345\244\207\344\272\256\345\272\246.js" | 0 ...76\345\244\207\351\237\263\351\207\217.js" | 0 .../project/auto.js.png | Bin .../{assets => assets-inrt}/project/main.js | 0 .../project/project.json | 0 .../{assets => assets-inrt}/roboto_medium.ttf | Bin app/src/main/assets/docs/imageWrapper.html | 227 ---- app/src/main/assets/init.js | 217 ++-- app/src/main/assets/modules/__app__.js | 3 +- app/src/main/assets/modules/__autojs__.js | 5 + app/src/main/assets/modules/__automator__.js | 3 + app/src/main/assets/modules/__barcode__.js | 6 +- app/src/main/assets/modules/__base64__.js | 3 + app/src/main/assets/modules/__colors__.js | 8 +- app/src/main/assets/modules/__console__.js | 8 + app/src/main/assets/modules/__crypto__.js | 3 +- app/src/main/assets/modules/__device__.js | 4 + app/src/main/assets/modules/__dialogs__.js | 6 + app/src/main/assets/modules/__events__.js | 3 + app/src/main/assets/modules/__globals__.js | 3 + app/src/main/assets/modules/__http__.js | 11 + app/src/main/assets/modules/__images__.js | 8 + app/src/main/assets/modules/__notice__.js | 6 + app/src/main/assets/modules/__ocr__.js | 50 +- app/src/main/assets/modules/__opencc__.js | 98 ++ app/src/main/assets/modules/__qrcode__.js | 6 +- app/src/main/assets/modules/__selector__.js | 6 +- app/src/main/assets/modules/__threads__.js | 2 + app/src/main/assets/modules/__ui__.js | 9 + app/src/main/assets/modules/__util__.js | 3 + app/src/main/assets/modules/jvm-npm.js | 3 + app/src/main/assets/modules/ocr-mlkit.js | 8 + app/src/main/assets/modules/ocr-paddle.js | 8 + app/src/main/assets/modules/result-adapter.js | 3 + .../widget/ThemeColorRecyclerView.java | 2 +- .../java/org/autojs/autojs/AbstractAutoJs.kt | 2 +- app/src/main/java/org/autojs/autojs/App.kt | 2 +- app/src/main/java/org/autojs/autojs/AutoJs.kt | 2 +- .../autojs/autojs/annotation/ScriptClass.java | 2 +- .../autojs/annotation/ScriptInterface.java | 2 +- .../autojs/annotation/ScriptVariable.kt | 2 +- .../autojs/autojs/apkbuilder/ApkBuilder.kt | 290 ++++- .../apkbuilder/ApkBuilderPluginHelper.java | 58 - .../autojs/autojs/apkbuilder/ApkPackager.java | 2 +- .../autojs/apkbuilder/ManifestEditor.java | 2 +- .../autojs/autojs/apkbuilder/TinySign.java | 4 +- .../autojs/apkbuilder/util/BoolFunction.java | 3 +- .../autojs/apkbuilder/util/StreamUtils.java | 2 +- .../CircularMenuOperationDialogBuilder.java | 2 +- .../java/org/autojs/autojs/app/DialogUtils.kt | 2 +- .../java/org/autojs/autojs/app/Fragment.java | 2 +- .../app/FragmentPagerAdapterBuilder.java | 2 +- .../autojs/autojs/app/GlobalAppContext.java | 2 +- .../autojs/app/OnActivityResultDelegate.java | 2 +- .../app/SimpleActivityLifecycleCallbacks.java | 2 +- .../autojs/app/tool/FloatingButtonTool.kt | 15 +- .../autojs/codegeneration/CodeGenerator.java | 2 +- .../codegeneration/ReadOnlyUiObject.java | 2 +- .../codegeneration/UiSelectorGenerator.kt | 2 +- .../concurrent/ConcurrentArrayList.java | 2 +- .../autojs/concurrent/UnderUseExecutors.java | 2 +- .../org/autojs/autojs/concurrent/Value.java | 2 +- .../autojs/autojs/concurrent/VolatileBox.java | 3 +- .../autojs/concurrent/VolatileDispose.java | 2 +- .../accessibility/AccessibilityBridge.java | 5 +- .../accessibility/AccessibilityDelegate.kt | 2 +- .../AccessibilityNodeInfoAllocator.kt | 5 +- .../AccessibilityNodeInfoHelper.kt | 2 +- .../AccessibilityNotificationObserver.kt | 2 +- .../accessibility/AccessibilityService.kt | 66 +- .../AccessibilityServiceUsher.kt | 35 + .../core/accessibility/AccessibilityTool.kt | 7 +- .../core/accessibility/KeyInterceptor.kt | 2 +- .../accessibility/LayoutInspectService.kt | 2 +- .../core/accessibility/LayoutInspector.kt | 2 +- .../autojs/core/accessibility/NodeInfo.kt | 2 +- .../accessibility/NotificationListener.kt | 2 +- .../core/accessibility/OnKeyListener.kt | 2 +- .../accessibility/SimpleActionAutomator.kt | 2 +- .../autojs/core/accessibility/UiSelector.kt | 67 +- .../core/activity/ActivityInfoProvider.kt | 2 +- .../autojs/core/automator/ActionArgument.kt | 2 +- .../core/automator/GlobalActionAutomator.kt | 2 +- .../autojs/autojs/core/automator/UiObject.kt | 10 +- .../core/automator/UiObjectCollection.kt | 2 +- .../autojs/core/automator/action/Able.kt | 2 +- .../core/automator/action/ActionFactory.kt | 2 +- .../core/automator/action/ActionTarget.kt | 2 +- .../action/DepthFirstSearchTargetAction.kt | 2 +- .../core/automator/action/FilterAction.kt | 2 +- .../core/automator/action/ScrollAction.kt | 2 +- .../core/automator/action/ScrollMaxAction.kt | 2 +- .../automator/action/SearchTargetAction.kt | 2 +- .../automator/action/SearchUpTargetAction.kt | 2 +- .../core/automator/action/SimpleAction.kt | 2 +- .../core/automator/filter/BooleanFilter.kt | 2 +- .../core/automator/filter/BoundsFilter.kt | 2 +- .../core/automator/filter/ClassNameFilter.kt | 2 +- .../core/automator/filter/DescFilter.kt | 2 +- .../autojs/core/automator/filter/Filter.kt | 2 +- .../autojs/core/automator/filter/IdFilter.kt | 2 +- .../autojs/core/automator/filter/IntFilter.kt | 2 +- .../autojs/core/automator/filter/KeyGetter.kt | 2 +- .../automator/filter/PackageNameFilter.kt | 2 +- .../autojs/core/automator/filter/Selector.kt | 14 +- .../automator/filter/StringContainsFilter.kt | 2 +- .../automator/filter/StringEndsWithFilter.kt | 2 +- .../automator/filter/StringEqualsFilter.kt | 2 +- .../automator/filter/StringMatchFilter.kt | 2 +- .../automator/filter/StringMatchesFilter.kt | 2 +- .../filter/StringStartsWithFilter.kt | 2 +- .../core/automator/filter/TextFilter.kt | 2 +- .../autojs/core/automator/search/DFS.kt | 2 +- .../core/automator/test/TestUiObject.kt | 2 +- .../autojs/core/broadcast/Broadcast.java | 2 +- .../core/broadcast/BroadcastEmitter.java | 2 +- .../autojs/core/console/ConsoleFloaty.kt | 2 +- .../autojs/autojs/core/console/ConsoleImpl.kt | 5 +- .../autojs/core/console/ConsoleView.java | 2 +- .../autojs/core/console/GlobalConsole.java | 2 +- .../autojs/core/eventloop/EventEmitter.java | 2 +- .../core/floaty/BaseResizableFloatyWindow.kt | 3 +- .../autojs/core/graphics/JsCanvasView.kt | 2 +- .../autojs/core/graphics/ScriptCanvas.java | 2 +- .../autojs/autojs/core/http/MutableOkHttp.kt | 2 +- .../autojs/autojs/core/image/ColorDetector.kt | 2 +- .../autojs/autojs/core/image/ColorFinder.java | 3 +- .../org/autojs/autojs/core/image/Colors.java | 2 +- .../autojs/autojs/core/image/ImageWrapper.kt | 2 +- .../autojs/core/image/TemplateMatching.java | 3 +- .../capture/ScreenCaptureRequestActivity.java | 2 +- .../image/capture/ScreenCaptureRequester.java | 2 +- .../core/image/capture/ScreenCapturer.java | 2 +- .../ScreenCapturerForegroundService.java | 4 +- .../autojs/core/inputevent/InputDevices.java | 3 +- .../core/inputevent/InputEventCodes.java | 2 +- .../core/inputevent/InputEventObserver.java | 2 +- .../core/inputevent/KeyEventDispatcher.java | 2 +- .../autojs/core/inputevent/RootAutomator.java | 2 +- .../core/inputevent/ShellKeyObserver.java | 2 +- .../autojs/core/inputevent/TouchObserver.java | 3 +- .../autojs/core/internal/Functions.java | 2 +- .../autojs/core/looper/LooperHelper.java | 2 +- .../org/autojs/autojs/core/looper/Loopers.kt | 2 +- .../autojs/core/looper/MainThreadProxy.java | 2 +- .../org/autojs/autojs/core/looper/Timer.kt | 2 +- .../autojs/autojs/core/looper/TimerThread.kt | 2 +- .../autojs/core/notification/Notification.kt | 2 +- .../NotificationListenerService.kt | 2 +- .../autojs/core/opencv/OpenCVHelper.java | 3 +- .../core/record/GlobalActionRecorder.java | 2 +- .../autojs/autojs/core/record/Recorder.java | 2 +- .../AccessibilityActionConverter.java | 3 +- .../AccessibilityActionRecorder.java | 3 +- .../inputevent/EventFormatException.java | 2 +- .../record/inputevent/InputEventRecorder.java | 2 +- .../InputEventToAutoFileRecorder.kt | 2 +- .../InputEventToRootAutomatorRecorder.java | 2 +- .../InputEventToSendEventJsRecorder.java | 2 +- .../core/record/inputevent/TouchRecorder.java | 2 +- .../autojs/core/storage/LocalStorage.java | 2 +- .../org/autojs/autojs/core/ui/JsViewHelper.kt | 2 +- .../core/ui/attribute/ImageViewAttributes.kt | 3 +- .../core/ui/dialog/BlockedMaterialDialog.java | 2 +- .../autojs/core/ui/dialog/JsDialog.java | 2 +- .../core/ui/dialog/JsDialogBuilder.java | 2 +- .../autojs/core/ui/inflater/Exceptions.kt | 2 +- .../autojs/core/ui/inflater/ImageLoader.java | 2 +- .../ui/inflater/LayoutInflaterDelegate.java | 2 +- .../core/ui/inflater/ResourceParser.java | 2 +- .../autojs/core/ui/inflater/ViewCreator.kt | 2 +- .../ui/inflater/inflaters/BaseViewInflater.kt | 2 +- .../inflater/inflaters/DatePickerInflater.kt | 2 +- .../inflater/inflaters/ImageViewInflater.kt | 2 +- .../inflaters/JsCanvasViewInflater.kt | 2 +- .../inflaters/JsFrameLayoutInflater.kt | 2 +- .../inflater/inflaters/JsGridViewInflater.kt | 2 +- .../inflater/inflaters/JsImageViewInflater.kt | 2 +- .../inflater/inflaters/JsListViewInflater.kt | 2 +- .../inflater/inflaters/JsSpinnerInflater.kt | 2 +- .../inflater/inflaters/JsToolbarInflater.kt | 2 +- .../inflaters/LinearLayoutInflater.kt | 2 +- .../inflater/inflaters/ProgressBarInflater.kt | 2 +- .../inflater/inflaters/RadioGroupInflater.kt | 2 +- .../ui/inflater/inflaters/TextViewInflater.kt | 5 +- .../inflater/inflaters/TimePickerInflater.kt | 2 +- .../inflater/inflaters/ViewGroupInflater.kt | 2 +- .../ui/inflater/inflaters/ViewInflater.kt | 2 +- .../autojs/core/ui/inflater/util/Colors.kt | 2 +- .../autojs/core/ui/inflater/util/Drawables.kt | 2 +- .../core/ui/inflater/util/Gravities.java | 2 +- .../autojs/core/ui/inflater/util/Ids.java | 2 +- .../autojs/core/ui/inflater/util/Res.java | 5 +- .../autojs/core/ui/inflater/util/Strings.java | 2 +- .../core/ui/inflater/util/ValueMapper.java | 2 +- .../autojs/autojs/core/ui/widget/JsButton.kt | 2 +- .../autojs/core/ui/widget/JsCanvasView.kt | 2 +- .../autojs/core/ui/widget/JsCheckBox.kt | 2 +- .../autojs/core/ui/widget/JsEditText.kt | 2 +- .../autojs/core/ui/widget/JsFrameLayout.kt | 2 +- .../autojs/core/ui/widget/JsGridView.java | 2 +- .../autojs/core/ui/widget/JsImageView.kt | 2 +- .../autojs/core/ui/widget/JsLinearLayout.kt | 2 +- .../autojs/core/ui/widget/JsListView.java | 2 +- .../autojs/core/ui/widget/JsRelativeLayout.kt | 2 +- .../autojs/autojs/core/ui/widget/JsSwitch.kt | 2 +- .../autojs/core/ui/widget/JsTextView.kt | 2 +- .../autojs/core/ui/widget/JsTextViewLegacy.kt | 2 +- .../autojs/autojs/core/ui/widget/JsWebView.kt | 2 +- .../autojs/core/ui/xml/AttributeHandler.java | 2 +- .../autojs/core/ui/xml/NodeHandler.java | 2 +- .../autojs/autojs/core/ui/xml/XmlConverter.kt | 4 +- .../autojs/core/web/InjectableWebClient.java | 2 +- .../autojs/core/web/InjectableWebView.kt | 2 +- .../autojs/engine/JavaScriptEngine.java | 2 +- .../engine/LoopBasedJavaScriptEngine.java | 34 +- .../autojs/engine/RhinoJavaScriptEngine.kt | 2 +- .../autojs/engine/RootAutomatorEngine.kt | 2 +- .../autojs/autojs/engine/ScriptEngine.java | 2 +- .../autojs/engine/ScriptEngineFactory.java | 2 +- .../autojs/engine/ScriptEngineManager.java | 2 +- .../autojs/engine/ScriptEngineService.java | 12 +- .../engine/ScriptEngineServiceBuilder.java | 2 +- .../module/AssetAndUrlModuleSourceProvider.kt | 2 +- .../engine/preprocess/AbstractProcessor.java | 2 +- .../preprocess/MultiLinePreprocessor.java | 2 +- .../engine/preprocess/Preprocessor.java | 2 +- .../autojs/event/BackPressedHandler.java | 2 +- .../autojs/autojs/event/EventDispatcher.java | 2 +- .../autojs/event/GlobalKeyObserver.java | 2 +- .../autojs/execution/ExecutionConfig.kt | 2 +- .../LoopedBasedJavaScriptExecution.java | 11 +- .../execution/RunnableScriptExecution.java | 2 +- .../autojs/execution/ScriptExecuteActivity.kt | 61 +- .../autojs/execution/ScriptExecution.java | 2 +- .../ScriptExecutionGlobalListener.java | 2 +- .../execution/ScriptExecutionListener.java | 2 +- .../execution/ScriptExecutionObserver.java | 2 +- .../autojs/execution/ScriptExecutionTask.java | 2 +- .../SimpleScriptExecutionListener.java | 2 +- .../ScriptExecutionIntentService.java | 2 +- .../autojs/autojs/external/ScriptIntents.kt | 2 +- .../MainActivityForegroundService.kt | 2 +- .../external/open/EditIntentActivity.java | 2 +- .../external/open/ImportIntentActivity.java | 2 +- .../external/open/RunIntentActivity.java | 2 +- .../autojs/external/shortcut/Shortcut.java | 2 +- .../external/shortcut/ShortcutActivity.java | 2 +- .../external/shortcut/ShortcutManager.java | 2 +- .../external/tasker/FireSettingReceiver.java | 2 +- .../external/tasker/TaskPrefEditActivity.kt | 2 +- .../tasker/TaskerScriptEditActivity.java | 2 +- .../external/tile/LayoutHierarchyTile.java | 1 + .../tile/LayoutInspectTileService.java | 18 +- .../autojs/external/widget/ScriptWidget.java | 2 +- .../widget/ScriptWidgetSettingsActivity.java | 2 +- .../autojs/external/widget/ScriptWidgets.java | 2 +- .../WrapContentLinearLayoutManager.java | 2 +- .../org/autojs/autojs/inrt/LogActivity.kt | 3 +- .../main/java/org/autojs/autojs/inrt/Pref.kt | 2 +- .../autojs/autojs/inrt/SettingsActivity.kt | 2 +- .../org/autojs/autojs/inrt/SplashActivity.kt | 35 +- .../org/autojs/autojs/inrt/autojs/AutoJs.kt | 18 +- ...LoopBasedJavaScriptEngineWithDecryption.kt | 2 +- .../inrt/launch/AssetsProjectLauncher.kt | 2 +- .../inrt/launch/GlobalProjectLauncher.kt | 2 +- .../main/java/org/autojs/autojs/io/EFile.java | 2 +- .../main/java/org/autojs/autojs/io/Zip.java | 46 - app/src/main/java/org/autojs/autojs/io/Zip.kt | 70 ++ .../org/autojs/autojs/lang/ThreadCompat.java | 6 +- .../autocomplete/AnyWordsCompletion.java | 2 +- .../model/autocomplete/AutoCompletion.java | 2 +- .../model/autocomplete/CodeCompletion.kt | 2 +- .../model/autocomplete/CodeCompletions.kt | 2 +- .../model/autocomplete/DictionaryTree.java | 2 +- .../autojs/model/autocomplete/Symbols.java | 2 +- .../autojs/model/editor/TokenColor.java | 2 +- .../model/editor/TokenColorDeserializer.java | 2 +- .../model/editor/TokenColorSettings.java | 2 +- .../model/explorer/ExplorerFileItem.java | 22 +- .../autojs/model/explorer/ExplorerItem.java | 8 + .../model/explorer/ExplorerSampleItem.java | 11 + .../model/explorer/WorkspaceFileProvider.java | 12 +- .../autojs/autojs/model/indices/Module.java | 2 +- .../autojs/autojs/model/indices/Modules.java | 2 +- .../autojs/autojs/model/indices/Property.java | 2 +- .../autojs/model/sample/SampleFile.java | 2 +- .../autojs/model/script/PathChecker.java | 2 +- .../autojs/model/script/ScriptFile.java | 2 +- .../org/autojs/autojs/model/script/Scripts.kt | 2 +- .../autojs/net/AutoHttpURLConnection.java | 2 +- .../autojs/autojs/network/UpdateChecker.java | 40 +- .../autojs/network/api/DownloadApi.java | 2 +- .../autojs/network/api/UpdateCheckerApi.java | 2 +- .../download/DownloadFailedException.java | 2 +- .../network/download/DownloadManager.java | 5 +- .../autojs/network/entity/VersionInfo.kt | 2 +- .../DisplayOverOtherAppsPermission.kt | 2 +- .../java/org/autojs/autojs/pio/PFile.java | 16 +- .../org/autojs/autojs/pio/PFileInterface.java | 2 +- .../main/java/org/autojs/autojs/pio/PFiles.kt | 5 +- .../autojs/pio/PRandomAccessBinaryFile.java | 2 +- .../autojs/pio/PReadableBinaryFile.java | 2 +- .../autojs/autojs/pio/PReadableTextFile.java | 2 +- .../autojs/autojs/pio/PWritableTextFile.java | 2 +- .../autojs/pio/UncheckedIOException.java | 2 +- .../DevPluginResponseHandler.java | 2 +- .../autojs/pluginclient/DevPluginService.kt | 2 +- .../autojs/autojs/pluginclient/Handler.java | 2 +- .../autojs/autojs/pluginclient/Router.java | 2 +- .../main/java/org/autojs/autojs/pref/Pref.kt | 2 +- .../autojs/autojs/project/LaunchConfig.java | 2 +- .../autojs/autojs/project/ProjectConfig.java | 4 +- .../autojs/autojs/rhino/AndroidClassLoader.kt | 8 +- .../autojs/rhino/AndroidContextFactory.kt | 2 +- .../rhino/NativeJavaClassWithPrototype.java | 2 +- .../rhino/NativeJavaObjectWithPrototype.java | 2 +- .../autojs/rhino/NoSecurityController.java | 2 +- .../autojs/autojs/rhino/ProxyJavaObject.kt | 2 +- .../org/autojs/autojs/rhino/ProxyObject.kt | 2 +- .../autojs/rhino/RhinoAndroidHelper.java | 2 +- .../autojs/autojs/runtime/ScriptBridges.kt | 2 +- .../autojs/autojs/runtime/ScriptRuntime.java | 2 +- .../accessibility/AccessibilityConfig.java | 2 +- .../autojs/runtime/api/AbstractConsole.kt | 2 +- .../autojs/runtime/api/AbstractShell.java | 2 +- .../org/autojs/autojs/runtime/api/AppUtils.kt | 17 +- .../org/autojs/autojs/runtime/api/Console.kt | 2 +- .../org/autojs/autojs/runtime/api/Device.java | 2 +- .../autojs/autojs/runtime/api/Dialogs.java | 2 +- .../autojs/autojs/runtime/api/Engines.java | 2 +- .../org/autojs/autojs/runtime/api/Events.java | 2 +- .../org/autojs/autojs/runtime/api/Files.java | 13 +- .../org/autojs/autojs/runtime/api/Floaty.kt | 10 +- .../org/autojs/autojs/runtime/api/Images.java | 2 +- .../org/autojs/autojs/runtime/api/Media.java | 2 +- .../autojs/autojs/runtime/api/Plugins.java | 2 +- .../autojs/runtime/api/ProcessShell.java | 4 +- .../autojs/runtime/api/ScreenMetrics.kt | 2 +- .../autojs/autojs/runtime/api/Sensors.java | 2 +- .../org/autojs/autojs/runtime/api/Shell.java | 2 +- .../org/autojs/autojs/runtime/api/Threads.kt | 2 +- .../org/autojs/autojs/runtime/api/Timers.java | 2 +- .../java/org/autojs/autojs/runtime/api/UI.kt | 2 +- .../exception/ScriptEnvironmentException.java | 2 +- .../runtime/exception/ScriptException.java | 2 +- .../exception/ScriptInterruptedException.java | 2 +- .../autojs/autojs/script/AutoFileSource.java | 2 +- .../autojs/script/JavaScriptFileSource.java | 2 +- .../autojs/script/JavaScriptSource.java | 2 +- .../autojs/autojs/script/JsBeautifier.java | 2 +- .../org/autojs/autojs/script/ScriptSource.kt | 2 +- .../autojs/script/SequenceScriptSource.java | 2 +- .../autojs/script/StringScriptSource.java | 2 +- .../autojs/service/AccessibilityService.kt | 11 +- .../autojs/storage/database/ModelChange.java | 2 +- .../autojs/storage/file/TmpScriptFiles.java | 2 +- .../org/autojs/autojs/theme/ThemeColor.kt | 2 +- .../autojs/autojs/theme/ThemeColorHelper.java | 3 +- .../autojs/autojs/theme/ThemeColorManager.kt | 2 +- .../autojs/theme/ThemeColorManagerCompat.java | 2 +- .../autojs/theme/ThemeColorMutable.java | 2 +- .../theme/ThemeColorMutableReference.java | 2 +- .../autojs/theme/app/ColorSelectActivity.kt | 2 +- .../theme/app/ThemeColorMaterialDialog.java | 2 +- .../ThemeColorMaterialDialogBuilder.java | 2 +- .../ScrollingViewEdgeGlowColorHelper.java | 2 +- .../ThemeColorCheckBoxPreference.java | 2 +- .../ThemeColorPreferenceCategory.kt | 2 +- .../ThemeColorPreferenceFragment.java | 2 +- .../preference/ThemeColorSwitchPreference.kt | 2 +- .../autojs/autojs/theme/util/ListBuilder.java | 2 +- .../ThemeColorFloatingActionButton.java | 2 +- .../ThemeColorHorizontalScrollView.java | 2 +- .../theme/widget/ThemeColorImageView.java | 2 +- .../theme/widget/ThemeColorImageViewCompat.kt | 2 +- .../widget/ThemeColorNavigationView.java | 2 +- .../theme/widget/ThemeColorScrollView.java | 2 +- .../widget/ThemeColorSwipeRefreshLayout.java | 2 +- .../autojs/theme/widget/ThemeColorSwitch.java | 2 +- .../theme/widget/ThemeColorTextView.java | 2 +- .../theme/widget/ThemeColorToolbar.java | 2 +- .../autojs/autojs/timing/TaskReceiver.java | 2 +- .../autojs/autojs/timing/TimedTaskManager.kt | 2 +- .../autojs/timing/TimedTaskScheduler.kt | 2 +- .../java/org/autojs/autojs/tool/Callback.java | 2 +- .../java/org/autojs/autojs/tool/Consumer.java | 2 +- .../org/autojs/autojs/tool/CrashHandler.java | 106 -- .../org/autojs/autojs/tool/CrashHandler.kt | 92 ++ .../java/org/autojs/autojs/tool/Func1.java | 2 +- .../org/autojs/autojs/tool/ImageSelector.java | 2 +- .../org/autojs/autojs/tool/IntentExtras.java | 2 +- .../autojs/autojs/tool/LimitedHashMap.java | 2 +- .../org/autojs/autojs/tool/MapBuilder.java | 2 +- .../org/autojs/autojs/tool/SimpleCache.java | 2 +- .../autojs/autojs/tool/SimpleObserver.java | 2 +- .../autojs/tool/SparseArrayEntries.java | 2 +- .../org/autojs/autojs/tool/StateObserver.java | 2 +- .../java/org/autojs/autojs/tool/Supplier.java | 2 +- .../java/org/autojs/autojs/tool/UiHandler.kt | 2 +- .../java/org/autojs/autojs/ui/BaseActivity.kt | 2 +- .../ui/codegeneration/CodeGenerateDialog.java | 2 +- .../autojs/ui/common/NotAskAgainDialog.java | 2 +- .../autojs/autojs/ui/common/RxDialogs.java | 2 +- .../autojs/ui/common/ScriptLoopDialog.java | 2 +- .../autojs/ui/common/ScriptOperations.java | 8 +- .../autojs/ui/doc/DocumentationActivity.kt | 2 +- .../autojs/ui/doc/DocumentationFragment.kt | 2 +- .../org/autojs/autojs/ui/doc/ManualDialog.kt | 2 +- .../org/autojs/autojs/ui/edit/EditActivity.kt | 2 +- .../org/autojs/autojs/ui/edit/EditorMenu.java | 2 +- .../org/autojs/autojs/ui/edit/EditorView.kt | 16 +- .../ui/edit/FindOrReplaceDialogBuilder.kt | 2 +- .../ui/edit/TextSizeSettingDialogBuilder.java | 2 +- .../ui/edit/completion/CodeCompletionBar.java | 2 +- .../autojs/ui/edit/editor/AutoIndent.java | 2 +- .../ui/edit/editor/BracketMatching.java | 2 +- .../autojs/ui/edit/editor/CodeEditText.kt | 24 +- .../autojs/ui/edit/editor/LayoutHelper.java | 2 +- .../keyboard/FunctionsKeyboardHelper.java | 4 +- .../edit/keyboard/FunctionsKeyboardView.java | 79 +- .../autojs/autojs/ui/edit/theme/Theme.java | 2 +- .../autojs/autojs/ui/edit/theme/Themes.java | 5 +- .../autojs/ui/edit/theme/TokenMapping.java | 31 +- .../ui/enhancedfloaty/FloatyService.java | 2 +- .../ui/enhancedfloaty/FloatyWindow.java | 12 +- .../ResizableExpandableFloaty.java | 2 +- .../ResizableExpandableFloatyWindow.java | 300 ----- .../ResizableExpandableFloatyWindow.kt | 210 ++++ .../ui/enhancedfloaty/ResizableFloaty.java | 2 +- .../enhancedfloaty/ResizableFloatyWindow.java | 3 +- .../autojs/ui/enhancedfloaty/ViewStack.java | 2 +- .../ui/enhancedfloaty/WindowBridge.java | 2 +- .../enhancedfloaty/gesture/DragGesture.java | 2 +- .../enhancedfloaty/gesture/ResizeGesture.java | 2 +- .../util/FloatingWindowPermissionUtil.java | 2 +- .../autojs/ui/error/ErrorReportActivity.java | 2 +- .../ui/explorer/ExplorerItemViewHolder.java | 9 +- .../ui/explorer/ExplorerPageViewHolder.java | 23 +- .../autojs/ui/explorer/ExplorerView.java | 14 +- .../ui/filechooser/FileChooseListView.java | 2 +- .../filechooser/FileChooserDialogBuilder.java | 2 +- .../ui/floating/CircularActionMenu.java | 8 +- .../autojs/ui/floating/CircularMenu.java | 2 +- .../ui/floating/FloatyWindowManger.java | 2 +- .../ui/floating/FullScreenFloatyWindow.java | 2 +- .../floating/gesture/BounceDragGesture.java | 2 +- .../ui/floating/gesture/DragGesture.java | 2 +- .../LayoutBoundsFloatyWindow.kt | 2 +- .../layoutinspector/LayoutBoundsView.kt | 2 +- .../LayoutHierarchyFloatyWindow.kt | 2 +- .../layoutinspector/LayoutHierarchyView.java | 2 +- .../floating/layoutinspector/NodeInfoView.kt | 2 +- .../OnNodeInfoSelectListener.kt | 2 +- .../autojs/ui/main/FloatingActionMenu.java | 2 +- .../org/autojs/autojs/ui/main/QueryEvent.java | 2 +- .../autojs/ui/main/ViewPagerFragment.java | 2 +- .../autojs/ui/main/drawer/DrawerFragment.kt | 52 +- .../ui/main/drawer/DrawerMenuAdapter.java | 2 +- .../ui/main/drawer/DrawerMenuGroup.java | 2 +- .../drawer/DrawerMenuGroupViewHolder.java | 2 +- .../autojs/ui/main/drawer/DrawerMenuItem.java | 2 +- .../ui/main/drawer/DrawerMenuItemHelper.kt | 20 +- .../main/drawer/DrawerMenuItemViewHolder.kt | 2 +- .../main/drawer/DrawerMenuToggleableItem.kt | 28 +- .../autojs/ui/main/drawer/IToggleableItem.kt | 11 +- .../ui/main/scripts/ExplorerFragment.kt | 2 +- .../org/autojs/autojs/ui/main/task/Task.java | 2 +- .../autojs/autojs/ui/main/task/TaskGroup.java | 2 +- .../ui/main/task/TaskListRecyclerView.java | 2 +- .../ui/main/task/TaskManagerFragment.kt | 2 +- .../autojs/ui/project/BuildActivity.java | 318 +++-- .../ui/project/ProjectConfigActivity.kt | 44 +- .../autojs/ui/settings/AboutActivity.kt | 2 +- .../ui/settings/AppLanguagePreference.kt | 6 +- .../autojs/ui/settings/PreferencesActivity.kt | 2 +- .../ui/shortcut/AppsIconSelectActivity.java | 16 +- .../ui/shortcut/ShortcutCreateActivity.java | 2 +- .../autojs/autojs/ui/splash/SplashActivity.kt | 6 +- .../ui/timing/TimedTaskSettingActivity.kt | 2 +- .../autojs/ui/viewmodel/ExplorerItemList.kt | 2 +- .../ui/widget/AppWithStatusBarLayout.java | 2 +- .../autojs/autojs/ui/widget/AutoAdapter.java | 2 +- .../autojs/ui/widget/BindableViewHolder.java | 2 +- .../autojs/ui/widget/BubblePopupMenu.java | 2 +- .../autojs/ui/widget/CommonMarkdownView.kt | 2 +- .../autojs/ui/widget/DrawerAutoClose.java | 2 +- .../org/autojs/autojs/ui/widget/EWebView.java | 2 +- .../ui/widget/ExpandableRecyclerView.java | 2 +- .../ui/widget/GridDividerDecoration.java | 19 +- .../widget/ItemTouchHelperSimpleCallback.java | 2 +- .../autojs/autojs/ui/widget/LevelBeamView.kt | 2 +- .../autojs/ui/widget/OnItemClickListener.java | 3 +- .../autojs/autojs/ui/widget/PrefSwitch.java | 2 +- .../autojs/ui/widget/RoundCheckboxWithText.kt | 61 + .../ui/widget/ScrollAwareFABBehavior.java | 2 +- .../autojs/ui/widget/SearchViewItem.java | 2 +- .../ui/widget/SimpleAdapterDataObserver.java | 2 +- .../ui/widget/SimpleRecyclerViewAdapter.java | 2 +- .../autojs/ui/widget/SimpleTextWatcher.java | 2 +- .../autojs/ui/widget/SlidingUpPanel.java | 2 +- .../autojs/ui/widget/ToolbarMenuItem.kt | 2 +- .../ui/widget/ViewHolderMutableAdapter.java | 2 +- .../autojs/ui/widget/ViewHolderSupplier.java | 2 +- .../autojs/autojs/ui/widget/ViewSupplier.java | 2 +- .../autojs/autojs/ui/widget/ViewSwitcher.java | 2 +- .../org/autojs/autojs/util/AndroidUtils.kt | 52 +- .../org/autojs/autojs/util/ArrayUtils.java | 2 +- .../org/autojs/autojs/util/AssetsCache.java | 2 +- .../org/autojs/autojs/util/BitmapUtils.kt | 2 +- .../org/autojs/autojs/util/ClipboardUtils.kt | 2 +- .../autojs/autojs/util/DeveloperUtils.java | 2 +- .../org/autojs/autojs/util/DeviceUtils.kt | 6 +- .../org/autojs/autojs/util/DrawableUtils.kt | 2 +- .../java/org/autojs/autojs/util/FileUtils.kt | 4 +- .../autojs/autojs/util/InputMethodUtils.kt | 2 +- .../org/autojs/autojs/util/MathUtils.java | 2 +- .../autojs/autojs/util/MimeTypesUtils.java | 2 +- .../org/autojs/autojs/util/NetworkUtils.kt | 2 +- .../java/org/autojs/autojs/util/Objects.java | 2 +- .../org/autojs/autojs/util/ProcessUtils.kt | 2 +- .../autojs/autojs/util/ResourceMonitor.java | 2 +- .../java/org/autojs/autojs/util/RomUtils.kt | 1 - .../org/autojs/autojs/util/RootUtils.java | 2 +- .../autojs/autojs/util/SdkVersionUtils.java | 2 +- .../org/autojs/autojs/util/StringUtils.kt | 2 +- .../java/org/autojs/autojs/util/ViewUtils.kt | 7 +- .../java/pxb/android/axml/DumpEditor.java | 2 +- .../main/res/drawable-night/ic_add_48dp.png | Bin 0 -> 2367 bytes app/src/main/res/drawable/bg_item_module.xml | 5 +- .../main/res/drawable/bg_item_property.xml | 1 - app/src/main/res/drawable/btn_selector.xml | 1 - .../res/drawable/drawer_header_shadow.xml | 12 +- app/src/main/res/drawable/ic_add_48dp.png | Bin 0 -> 2353 bytes app/src/main/res/drawable/ic_packaging.png | Bin 0 -> 1333 bytes app/src/main/res/drawable/round_checkbox.xml | 7 + .../res/drawable/round_checkbox_checked.xml | 39 + .../res/drawable/round_checkbox_disabled.xml | 12 + .../res/drawable/round_checkbox_unchecked.xml | 10 + .../round_checkbox_with_text_divider.xml | 6 + app/src/main/res/layout/activity_build.xml | 396 +++--- .../res/layout/activity_project_config.xml | 266 ++--- app/src/main/res/layout/activity_splash.xml | 50 +- .../main/res/layout/activity_splash_inrt.xml | 39 +- app/src/main/res/layout/drawer_menu_item.xml | 8 +- .../res/layout/explorer_project_toolbar.xml | 2 +- app/src/main/res/layout/fragment_drawer.xml | 1 + .../res/layout/functions_keyboard_view.xml | 37 +- app/src/main/res/layout/item_module.xml | 21 +- app/src/main/res/layout/item_property.xml | 18 +- .../res/layout/round_checkbox_with_text.xml | 31 + app/src/main/res/menu/menu_dir_options.xml | 10 +- app/src/main/res/menu/menu_script_options.xml | 23 +- app/src/main/res/values-ar/strings.xml | 19 +- app/src/main/res/values-en/strings.xml | 19 +- app/src/main/res/values-es/strings.xml | 19 +- app/src/main/res/values-fr/strings.xml | 19 +- app/src/main/res/values-ja/strings.xml | 19 +- app/src/main/res/values-ko/strings.xml | 19 +- app/src/main/res/values-night/colors.xml | 7 + app/src/main/res/values-ru/strings.xml | 19 +- app/src/main/res/values-zh-rHK/strings.xml | 19 +- app/src/main/res/values-zh-rTW/strings.xml | 19 +- app/src/main/res/values-zh/strings.xml | 19 +- app/src/main/res/values/attrs.xml | 6 + app/src/main/res/values/colors.xml | 6 + app/src/main/res/values/strings.xml | 23 +- .../xml-v30/accessibility_service_config.xml | 22 +- .../res/xml/accessibility_service_config.xml | 19 +- build.gradle.kts | 4 +- gradle/wrapper/gradle-wrapper.properties | 4 +- libs/org.mozilla.rhino-1.7.15-snapshot.jar | Bin 1479380 -> 1479644 bytes libs/paddleocr/build.gradle | 6 +- .../com/baidu/paddle/lite/ocr/Predictor.java | 6 +- settings.gradle.kts | 9 +- version.properties | 8 +- 907 files changed, 6730 insertions(+), 2969 deletions(-) rename app/src/main/{assets => assets-app}/doc/CHANGELOG.md (91%) rename app/src/main/{assets => assets-app}/doc/RHINO.md (100%) rename app/src/main/{assets => assets-app}/docs/404.html (96%) rename app/src/main/{assets => assets-app}/docs/activity.html (97%) rename app/src/main/{assets => assets-app}/docs/all.html (95%) rename app/src/main/{assets => assets-app}/docs/androidBundleType.html (97%) rename app/src/main/{assets => assets-app}/docs/androidRectType.html (98%) rename app/src/main/{assets => assets-app}/docs/apiLevel.html (98%) rename app/src/main/{assets => assets-app}/docs/app.html (99%) rename app/src/main/{assets => assets-app}/docs/appType.html (99%) rename app/src/main/{assets => assets-app}/docs/arrayx.html (99%) rename app/src/main/{assets => assets-app}/docs/assets/dnt_helper.js (100%) rename app/src/main/{assets => assets-app}/docs/assets/fonts.css (100%) rename app/src/main/{assets => assets-app}/docs/assets/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 (100%) rename app/src/main/{assets => assets-app}/docs/assets/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 (100%) rename app/src/main/{assets => assets-app}/docs/assets/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 (100%) rename app/src/main/{assets => assets-app}/docs/assets/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 (100%) rename app/src/main/{assets => assets-app}/docs/assets/fonts/S6uyw4BMUTPHjx4wXg.woff2 (100%) rename app/src/main/{assets => assets-app}/docs/assets/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 (100%) rename app/src/main/{assets => assets-app}/docs/assets/sh.css (100%) rename app/src/main/{assets => assets-app}/docs/assets/sh_java.js (100%) rename app/src/main/{assets => assets-app}/docs/assets/sh_javascript.js (100%) rename app/src/main/{assets => assets-app}/docs/assets/sh_main.js (100%) rename app/src/main/{assets => assets-app}/docs/assets/style.css (100%) rename app/src/main/{assets => assets-app}/docs/autojs.html (98%) rename app/src/main/{assets => assets-app}/docs/automator.html (99%) rename app/src/main/{assets => assets-app}/docs/barcode.html (97%) rename app/src/main/{assets => assets-app}/docs/base64.html (98%) rename app/src/main/{assets => assets-app}/docs/canvas.html (99%) rename app/src/main/{assets => assets-app}/docs/changelog.html (92%) rename app/src/main/{assets => assets-app}/docs/color.html (99%) rename app/src/main/{assets => assets-app}/docs/colorTable.html (99%) rename app/src/main/{assets => assets-app}/docs/colorType.html (99%) rename app/src/main/{assets => assets-app}/docs/console.html (96%) rename app/src/main/{assets => assets-app}/docs/consoleBuildOptionsType.html (94%) rename app/src/main/{assets => assets-app}/docs/context.html (97%) rename app/src/main/{assets => assets-app}/docs/continuation.html (97%) rename app/src/main/{assets => assets-app}/docs/coverpage.html (97%) rename app/src/main/{assets => assets-app}/docs/crypto.html (99%) rename app/src/main/{assets => assets-app}/docs/cryptoCipherOptionsType.html (98%) rename app/src/main/{assets => assets-app}/docs/cryptoKeyPairType.html (97%) rename app/src/main/{assets => assets-app}/docs/cryptoKeyType.html (98%) rename app/src/main/{assets => assets-app}/docs/dataTypes.html (98%) rename app/src/main/{assets => assets-app}/docs/device.html (99%) rename app/src/main/{assets => assets-app}/docs/dialogs.html (99%) rename app/src/main/{assets => assets-app}/docs/documentation.html (99%) rename app/src/main/{assets => assets-app}/docs/e4x.html (97%) rename app/src/main/{assets => assets-app}/docs/engines.html (98%) rename app/src/main/{assets => assets-app}/docs/eventEmitterType.html (96%) rename app/src/main/{assets => assets-app}/docs/events.html (99%) rename app/src/main/{assets => assets-app}/docs/exceptions.html (99%) rename app/src/main/{assets => assets-app}/docs/files.html (99%) rename app/src/main/{assets => assets-app}/docs/floaty.html (98%) rename app/src/main/{assets => assets-app}/docs/global.html (99%) rename app/src/main/{assets => assets-app}/docs/glossaries.html (99%) rename app/src/main/{assets => assets-app}/docs/http.html (98%) rename app/src/main/{assets => assets-app}/docs/httpHeaderGlossary.html (99%) rename app/src/main/{assets => assets-app}/docs/httpRequestBuilderOptionsType.html (97%) rename app/src/main/{assets => assets-app}/docs/httpRequestHeadersType.html (98%) rename app/src/main/{assets => assets-app}/docs/httpRequestMethodsGlossary.html (97%) rename app/src/main/{assets => assets-app}/docs/httpResponseBodyType.html (95%) rename app/src/main/{assets => assets-app}/docs/httpResponseHeadersType.html (99%) rename app/src/main/{assets => assets-app}/docs/httpResponseType.html (98%) rename app/src/main/{assets => assets-app}/docs/i18n.html (97%) rename app/src/main/{assets => assets-app}/docs/image.html (99%) rename app/src/main/{assets => assets-app}/docs/imageWrapperType.html (97%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-append-script-name-on-title-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-append-script-name-on-title.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-big-content-sample-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-big-content-sample.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-big-text-for-content-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-big-text-for-content.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-content-sample-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-content-sample.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-item-details-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-item-details.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-list-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-list-with-same-names-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-list-with-same-names.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-list.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-title-sample-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/autojs6-notification-title-sample.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex-gravity.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex-layout-gravity.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex-marginLeft.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex-padding.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex-properties.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex-w.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex1-horizontal.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex1-margin.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex1.png (100%) rename app/src/main/{assets => assets-app}/docs/images/ex2-margin.png (100%) rename app/src/main/{assets => assets-app}/docs/images/h-distance-color-detection-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/h-distance-color-detection.png (100%) rename app/src/main/{assets => assets-app}/docs/images/hs-distance-color-detection-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/hs-distance-color-detection.png (100%) rename app/src/main/{assets => assets-app}/docs/images/logo.png (100%) rename app/src/main/{assets => assets-app}/docs/images/rgb-difference-color-detection-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/rgb-difference-color-detection.png (100%) rename app/src/main/{assets => assets-app}/docs/images/rgb-distance-color-detection-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/rgb-distance-color-detection.png (100%) rename app/src/main/{assets => assets-app}/docs/images/weighted-rgb-distance-color-detection-dark.png (100%) rename app/src/main/{assets => assets-app}/docs/images/weighted-rgb-distance-color-detection.png (100%) rename app/src/main/{assets => assets-app}/docs/index.html (96%) rename app/src/main/{assets => assets-app}/docs/injectableWebClientType.html (97%) rename app/src/main/{assets => assets-app}/docs/injectableWebViewType.html (97%) rename app/src/main/{assets => assets-app}/docs/intentType.html (97%) rename app/src/main/{assets => assets-app}/docs/keys.html (98%) rename app/src/main/{assets => assets-app}/docs/manual.html (96%) rename app/src/main/{assets => assets-app}/docs/mathx.html (99%) rename app/src/main/{assets => assets-app}/docs/media.html (98%) rename app/src/main/{assets => assets-app}/docs/mimeTypeGlossary.html (98%) rename app/src/main/{assets => assets-app}/docs/modules.html (97%) rename app/src/main/{assets => assets-app}/docs/notice.html (99%) rename app/src/main/{assets => assets-app}/docs/noticeBuilderType.html (99%) rename app/src/main/{assets => assets-app}/docs/noticeChannelOptionsType.html (98%) rename app/src/main/{assets => assets-app}/docs/noticeOptionsType.html (98%) rename app/src/main/{assets => assets-app}/docs/noticePresetConfigurationType.html (98%) rename app/src/main/{assets => assets-app}/docs/notificationChannelGlossary.html (98%) rename app/src/main/{assets => assets-app}/docs/numberx.html (99%) rename app/src/main/{assets => assets-app}/docs/ocr.html (99%) rename app/src/main/{assets => assets-app}/docs/ocrOptionsType.html (97%) rename app/src/main/{assets => assets-app}/docs/okhttp3HttpUrlType.html (95%) rename app/src/main/{assets => assets-app}/docs/okhttp3RequestType.html (97%) rename app/src/main/{assets => assets-app}/docs/omniTypes.html (98%) create mode 100644 app/src/main/assets-app/docs/openCCConversionType.html create mode 100644 app/src/main/assets-app/docs/opencc.html rename app/src/main/{assets => assets-app}/docs/opencvPointType.html (97%) rename app/src/main/{assets => assets-app}/docs/opencvRectType.html (95%) rename app/src/main/{assets => assets-app}/docs/opencvSizeType.html (96%) rename app/src/main/{assets => assets-app}/docs/overview.html (97%) rename app/src/main/{assets => assets-app}/docs/plugins.html (98%) rename app/src/main/{assets => assets-app}/docs/plugins/docsify-copy-code@2-styles.css (100%) rename app/src/main/{assets => assets-app}/docs/plugins/docsify-copy-code@2.js (100%) rename app/src/main/{assets => assets-app}/docs/plugins/zoom-image-styles.css (100%) rename app/src/main/{assets => assets-app}/docs/plugins/zoom-image.js (100%) rename app/src/main/{assets => assets-app}/docs/polyfill.html (97%) rename app/src/main/{assets => assets-app}/docs/progress.html (97%) rename app/src/main/{assets => assets-app}/docs/qa.html (98%) rename app/src/main/{assets => assets-app}/docs/qrcode.html (97%) rename app/src/main/{assets => assets-app}/docs/recorder.html (97%) rename app/src/main/{assets => assets-app}/docs/runtime.html (97%) rename app/src/main/{assets => assets-app}/docs/s13n.html (97%) rename app/src/main/{assets => assets-app}/docs/scriptingJava.html (98%) rename app/src/main/{assets => assets-app}/docs/sensors.html (98%) rename app/src/main/{assets => assets-app}/docs/shell.html (99%) rename app/src/main/{assets => assets-app}/docs/shizuku.html (94%) rename app/src/main/{assets => assets-app}/docs/sidebar.html (96%) rename app/src/main/{assets => assets-app}/docs/storageType.html (98%) rename app/src/main/{assets => assets-app}/docs/storages.html (97%) rename app/src/main/{assets => assets-app}/docs/tasks.html (97%) rename app/src/main/{assets => assets-app}/docs/threads.html (98%) rename app/src/main/{assets => assets-app}/docs/timers.html (98%) rename app/src/main/{assets => assets-app}/docs/toast.html (98%) rename app/src/main/{assets => assets-app}/docs/ui.html (99%) rename app/src/main/{assets => assets-app}/docs/uiObjectActionsType.html (99%) rename app/src/main/{assets => assets-app}/docs/uiObjectCollectionType.html (99%) rename app/src/main/{assets => assets-app}/docs/uiObjectType.html (99%) rename app/src/main/{assets => assets-app}/docs/uiSelectorType.html (98%) rename app/src/main/{assets => assets-app}/docs/util.html (99%) rename app/src/main/{assets => assets-app}/docs/versionType.html (98%) rename app/src/main/{assets => assets-app}/docs/web.html (98%) rename app/src/main/{assets => assets-app}/docs/webSocketType.html (99%) rename app/src/main/{assets => assets-app}/editor/theme/dark_plus.json (100%) rename app/src/main/{assets => assets-app}/editor/theme/light_plus.json (100%) rename app/src/main/{assets => assets-app}/indices/all.json (100%) rename app/src/main/{assets => assets-app}/indices/all_android_classes.json (100%) rename app/src/main/{assets => assets-app}/indices/glossary.json (100%) rename app/src/main/{assets => assets-app}/indices/xml-nodes.json (100%) rename app/src/main/{assets => assets-app}/js-beautify/beautify.js (100%) rename app/src/main/{assets => assets-app}/js-beautify/xml_formatter.js (100%) rename "app/src/main/assets/sample/AutoJs6/\345\237\272\346\234\254\344\277\241\346\201\257 [v6.1.0+].js" => "app/src/main/assets-app/sample/AutoJs6/\345\237\272\346\234\254\344\277\241\346\201\257 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/AutoJs6/\345\274\272\345\210\266 Root \346\243\200\346\237\245 [v6.1.0+].js" => "app/src/main/assets-app/sample/AutoJs6/\345\274\272\345\210\266 Root \346\243\200\346\237\245 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\212\344\274\240.js" => "app/src/main/assets-app/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\212\344\274\240.js" (100%) rename "app/src/main/assets/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\213\350\275\275.js" => "app/src/main/assets-app/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\213\350\275\275.js" (100%) rename "app/src/main/assets/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\350\216\267\345\217\226\347\275\221\351\241\265.js" => "app/src/main/assets-app/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\350\216\267\345\217\226\347\275\221\351\241\265.js" (100%) rename app/src/main/{assets => assets-app}/sample/Java API/liveConnect.js (100%) rename app/src/main/{assets => assets-app}/sample/JavaScript/E4X.js (100%) rename app/src/main/{assets => assets-app}/sample/JavaScript/HelloWorld.js (100%) rename "app/src/main/assets/sample/JavaScript/\346\225\260\345\255\227.js" => "app/src/main/assets-app/sample/JavaScript/\346\225\260\345\255\227.js" (100%) rename "app/src/main/assets/sample/OCR/PaddleOCR (\345\206\205\347\275\256API).js" => "app/src/main/assets-app/sample/OCR/PaddleOCR (\345\206\205\347\275\256API).js" (100%) rename "app/src/main/assets/sample/OCR/PaddleOCR (\345\216\237\345\247\213\347\261\273).js" => "app/src/main/assets-app/sample/OCR/PaddleOCR (\345\216\237\345\247\213\347\261\273).js" (100%) rename "app/src/main/assets/sample/OCR/PaddleOCR (\346\210\252\345\233\276\350\257\206\345\210\253).js" => "app/src/main/assets-app/sample/OCR/PaddleOCR (\346\210\252\345\233\276\350\257\206\345\210\253).js" (100%) rename app/src/main/{assets => assets-app}/sample/OCR/test.png (100%) rename "app/src/main/assets/sample/Shell/\345\206\273\347\273\223\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" => "app/src/main/assets-app/sample/Shell/\345\206\273\347\273\223\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" (100%) rename "app/src/main/assets/sample/Shell/\347\273\223\346\235\237\346\211\200\346\234\211\345\220\216\345\217\260\350\277\233\347\250\213.js" => "app/src/main/assets-app/sample/Shell/\347\273\223\346\235\237\346\211\200\346\234\211\345\220\216\345\217\260\350\277\233\347\250\213.js" (100%) rename "app/src/main/assets/sample/Shell/\350\247\243\345\206\273\345\271\266\346\211\223\345\274\200\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" => "app/src/main/assets-app/sample/Shell/\350\247\243\345\206\273\345\271\266\346\211\223\345\274\200\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" (100%) rename "app/src/main/assets/sample/Shell/\351\224\201\345\261\217.js" => "app/src/main/assets-app/sample/Shell/\351\224\201\345\261\217.js" (100%) rename "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/Toast\347\233\221\345\220\254.js" => "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/Toast\347\233\221\345\220\254.js" (100%) rename "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\346\214\211\351\224\256\347\233\221\345\220\254.js" => "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\346\214\211\351\224\256\347\233\221\345\220\254.js" (100%) rename "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\350\247\246\346\221\270\347\233\221\345\220\254.js" => "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\350\247\246\346\221\270\347\233\221\345\220\254.js" (100%) rename "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\200\232\347\237\245\347\233\221\345\220\254.js" => "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\200\232\347\237\245\347\233\221\345\220\254.js" (100%) rename "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\225\277\346\214\211\350\277\224\345\233\236\351\200\200\345\207\272\345\275\223\345\211\215\347\250\213\345\272\217.js" => "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\225\277\346\214\211\350\277\224\345\233\236\351\200\200\345\207\272\345\275\223\345\211\215\347\250\213\345\272\217.js" (100%) rename "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\345\207\217\351\224\256\345\210\206\346\236\220\345\270\203\345\261\200.js" => "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\345\207\217\351\224\256\345\210\206\346\236\220\345\270\203\345\261\200.js" (100%) rename "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\351\224\256\346\216\247\345\210\266\347\250\213\345\272\217.js" => "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\351\224\256\346\216\247\345\210\266\347\250\213\345\272\217.js" (100%) rename "app/src/main/assets/sample/\344\273\273\345\212\241/\344\270\200\346\254\241\346\200\247\344\273\273\345\212\241 [v6.1.0+].js" => "app/src/main/assets-app/sample/\344\273\273\345\212\241/\344\270\200\346\254\241\346\200\247\344\273\273\345\212\241 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\344\273\273\345\212\241/\346\204\217\345\233\276 (Intent) \344\273\273\345\212\241 [v6.1.0+].js" => "app/src/main/assets-app/sample/\344\273\273\345\212\241/\346\204\217\345\233\276 (Intent) \344\273\273\345\212\241 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\344\273\273\345\212\241/\346\257\217\345\221\250\344\273\273\345\212\241 [v6.1.0+].js" => "app/src/main/assets-app/sample/\344\273\273\345\212\241/\346\257\217\345\221\250\344\273\273\345\212\241 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\344\273\273\345\212\241/\346\257\217\346\227\245\344\273\273\345\212\241 [v6.1.0+].js" => "app/src/main/assets-app/sample/\344\273\273\345\212\241/\346\257\217\346\227\245\344\273\273\345\212\241 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\344\274\240\346\204\237\345\231\250/\346\211\223\345\215\260\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" => "app/src/main/assets-app/sample/\344\274\240\346\204\237\345\231\250/\346\211\223\345\215\260\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" (100%) rename "app/src/main/assets/sample/\344\274\240\346\204\237\345\231\250/\346\230\276\347\244\272\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" => "app/src/main/assets-app/sample/\344\274\240\346\204\237\345\231\250/\346\230\276\347\244\272\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" (100%) rename "app/src/main/assets/sample/\345\215\217\347\250\213/ui\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/main.js" => "app/src/main/assets-app/sample/\345\215\217\347\250\213/UI\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/main.js" (100%) rename "app/src/main/assets/sample/\345\215\217\347\250\213/ui\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/project.json" => "app/src/main/assets-app/sample/\345\215\217\347\250\213/UI\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/project.json" (100%) rename "app/src/main/assets/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/hello.txt" => "app/src/main/assets-app/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/hello.txt" (100%) rename "app/src/main/assets/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/main.js" => "app/src/main/assets-app/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/main.js" (100%) rename "app/src/main/assets/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/project.json" => "app/src/main/assets-app/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/project.json" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2621.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2621.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2622.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2622.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\233\276\347\211\207\345\244\204\347\220\206.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\233\276\347\211\207\345\244\204\347\220\206.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\237\272\346\234\254\351\242\234\350\211\262\350\275\254\346\215\242 [v6.1.0+].js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\237\272\346\234\254\351\242\234\350\211\262\350\275\254\346\215\242 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\256\236\346\227\266\346\230\276\347\244\272\350\247\246\346\221\270\347\202\271\351\242\234\350\211\262.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\256\236\346\227\266\346\230\276\347\244\272\350\247\246\346\221\270\347\202\271\351\242\234\350\211\262.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\210\252\345\233\276\345\271\266\344\277\235\345\255\230.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\210\252\345\233\276\345\271\266\344\277\235\345\255\230.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\210\260QQ\347\272\242\347\202\271\344\275\215\347\275\256.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\210\260QQ\347\272\242\347\202\271\344\275\215\347\275\256.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/block.png" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/block.png" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/mario.png" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/mario.png" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/super_mario.jpg" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/super_mario.jpg" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\346\211\200\346\234\211\351\227\256\345\217\267\346\226\271\345\235\227.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\346\211\200\346\234\211\351\227\256\345\217\267\346\226\271\345\235\227.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\227\256\345\217\267\346\226\271\345\235\227\345\271\266\347\224\273\345\207\272\344\275\215\347\275\256 [v6.2.0+].js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\227\256\345\217\267\346\226\271\345\235\227\345\271\266\347\224\273\345\207\272\344\275\215\347\275\256 [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\251\254\351\207\214\345\245\245.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\251\254\351\207\214\345\245\245.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\250\241\347\263\212\346\211\276\350\211\262.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\250\241\347\263\212\346\211\276\350\211\262.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\347\262\276\347\241\256\346\211\276\350\211\262.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\347\262\276\347\241\256\346\211\276\350\211\262.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\350\216\267\345\217\226\347\275\221\347\273\234\345\233\276\347\211\207\345\271\266\344\277\235\345\255\230.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\350\216\267\345\217\226\347\275\221\347\273\234\345\233\276\347\211\207\345\271\266\344\277\235\345\255\230.js" (100%) rename "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\351\242\234\350\211\262\350\216\267\345\217\226\345\222\214\346\243\200\346\265\213.js" => "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\351\242\234\350\211\262\350\216\267\345\217\226\345\222\214\346\243\200\346\265\213.js" (100%) rename "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\216\237\345\255\220\345\217\230\351\207\217.js" => "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\216\237\345\255\220\345\217\230\351\207\217.js" (100%) rename "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\217\230\351\207\217\345\217\257\350\247\201\346\200\247\345\256\236\351\252\214.js" => "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\217\230\351\207\217\345\217\257\350\247\201\346\200\247\345\256\236\351\252\214.js" (100%) rename "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\346\214\211\351\224\256\347\233\221\345\220\254.js" => "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\346\214\211\351\224\256\347\233\221\345\220\254.js" (100%) rename "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\347\256\200\345\215\225\347\244\272\344\276\213.js" => "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\347\256\200\345\215\225\347\244\272\344\276\213.js" (100%) rename "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\347\272\277\347\250\213\345\220\257\345\212\250\344\270\216\345\205\263\351\227\255.js" => "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\347\272\277\347\250\213\345\220\257\345\212\250\344\270\216\345\205\263\351\227\255.js" (100%) rename "app/src/main/assets/sample/\345\256\232\346\227\266\345\231\250/\345\256\232\346\227\266\346\211\247\350\241\214.js" => "app/src/main/assets-app/sample/\345\256\232\346\227\266\345\231\250/\345\256\232\346\227\266\346\211\247\350\241\214.js" (100%) rename "app/src/main/assets/sample/\345\256\232\346\227\266\345\231\250/\345\276\252\347\216\257\346\211\247\350\241\214.js" => "app/src/main/assets-app/sample/\345\256\232\346\227\266\345\231\250/\345\276\252\347\216\257\346\211\247\350\241\214.js" (100%) rename "app/src/main/assets/sample/\345\256\232\346\227\266\345\231\250/\346\235\241\344\273\266\345\221\250\346\234\237\346\211\247\350\241\214 [v6.1.0+].js" => "app/src/main/assets-app/sample/\345\256\232\346\227\266\345\231\250/\346\235\241\344\273\266\345\221\250\346\234\237\346\211\247\350\241\214 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/UI\346\250\241\345\274\217\344\270\213\344\275\277\347\224\250\345\257\271\350\257\235\346\241\206.js" => "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/UI\346\250\241\345\274\217\344\270\213\344\275\277\347\224\250\345\257\271\350\257\235\346\241\206.js" (100%) rename "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\344\270\252\346\200\247\345\214\226\345\257\271\350\257\235\346\241\206 [v6.1.0+].js" => "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\344\270\252\346\200\247\345\214\226\345\257\271\350\257\235\346\241\206 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\345\215\225\351\200\211\346\241\206.js" => "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\345\215\225\351\200\211\346\241\206.js" (100%) rename "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\345\244\232\351\200\211\346\241\206.js" => "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\345\244\232\351\200\211\346\241\206.js" (100%) rename "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\346\250\241\346\213\237\346\233\264\346\226\260\344\270\213\350\275\275\345\257\271\350\257\235\346\241\206.js" => "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\346\250\241\346\213\237\346\233\264\346\226\260\344\270\213\350\275\275\345\257\271\350\257\235\346\241\206.js" (100%) rename "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\347\241\256\350\256\244\346\241\206.js" => "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\347\241\256\350\256\244\346\241\206.js" (100%) rename "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\347\256\200\345\215\225\350\256\241\347\256\227\345\231\250.js" => "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\347\256\200\345\215\225\350\256\241\347\256\227\345\231\250.js" (100%) rename "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\350\217\234\345\215\225.js" => "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\350\217\234\345\215\225.js" (100%) rename "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\350\276\223\345\205\245\346\241\206.js" => "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\350\276\223\345\205\245\346\241\206.js" (100%) rename "app/src/main/assets/sample/\345\267\245\345\205\267/\345\256\211\345\215\223\347\211\210\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242 [v6.1.0+].js" => "app/src/main/assets-app/sample/\345\267\245\345\205\267/\345\256\211\345\215\223\347\211\210\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\345\267\245\345\205\267/\346\221\251\346\226\257\347\224\265\347\240\201 [v6.1.0+].js" => "app/src/main/assets-app/sample/\345\267\245\345\205\267/\346\221\251\346\226\257\347\224\265\347\240\201 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\345\267\245\345\205\267/\350\216\267\345\217\226\347\261\273\344\270\216\347\261\273\345\220\215 [v6.1.0+].js" => "app/src/main/assets-app/sample/\345\267\245\345\205\267/\350\216\267\345\217\226\347\261\273\344\270\216\347\261\273\345\220\215 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/WannaCry (\344\273\205\344\270\272\345\250\261\344\271\220).js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/WannaCry (\344\273\205\344\270\272\345\250\261\344\271\220).js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/\345\272\224\347\224\250\346\265\217\350\247\210\345\231\250 [v6.2.0+].js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/\345\272\224\347\224\250\346\265\217\350\247\210\345\231\250 [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.2.0+].js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.3.1+].js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.3.1+].js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/\346\216\247\344\273\266\345\210\207\346\215\242\346\230\276\347\244\272.js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/\346\216\247\344\273\266\345\210\207\346\215\242\346\230\276\347\244\272.js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/\346\222\255\346\224\276\350\247\206\351\242\221\346\226\207\344\273\266.js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/\346\222\255\346\224\276\350\247\206\351\242\221\346\226\207\344\273\266.js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/\347\224\250\346\210\267\350\260\203\346\237\245.js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\224\250\346\210\267\350\260\203\346\237\245.js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/\347\225\214\351\235\242\346\250\241\346\235\277\344\270\200.js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\225\214\351\235\242\346\250\241\346\235\277\344\270\200.js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/\347\231\273\345\275\225\347\225\214\351\235\242.js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\231\273\345\275\225\347\225\214\351\235\242.js" (100%) rename "app/src/main/assets/sample/\345\270\203\345\261\200/\347\256\200\345\215\225\345\256\211\345\215\223\345\270\203\345\261\200.js" => "app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\256\200\345\215\225\345\256\211\345\215\223\345\270\203\345\261\200.js" (100%) rename "app/src/main/assets/sample/\345\272\224\347\224\250/\345\215\270\350\275\275\345\272\224\347\224\250.js" => "app/src/main/assets-app/sample/\345\272\224\347\224\250/\345\215\270\350\275\275\345\272\224\347\224\250.js" (100%) rename "app/src/main/assets/sample/\345\272\224\347\224\250/\345\272\224\347\224\250\345\267\245\345\205\267.js" => "app/src/main/assets-app/sample/\345\272\224\347\224\250/\345\272\224\347\224\250\345\267\245\345\205\267.js" (100%) rename "app/src/main/assets/sample/\345\272\224\347\224\250/\345\274\272\345\210\266\345\201\234\346\255\242\345\272\224\347\224\250.js" => "app/src/main/assets-app/sample/\345\272\224\347\224\250/\345\274\272\345\210\266\345\201\234\346\255\242\345\272\224\347\224\250.js" (100%) rename "app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (QQ) [v6.2.0+].js" => "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (QQ) [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (\345\276\256\344\277\241) [v6.2.0+].js" => "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (\345\276\256\344\277\241) [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\220\257\345\212\250 URL Scheme (\346\224\257\344\273\230\345\256\235) [v6.2.0+].js" => "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\220\257\345\212\250 URL Scheme (\346\224\257\344\273\230\345\256\235) [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\350\275\254\346\215\242\344\270\272 Shell \350\257\255\345\217\245.js" => "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\350\275\254\346\215\242\344\270\272 Shell \350\257\255\345\217\245.js" (100%) rename "app/src/main/assets/sample/\345\272\224\347\224\250/\346\211\223\345\274\200\345\272\224\347\224\250.js" => "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\211\223\345\274\200\345\272\224\347\224\250.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\344\270\213\346\213\211\350\217\234\345\215\225.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\344\270\213\346\213\211\350\217\234\345\215\225.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\345\210\227\350\241\250\346\216\247\344\273\266.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\210\227\350\241\250\346\216\247\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\345\233\276\347\211\207\346\216\247\344\273\266.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\233\276\347\211\207\346\216\247\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\345\244\215\351\200\211\346\241\206\345\215\225\351\200\211\346\241\206\346\216\247\344\273\266.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\244\215\351\200\211\346\241\206\345\215\225\351\200\211\346\241\206\346\216\247\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\345\274\200\345\205\263\346\216\247\344\273\266 [v6.3.1+].js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\274\200\345\205\263\346\216\247\344\273\266 [v6.3.1+].js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\346\214\211\351\222\256\346\216\247\344\273\266.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\346\214\211\351\222\256\346\216\247\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\346\226\207\346\234\254\346\216\247\344\273\266.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\346\226\207\346\234\254\346\216\247\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\346\227\266\351\227\264\346\227\245\346\234\237\351\200\211\346\213\251\346\216\247\344\273\266.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\346\227\266\351\227\264\346\227\245\346\234\237\351\200\211\346\213\251\346\216\247\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\344\275\277\347\224\250\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\344\275\277\347\224\250\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\203\345\261\200\346\250\241\346\235\277.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\203\345\261\200\346\250\241\346\235\277.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\246\351\242\234\350\211\262\346\214\211\351\222\256.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\246\351\242\234\350\211\262\346\214\211\351\222\256.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\346\250\241\345\235\227-\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\346\250\241\345\235\227-\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\350\241\250\346\240\274\346\216\247\344\273\266-\345\206\205\347\275\256\345\233\276\346\240\207\346\237\245\347\234\213\345\231\250.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\241\250\346\240\274\346\216\247\344\273\266-\345\206\205\347\275\256\345\233\276\346\240\207\346\237\245\347\234\213\345\231\250.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\346\216\247\344\273\266.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\346\216\247\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\216\247\344\273\266/\350\277\233\345\272\246\346\235\241\346\216\247\344\273\266.js" => "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\277\233\345\272\246\346\235\241\346\216\247\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\344\272\247\347\224\237\351\232\217\346\234\272\346\225\260.js" => "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\344\272\247\347\224\237\351\232\217\346\234\272\346\225\260.js" (100%) rename "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\344\277\235\345\255\230\346\227\245\345\277\227.js" => "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\344\277\235\345\255\230\346\227\245\345\277\227.js" (100%) rename "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\344\270\215\345\220\214\347\272\247\345\210\253.js" => "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\344\270\215\345\220\214\347\272\247\345\210\253.js" (100%) rename "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\350\260\203\347\224\250\346\240\210 [v6.1.0+].js" => "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\350\260\203\347\224\250\346\240\210 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\346\240\274\345\274\217\345\214\226\350\276\223\345\207\272.js" => "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\346\240\274\345\274\217\345\214\226\350\276\223\345\207\272.js" (100%) rename "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\347\273\210\347\253\257\346\250\241\346\213\237\345\231\250.js" => "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\347\273\210\347\253\257\346\250\241\346\213\237\345\231\250.js" (100%) rename "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\350\260\203\346\225\264\346\216\247\345\210\266\345\217\260\345\244\247\345\260\217\344\275\215\347\275\256.js" => "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\350\260\203\346\225\264\346\216\247\345\210\266\345\217\260\345\244\247\345\260\217\344\275\215\347\275\256.js" (100%) rename "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\206\231\345\205\245\346\226\207\346\234\254\346\226\207\344\273\266.js" => "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\206\231\345\205\245\346\226\207\346\234\254\346\226\207\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\210\240\351\231\244\346\211\200\346\234\211\347\251\272\346\226\207\344\273\266\345\244\271.js" => "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\210\240\351\231\244\346\211\200\346\234\211\347\251\272\346\226\207\344\273\266\345\244\271.js" (100%) rename "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242 (\351\253\230\347\272\247).js" => "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242 (\351\253\230\347\272\247).js" (100%) rename "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242.js" => "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242.js" (100%) rename "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\206\231\346\226\207\346\234\254\346\226\207\344\273\266.js" => "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\206\231\346\226\207\346\234\254\346\226\207\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\217\226\346\226\207\346\234\254\346\226\207\344\273\266.js" => "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\217\226\346\226\207\346\234\254\346\226\207\344\273\266.js" (100%) rename "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\344\270\213\346\273\221.js" => "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\344\270\213\346\273\221.js" (100%) rename "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\346\215\217\345\220\210.js" => "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\346\215\217\345\220\210.js" (100%) rename "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\217\214\346\214\207\346\215\217\345\220\210.js" => "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\217\214\346\214\207\346\215\217\345\220\210.js" (100%) rename "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 11 (R) \346\226\260\345\242\236 [v6.1.0+].js" => "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 11 (R) \346\226\260\345\242\236 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 9 (Pie) \346\226\260\345\242\236 [v6.1.0+].js" => "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 9 (Pie) \346\226\260\345\242\236 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\277\203\345\275\242\346\211\213\345\212\277.js" => "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\277\203\345\275\242\346\211\213\345\212\277.js" (100%) rename "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\346\213\211\345\207\272\351\200\232\347\237\245\346\240\217.js" => "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\346\213\211\345\207\272\351\200\232\347\237\245\346\240\217.js" (100%) rename "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\347\202\271\345\207\273\345\267\246\344\270\212\350\247\222.js" => "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\347\202\271\345\207\273\345\267\246\344\270\212\350\247\222.js" (100%) rename "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\350\216\267\345\217\226\345\261\217\345\271\225\346\210\252\345\233\276 [v6.1.0+].js" => "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\350\216\267\345\217\226\345\261\217\345\271\225\346\210\252\345\233\276 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\260\347\273\204\345\222\214\345\244\215\346\235\202\345\257\271\350\261\241.js" => "app/src/main/assets-app/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\260\347\273\204\345\222\214\345\244\215\346\235\202\345\257\271\350\261\241.js" (100%) rename "app/src/main/assets/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\264\346\225\260\347\255\211\347\256\200\345\215\225\346\225\260\346\215\256.js" => "app/src/main/assets-app/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\264\346\225\260\347\255\211\347\256\200\345\215\225\346\225\260\346\215\256.js" (100%) rename "app/src/main/assets/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\351\232\217\346\211\213\350\256\260.js" => "app/src/main/assets-app/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\351\232\217\346\211\213\350\256\260.js" (100%) rename "app/src/main/assets/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (main) [v6.3.1+].js" => "app/src/main/assets-app/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (main) [v6.3.1+].js" (100%) rename "app/src/main/assets/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (ui) [v6.3.1+].js" => "app/src/main/assets-app/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (ui) [v6.3.1+].js" (100%) rename "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\345\212\250\346\200\201\346\202\254\346\265\256\346\226\207\345\255\227.js" => "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\345\212\250\346\200\201\346\202\254\346\265\256\346\226\207\345\255\227.js" (100%) rename "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\346\226\207\345\255\227.js" => "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\346\226\207\345\255\227.js" (100%) rename "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256.js" => "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256.js" (100%) rename "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\212\244\347\234\274\346\250\241\345\274\217.js" => "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\212\244\347\234\274\346\250\241\345\274\217.js" (100%) rename "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206 [v6.3.1+].js" => "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206 [v6.3.1+].js" (100%) rename "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206.js" => "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206.js" (100%) rename "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256 (\347\256\200\345\215\225\347\211\210).js" => "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256 (\347\256\200\345\215\225\347\211\210).js" (100%) rename "app/src/main/assets/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\347\256\200\345\215\225\347\211\210 [v6.2.0+].js" => "app/src/main/assets-app/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\347\256\200\345\215\225\347\211\210 [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\351\253\230\347\272\247\347\211\210 [v6.2.0+].js" => "app/src/main/assets-app/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\351\253\230\347\272\247\347\211\210 [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207 [v6.2.0+].js" => "app/src/main/assets-app/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207 [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207\351\207\215\345\212\233\346\204\237\345\272\224\347\211\210 [v6.2.0+].js" => "app/src/main/assets-app/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207\351\207\215\345\212\233\346\204\237\345\272\224\347\211\210 [v6.2.0+].js" (100%) rename "app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\345\201\234\346\255\242\346\211\200\346\234\211\346\255\243\345\234\250\350\277\220\350\241\214\347\232\204\350\204\232\346\234\254.js" => "app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\345\201\234\346\255\242\346\211\200\346\234\211\346\255\243\345\234\250\350\277\220\350\241\214\347\232\204\350\204\232\346\234\254.js" (100%) rename "app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\345\275\225\345\210\266\346\226\207\344\273\266.js" => "app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\345\275\225\345\210\266\346\226\207\344\273\266.js" (100%) rename "app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\346\226\260\347\232\204\350\204\232\346\234\254\344\273\273\345\212\241.js" => "app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\346\226\260\347\232\204\350\204\232\346\234\254\344\273\273\345\212\241.js" (100%) rename "app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\350\204\232\346\234\254\346\226\207\344\273\266.js" => "app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\350\204\232\346\234\254\346\226\207\344\273\266.js" (100%) rename "app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\345\237\272\346\234\254\350\257\273\345\206\231 [v6.0.3+].js" => "app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\345\237\272\346\234\254\350\257\273\345\206\231 [v6.0.3+].js" (100%) rename "app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\345\276\252\347\216\257\347\233\221\346\265\213 [v6.0.3+].js" => "app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\345\276\252\347\216\257\347\233\221\346\265\213 [v6.0.3+].js" (100%) rename "app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\346\235\241\344\273\266\346\243\200\346\265\213 [v6.0.3+].js" => "app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\346\235\241\344\273\266\346\243\200\346\265\213 [v6.0.3+].js" (100%) rename "app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\350\256\241\347\256\227\345\207\275\346\225\260\350\277\220\350\241\214\346\227\266\351\227\264 [v6.0.3+].js" => "app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\350\256\241\347\256\227\345\207\275\346\225\260\350\277\220\350\241\214\346\227\266\351\227\264 [v6.0.3+].js" (100%) rename "app/src/main/assets/sample/\350\256\276\345\244\207/\346\221\251\346\226\257\347\224\265\347\240\201\351\234\207\345\212\250 [v6.1.0+].js" => "app/src/main/assets-app/sample/\350\256\276\345\244\207/\346\221\251\346\226\257\347\224\265\347\240\201\351\234\207\345\212\250 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\350\256\276\345\244\207/\346\250\241\345\274\217\351\234\207\345\212\250 [v6.1.0+].js" => "app/src/main/assets-app/sample/\350\256\276\345\244\207/\346\250\241\345\274\217\351\234\207\345\212\250 [v6.1.0+].js" (100%) rename "app/src/main/assets/sample/\350\256\276\345\244\207/\350\216\267\345\217\226\350\256\276\345\244\207\344\277\241\346\201\257 [v6.4.2+].js" => "app/src/main/assets-app/sample/\350\256\276\345\244\207/\350\216\267\345\217\226\350\256\276\345\244\207\344\277\241\346\201\257 [v6.4.2+].js" (100%) rename "app/src/main/assets/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\344\272\256\345\272\246.js" => "app/src/main/assets-app/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\344\272\256\345\272\246.js" (100%) rename "app/src/main/assets/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\351\237\263\351\207\217.js" => "app/src/main/assets-app/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\351\237\263\351\207\217.js" (100%) rename app/src/main/{assets => assets-inrt}/project/auto.js.png (100%) rename app/src/main/{assets => assets-inrt}/project/main.js (100%) rename app/src/main/{assets => assets-inrt}/project/project.json (100%) rename app/src/main/{assets => assets-inrt}/roboto_medium.ttf (100%) delete mode 100644 app/src/main/assets/docs/imageWrapper.html create mode 100644 app/src/main/assets/modules/__opencc__.js delete mode 100644 app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilderPluginHelper.java create mode 100644 app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityServiceUsher.kt delete mode 100644 app/src/main/java/org/autojs/autojs/io/Zip.java create mode 100644 app/src/main/java/org/autojs/autojs/io/Zip.kt delete mode 100644 app/src/main/java/org/autojs/autojs/tool/CrashHandler.java create mode 100644 app/src/main/java/org/autojs/autojs/tool/CrashHandler.kt delete mode 100644 app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloatyWindow.java create mode 100644 app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloatyWindow.kt create mode 100644 app/src/main/java/org/autojs/autojs/ui/widget/RoundCheckboxWithText.kt create mode 100644 app/src/main/res/drawable-night/ic_add_48dp.png create mode 100644 app/src/main/res/drawable/ic_add_48dp.png create mode 100644 app/src/main/res/drawable/ic_packaging.png create mode 100644 app/src/main/res/drawable/round_checkbox.xml create mode 100644 app/src/main/res/drawable/round_checkbox_checked.xml create mode 100644 app/src/main/res/drawable/round_checkbox_disabled.xml create mode 100644 app/src/main/res/drawable/round_checkbox_unchecked.xml create mode 100644 app/src/main/res/drawable/round_checkbox_with_text_divider.xml create mode 100644 app/src/main/res/layout/round_checkbox_with_text.xml diff --git a/.gitignore b/.gitignore index d13fc270c..f70f46efa 100644 --- a/.gitignore +++ b/.gitignore @@ -27,5 +27,5 @@ sync.ffs_db /local.properties /sign.properties -**/assets/declarations -**/assets/sample/declarations \ No newline at end of file +**/assets-app/declarations +**/assets-app/sample/declarations \ No newline at end of file diff --git a/README.md b/README.md index 4efdd9966..ce4d6114e 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,45 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开 [comment]: <> "Version history only shows last 3 versions" +# v6.5.0 + +###### 2023/12/02 + +* `新增` opencc 模块 (参阅 项目文档 > [中文转换](https://docs.autojs6.com/#/opencc)) (Ref to [LZX284](https://github.com/SuperMonster003/AutoJs6/pull/187/files#diff-8cff73265af19c059547b76aca8882cbaa3209291406f52df1dafbbc78e80c46R268)) +* `新增` UiSelector 增加 [plus](https://docs.autojs6.com/#/uiObjectType?id=m-plus) 及 [append](https://docs.autojs6.com/#/uiObjectType?id=m-append) 方法 _[`issue #115`](http://issues.autojs6.com/115)_ +* `新增` 打包应用页面增加 ABI 及库的筛选支持 (Ref to [AutoX](https://github.com/kkevsekk1/AutoX)) _[`issue #189`](http://issues.autojs6.com/189)_ +* `修复` 打包应用文件体积异常庞大的问题 (Ref to [AutoX](https://github.com/kkevsekk1/AutoX) / [LZX284](https://github.com/SuperMonster003/AutoJs6/pull/187/files#diff-d932ac49867d4610f8eeb21b59306e8e923d016cbca192b254caebd829198856R61)) _[`issue #176`](http://issues.autojs6.com/176)_ +* `修复` 打包应用无法显示并打印部分异常消息的问题 +* `修复` 打包应用页面选择应用图标后可能显示空图标的问题 +* `修复` 打包应用包含 MLKit Google OCR 库时可能出现的上下文未初始化异常 +* `修复` ocr.mlkit/ocr.recognizeText/detect 方法无效的问题 +* `修复` 部分文本 (如日志页面) 显示语言与应用设置语言可能不相符的问题 +* `修复` 部分语言在主页抽屉开关项可能出现文本溢出的问题 +* `修复` 部分设备无障碍服务开启后立即自动关闭且无任何提示消息的问题 _[`issue #181`](http://issues.autojs6.com/181)_ +* `修复` 部分设备无障碍服务开启后设备物理按键可能导致应用崩溃的问题 (试修) _[`issue #183`](http://issues.autojs6.com/183)_ _[`issue #186`](http://issues.autojs6.com/186#issuecomment-1817307790)_ +* `修复` 使用 auto(true) 重启无障碍服务后 pickup 功能异常的问题 (试修) _[`issue #184`](http://issues.autojs6.com/184)_ +* `修复` floaty 模块创建浮动窗口拖动时可能导致应用崩溃的问题 (试修) +* `修复` app.startActivity 无法使用简称参数的问题 _[`issue #182`](http://issues.autojs6.com/182)_ _[`issue #188`](http://issues.autojs6.com/188)_ +* `修复` importClass 导入的类名与全局变量冲突时代码抛出异常的问题 _[`issue #185`](http://issues.autojs6.com/185)_ +* `修复` Android 7.x 无法使用无障碍服务的问题 +* `修复` Android 14+ 可能无法正常使用 runtime.loadJar/loadDex 方法的问题 (试修) +* `修复` 安卓系统快速设置面板中 "布局范围分析" 和 "布局层次分析" 不可用的问题 _[`issue #193`](http://issues.autojs6.com/193)_ +* `修复` 自动检查更新功能可能导致应用 [ANR](https://developer.android.com/topic/performance/vitals/anr) 的问题 (试修) _[`issue #186`](http://issues.autojs6.com/186)_ +* `修复` 文件管理器示例代码文件夹点击 "向上" 按钮后无法回到工作路径页面的问题 _[`issue #129`](http://issues.autojs6.com/129)_ +* `修复` 代码编辑器使用替换功能时替换按钮无法显示的问题 +* `修复` 代码编辑器长按删除时可能导致应用崩溃的问题 (试修) +* `修复` 代码编辑器点击 fx 按钮无法显示模块函数快捷面板的问题 +* `修复` 代码编辑器模块函数快捷面板按钮函数名称可能溢出的问题 +* `优化` 代码编辑器模块函数快捷面板适配夜间模式 +* `优化` 打包应用启动页面适配夜间模式并调整应用图标布局 +* `优化` 打包应用页面支持使用软键盘 ENTER 键实现光标跳转 +* `优化` 打包应用页面支持点击 ABI 标题及库标题切换全选状态 +* `优化` 打包应用页面默认 ABI 智能选择并增加不可选择项的引导提示 +* `优化` 文件管理器根据文件及文件夹的类型及特征调整菜单项的显示情况 +* `优化` 文件管理器文件夹右键菜单增加打包应用选项 +* `优化` 无障碍服务启用但功能异常时在 AutoJs6 主页抽屉开关处将体现异常状态 +* `优化` 部分依赖或本地库版本调整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets/doc/CHANGELOG.md#v650)_ + # v6.4.2 ###### 2023/11/15 @@ -170,47 +209,6 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开 * `优化` 构建工具自适应 Temurin 平台 * `优化` 部分依赖或本地库版本调整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets/doc/CHANGELOG.md#v641)_ -# v6.4.0 - -###### 2023/10/30 - -* `新增` ocr 模块支持 Paddle Lite 引擎 (by [TonyJiangWJ](https://github.com/TonyJiangWJ)) _[`pr #120`](http://pr.autojs6.com/120)_ -* `新增` 打包功能支持内置插件与外部插件两种打包方式 (by [LZX284](https://github.com/LZX284)) _[`pr #151`](http://pr.autojs6.com/151)_ -* `新增` WebSocket 模块 (参阅 项目文档 > [WebSocket](https://docs.autojs6.com/#/webSocketType)) -* `新增` barcode / qrcode 模块 (参阅 项目文档 > [条码](https://docs.autojs6.com/#/barcode) / [二维码](https://docs.autojs6.com/#/qrcode)) -* `新增` shizuku 模块 (参阅 项目文档 > [Shizuku](https://docs.autojs6.com/#/shizuku)) 及主页抽屉权限开关 -* `新增` device.rotation / device.orientation 等方法 -* `新增` 内部 Java 类支持 class 静态属性访问 -* `新增` 支持在安卓系统设置页面选择并切换应用语言 (安卓 13 及以上) -* `新增` 支持设置页面添加或长按应用图标激活 [应用快捷方式](https://developer.android.com/guide/topics/ui/shortcuts?hl=zh-cn) , 可启动文档和设置等页面 -* `修复` 重新合并部分 PR (by [aiselp](https://github.com/aiselp)) 以解决部分脚本无法正常结束运行的问题 _[`pr #75`](http://pr.autojs6.com/75)_ _[`pr #78`](http://pr.autojs6.com/78)_ -* `修复` 打包应用无法使用 AutoJs6 新增 API 的问题 (by [LZX284](https://github.com/LZX284)) _[`pr #151`](http://pr.autojs6.com/151)_ -* `修复` 打包应用在系统夜间模式下的样式异常 -* `修复` VSCode 插件保存文件到本地时文件扩展名信息丢失的问题 -* `修复` 使用协程特性运行项目产生未捕获异常致使应用崩溃的问题 -* `修复` 重启或退出应用时浮动按钮无法记录其位置状态信息的问题 -* `修复` 设备屏幕方向改变时无法获取更新后的设备配置信息的问题 _[`issue #153`](http://issues.autojs6.com/153)_ -* `修复` 屏幕旋转至横向时 Toolbar 标题字体过小的问题 -* `修复` 屏幕旋转至横向时应用主页的页签排版过于拥挤的问题 -* `修复` 屏幕旋转至横向时浮动按钮可能溢出屏幕的问题 _[`issue #90`](http://issues.autojs6.com/90)_ -* `修复` 屏幕多次旋转时无法恢复浮动按钮的坐标及屏幕侧边方向的问题 -* `修复` 部分设备消息浮动框可能出现遗漏显示或重复显示的问题 -* `修复` 消息浮动框在多个脚本同时运行时可能存在被遮蔽的问题 _[`issue #67`](http://issues.autojs6.com/67)_ -* `修复` 使用广播分析布局时点击布局无法弹出菜单且导致应用崩溃的问题 -* `修复` 第二次及以后创建的 WebSocket 实例均无法正常触发监听器的问题 -* `修复` 撤销 importPackage 的全局重定向方法以避免某些作用域下的包导入异常 _[`issue #88`](http://issues.autojs6.com/88)_ -* `修复` 日志活动页面使用复制或导出功能时可能导致应用崩溃的问题 -* `优化` 日志活动页面导出功能重命名为发送功能并重新实现符合实际意义的导出功能 -* `优化` 日志活动页面发送功能支持条目数量过大时自动截取并作出提示 -* `优化` ocr 模块同时兼容 Google MLKit 及 Paddle Lite 引擎 (参阅 项目文档 > [光学字符识别](https://docs.autojs6.com/#/ocr?id=p-mode)) -* `优化` 提升无障碍服务自动启动的成功概率 -* `优化` Kotlin 注解处理由 kapt 迁移至 KSP -* `优化` 构建工具支持 IntelliJ Idea EAP 版本 -* `优化` 构建工具自适应 Java 发行版本以尽量避免 "无效的发行版本" 问题 -* `优化` 构建工具优化 IDE 及相关插件的版本退级逻辑并增加版本预测能力 -* `优化` 适配 VSCode 插件 1.0.7 -* `优化` 部分依赖或本地库版本调整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets/doc/CHANGELOG.md#v640)_ - ##### 更多版本历史可参阅 * [CHANGELOG.md](http://changelog.autojs6.com) @@ -227,12 +225,12 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开 #### Android Studio 准备 -下载 `Android Studio Hedgehog | 2023.1.1 RC 3` 版本 (按需选择其一): +下载 `Android Studio Hedgehog | 2023.1.1` 版本 (按需选择其一): -- [android-studio-2023.1.1.25-windows.exe](https://redirector.gvt1.com/edgedl/android/studio/install/2023.1.1.25/android-studio-2023.1.1.25-windows.exe) (1.1 GB) -- [android-studio-2023.1.1.25-windows.zip](https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2023.1.1.25/android-studio-2023.1.1.25-windows.zip) (1.1 GB) +- [android-studio-2023.1.1.26-windows.exe](https://redirector.gvt1.com/edgedl/android/studio/install/2023.1.1.26/android-studio-2023.1.1.26-windows.exe) (1.1 GB) +- [android-studio-2023.1.1.26-windows.zip](https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2023.1.1.26/android-studio-2023.1.1.26-windows.zip) (1.1 GB) -> 注: 上述版本发布时间为 2023 年 11 月 9 日. 如需下载其他版本, 或上述链接已失效, 可访问 [Android Studio 发行版本归档](https://developer.android.com/studio/archive?hl=en) 页面. +> 注: 上述版本发布时间为 2023 年 11 月 30 日. 如需下载其他版本, 或上述链接已失效, 可访问 [Android Studio 发行版本归档](https://developer.android.com/studio/archive?hl=en) 页面. 安装或解压上述文件, 运行 Android Studio 软件 (如 `"D:\android-studio\bin\studio64.exe"`). @@ -369,13 +367,13 @@ Gradle | 贡献人员 | 提交数 | 最近提交 | |:-----------------------------------------------------:|:-------------------------------------------------------------------------------:|:------------:| +| [LZX284](https://github.com/LZX284) (Ai) | [17](https://github.com/SuperMonster003/AutoJs6/commits?author=LZX284) | `2023/11/19` | | [TonyJiangWJ](https://github.com/TonyJiangWJ) | [4](https://github.com/SuperMonster003/AutoJs6/commits?author=TonyJiangWJ) | `2023/10/31` | -| [LZX284](https://github.com/LZX284) (Ai) | [13](https://github.com/SuperMonster003/AutoJs6/commits?author=LZX284) | `2023/10/09` | | [little-alei](https://github.com/little-alei) (抠脚本人) | [12](https://github.com/SuperMonster003/AutoJs6/commits?author=little-alei) | `2023/07/12` | | [aiselp](https://github.com/aiselp) | [6](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+author%3Aaiselp) | `2023/06/14` | | [LYS86](https://github.com/LYS86) (LYS) | [2](https://github.com/SuperMonster003/AutoJs6/commits?author=LYS86) | `2023/06/03` | -数据更新于 `2023/10/31`. +数据更新于 `2023/12/02`. 数据条目按 `最近提交` 降序排序. @@ -398,6 +396,7 @@ Gradle - The summary of the latest changelog for committing to Git [ DO NOT commit or push ] - Update badges like [ android studio / rhino / ... ] - Update android studio download links and version names + - Update contribution section - Remove the part like [ alpha / beta / ... ] of VERSION_NAME in version.properties - Update dependencies TypeScript declarations if needed. - Re-generate documentation by running the python script diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a4b898806..0fc23c64c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -44,6 +44,9 @@ dependencies /* Unclassified */ { // SwipeRefreshLayout implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") + // FlexboxLayout + implementation("com.google.android.flexbox:flexbox:3.0.0") + // Common Markdown implementation("com.github.atlassian:commonmark-java:commonmark-parent-0.9.0") @@ -263,6 +266,11 @@ dependencies /* MLKit */ { implementation("com.google.mlkit:barcode-scanning:17.2.0") } +dependencies /* OpenCC */ { + // OpenCC + implementation("com.github.qichuan:android-opencc:1.2.0") +} + dependencies /* Auto.js Extensions */ { // Settings Compat // @Integrated by SuperMonster003 on Mar 30, 2023. @@ -361,6 +369,24 @@ android { "icon" to "@mipmap/ic_launcher", ) ) + packagingOptions.apply { + // @Reference to kkevsekk1/AutoX (https://github.com/kkevsekk1/AutoX) on Nov 16, 2023. + // ! https://github.com/kkevsekk1/AutoX/blob/a6d482189291b460c3be60970b74c5321d26e457/inrt/build.gradle.kts#L91 + jniLibs.excludes += "*" + resources.excludes.addAll( + listOf( + "com/**/*", + "frameworks/**/*", + "junit/**/*", + "LICENSE-junit.txt", + "spec.txt", + ) + ) + } + // @Reference to kkevsekk1/AutoX (https://github.com/kkevsekk1/AutoX) on Nov 16, 2023. + // ! https://github.com/kkevsekk1/AutoX/blob/a6d482189291b460c3be60970b74c5321d26e457/inrt/build.gradle.kts#L93 + // noinspection ChromeOsAbiSupport + ndk.abiFilters += "" gradle.taskGraph.whenReady(object : Action { override fun execute(taskGraph: TaskExecutionGraph) { @@ -370,7 +396,10 @@ android { ?.doLast { copy { val src = "build/outputs/apk/$flavorNameInrt/$buildTypeRelease" - val dst = "src/main/assets" + + // @Reference to LZX284 (https://github.com/LZX284) on Nov 16, 2022. + val dst = "src/main/assets-$flavorNameApp" + val ext = Utils.FILE_EXTENSION_APK if (!file(src).isDirectory) { @@ -380,7 +409,14 @@ android { from(src); into(dst) val verName = versionName?.replace(Regex("\\s"), "-")?.lowercase() - val srcFileName = "$flavorNameInrt-v$verName-universal.$ext" /* e.g. inrt-v6.4.0-beta-universal.apk */ + + /* e.g. inrt-v6.4.0-beta-universal.apk */ + val srcFileName = "$flavorNameInrt-v$verName-universal.$ext".also { + if (!file(File(src, it)).exists()) { + throw GradleException("Source file \"${file(File(src, it))}\" doesn't exist") + } + } + val dstFileName = "$templateName.$ext" val isOverridden = file(File(dst, dstFileName)).exists() include(srcFileName) @@ -396,32 +432,37 @@ android { androidResources { if (gradle.startParameter.taskNames.any { it.contains(Regex("^(:?$flavorNameApp:)?$buildActionAssemble")) }) { - ignoreAssetsPatterns.add(".idea") + ignoreAssetsPatterns.addAll(listOf(".idea", "declarations", "sample/declarations")) } if (gradle.startParameter.taskNames.any { it.contains(Regex("^(:?$flavorNameApp:)?$buildActionAssemble$flavorNameInrt", IGNORE_CASE)) }) { // @Hint by SuperMonster003 on Oct 16, 2023. - // ! Nothing needs to be added into assets for flavor "inrt", - // ! as assets will be copied from flavor "app" + // ! Runtime assets will be copied from flavor "app" // ! while building an apk on org.autojs.autojs.ui.project.BuildActivity. - ignoreAssetsPatterns.add("!*") /* Ignore everything. */ + ignoreAssetsPatterns.addAll(emptyList()) } } } sourceSets { + // @Hint by LZX284 on Nov 15, 2023. // ! The assets file is divided into three directories according to different flavors. // ! But the files are not actually moved to avoid conflicts with the latest modifications. - getByName("main"){ + // ! + // @Hint by SuperMonster003 on Nov 16, 2023. + // ! The assets division idea was accepted, and it wouldn't hurt to try. :) + + getByName("main") { assets.srcDirs("src/main/assets") } - getByName(flavorNameApp){ - assets.srcDirs("src/main/assets_$flavorNameApp") + getByName(flavorNameApp) { + assets.srcDirs("src/main/assets-$flavorNameApp") } - getByName(flavorNameInrt){ - assets.srcDirs("src/main/assets_$flavorNameInrt") + getByName(flavorNameInrt) { + assets.srcDirs("src/main/assets-$flavorNameInrt") } + } compileOptions { @@ -447,6 +488,7 @@ android { "lib/x86_64/libc++_shared.so", "lib/armeabi-v7a/libc++_shared.so", "lib/arm64-v8a/libc++_shared.so", + "lib/armeabi/libc++_shared.so", ).let { resources.pickFirsts.addAll(it) } jniLibs { @@ -524,7 +566,21 @@ android { doLast { mapOf( "dir" to outputDir, - "includes" to listOf("declarations/**", "sample/declarations/**"), + "includes" to when (variantName.startsWith(flavorNameInrt)) { + true -> listOf( + "mlkit-google-ocr-models/**/*", + "mlkit_barcode_models/**/*", + "models/**/*", + "openccdata/**/*", + "project/**/*", + "android-devices.db", + "autojs.keystore", + ) + else -> listOf( + "declarations/**/*", + "sample/declarations/**/*", + ) + }, ).let { delete(fileTree(it)) } } } @@ -537,13 +593,15 @@ android { // Configures multiple APKs based on ABI. abi { // Enables building multiple APKs per ABI. - isEnable = true + isEnable = /* isNotAssembleInrt */ !gradle.startParameter.taskNames.any { + it.contains(Regex("^(:?$flavorNameApp:)?$buildActionAssemble$flavorNameInrt", IGNORE_CASE)) + } // By default, all ABIs are included, so use reset() and include to specify that we only // want APKs for x86 and x86_64. // Resets the list of ABIs that Gradle should create APKs for to none. reset() // Specifies a list of ABIs that Gradle should create APKs for. - include("x86", "armeabi-v7a", "arm64-v8a", "x86_64") + include("arm64-v8a", "x86_64", "armeabi-v7a", "x86", "armeabi") // Specifies that we do not want to also generate a universal APK that includes all ABIs. isUniversalApk = true } diff --git a/app/src/androidTest/java/org/autojs/autojs/statics/RhinoE4XTest.java b/app/src/androidTest/java/org/autojs/autojs/statics/RhinoE4XTest.java index 89674fd7c..0be380bf7 100644 --- a/app/src/androidTest/java/org/autojs/autojs/statics/RhinoE4XTest.java +++ b/app/src/androidTest/java/org/autojs/autojs/statics/RhinoE4XTest.java @@ -5,7 +5,7 @@ import org.mozilla.javascript.Scriptable; /** - * Created by Stardust on 2017/5/13. + * Created by Stardust on May 13, 2017. */ public class RhinoE4XTest { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8302770ca..f3809e147 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -101,6 +101,8 @@ android:name="android.permission.WRITE_SECURE_SETTINGS" tools:ignore="ProtectedPermissions" /> + + @@ -284,7 +286,7 @@ + android:foregroundServiceType="specialUse" /> @@ -299,7 +301,7 @@ + android:value="false" /> @@ -316,7 +318,7 @@ + android:value="false" /> @@ -573,9 +575,9 @@ android:theme="@style/ScriptTheme.Transparent" /> + android:name="org.autojs.autojs.core.accessibility.AccessibilityServiceUsher" + android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" + android:exported="true"> diff --git a/app/src/main/assets/doc/CHANGELOG.md b/app/src/main/assets-app/doc/CHANGELOG.md similarity index 91% rename from app/src/main/assets/doc/CHANGELOG.md rename to app/src/main/assets-app/doc/CHANGELOG.md index 006fc8ba2..35d9856e9 100644 --- a/app/src/main/assets/doc/CHANGELOG.md +++ b/app/src/main/assets-app/doc/CHANGELOG.md @@ -4,6 +4,47 @@ ****** +# v6.5.0 + +###### 2023/12/02 + +* `新增` opencc 模块 (参阅 项目文档 > [中文转换](https://docs.autojs6.com/#/opencc)) (Ref to [LZX284](https://github.com/SuperMonster003/AutoJs6/pull/187/files#diff-8cff73265af19c059547b76aca8882cbaa3209291406f52df1dafbbc78e80c46R268)) +* `新增` UiSelector 增加 [plus](https://docs.autojs6.com/#/uiObjectType?id=m-plus) 及 [append](https://docs.autojs6.com/#/uiObjectType?id=m-append) 方法 _[`issue #115`](http://issues.autojs6.com/115)_ +* `新增` 打包应用页面增加 ABI 及库的筛选支持 (Ref to [AutoX](https://github.com/kkevsekk1/AutoX)) _[`issue #189`](http://issues.autojs6.com/189)_ +* `修复` 打包应用文件体积异常庞大的问题 (Ref to [AutoX](https://github.com/kkevsekk1/AutoX) / [LZX284](https://github.com/SuperMonster003/AutoJs6/pull/187/files#diff-d932ac49867d4610f8eeb21b59306e8e923d016cbca192b254caebd829198856R61)) _[`issue #176`](http://issues.autojs6.com/176)_ +* `修复` 打包应用无法显示并打印部分异常消息的问题 +* `修复` 打包应用页面选择应用图标后可能显示空图标的问题 +* `修复` 打包应用包含 MLKit Google OCR 库时可能出现的上下文未初始化异常 +* `修复` ocr.mlkit/ocr.recognizeText/detect 方法无效的问题 +* `修复` 部分文本 (如日志页面) 显示语言与应用设置语言可能不相符的问题 +* `修复` 部分语言在主页抽屉开关项可能出现文本溢出的问题 +* `修复` 部分设备无障碍服务开启后立即自动关闭且无任何提示消息的问题 _[`issue #181`](http://issues.autojs6.com/181)_ +* `修复` 部分设备无障碍服务开启后设备物理按键可能导致应用崩溃的问题 (试修) _[`issue #183`](http://issues.autojs6.com/183)_ _[`issue #186`](http://issues.autojs6.com/186#issuecomment-1817307790)_ +* `修复` 使用 auto(true) 重启无障碍服务后 pickup 功能异常的问题 (试修) _[`issue #184`](http://issues.autojs6.com/184)_ +* `修复` floaty 模块创建浮动窗口拖动时可能导致应用崩溃的问题 (试修) +* `修复` app.startActivity 无法使用简称参数的问题 _[`issue #182`](http://issues.autojs6.com/182)_ _[`issue #188`](http://issues.autojs6.com/188)_ +* `修复` importClass 导入的类名与全局变量冲突时代码抛出异常的问题 _[`issue #185`](http://issues.autojs6.com/185)_ +* `修复` Android 7.x 无法使用无障碍服务的问题 +* `修复` Android 14+ 可能无法正常使用 runtime.loadJar/loadDex 方法的问题 (试修) +* `修复` 安卓系统快速设置面板中 "布局范围分析" 和 "布局层次分析" 不可用的问题 _[`issue #193`](http://issues.autojs6.com/193)_ +* `修复` 自动检查更新功能可能导致应用 [ANR](https://developer.android.com/topic/performance/vitals/anr) 的问题 (试修) _[`issue #186`](http://issues.autojs6.com/186)_ +* `修复` 文件管理器示例代码文件夹点击 "向上" 按钮后无法回到工作路径页面的问题 _[`issue #129`](http://issues.autojs6.com/129)_ +* `修复` 代码编辑器使用替换功能时替换按钮无法显示的问题 +* `修复` 代码编辑器长按删除时可能导致应用崩溃的问题 (试修) +* `修复` 代码编辑器点击 fx 按钮无法显示模块函数快捷面板的问题 +* `修复` 代码编辑器模块函数快捷面板按钮函数名称可能溢出的问题 +* `优化` 代码编辑器模块函数快捷面板适配夜间模式 +* `优化` 打包应用启动页面适配夜间模式并调整应用图标布局 +* `优化` 打包应用页面支持使用软键盘 ENTER 键实现光标跳转 +* `优化` 打包应用页面支持点击 ABI 标题及库标题切换全选状态 +* `优化` 打包应用页面默认 ABI 智能选择并增加不可选择项的引导提示 +* `优化` 文件管理器根据文件及文件夹的类型及特征调整菜单项的显示情况 +* `优化` 文件管理器文件夹右键菜单增加打包应用选项 +* `优化` 无障碍服务启用但功能异常时在 AutoJs6 主页抽屉开关处将体现异常状态 +* `依赖` 附加 Flexbox 版本 3.0.0 +* `依赖` 附加 Android OpenCC 版本 1.2.0 +* `依赖` 升级 Gradle 版本 8.5-rc-1 -> 8.5 + # v6.4.2 ###### 2023/11/15 diff --git a/app/src/main/assets/doc/RHINO.md b/app/src/main/assets-app/doc/RHINO.md similarity index 100% rename from app/src/main/assets/doc/RHINO.md rename to app/src/main/assets-app/doc/RHINO.md diff --git a/app/src/main/assets/docs/404.html b/app/src/main/assets-app/docs/404.html similarity index 96% rename from app/src/main/assets/docs/404.html rename to app/src/main/assets-app/docs/404.html index 65dc33883..ee4c18a8c 100644 --- a/app/src/main/assets/docs/404.html +++ b/app/src/main/assets-app/docs/404.html @@ -2,7 +2,7 @@ - 页面不存在 | AutoJs6 文档 - 6.4.2 + 页面不存在 | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/activity.html b/app/src/main/assets-app/docs/activity.html similarity index 97% rename from app/src/main/assets/docs/activity.html rename to app/src/main/assets-app/docs/activity.html index 644838fa8..92bf09a46 100644 --- a/app/src/main/assets/docs/activity.html +++ b/app/src/main/assets-app/docs/activity.html @@ -2,7 +2,7 @@ - 活动 (Activity) | AutoJs6 文档 - 6.4.2 + 活动 (Activity) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/all.html b/app/src/main/assets-app/docs/all.html similarity index 95% rename from app/src/main/assets/docs/all.html rename to app/src/main/assets-app/docs/all.html index d767f4db2..d5266146f 100644 --- a/app/src/main/assets/docs/all.html +++ b/app/src/main/assets-app/docs/all.html @@ -2,7 +2,7 @@ - 综述 (Overview) | AutoJs6 文档 - 6.4.2 + 综述 (Overview) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -1462,6 +1464,10 @@

    目录

  • setExitOnClose(timeout)
  • +
  • [m] setTouchable +
  • [m] setTitle @@ -2152,6 +2158,137 @@

    目录

  • +
  • OpenCC +
  • 国际化 (Internationalization)
  • E4X
  • @@ -10169,6 +10306,7 @@

    build(options)ConsoleBuildOptions 类型章节.

    @@ -10221,6 +10359,42 @@

    setExitOnClose(timeout)console.setExitOnClose(6e3).show(); /* 脚本结束后 6 秒钟自动关闭浮动窗口. */ console.build({ exitOnClose: 6e3 }).show(); /* 效果同上. */ +

    [m] setTouchable#

    +

    setTouchable(touchable?)#

    +

    6.5.0

    +
      +
    • [ true ] touchable { boolean } - 是否响应点击事件
    • +
    • returns { this }
    • +
    +

    设置控制台浮动窗口是否响应点击事件, 默认为 true.

    +

    如需穿透点击, 可设置为 false.

    +
    console.setTouchable(false).show(); /* 点击事件将穿透控制台浮动窗口. */
    +console.build({ touchable: false }).show(); /* 效果同上. */
    +
    +

    setTouchable 传入 false 时, 浮动窗口顶部的关闭按钮将无法通过点击触发, 此时可借助 hidesetExitOnClose 等代码方式实现浮动窗口关闭:

    +
    /* 借助 setExitOnClose 实现脚本结束后自动关闭窗口. */
    +
    +console
    +    .setTouchable(false)
    +    .setExitOnClose(true)
    +    .show();
    +
    +/* 使用 build 构建器写法. */
    +
    +console.build({
    +    touchable: false,
    +    exitOnClose: true,
    +}).show();
    +
    +/* 使用音量键控制, 例如按下 "音量减" 键关闭窗口 (需要无障碍服务). */
    +
    +events.observeKey();
    +events.setKeyInterceptionEnabled(true);
    +events.on('volume_down', () => {
    +    console.hide();
    +    exit(); /* 退出脚本 (可选). */
    +});
    +

    [m] setTitle#

    setTitle(title)#

    [6.3.0]

    @@ -14567,6 +14741,736 @@

    [c] (publicKeyData, privateKeyData, options?)#

    +

    OpenCC, 全称 "Open Chinese Convert", 译为 "开放中文转换".

    +

    opencc 模块是一个中文简繁转换模块, 支持词汇级别的转换, 异体字转换和地区习惯用词转换 (中国大陆/台湾/香港/日本新字体).

    +
    +

    参阅:
    OpenCC 官方网站: https://opencc.byvoid.com
    OpenCC 官方文档: https://byvoid.github.io/OpenCC
    OpenCC 开源项目: https://github.com/BYVoid/OpenCC
    OpenCC (Android) 开源项目: https://github.com/qichuan/android-opencc

    +
    +

    下表列举了一些简体中文的转换示例:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    程序员文档文件文件夹荞麦面心里为之喜悦
    繁体程序員文檔文件文件夾蕎麥麪心裏爲之喜悅
    香港繁体程序員文檔文件文件夾蕎麥麪心裏為之喜悦
    台湾正体程序員文檔文件文件夾蕎麥麵心裡為之喜悅
    台湾正体 (惯)程式設計師文件檔案資料夾蕎麥麵心裡為之喜悅
    +
    +

    注: 表中 "惯" 表示惯用词.

    +
    +

    转换方法对照表:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    简体繁体香港繁体台湾正体台湾正体 (惯)日本汉字
    简体-s2ts2hks2tws2twi< s2jp >
    繁体t2s-t2hkt2tw< t2twi >t2jp
    香港繁体hk2shk2t-< hk2tw >< hk2twi >< hk2jp >
    台湾正体tw2stw2t< tw2hk >-< tw2twi >< tw2jp >
    台湾正体 (惯)twi2s< twi2t >< twi2hk >< twi2tw >-<< twi2jp >>
    日本汉字< jp2s >jp2t< jp2hk >< jp2tw ><< jp2twi >>-
    +
    +

    注:

    +

    尖括号表示 AutoJs6 封装方法, 内部经 1 次转换.
    双尖括号表示 AutoJs6 封装方法, 内部经 2 次转换.

    +

    台湾正体存在惯用词.
    在转换时, 如涉及到台湾正体, 方法名称将以 "twi" 体现惯用词转换.
    如 twi2s 表示台湾正体转简体并应用惯用词转换.
    再如 hk2twi 表示香港繁体转台湾正体并应用惯用词转换.

    +
    +
    +

    opencc

    + +
    +

    [@] opencc#

    +

    opencc 可作为全局对象使用:

    +
    typeof opencc; // "function"
    +typeof opencc.convert; // "function"
    +
    +

    opencc(s, type)#

    +

    6.5.0

    + +

    将字符串转换为目标类型.

    +
    /* 简体. */
    +let s = '鼠标里面的硅二极管坏了, 导致光标分辨率降低';
    +
    +/* 繁體 (臺灣正體標準) [惯用词]. */
    +let t = '滑鼠裡面的矽二極體壞了, 導致游標解析度降低';
    +
    +/* s 转换为 t. */
    +console.log(opencc(s, 'S2TWI'));
    +
    +/* t 转换为 s. */
    +console.log(opencc(t, 'TWI2S'));
    +
    +

    opencc(s, type)opencc.convert(s, type) 等价.

    +

    [m] convert#

    +

    convert(s, type)#

    +

    6.5.0

    + +

    将字符串转换为目标类型.

    +

    opencc.convert(s, type)opencc(s, type) 等价.

    +

    [m] s2t#

    +

    s2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到繁体.

    +

    相当于 opencc(s, 'S2T');

    +
    let str = '心里为何充满喜悦';
    +console.log(opencc.s2t(str)); // 心裏爲何充滿喜悅
    +console.log(opencc(str, 'S2T')); /* 同上. */
    +
    +
    +

    注: s2t 的逆转换方法为 t2s.

    +
    +

    [m] s2hk#

    +

    s2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'S2HK');

    +
    let str = '心里为何充满喜悦';
    +console.log(opencc.s2hk(str)); // 心裏為何充滿喜悦
    +console.log(opencc(str, 'S2HK')); /* 同上. */
    +
    +
    +

    注: s2hk 的逆转换方法为 hk2s.

    +
    +

    [m] s2tw#

    +

    s2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到台湾正体.

    +

    相当于 opencc(s, 'S2TW');

    +
    let str = '心里为何充满喜悦';
    +console.log(opencc.s2tw(str)); // 心裡為何充滿喜悅
    +console.log(opencc(str, 'S2TW')); /* 同上. */
    +
    +
    +

    注: s2tw 的逆转换方法为 tw2s.

    +
    +

    [m] s2twi#

    +

    s2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到繁体 (台湾正体标准) [惯用词].

    +

    相当于 opencc(s, 'S2TWI');

    +
    let strA = '心里为何充满喜悦';
    +console.log(opencc.s2twi(strA)); // 心裡為何充滿喜悅
    +console.log(opencc(strA, 'S2TWI')); /* 同上. */
    +
    +let strB = '使用鼠标完成文件重命名操作';
    +console.log(opencc.s2twi(strB)); // 使用滑鼠完成檔案重新命名操作
    +console.log(opencc(strB, 'S2TWI')); /* 同上. */
    +
    +
    +

    注: s2twi 的逆转换方法为 twi2s.

    +
    +

    [m] s2jp#

    +

    s2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到日本汉字.

    +

    相当于 opencc(s, 'S2JP').

    +
    let str = '黑/废/泪/稻/亚';
    +console.log(opencc.s2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'S2JP')); /* 同上. */
    +
    +
    +

    注: s2jp 的逆转换方法为 jp2s.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    s2t -> t2jp
    +
    +

    [m] t2s#

    +

    t2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到简体.

    +

    相当于 opencc(s, 'T2S');

    +
    let str = '心裏爲何充滿喜悅';
    +console.log(opencc.t2s(str)); // 心里为何充满喜悦
    +console.log(opencc(str, 'T2S')); /* 同上. */
    +
    +
    +

    注: t2s 的逆转换方法为 s2t.

    +
    +

    [m] t2hk#

    +

    t2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'T2HK');

    +
    let str = '心裏爲何充滿喜悅';
    +console.log(opencc.t2hk(str)); // 心裏為何充滿喜悦
    +console.log(opencc(str, 'T2HK')); /* 同上. */
    +
    +
    +

    注: t2hk 的逆转换方法为 hk2t.

    +
    +

    [m] t2tw#

    +

    t2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到台湾正体.

    +

    相当于 opencc(s, 'T2TW');

    +
    let str = '心裏爲何充滿喜悅';
    +console.log(opencc.t2tw(str)); // 心裡為何充滿喜悅
    +console.log(opencc(str, 'T2TW')); /* 同上. */
    +
    +
    +

    注: t2tw 的逆转换方法为 tw2t.

    +
    +

    [m] t2twi#

    +

    t2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到台湾正体 [惯用词].

    +

    相当于 opencc(s, 'T2TWI').

    +
    let strA = '心裏爲何充滿喜悅';
    +console.log(opencc.t2twi(strA)); // 心裡為何充滿喜悅
    +console.log(opencc(strA, 'T2TWI')); /* 同上. */
    +
    +let strB = '使用鼠標完成文件重命名操作';
    +console.log(opencc.t2twi(strB)); // 使用滑鼠完成檔案重新命名操作
    +console.log(opencc(strB, 'T2TWI')); /* 同上. */
    +
    +
    +

    注: t2twi 的逆转换方法为 twi2t.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    t2s -> s2twi
    +
    +

    [m] t2jp#

    +

    t2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到日本汉字.

    +

    相当于 opencc(s, 'T2JP');

    +
    let str = '黑/廢/淚/稻/亞';
    +console.log(opencc.t2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'T2JP')); /* 同上. */
    +
    +
    +

    注: t2jp 的逆转换方法为 jp2t.

    +
    +

    [m] hk2s#

    +

    hk2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到简体.

    +

    相当于 opencc(s, 'HK2S');

    +
    let str = '心裏為何充滿喜悦';
    +console.log(opencc.hk2s(str)); // 心里为何充满喜悦
    +console.log(opencc(str, 'HK2S')); /* 同上. */
    +
    +
    +

    注: hk2s 的逆转换方法为 s2hk.

    +
    +

    [m] hk2t#

    +

    hk2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到繁体.

    +

    相当于 opencc(s, 'HK2T');

    +
    let str = '心裏為何充滿喜悦';
    +console.log(opencc.hk2t(str)); // 心裏爲何充滿喜悅
    +console.log(opencc(str, 'HK2T')); /* 同上. */
    +
    +
    +

    注: hk2t 的逆转换方法为 t2hk.

    +
    +

    [m] hk2tw#

    +

    hk2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到台湾正体.

    +

    相当于 opencc(s, 'HK2TW').

    +
    let str = '心裏為何充滿喜悦';
    +console.log(opencc.hk2tw(str)); // 心裡為何充滿喜悅
    +console.log(opencc(str, 'HK2TW')); /* 同上. */
    +
    +
    +

    注: hk2tw 的逆转换方法为 tw2hk.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    hk2t -> t2tw
    +
    +

    [m] hk2twi#

    +

    hk2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到台湾正体 [惯用词].

    +

    相当于 opencc(s, 'HK2TWI').

    +
    let strA = '心裏為何充滿喜悦';
    +console.log(opencc.hk2twi(strA)); // 心裡為何充滿喜悅
    +console.log(opencc(strA, 'HK2TWI')); /* 同上. */
    +
    +let strB = '使用鼠標完成文件重命名操作';
    +console.log(opencc.hk2twi(strB)); // 使用滑鼠完成檔案重新命名操作
    +console.log(opencc(strB, 'HK2TWI')); /* 同上. */
    +
    +
    +

    注: hk2twi 的逆转换方法为 twi2hk.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    hk2s -> s2twi
    +
    +

    [m] hk2jp#

    +

    hk2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到日本汉字.

    +

    相当于 opencc(s, 'HK2JP').

    +
    let str = '黑/廢/淚/稻/亞';
    +console.log(opencc.hk2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'HK2JP')); /* 同上. */
    +
    +
    +

    注: hk2jp 的逆转换方法为 jp2hk.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    hk2t -> t2jp
    +
    +

    [m] tw2s#

    +

    tw2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到简体.

    +

    相当于 opencc(s, 'TW2S');

    +
    let str = '心裡為何充滿喜悅';
    +console.log(opencc.tw2s(str)); // 心里为何充满喜悦
    +console.log(opencc(str, 'TW2S')); /* 同上. */
    +
    +
    +

    注: tw2s 的逆转换方法为 s2tw.

    +
    +

    [m] tw2t#

    +

    tw2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到繁体.

    +

    相当于 opencc(s, 'TW2T');

    +
    let str = '心裡為何充滿喜悅';
    +console.log(opencc.tw2t(str)); // 心裏爲何充滿喜悅
    +console.log(opencc(str, 'TW2T')); /* 同上. */
    +
    +
    +

    注: tw2t 的逆转换方法为 t2tw.

    +
    +

    [m] tw2hk#

    +

    tw2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'TW2HK').

    +
    let str = '心裡為何充滿喜悅';
    +console.log(opencc.tw2hk(str)); // 心裏為何充滿喜悦
    +console.log(opencc(str, 'TW2HK')); /* 同上. */
    +
    +
    +

    注: tw2hk 的逆转换方法为 hk2tw.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    tw2t -> t2hk
    +
    +

    [m] tw2twi#

    +

    tw2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到台湾正体 [惯用词].

    +

    相当于 opencc(s, 'TW2TWI').

    +
    let str = '使用鼠標完成文件重命名操作';
    +console.log(opencc.tw2twi(str)); // 使用滑鼠完成檔案重新命名操作
    +console.log(opencc(str, 'TW2TWI')); /* 同上. */
    +
    +
    +

    注: tw2twi 的逆转换方法为 twi2tw.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    tw2s -> s2twi
    +
    +

    [m] tw2jp#

    +

    tw2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到日本汉字.

    +

    相当于 opencc(s, 'TW2JP').

    +
    let str = '黑/廢/淚/稻/亞';
    +console.log(opencc.tw2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'TW2JP')); /* 同上. */
    +
    +
    +

    注: tw2jp 的逆转换方法为 jp2tw.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    tw2t -> t2jp
    +
    +

    [m] twi2s#

    +

    twi2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体 (台湾正体标准) [惯用词] 到简体.

    +

    相当于 opencc(s, 'TWI2S');

    +
    let strA = '心裡為何充滿喜悅';
    +console.log(opencc.twi2s(strA)); // 心里为何充满喜悦
    +console.log(opencc(strA, 'TWI2S')); /* 同上. */
    +
    +let strB = '使用滑鼠完成檔案重新命名操作';
    +console.log(opencc.twi2s(strB)); // 使用鼠标完成文件重命名操作
    +console.log(opencc(strB, 'TWI2S')); /* 同上. */
    +
    +
    +

    注: twi2s 的逆转换方法为 s2twi.

    +
    +

    [m] twi2t#

    +

    twi2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体 [惯用词] 到繁体.

    +

    相当于 opencc(s, 'TWI2T').

    +
    let strA = '心裡為何充滿喜悅';
    +console.log(opencc.twi2t(strA)); // 心裏爲何充滿喜悅
    +console.log(opencc(strA, 'TWI2T')); /* 同上. */
    +
    +let strB = '使用滑鼠完成檔案重新命名操作';
    +console.log(opencc.twi2t(strB)); // 使用鼠標完成文件重命名操作
    +console.log(opencc(strB, 'TWI2T')); /* 同上. */
    +
    +
    +

    注: twi2t 的逆转换方法为 t2twi.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    twi2s -> s2t
    +
    +

    [m] twi2hk#

    +

    twi2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体 [惯用词] 到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'TWI2HK').

    +
    let strA = '心裡為何充滿喜悅';
    +console.log(opencc.twi2hk(strA)); // 心裏為何充滿喜悦
    +console.log(opencc(strA, 'TWI2HK')); /* 同上. */
    +
    +let strB = '使用滑鼠完成檔案重新命名操作';
    +console.log(opencc.twi2hk(strB)); // 使用鼠標完成文件重命名操作
    +console.log(opencc(strB, 'TWI2HK')); /* 同上. */
    +
    +
    +

    注: twi2hk 的逆转换方法为 hk2twi.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    twi2s -> s2hk
    +
    +

    [m] twi2tw#

    +

    twi2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体 [惯用词] 到台湾正体.

    +

    相当于 opencc(s, 'TWI2TW').

    +
    let str = '使用滑鼠完成檔案重新命名操作';
    +console.log(opencc.twi2tw(str)); // 使用鼠標完成文件重命名操作
    +console.log(opencc(str, 'TWI2TW')); /* 同上. */
    +
    +
    +

    注: twi2tw 的逆转换方法为 tw2twi.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    twi2s -> s2tw
    +
    +

    [m] twi2jp#

    +

    twi2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体 [惯用词] 到日本汉字.

    +

    相当于 opencc(s, 'TWI2JP').

    +
    let str = '黑/廢/淚/稻/亞';
    +console.log(opencc.twi2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'TWI2JP')); /* 同上. */
    +
    +
    +

    注: twi2jp 的逆转换方法为 jp2twi.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    twi2s -> s2t -> t2jp
    +
    +

    [m] jp2s#

    +

    jp2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到简体.

    +

    相当于 opencc(s, 'JP2S').

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2s(str)); // 黑/废/泪/稻/亚
    +console.log(opencc(str, 'JP2S')); /* 同上. */
    +
    +
    +

    注: jp2s 的逆转换方法为 s2jp.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    jp2t -> t2s
    +
    +

    [m] jp2t#

    +

    jp2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到繁体.

    +

    相当于 opencc(s, 'JP2T');

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2t(str)); // 黑/廢/淚/稻/亞
    +console.log(opencc(str, 'JP2T')); /* 同上. */
    +
    +
    +

    注: jp2t 的逆转换方法为 2tjp.

    +
    +

    [m] jp2hk#

    +

    jp2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'JP2HK').

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2hk(str)); // 黑/廢/淚/稻/亞
    +console.log(opencc(str, 'JP2HK')); /* 同上. */
    +
    +
    +

    注: jp2hk 的逆转换方法为 hk2jp.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    jp2t -> t2hk
    +
    +

    [m] jp2tw#

    +

    jp2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到台湾正体.

    +

    相当于 opencc(s, 'JP2TW').

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2tw(str)); // 黑/廢/淚/稻/亞
    +console.log(opencc(str, 'JP2TW')); /* 同上. */
    +
    +
    +

    注: jp2tw 的逆转换方法为 tw2jp.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    jp2t -> t2tw
    +
    +

    [m] jp2twi#

    +

    jp2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到台湾正体 [惯用词].

    +

    相当于 opencc(s, 'JP2TWI').

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2twi(str)); // 黑/廢/淚/稻/亞
    +console.log(opencc(str, 'JP2TWI')); /* 同上. */
    +
    +
    +

    注: jp2twi 的逆转换方法为 twi2jp.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    jp2t -> t2s -> s2twi
    +
    +

    国际化 (Internationalization)#


    diff --git a/app/src/main/assets/docs/androidBundleType.html b/app/src/main/assets-app/docs/androidBundleType.html similarity index 97% rename from app/src/main/assets/docs/androidBundleType.html rename to app/src/main/assets-app/docs/androidBundleType.html index 638973fdb..9e003afcd 100644 --- a/app/src/main/assets/docs/androidBundleType.html +++ b/app/src/main/assets-app/docs/androidBundleType.html @@ -2,7 +2,7 @@ - AndroidBundle | AutoJs6 文档 - 6.4.2 + AndroidBundle | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/androidRectType.html b/app/src/main/assets-app/docs/androidRectType.html similarity index 98% rename from app/src/main/assets/docs/androidRectType.html rename to app/src/main/assets-app/docs/androidRectType.html index a45d21baa..6127c53cb 100644 --- a/app/src/main/assets/docs/androidRectType.html +++ b/app/src/main/assets-app/docs/androidRectType.html @@ -2,7 +2,7 @@ - AndroidRect | AutoJs6 文档 - 6.4.2 + AndroidRect | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/apiLevel.html b/app/src/main/assets-app/docs/apiLevel.html similarity index 98% rename from app/src/main/assets/docs/apiLevel.html rename to app/src/main/assets-app/docs/apiLevel.html index 4221e8113..5c7925d34 100644 --- a/app/src/main/assets/docs/apiLevel.html +++ b/app/src/main/assets-app/docs/apiLevel.html @@ -2,7 +2,7 @@ - 安卓 API 级别 (Android API Level) | AutoJs6 文档 - 6.4.2 + 安卓 API 级别 (Android API Level) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/app.html b/app/src/main/assets-app/docs/app.html similarity index 99% rename from app/src/main/assets/docs/app.html rename to app/src/main/assets-app/docs/app.html index ec56e2212..ab4354df9 100644 --- a/app/src/main/assets/docs/app.html +++ b/app/src/main/assets-app/docs/app.html @@ -2,7 +2,7 @@ - 通用应用 (App) | AutoJs6 文档 - 6.4.2 + 通用应用 (App) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/appType.html b/app/src/main/assets-app/docs/appType.html similarity index 99% rename from app/src/main/assets/docs/appType.html rename to app/src/main/assets-app/docs/appType.html index e92ae7c20..22a30ff70 100644 --- a/app/src/main/assets/docs/appType.html +++ b/app/src/main/assets-app/docs/appType.html @@ -2,7 +2,7 @@ - 应用枚举类 (App) | AutoJs6 文档 - 6.4.2 + 应用枚举类 (App) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/arrayx.html b/app/src/main/assets-app/docs/arrayx.html similarity index 99% rename from app/src/main/assets/docs/arrayx.html rename to app/src/main/assets-app/docs/arrayx.html index 51f54bcb4..d97861498 100644 --- a/app/src/main/assets/docs/arrayx.html +++ b/app/src/main/assets-app/docs/arrayx.html @@ -2,7 +2,7 @@ - Arrayx (Array 扩展) | AutoJs6 文档 - 6.4.2 + Arrayx (Array 扩展) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/assets/dnt_helper.js b/app/src/main/assets-app/docs/assets/dnt_helper.js similarity index 100% rename from app/src/main/assets/docs/assets/dnt_helper.js rename to app/src/main/assets-app/docs/assets/dnt_helper.js diff --git a/app/src/main/assets/docs/assets/fonts.css b/app/src/main/assets-app/docs/assets/fonts.css similarity index 100% rename from app/src/main/assets/docs/assets/fonts.css rename to app/src/main/assets-app/docs/assets/fonts.css diff --git a/app/src/main/assets/docs/assets/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 b/app/src/main/assets-app/docs/assets/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 similarity index 100% rename from app/src/main/assets/docs/assets/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 rename to app/src/main/assets-app/docs/assets/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 diff --git a/app/src/main/assets/docs/assets/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 b/app/src/main/assets-app/docs/assets/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 similarity index 100% rename from app/src/main/assets/docs/assets/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 rename to app/src/main/assets-app/docs/assets/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 diff --git a/app/src/main/assets/docs/assets/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 b/app/src/main/assets-app/docs/assets/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 similarity index 100% rename from app/src/main/assets/docs/assets/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 rename to app/src/main/assets-app/docs/assets/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 diff --git a/app/src/main/assets/docs/assets/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 b/app/src/main/assets-app/docs/assets/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 similarity index 100% rename from app/src/main/assets/docs/assets/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 rename to app/src/main/assets-app/docs/assets/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 diff --git a/app/src/main/assets/docs/assets/fonts/S6uyw4BMUTPHjx4wXg.woff2 b/app/src/main/assets-app/docs/assets/fonts/S6uyw4BMUTPHjx4wXg.woff2 similarity index 100% rename from app/src/main/assets/docs/assets/fonts/S6uyw4BMUTPHjx4wXg.woff2 rename to app/src/main/assets-app/docs/assets/fonts/S6uyw4BMUTPHjx4wXg.woff2 diff --git a/app/src/main/assets/docs/assets/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 b/app/src/main/assets-app/docs/assets/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 similarity index 100% rename from app/src/main/assets/docs/assets/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 rename to app/src/main/assets-app/docs/assets/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 diff --git a/app/src/main/assets/docs/assets/sh.css b/app/src/main/assets-app/docs/assets/sh.css similarity index 100% rename from app/src/main/assets/docs/assets/sh.css rename to app/src/main/assets-app/docs/assets/sh.css diff --git a/app/src/main/assets/docs/assets/sh_java.js b/app/src/main/assets-app/docs/assets/sh_java.js similarity index 100% rename from app/src/main/assets/docs/assets/sh_java.js rename to app/src/main/assets-app/docs/assets/sh_java.js diff --git a/app/src/main/assets/docs/assets/sh_javascript.js b/app/src/main/assets-app/docs/assets/sh_javascript.js similarity index 100% rename from app/src/main/assets/docs/assets/sh_javascript.js rename to app/src/main/assets-app/docs/assets/sh_javascript.js diff --git a/app/src/main/assets/docs/assets/sh_main.js b/app/src/main/assets-app/docs/assets/sh_main.js similarity index 100% rename from app/src/main/assets/docs/assets/sh_main.js rename to app/src/main/assets-app/docs/assets/sh_main.js diff --git a/app/src/main/assets/docs/assets/style.css b/app/src/main/assets-app/docs/assets/style.css similarity index 100% rename from app/src/main/assets/docs/assets/style.css rename to app/src/main/assets-app/docs/assets/style.css diff --git a/app/src/main/assets/docs/autojs.html b/app/src/main/assets-app/docs/autojs.html similarity index 98% rename from app/src/main/assets/docs/autojs.html rename to app/src/main/assets-app/docs/autojs.html index 952934d3f..dcc7a5c7d 100644 --- a/app/src/main/assets/docs/autojs.html +++ b/app/src/main/assets-app/docs/autojs.html @@ -2,7 +2,7 @@ - AutoJs6 本体应用 | AutoJs6 文档 - 6.4.2 + AutoJs6 本体应用 | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/automator.html b/app/src/main/assets-app/docs/automator.html similarity index 99% rename from app/src/main/assets/docs/automator.html rename to app/src/main/assets-app/docs/automator.html index 22e854489..82b9fbd8b 100644 --- a/app/src/main/assets/docs/automator.html +++ b/app/src/main/assets-app/docs/automator.html @@ -2,7 +2,7 @@ - 自动化 (Automator) | AutoJs6 文档 - 6.4.2 + 自动化 (Automator) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/barcode.html b/app/src/main/assets-app/docs/barcode.html similarity index 97% rename from app/src/main/assets/docs/barcode.html rename to app/src/main/assets-app/docs/barcode.html index 6030b91e4..5389638a1 100644 --- a/app/src/main/assets/docs/barcode.html +++ b/app/src/main/assets-app/docs/barcode.html @@ -2,7 +2,7 @@ - 条码 (Barcode) | AutoJs6 文档 - 6.4.2 + 条码 (Barcode) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/base64.html b/app/src/main/assets-app/docs/base64.html similarity index 98% rename from app/src/main/assets/docs/base64.html rename to app/src/main/assets-app/docs/base64.html index be040303e..cc363169e 100644 --- a/app/src/main/assets/docs/base64.html +++ b/app/src/main/assets-app/docs/base64.html @@ -2,7 +2,7 @@ - Base64 | AutoJs6 文档 - 6.4.2 + Base64 | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/canvas.html b/app/src/main/assets-app/docs/canvas.html similarity index 99% rename from app/src/main/assets/docs/canvas.html rename to app/src/main/assets-app/docs/canvas.html index 5c74d4438..6185aafa1 100644 --- a/app/src/main/assets/docs/canvas.html +++ b/app/src/main/assets-app/docs/canvas.html @@ -2,7 +2,7 @@ - 画布 (Canvas) | AutoJs6 文档 - 6.4.2 + 画布 (Canvas) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/changelog.html b/app/src/main/assets-app/docs/changelog.html similarity index 92% rename from app/src/main/assets/docs/changelog.html rename to app/src/main/assets-app/docs/changelog.html index dbc183f02..df963dba9 100644 --- a/app/src/main/assets/docs/changelog.html +++ b/app/src/main/assets-app/docs/changelog.html @@ -2,7 +2,7 @@ - 文档更新日志 (Changelog) | AutoJs6 文档 - 6.4.2 + 文档更新日志 (Changelog) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -174,6 +176,7 @@

    AutoJs6 文档 - 6.4.2

    目录

    @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/console.html b/app/src/main/assets-app/docs/console.html similarity index 96% rename from app/src/main/assets/docs/console.html rename to app/src/main/assets-app/docs/console.html index c4513b7e5..780dcf994 100644 --- a/app/src/main/assets/docs/console.html +++ b/app/src/main/assets-app/docs/console.html @@ -2,7 +2,7 @@ - 控制台 (Console) | AutoJs6 文档 - 6.4.2 + 控制台 (Console) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -222,6 +224,10 @@

    目录

  • setExitOnClose(timeout)
  • +
  • [m] setTouchable +
  • [m] setTitle @@ -572,6 +578,7 @@

    build(options)ConsoleBuildOptions 类型章节.

    @@ -624,6 +631,42 @@

    setExitOnClose(timeout)console.setExitOnClose(6e3).show(); /* 脚本结束后 6 秒钟自动关闭浮动窗口. */ console.build({ exitOnClose: 6e3 }).show(); /* 效果同上. */ +

    [m] setTouchable#

    +

    setTouchable(touchable?)#

    +

    6.5.0

    +
      +
    • [ true ] touchable { boolean } - 是否响应点击事件
    • +
    • returns { this }
    • +
    +

    设置控制台浮动窗口是否响应点击事件, 默认为 true.

    +

    如需穿透点击, 可设置为 false.

    +
    console.setTouchable(false).show(); /* 点击事件将穿透控制台浮动窗口. */
    +console.build({ touchable: false }).show(); /* 效果同上. */
    +
    +

    setTouchable 传入 false 时, 浮动窗口顶部的关闭按钮将无法通过点击触发, 此时可借助 hidesetExitOnClose 等代码方式实现浮动窗口关闭:

    +
    /* 借助 setExitOnClose 实现脚本结束后自动关闭窗口. */
    +
    +console
    +    .setTouchable(false)
    +    .setExitOnClose(true)
    +    .show();
    +
    +/* 使用 build 构建器写法. */
    +
    +console.build({
    +    touchable: false,
    +    exitOnClose: true,
    +}).show();
    +
    +/* 使用音量键控制, 例如按下 "音量减" 键关闭窗口 (需要无障碍服务). */
    +
    +events.observeKey();
    +events.setKeyInterceptionEnabled(true);
    +events.on('volume_down', () => {
    +    console.hide();
    +    exit(); /* 退出脚本 (可选). */
    +});
    +

    [m] setTitle#

    setTitle(title)#

    [6.3.0]

    diff --git a/app/src/main/assets/docs/consoleBuildOptionsType.html b/app/src/main/assets-app/docs/consoleBuildOptionsType.html similarity index 94% rename from app/src/main/assets/docs/consoleBuildOptionsType.html rename to app/src/main/assets-app/docs/consoleBuildOptionsType.html index 52f637d81..4b7861c4a 100644 --- a/app/src/main/assets/docs/consoleBuildOptionsType.html +++ b/app/src/main/assets-app/docs/consoleBuildOptionsType.html @@ -2,7 +2,7 @@ - ConsoleBuildOptions | AutoJs6 文档 - 6.4.2 + ConsoleBuildOptions | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -177,6 +179,7 @@

    目录

  • [p?] size
  • [p?] position
  • [p?] exitOnClose
  • +
  • [p?] touchable
  • [p?] title
  • [p?] titleTextSize
  • [p?] titleTextColor
  • @@ -232,7 +235,7 @@

    [p?] position#

      -
    • { number | boolean } - 浮动窗口自动关闭的超时时间或启用状态
    • +
    • [ false ] { number | boolean } - 浮动窗口自动关闭的超时时间或启用状态

    设置控制台浮动窗口在脚本结束时自动关闭的超时时间或启用状态.

    /* 脚本结束时 6 秒后自动关闭浮动窗口. */
    @@ -245,6 +248,16 @@ 

    [p?] exitOnClose#

    +
      +
    • [ true ] { boolean } - 是否响应点击事件
    • +
    +

    设置控制台浮动窗口是否响应点击事件, 默认为 true.

    +

    如需穿透点击, 可设置为 false.

    +
    /* 点击事件将穿透控制台浮动窗口. */
    +console.build({ touchable: false }).show();
    +
    +

    当设置 touchablefalse 时, 浮动窗口顶部的关闭按钮将无法通过点击触发, 此时可借助 hidesetExitOnClose 等代码方式实现浮动窗口关闭. 详见 console.setTouchable 小节.

    [p?] title#

    @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/continuation.html b/app/src/main/assets-app/docs/continuation.html similarity index 97% rename from app/src/main/assets/docs/continuation.html rename to app/src/main/assets-app/docs/continuation.html index 081e6cbfe..62dae8dd3 100644 --- a/app/src/main/assets/docs/continuation.html +++ b/app/src/main/assets-app/docs/continuation.html @@ -2,7 +2,7 @@ - 协程 (Continuation) | AutoJs6 文档 - 6.4.2 + 协程 (Continuation) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/coverpage.html b/app/src/main/assets-app/docs/coverpage.html similarity index 97% rename from app/src/main/assets/docs/coverpage.html rename to app/src/main/assets-app/docs/coverpage.html index 6fc83b5be..98bf7f749 100644 --- a/app/src/main/assets/docs/coverpage.html +++ b/app/src/main/assets-app/docs/coverpage.html @@ -2,7 +2,7 @@ - [AutoJs6](http://project.autojs6.com) | AutoJs6 文档 - 6.4.2 + [AutoJs6](http://project.autojs6.com) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/crypto.html b/app/src/main/assets-app/docs/crypto.html similarity index 99% rename from app/src/main/assets/docs/crypto.html rename to app/src/main/assets-app/docs/crypto.html index 7ddda3587..10ad18903 100644 --- a/app/src/main/assets/docs/crypto.html +++ b/app/src/main/assets-app/docs/crypto.html @@ -2,7 +2,7 @@ - 密文 (Crypto) | AutoJs6 文档 - 6.4.2 + 密文 (Crypto) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/cryptoCipherOptionsType.html b/app/src/main/assets-app/docs/cryptoCipherOptionsType.html similarity index 98% rename from app/src/main/assets/docs/cryptoCipherOptionsType.html rename to app/src/main/assets-app/docs/cryptoCipherOptionsType.html index 25ee66942..d7ebc189a 100644 --- a/app/src/main/assets/docs/cryptoCipherOptionsType.html +++ b/app/src/main/assets-app/docs/cryptoCipherOptionsType.html @@ -2,7 +2,7 @@ - CryptoCipherOptions | AutoJs6 文档 - 6.4.2 + CryptoCipherOptions | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/cryptoKeyPairType.html b/app/src/main/assets-app/docs/cryptoKeyPairType.html similarity index 97% rename from app/src/main/assets/docs/cryptoKeyPairType.html rename to app/src/main/assets-app/docs/cryptoKeyPairType.html index 3a34a17a5..34783b010 100644 --- a/app/src/main/assets/docs/cryptoKeyPairType.html +++ b/app/src/main/assets-app/docs/cryptoKeyPairType.html @@ -2,7 +2,7 @@ - CryptoKeyPair | AutoJs6 文档 - 6.4.2 + CryptoKeyPair | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/cryptoKeyType.html b/app/src/main/assets-app/docs/cryptoKeyType.html similarity index 98% rename from app/src/main/assets/docs/cryptoKeyType.html rename to app/src/main/assets-app/docs/cryptoKeyType.html index 3a58b583d..6a0972522 100644 --- a/app/src/main/assets/docs/cryptoKeyType.html +++ b/app/src/main/assets-app/docs/cryptoKeyType.html @@ -2,7 +2,7 @@ - CryptoKey | AutoJs6 文档 - 6.4.2 + CryptoKey | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/dataTypes.html b/app/src/main/assets-app/docs/dataTypes.html similarity index 98% rename from app/src/main/assets/docs/dataTypes.html rename to app/src/main/assets-app/docs/dataTypes.html index b3e463a34..f2fe88d22 100644 --- a/app/src/main/assets/docs/dataTypes.html +++ b/app/src/main/assets-app/docs/dataTypes.html @@ -2,7 +2,7 @@ - 数据类型 (Data Types) | AutoJs6 文档 - 6.4.2 + 数据类型 (Data Types) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

  • @@ -1600,16 +1603,18 @@

    BroadcastShortForm这些简称全部对应于 AutoJs6 可接收的广播行为, 如进行布局范围分析等.

    /* 发送 "布局范围分析" 广播. */
     app.sendBroadcast('inspect_layout_bounds');
    +app.sendBroadcast('layout_bounds'); /* 同上. */
     app.sendBroadcast('bounds'); /* 同上. */
     
     /* 发送 "布局层次分析" 广播. */
     app.sendBroadcast('inspect_layout_hierarchy');
    +app.sendBroadcast('layout_hierarchy');
     app.sendBroadcast('hierarchy'); /* 同上. */
     

    支持的全部广播行为简称:

      -
    • 布局范围分析 - inspect_layout_bounds / bounds
    • -
    • 布局层次分析 - inspect_layout_hierarchy / hierarchy
    • +
    • 布局范围分析 - inspect_layout_bounds / layout_bounds / bounds
    • +
    • 布局层次分析 - inspect_layout_hierarchy / layout_hierarchy / hierarchy

    OcrModeName#

    AutoJs6 的 OCR 模式名称.

    @@ -1990,12 +1995,14 @@

    OcrOptionsOcrOptions 类型章节.

    Okhttp3Request#

    参阅 Okhttp3Request 类型章节.

    -

    OpencvPoint#

    -

    参阅 OpencvPoint 类型章节.

    -

    OpencvRect#

    -

    参阅 OpencvRect 类型章节.

    -

    OpencvSize#

    -

    参阅 OpencvSize 类型章节.

    +

    OpenCVPoint#

    +

    参阅 OpenCVPoint 类型章节.

    +

    OpenCVRect#

    +

    参阅 OpenCVRect 类型章节.

    +

    OpenCVSize#

    +

    参阅 OpenCVSize 类型章节.

    +

    OpenCCConversion#

    +

    参阅 OpenCCConversion 类型章节.

    diff --git a/app/src/main/assets/docs/device.html b/app/src/main/assets-app/docs/device.html similarity index 99% rename from app/src/main/assets/docs/device.html rename to app/src/main/assets-app/docs/device.html index 0bee939c5..2926aac9e 100644 --- a/app/src/main/assets/docs/device.html +++ b/app/src/main/assets-app/docs/device.html @@ -2,7 +2,7 @@ - 设备 (Device) | AutoJs6 文档 - 6.4.2 + 设备 (Device) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/dialogs.html b/app/src/main/assets-app/docs/dialogs.html similarity index 99% rename from app/src/main/assets/docs/dialogs.html rename to app/src/main/assets-app/docs/dialogs.html index 225fb924d..d009d785c 100644 --- a/app/src/main/assets/docs/dialogs.html +++ b/app/src/main/assets-app/docs/dialogs.html @@ -2,7 +2,7 @@ - 对话框 (Dialogs) | AutoJs6 文档 - 6.4.2 + 对话框 (Dialogs) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/documentation.html b/app/src/main/assets-app/docs/documentation.html similarity index 99% rename from app/src/main/assets/docs/documentation.html rename to app/src/main/assets-app/docs/documentation.html index 9c09b907b..8f4ecf140 100644 --- a/app/src/main/assets/docs/documentation.html +++ b/app/src/main/assets-app/docs/documentation.html @@ -2,7 +2,7 @@ - 关于文档 (About) | AutoJs6 文档 - 6.4.2 + 关于文档 (About) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/e4x.html b/app/src/main/assets-app/docs/e4x.html similarity index 97% rename from app/src/main/assets/docs/e4x.html rename to app/src/main/assets-app/docs/e4x.html index 645a9ca90..a3acf7425 100644 --- a/app/src/main/assets/docs/e4x.html +++ b/app/src/main/assets-app/docs/e4x.html @@ -2,7 +2,7 @@ - E4X | AutoJs6 文档 - 6.4.2 + E4X | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/engines.html b/app/src/main/assets-app/docs/engines.html similarity index 98% rename from app/src/main/assets/docs/engines.html rename to app/src/main/assets-app/docs/engines.html index 799f33eda..2d826d1a3 100644 --- a/app/src/main/assets/docs/engines.html +++ b/app/src/main/assets-app/docs/engines.html @@ -2,7 +2,7 @@ - 引擎 (Engines) | AutoJs6 文档 - 6.4.2 + 引擎 (Engines) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/eventEmitterType.html b/app/src/main/assets-app/docs/eventEmitterType.html similarity index 96% rename from app/src/main/assets/docs/eventEmitterType.html rename to app/src/main/assets-app/docs/eventEmitterType.html index 53258e113..2f0b2d52f 100644 --- a/app/src/main/assets/docs/eventEmitterType.html +++ b/app/src/main/assets-app/docs/eventEmitterType.html @@ -2,7 +2,7 @@ - 事件发射器 (EventEmitter) | AutoJs6 文档 - 6.4.2 + 事件发射器 (EventEmitter) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/events.html b/app/src/main/assets-app/docs/events.html similarity index 99% rename from app/src/main/assets/docs/events.html rename to app/src/main/assets-app/docs/events.html index d3db0c657..f5ee8fe97 100644 --- a/app/src/main/assets/docs/events.html +++ b/app/src/main/assets-app/docs/events.html @@ -2,7 +2,7 @@ - 事件监听 (Events) | AutoJs6 文档 - 6.4.2 + 事件监听 (Events) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/exceptions.html b/app/src/main/assets-app/docs/exceptions.html similarity index 99% rename from app/src/main/assets/docs/exceptions.html rename to app/src/main/assets-app/docs/exceptions.html index 87c812aa6..47a5203cb 100644 --- a/app/src/main/assets/docs/exceptions.html +++ b/app/src/main/assets-app/docs/exceptions.html @@ -2,7 +2,7 @@ - 异常 (Exceptions) | AutoJs6 文档 - 6.4.2 + 异常 (Exceptions) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/files.html b/app/src/main/assets-app/docs/files.html similarity index 99% rename from app/src/main/assets/docs/files.html rename to app/src/main/assets-app/docs/files.html index 219431c1d..723ab6bdd 100644 --- a/app/src/main/assets/docs/files.html +++ b/app/src/main/assets-app/docs/files.html @@ -2,7 +2,7 @@ - 文件 (Files) | AutoJs6 文档 - 6.4.2 + 文件 (Files) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/floaty.html b/app/src/main/assets-app/docs/floaty.html similarity index 98% rename from app/src/main/assets/docs/floaty.html rename to app/src/main/assets-app/docs/floaty.html index f45b5ca4d..13ec61588 100644 --- a/app/src/main/assets/docs/floaty.html +++ b/app/src/main/assets-app/docs/floaty.html @@ -2,7 +2,7 @@ - 悬浮窗 (Floaty) | AutoJs6 文档 - 6.4.2 + 悬浮窗 (Floaty) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/global.html b/app/src/main/assets-app/docs/global.html similarity index 99% rename from app/src/main/assets/docs/global.html rename to app/src/main/assets-app/docs/global.html index 940139314..a5147ed2d 100644 --- a/app/src/main/assets/docs/global.html +++ b/app/src/main/assets-app/docs/global.html @@ -2,7 +2,7 @@ - 全局对象 (Global) | AutoJs6 文档 - 6.4.2 + 全局对象 (Global) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/glossaries.html b/app/src/main/assets-app/docs/glossaries.html similarity index 99% rename from app/src/main/assets/docs/glossaries.html rename to app/src/main/assets-app/docs/glossaries.html index 5ae2ff59e..fdae4a15f 100644 --- a/app/src/main/assets/docs/glossaries.html +++ b/app/src/main/assets-app/docs/glossaries.html @@ -2,7 +2,7 @@ - 术语 (Glossaries) | AutoJs6 文档 - 6.4.2 + 术语 (Glossaries) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/http.html b/app/src/main/assets-app/docs/http.html similarity index 98% rename from app/src/main/assets/docs/http.html rename to app/src/main/assets-app/docs/http.html index 8edf4bff5..b1d2feb5b 100644 --- a/app/src/main/assets/docs/http.html +++ b/app/src/main/assets-app/docs/http.html @@ -2,7 +2,7 @@ - HTTP | AutoJs6 文档 - 6.4.2 + HTTP | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/httpHeaderGlossary.html b/app/src/main/assets-app/docs/httpHeaderGlossary.html similarity index 99% rename from app/src/main/assets/docs/httpHeaderGlossary.html rename to app/src/main/assets-app/docs/httpHeaderGlossary.html index d528d86d6..283ca7a68 100644 --- a/app/src/main/assets/docs/httpHeaderGlossary.html +++ b/app/src/main/assets-app/docs/httpHeaderGlossary.html @@ -2,7 +2,7 @@ - HTTP Header (HTTP 标头) | AutoJs6 文档 - 6.4.2 + HTTP Header (HTTP 标头) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/httpRequestBuilderOptionsType.html b/app/src/main/assets-app/docs/httpRequestBuilderOptionsType.html similarity index 97% rename from app/src/main/assets/docs/httpRequestBuilderOptionsType.html rename to app/src/main/assets-app/docs/httpRequestBuilderOptionsType.html index 2fa5676c5..b0487bfbc 100644 --- a/app/src/main/assets/docs/httpRequestBuilderOptionsType.html +++ b/app/src/main/assets-app/docs/httpRequestBuilderOptionsType.html @@ -2,7 +2,7 @@ - HttpRequestBuilderOptions | AutoJs6 文档 - 6.4.2 + HttpRequestBuilderOptions | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/httpRequestHeadersType.html b/app/src/main/assets-app/docs/httpRequestHeadersType.html similarity index 98% rename from app/src/main/assets/docs/httpRequestHeadersType.html rename to app/src/main/assets-app/docs/httpRequestHeadersType.html index fb8dd1a12..e8bd36428 100644 --- a/app/src/main/assets/docs/httpRequestHeadersType.html +++ b/app/src/main/assets-app/docs/httpRequestHeadersType.html @@ -2,7 +2,7 @@ - HttpRequestHeaders | AutoJs6 文档 - 6.4.2 + HttpRequestHeaders | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/httpRequestMethodsGlossary.html b/app/src/main/assets-app/docs/httpRequestMethodsGlossary.html similarity index 97% rename from app/src/main/assets/docs/httpRequestMethodsGlossary.html rename to app/src/main/assets-app/docs/httpRequestMethodsGlossary.html index 5fd44f56f..16cfd83ae 100644 --- a/app/src/main/assets/docs/httpRequestMethodsGlossary.html +++ b/app/src/main/assets-app/docs/httpRequestMethodsGlossary.html @@ -2,7 +2,7 @@ - HTTP Request Methods (HTTP 请求方法) | AutoJs6 文档 - 6.4.2 + HTTP Request Methods (HTTP 请求方法) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/httpResponseBodyType.html b/app/src/main/assets-app/docs/httpResponseBodyType.html similarity index 95% rename from app/src/main/assets/docs/httpResponseBodyType.html rename to app/src/main/assets-app/docs/httpResponseBodyType.html index f26222156..165b8e6d9 100644 --- a/app/src/main/assets/docs/httpResponseBodyType.html +++ b/app/src/main/assets-app/docs/httpResponseBodyType.html @@ -2,7 +2,7 @@ - HttpResponseBodyType | AutoJs6 文档 - 6.4.2 + HttpResponseBody | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -173,13 +175,13 @@

    AutoJs6 文档 - 6.4.2

    -

    HttpResponseBodyType#

    +

    HttpResponseBody#


    此章节待补充或完善...

    Marked by SuperMonster003 on Mar 2, 2023.

    diff --git a/app/src/main/assets/docs/httpResponseHeadersType.html b/app/src/main/assets-app/docs/httpResponseHeadersType.html similarity index 99% rename from app/src/main/assets/docs/httpResponseHeadersType.html rename to app/src/main/assets-app/docs/httpResponseHeadersType.html index 80d90b192..7e9d8fe8b 100644 --- a/app/src/main/assets/docs/httpResponseHeadersType.html +++ b/app/src/main/assets-app/docs/httpResponseHeadersType.html @@ -2,7 +2,7 @@ - HttpResponseHeaders | AutoJs6 文档 - 6.4.2 + HttpResponseHeaders | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/httpResponseType.html b/app/src/main/assets-app/docs/httpResponseType.html similarity index 98% rename from app/src/main/assets/docs/httpResponseType.html rename to app/src/main/assets-app/docs/httpResponseType.html index 003210cf2..957bbd6f2 100644 --- a/app/src/main/assets/docs/httpResponseType.html +++ b/app/src/main/assets-app/docs/httpResponseType.html @@ -2,7 +2,7 @@ - HttpResponse | AutoJs6 文档 - 6.4.2 + HttpResponse | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/i18n.html b/app/src/main/assets-app/docs/i18n.html similarity index 97% rename from app/src/main/assets/docs/i18n.html rename to app/src/main/assets-app/docs/i18n.html index c8d9bf67a..1f523f885 100644 --- a/app/src/main/assets/docs/i18n.html +++ b/app/src/main/assets-app/docs/i18n.html @@ -2,7 +2,7 @@ - 国际化 (Internationalization) | AutoJs6 文档 - 6.4.2 + 国际化 (Internationalization) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/image.html b/app/src/main/assets-app/docs/image.html similarity index 99% rename from app/src/main/assets/docs/image.html rename to app/src/main/assets-app/docs/image.html index 19c90e531..6146b6014 100644 --- a/app/src/main/assets/docs/image.html +++ b/app/src/main/assets-app/docs/image.html @@ -2,7 +2,7 @@ - 图像 (Images) | AutoJs6 文档 - 6.4.2 + 图像 (Images) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/imageWrapperType.html b/app/src/main/assets-app/docs/imageWrapperType.html similarity index 97% rename from app/src/main/assets/docs/imageWrapperType.html rename to app/src/main/assets-app/docs/imageWrapperType.html index 293d24a9e..430560ebd 100644 --- a/app/src/main/assets/docs/imageWrapperType.html +++ b/app/src/main/assets-app/docs/imageWrapperType.html @@ -2,7 +2,7 @@ - 包装图像类 (ImageWrapper) | AutoJs6 文档 - 6.4.2 + 包装图像类 (ImageWrapper) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/images/autojs6-notification-append-script-name-on-title-dark.png b/app/src/main/assets-app/docs/images/autojs6-notification-append-script-name-on-title-dark.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-append-script-name-on-title-dark.png rename to app/src/main/assets-app/docs/images/autojs6-notification-append-script-name-on-title-dark.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-append-script-name-on-title.png b/app/src/main/assets-app/docs/images/autojs6-notification-append-script-name-on-title.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-append-script-name-on-title.png rename to app/src/main/assets-app/docs/images/autojs6-notification-append-script-name-on-title.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-big-content-sample-dark.png b/app/src/main/assets-app/docs/images/autojs6-notification-big-content-sample-dark.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-big-content-sample-dark.png rename to app/src/main/assets-app/docs/images/autojs6-notification-big-content-sample-dark.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-big-content-sample.png b/app/src/main/assets-app/docs/images/autojs6-notification-big-content-sample.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-big-content-sample.png rename to app/src/main/assets-app/docs/images/autojs6-notification-big-content-sample.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-big-text-for-content-dark.png b/app/src/main/assets-app/docs/images/autojs6-notification-big-text-for-content-dark.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-big-text-for-content-dark.png rename to app/src/main/assets-app/docs/images/autojs6-notification-big-text-for-content-dark.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-big-text-for-content.png b/app/src/main/assets-app/docs/images/autojs6-notification-big-text-for-content.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-big-text-for-content.png rename to app/src/main/assets-app/docs/images/autojs6-notification-big-text-for-content.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-content-sample-dark.png b/app/src/main/assets-app/docs/images/autojs6-notification-content-sample-dark.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-content-sample-dark.png rename to app/src/main/assets-app/docs/images/autojs6-notification-content-sample-dark.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-content-sample.png b/app/src/main/assets-app/docs/images/autojs6-notification-content-sample.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-content-sample.png rename to app/src/main/assets-app/docs/images/autojs6-notification-content-sample.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-item-details-dark.png b/app/src/main/assets-app/docs/images/autojs6-notification-item-details-dark.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-item-details-dark.png rename to app/src/main/assets-app/docs/images/autojs6-notification-item-details-dark.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-item-details.png b/app/src/main/assets-app/docs/images/autojs6-notification-item-details.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-item-details.png rename to app/src/main/assets-app/docs/images/autojs6-notification-item-details.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-list-dark.png b/app/src/main/assets-app/docs/images/autojs6-notification-list-dark.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-list-dark.png rename to app/src/main/assets-app/docs/images/autojs6-notification-list-dark.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-list-with-same-names-dark.png b/app/src/main/assets-app/docs/images/autojs6-notification-list-with-same-names-dark.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-list-with-same-names-dark.png rename to app/src/main/assets-app/docs/images/autojs6-notification-list-with-same-names-dark.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-list-with-same-names.png b/app/src/main/assets-app/docs/images/autojs6-notification-list-with-same-names.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-list-with-same-names.png rename to app/src/main/assets-app/docs/images/autojs6-notification-list-with-same-names.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-list.png b/app/src/main/assets-app/docs/images/autojs6-notification-list.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-list.png rename to app/src/main/assets-app/docs/images/autojs6-notification-list.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-title-sample-dark.png b/app/src/main/assets-app/docs/images/autojs6-notification-title-sample-dark.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-title-sample-dark.png rename to app/src/main/assets-app/docs/images/autojs6-notification-title-sample-dark.png diff --git a/app/src/main/assets/docs/images/autojs6-notification-title-sample.png b/app/src/main/assets-app/docs/images/autojs6-notification-title-sample.png similarity index 100% rename from app/src/main/assets/docs/images/autojs6-notification-title-sample.png rename to app/src/main/assets-app/docs/images/autojs6-notification-title-sample.png diff --git a/app/src/main/assets/docs/images/ex-gravity.png b/app/src/main/assets-app/docs/images/ex-gravity.png similarity index 100% rename from app/src/main/assets/docs/images/ex-gravity.png rename to app/src/main/assets-app/docs/images/ex-gravity.png diff --git a/app/src/main/assets/docs/images/ex-layout-gravity.png b/app/src/main/assets-app/docs/images/ex-layout-gravity.png similarity index 100% rename from app/src/main/assets/docs/images/ex-layout-gravity.png rename to app/src/main/assets-app/docs/images/ex-layout-gravity.png diff --git a/app/src/main/assets/docs/images/ex-marginLeft.png b/app/src/main/assets-app/docs/images/ex-marginLeft.png similarity index 100% rename from app/src/main/assets/docs/images/ex-marginLeft.png rename to app/src/main/assets-app/docs/images/ex-marginLeft.png diff --git a/app/src/main/assets/docs/images/ex-padding.png b/app/src/main/assets-app/docs/images/ex-padding.png similarity index 100% rename from app/src/main/assets/docs/images/ex-padding.png rename to app/src/main/assets-app/docs/images/ex-padding.png diff --git a/app/src/main/assets/docs/images/ex-properties.png b/app/src/main/assets-app/docs/images/ex-properties.png similarity index 100% rename from app/src/main/assets/docs/images/ex-properties.png rename to app/src/main/assets-app/docs/images/ex-properties.png diff --git a/app/src/main/assets/docs/images/ex-w.png b/app/src/main/assets-app/docs/images/ex-w.png similarity index 100% rename from app/src/main/assets/docs/images/ex-w.png rename to app/src/main/assets-app/docs/images/ex-w.png diff --git a/app/src/main/assets/docs/images/ex1-horizontal.png b/app/src/main/assets-app/docs/images/ex1-horizontal.png similarity index 100% rename from app/src/main/assets/docs/images/ex1-horizontal.png rename to app/src/main/assets-app/docs/images/ex1-horizontal.png diff --git a/app/src/main/assets/docs/images/ex1-margin.png b/app/src/main/assets-app/docs/images/ex1-margin.png similarity index 100% rename from app/src/main/assets/docs/images/ex1-margin.png rename to app/src/main/assets-app/docs/images/ex1-margin.png diff --git a/app/src/main/assets/docs/images/ex1.png b/app/src/main/assets-app/docs/images/ex1.png similarity index 100% rename from app/src/main/assets/docs/images/ex1.png rename to app/src/main/assets-app/docs/images/ex1.png diff --git a/app/src/main/assets/docs/images/ex2-margin.png b/app/src/main/assets-app/docs/images/ex2-margin.png similarity index 100% rename from app/src/main/assets/docs/images/ex2-margin.png rename to app/src/main/assets-app/docs/images/ex2-margin.png diff --git a/app/src/main/assets/docs/images/h-distance-color-detection-dark.png b/app/src/main/assets-app/docs/images/h-distance-color-detection-dark.png similarity index 100% rename from app/src/main/assets/docs/images/h-distance-color-detection-dark.png rename to app/src/main/assets-app/docs/images/h-distance-color-detection-dark.png diff --git a/app/src/main/assets/docs/images/h-distance-color-detection.png b/app/src/main/assets-app/docs/images/h-distance-color-detection.png similarity index 100% rename from app/src/main/assets/docs/images/h-distance-color-detection.png rename to app/src/main/assets-app/docs/images/h-distance-color-detection.png diff --git a/app/src/main/assets/docs/images/hs-distance-color-detection-dark.png b/app/src/main/assets-app/docs/images/hs-distance-color-detection-dark.png similarity index 100% rename from app/src/main/assets/docs/images/hs-distance-color-detection-dark.png rename to app/src/main/assets-app/docs/images/hs-distance-color-detection-dark.png diff --git a/app/src/main/assets/docs/images/hs-distance-color-detection.png b/app/src/main/assets-app/docs/images/hs-distance-color-detection.png similarity index 100% rename from app/src/main/assets/docs/images/hs-distance-color-detection.png rename to app/src/main/assets-app/docs/images/hs-distance-color-detection.png diff --git a/app/src/main/assets/docs/images/logo.png b/app/src/main/assets-app/docs/images/logo.png similarity index 100% rename from app/src/main/assets/docs/images/logo.png rename to app/src/main/assets-app/docs/images/logo.png diff --git a/app/src/main/assets/docs/images/rgb-difference-color-detection-dark.png b/app/src/main/assets-app/docs/images/rgb-difference-color-detection-dark.png similarity index 100% rename from app/src/main/assets/docs/images/rgb-difference-color-detection-dark.png rename to app/src/main/assets-app/docs/images/rgb-difference-color-detection-dark.png diff --git a/app/src/main/assets/docs/images/rgb-difference-color-detection.png b/app/src/main/assets-app/docs/images/rgb-difference-color-detection.png similarity index 100% rename from app/src/main/assets/docs/images/rgb-difference-color-detection.png rename to app/src/main/assets-app/docs/images/rgb-difference-color-detection.png diff --git a/app/src/main/assets/docs/images/rgb-distance-color-detection-dark.png b/app/src/main/assets-app/docs/images/rgb-distance-color-detection-dark.png similarity index 100% rename from app/src/main/assets/docs/images/rgb-distance-color-detection-dark.png rename to app/src/main/assets-app/docs/images/rgb-distance-color-detection-dark.png diff --git a/app/src/main/assets/docs/images/rgb-distance-color-detection.png b/app/src/main/assets-app/docs/images/rgb-distance-color-detection.png similarity index 100% rename from app/src/main/assets/docs/images/rgb-distance-color-detection.png rename to app/src/main/assets-app/docs/images/rgb-distance-color-detection.png diff --git a/app/src/main/assets/docs/images/weighted-rgb-distance-color-detection-dark.png b/app/src/main/assets-app/docs/images/weighted-rgb-distance-color-detection-dark.png similarity index 100% rename from app/src/main/assets/docs/images/weighted-rgb-distance-color-detection-dark.png rename to app/src/main/assets-app/docs/images/weighted-rgb-distance-color-detection-dark.png diff --git a/app/src/main/assets/docs/images/weighted-rgb-distance-color-detection.png b/app/src/main/assets-app/docs/images/weighted-rgb-distance-color-detection.png similarity index 100% rename from app/src/main/assets/docs/images/weighted-rgb-distance-color-detection.png rename to app/src/main/assets-app/docs/images/weighted-rgb-distance-color-detection.png diff --git a/app/src/main/assets/docs/index.html b/app/src/main/assets-app/docs/index.html similarity index 96% rename from app/src/main/assets/docs/index.html rename to app/src/main/assets-app/docs/index.html index f8713dda9..adbb9bd2d 100644 --- a/app/src/main/assets/docs/index.html +++ b/app/src/main/assets-app/docs/index.html @@ -2,7 +2,7 @@ - Index | AutoJs6 文档 - 6.4.2 + Index | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -228,6 +230,7 @@

    目录

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -301,9 +304,10 @@

    目录

  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • diff --git a/app/src/main/assets/docs/injectableWebClientType.html b/app/src/main/assets-app/docs/injectableWebClientType.html similarity index 97% rename from app/src/main/assets/docs/injectableWebClientType.html rename to app/src/main/assets-app/docs/injectableWebClientType.html index 54eb52094..ddf1928f6 100644 --- a/app/src/main/assets/docs/injectableWebClientType.html +++ b/app/src/main/assets-app/docs/injectableWebClientType.html @@ -2,7 +2,7 @@ - InjectableWebClient | AutoJs6 文档 - 6.4.2 + InjectableWebClient | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/injectableWebViewType.html b/app/src/main/assets-app/docs/injectableWebViewType.html similarity index 97% rename from app/src/main/assets/docs/injectableWebViewType.html rename to app/src/main/assets-app/docs/injectableWebViewType.html index 9f5a2f978..94ed546c6 100644 --- a/app/src/main/assets/docs/injectableWebViewType.html +++ b/app/src/main/assets-app/docs/injectableWebViewType.html @@ -2,7 +2,7 @@ - InjectableWebView | AutoJs6 文档 - 6.4.2 + InjectableWebView | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/intentType.html b/app/src/main/assets-app/docs/intentType.html similarity index 97% rename from app/src/main/assets/docs/intentType.html rename to app/src/main/assets-app/docs/intentType.html index 9b861f09a..3e6d76c44 100644 --- a/app/src/main/assets/docs/intentType.html +++ b/app/src/main/assets-app/docs/intentType.html @@ -2,7 +2,7 @@ - 意图 (Intent) | AutoJs6 文档 - 6.4.2 + 意图 (Intent) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/keys.html b/app/src/main/assets-app/docs/keys.html similarity index 98% rename from app/src/main/assets/docs/keys.html rename to app/src/main/assets-app/docs/keys.html index 314e5e13a..98369ea14 100644 --- a/app/src/main/assets/docs/keys.html +++ b/app/src/main/assets-app/docs/keys.html @@ -2,7 +2,7 @@ - 按键 (Keys) | AutoJs6 文档 - 6.4.2 + 按键 (Keys) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/manual.html b/app/src/main/assets-app/docs/manual.html similarity index 96% rename from app/src/main/assets/docs/manual.html rename to app/src/main/assets-app/docs/manual.html index d5fea32db..3cd7dec62 100644 --- a/app/src/main/assets/docs/manual.html +++ b/app/src/main/assets-app/docs/manual.html @@ -2,7 +2,7 @@ - AutoJs6 使用手册 (Manual) | AutoJs6 文档 - 6.4.2 + AutoJs6 使用手册 (Manual) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/mathx.html b/app/src/main/assets-app/docs/mathx.html similarity index 99% rename from app/src/main/assets/docs/mathx.html rename to app/src/main/assets-app/docs/mathx.html index 8b177836d..98c548b65 100644 --- a/app/src/main/assets/docs/mathx.html +++ b/app/src/main/assets-app/docs/mathx.html @@ -2,7 +2,7 @@ - Mathx (Math 扩展) | AutoJs6 文档 - 6.4.2 + Mathx (Math 扩展) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -717,8 +719,8 @@

    [m] dist#dist(pointA, pointB, fraction?)#

    6.2.0 xObject Overload [1-2]/4

    diff --git a/app/src/main/assets/docs/media.html b/app/src/main/assets-app/docs/media.html similarity index 98% rename from app/src/main/assets/docs/media.html rename to app/src/main/assets-app/docs/media.html index d7f907ee8..c240d3220 100644 --- a/app/src/main/assets/docs/media.html +++ b/app/src/main/assets-app/docs/media.html @@ -2,7 +2,7 @@ - 多媒体 (Media) | AutoJs6 文档 - 6.4.2 + 多媒体 (Media) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/mimeTypeGlossary.html b/app/src/main/assets-app/docs/mimeTypeGlossary.html similarity index 98% rename from app/src/main/assets/docs/mimeTypeGlossary.html rename to app/src/main/assets-app/docs/mimeTypeGlossary.html index 0d7fb2698..a4f62f73b 100644 --- a/app/src/main/assets/docs/mimeTypeGlossary.html +++ b/app/src/main/assets-app/docs/mimeTypeGlossary.html @@ -2,7 +2,7 @@ - MIME Type (MIME 类型) | AutoJs6 文档 - 6.4.2 + MIME Type (MIME 类型) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/modules.html b/app/src/main/assets-app/docs/modules.html similarity index 97% rename from app/src/main/assets/docs/modules.html rename to app/src/main/assets-app/docs/modules.html index 29c9cd2aa..897402a57 100644 --- a/app/src/main/assets/docs/modules.html +++ b/app/src/main/assets-app/docs/modules.html @@ -2,7 +2,7 @@ - 模块 (Module) | AutoJs6 文档 - 6.4.2 + 模块 (Module) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/notice.html b/app/src/main/assets-app/docs/notice.html similarity index 99% rename from app/src/main/assets/docs/notice.html rename to app/src/main/assets-app/docs/notice.html index 0a80e80f0..8bd689d02 100644 --- a/app/src/main/assets/docs/notice.html +++ b/app/src/main/assets-app/docs/notice.html @@ -2,7 +2,7 @@ - 消息通知 (Notice) | AutoJs6 文档 - 6.4.2 + 消息通知 (Notice) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/noticeBuilderType.html b/app/src/main/assets-app/docs/noticeBuilderType.html similarity index 99% rename from app/src/main/assets/docs/noticeBuilderType.html rename to app/src/main/assets-app/docs/noticeBuilderType.html index 85a4f2263..f244acd16 100644 --- a/app/src/main/assets/docs/noticeBuilderType.html +++ b/app/src/main/assets-app/docs/noticeBuilderType.html @@ -2,7 +2,7 @@ - NoticeBuilder | AutoJs6 文档 - 6.4.2 + NoticeBuilder | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/noticeChannelOptionsType.html b/app/src/main/assets-app/docs/noticeChannelOptionsType.html similarity index 98% rename from app/src/main/assets/docs/noticeChannelOptionsType.html rename to app/src/main/assets-app/docs/noticeChannelOptionsType.html index 9c0553a99..53dd563b7 100644 --- a/app/src/main/assets/docs/noticeChannelOptionsType.html +++ b/app/src/main/assets-app/docs/noticeChannelOptionsType.html @@ -2,7 +2,7 @@ - NoticeChannelOptions | AutoJs6 文档 - 6.4.2 + NoticeChannelOptions | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/noticeOptionsType.html b/app/src/main/assets-app/docs/noticeOptionsType.html similarity index 98% rename from app/src/main/assets/docs/noticeOptionsType.html rename to app/src/main/assets-app/docs/noticeOptionsType.html index 267506edd..adfad7a03 100644 --- a/app/src/main/assets/docs/noticeOptionsType.html +++ b/app/src/main/assets-app/docs/noticeOptionsType.html @@ -2,7 +2,7 @@ - NoticeOptions | AutoJs6 文档 - 6.4.2 + NoticeOptions | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/noticePresetConfigurationType.html b/app/src/main/assets-app/docs/noticePresetConfigurationType.html similarity index 98% rename from app/src/main/assets/docs/noticePresetConfigurationType.html rename to app/src/main/assets-app/docs/noticePresetConfigurationType.html index 6dc9097ff..08745bdc5 100644 --- a/app/src/main/assets/docs/noticePresetConfigurationType.html +++ b/app/src/main/assets-app/docs/noticePresetConfigurationType.html @@ -2,7 +2,7 @@ - NoticePresetConfiguration | AutoJs6 文档 - 6.4.2 + NoticePresetConfiguration | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/notificationChannelGlossary.html b/app/src/main/assets-app/docs/notificationChannelGlossary.html similarity index 98% rename from app/src/main/assets/docs/notificationChannelGlossary.html rename to app/src/main/assets-app/docs/notificationChannelGlossary.html index eee107e40..bba075069 100644 --- a/app/src/main/assets/docs/notificationChannelGlossary.html +++ b/app/src/main/assets-app/docs/notificationChannelGlossary.html @@ -2,7 +2,7 @@ - Notification Channel (通知渠道) | AutoJs6 文档 - 6.4.2 + Notification Channel (通知渠道) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/numberx.html b/app/src/main/assets-app/docs/numberx.html similarity index 99% rename from app/src/main/assets/docs/numberx.html rename to app/src/main/assets-app/docs/numberx.html index 9734ead7f..d1ef0c93d 100644 --- a/app/src/main/assets/docs/numberx.html +++ b/app/src/main/assets-app/docs/numberx.html @@ -2,7 +2,7 @@ - Numberx (Number 扩展) | AutoJs6 文档 - 6.4.2 + Numberx (Number 扩展) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/ocr.html b/app/src/main/assets-app/docs/ocr.html similarity index 99% rename from app/src/main/assets/docs/ocr.html rename to app/src/main/assets-app/docs/ocr.html index be1930e41..75b38a41e 100644 --- a/app/src/main/assets/docs/ocr.html +++ b/app/src/main/assets-app/docs/ocr.html @@ -2,7 +2,7 @@ - 光学字符识别 (OCR) | AutoJs6 文档 - 6.4.2 + 光学字符识别 (OCR) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/ocrOptionsType.html b/app/src/main/assets-app/docs/ocrOptionsType.html similarity index 97% rename from app/src/main/assets/docs/ocrOptionsType.html rename to app/src/main/assets-app/docs/ocrOptionsType.html index 6706a0253..3b25e9f72 100644 --- a/app/src/main/assets/docs/ocrOptionsType.html +++ b/app/src/main/assets-app/docs/ocrOptionsType.html @@ -2,7 +2,7 @@ - OcrOptions | AutoJs6 文档 - 6.4.2 + OcrOptions | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/okhttp3HttpUrlType.html b/app/src/main/assets-app/docs/okhttp3HttpUrlType.html similarity index 95% rename from app/src/main/assets/docs/okhttp3HttpUrlType.html rename to app/src/main/assets-app/docs/okhttp3HttpUrlType.html index db8886900..2925186af 100644 --- a/app/src/main/assets/docs/okhttp3HttpUrlType.html +++ b/app/src/main/assets-app/docs/okhttp3HttpUrlType.html @@ -2,7 +2,7 @@ - Okhttp3HttpUrlType | AutoJs6 文档 - 6.4.2 + Okhttp3HttpUrl | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -173,13 +175,13 @@

    AutoJs6 文档 - 6.4.2

    -

    Okhttp3HttpUrlType#

    +

    Okhttp3HttpUrl#


    此章节待补充或完善...

    Marked by SuperMonster003 on Mar 2, 2023.

    diff --git a/app/src/main/assets/docs/okhttp3RequestType.html b/app/src/main/assets-app/docs/okhttp3RequestType.html similarity index 97% rename from app/src/main/assets/docs/okhttp3RequestType.html rename to app/src/main/assets-app/docs/okhttp3RequestType.html index 55d9bdbd2..57090915c 100644 --- a/app/src/main/assets/docs/okhttp3RequestType.html +++ b/app/src/main/assets-app/docs/okhttp3RequestType.html @@ -2,7 +2,7 @@ - Okhttp3Request | AutoJs6 文档 - 6.4.2 + Okhttp3Request | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/omniTypes.html b/app/src/main/assets-app/docs/omniTypes.html similarity index 98% rename from app/src/main/assets/docs/omniTypes.html rename to app/src/main/assets-app/docs/omniTypes.html index 8ddd95108..62a436c9d 100644 --- a/app/src/main/assets/docs/omniTypes.html +++ b/app/src/main/assets-app/docs/omniTypes.html @@ -2,7 +2,7 @@ - 全能类型 (Omnipotent Types) | AutoJs6 文档 - 6.4.2 + 全能类型 (Omnipotent Types) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -354,7 +356,7 @@

    OmniRegion[ 0, 0, 200, 400 ] -OpencvRect +OpenCVRect org.opencv.core.Rect 类型 1. images.buildRegion(img, [ 0, 0, 200, 400 ])
    2. new org.opencv.core.Rect(x, y, w, h)
    @@ -379,7 +381,7 @@

    OmniRegion + + + OpenCCConversion | AutoJs6 文档 - 6.5.0 + + + + + + + + + + +
    +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + + +
    + +
    +
    +

    AutoJs6 文档 - 6.5.0

    +
    +

    + 索引 | + 查看全部 +

    +
    +
    +
    + + + +
    +

    OpenCCConversion#

    +

    用于 opencc 模块的 "字符转换类型" 类型.

    +

    OpenCCConversion 为字符串, 作为参数使用时不区分大小写.

    +

    将繁体中文 "這裏" 转换为简体中文 "这里" 的简单示例:

    +
    opencc('這裏', 'S2T');
    +
    +

    其中 'S2T' 即为 OpenCCConversion 类型.

    +

    HK2S#

    +
      +
    • 香港繁体 (香港小学学习字词表标准) 到简体
    • +
    • 香港繁體 (香港小學學習字詞表標準) 到簡體
    • +
    • Traditional Chinese (Hong Kong Standard) to Simplified Chinese
    • +
    +

    HK2T#

    +
      +
    • 香港繁体 (香港小学学习字词表标准) 到繁体
    • +
    • 香港繁體 (香港小學學習字詞表標準) 到繁體
    • +
    • Traditional Chinese (Hong Kong variant) to Traditional Chinese
    • +
    +

    JP2T#

    +
      +
    • 日本汉字到繁体
    • +
    • 日本漢字到繁體
    • +
    • New Japanese Kanji (Shinjitai) to Traditional Chinese Characters (Kyūjitai)
    • +
    +

    S2HK#

    +
      +
    • 简体到香港繁体 (香港小学学习字词表标准)
    • +
    • 簡體到香港繁體 (香港小學學習字詞表標準)
    • +
    • Simplified Chinese to Traditional Chinese (Hong Kong Standard)
    • +
    +

    S2T#

    +
      +
    • 简体到繁体
    • +
    • 簡體到繁體
    • +
    • Simplified Chinese to Traditional Chinese
    • +
    +

    S2TW#

    +
      +
    • 简体到台湾正体
    • +
    • 簡體到臺灣正體
    • +
    • Simplified Chinese to Traditional Chinese (Taiwan Standard)
    • +
    +

    S2TWI#

    +
      +
    • 简体到繁体 (台湾正体标准) [惯用词]
    • +
    • 簡體到繁體 (臺灣正體標準) [慣用詞]
    • +
    • Simplified Chinese to Traditional Chinese (Taiwan Standard) [with idiom]
    • +
    +

    T2HK#

    +
      +
    • 繁体到香港繁体 (香港小学学习字词表标准)
    • +
    • 繁體到香港繁體 (香港小學學習字詞表標準)
    • +
    • Traditional Chinese to Traditional Chinese (Hong Kong Standard)
    • +
    +

    T2S#

    +
      +
    • 繁体到简体
    • +
    • 繁體到簡體
    • +
    • Traditional Chinese to Simplified Chinese
    • +
    +

    T2TW#

    +
      +
    • 繁体到台湾正体
    • +
    • 繁體到臺灣正體
    • +
    • Traditional Chinese to Traditional Chinese (Taiwan Standard)
    • +
    +

    TW2S#

    +
      +
    • 台湾正体到简体
    • +
    • 臺灣正體到簡體
    • +
    • Traditional Chinese (Taiwan Standard) to Simplified Chinese
    • +
    +

    T2JP#

    +
      +
    • 繁体到日本汉字
    • +
    • 繁體到日本漢字
    • +
    • Traditional Chinese Characters (Kyūjitai) to New Japanese Kanji (Shinjitai)
    • +
    +

    TW2T#

    +
      +
    • 台湾正体到繁体
    • +
    • 臺灣正體到繁體
    • +
    • Traditional Chinese (Taiwan standard) to Traditional Chinese
    • +
    +

    TWI2S#

    +
      +
    • 繁体 (台湾正体标准) [惯用词] 到简体
    • +
    • 繁體 (臺灣正體標準) [慣用詞] 到簡體
    • +
    • Traditional Chinese (Taiwan Standard) [with idiom] to Simplified Chinese
    • +
    +

    S2JP#

    +
      +
    • 简体到日本汉字
    • +
    • 簡體到日本漢字
    • +
    • Simplified Chinese to New Japanese Kanji (Shinjitai)
    • +
    +

    T2TWI#

    +
      +
    • 繁体到台湾正体 [惯用词]
    • +
    • 繁體到臺灣正體 [慣用詞]
    • +
    • Traditional Chinese to Traditional Chinese (Taiwan Standard) [with idiom]
    • +
    +

    HK2TW#

    +
      +
    • 香港繁体 (香港小学学习字词表标准) 到台湾正体
    • +
    • 香港繁體 (香港小學學習字詞表標準) 到臺灣正體
    • +
    • Traditional Chinese (Hong Kong variant) to Traditional Chinese (Taiwan Standard)
    • +
    +

    HK2TWI#

    +
      +
    • 香港繁体 (香港小学学习字词表标准) 到台湾正体 [惯用词]
    • +
    • 香港繁體 (香港小學學習字詞表標準) 到臺灣正體 [慣用詞]
    • +
    • Traditional Chinese (Hong Kong variant) to Traditional Chinese (Taiwan Standard) [with idiom]
    • +
    +

    HK2JP#

    +
      +
    • 香港繁体 (香港小学学习字词表标准) 到日本汉字
    • +
    • 香港繁體 (香港小學學習字詞表標準) 到日本漢字
    • +
    • Traditional Chinese (Hong Kong variant) to New Japanese Kanji (Shinjitai)
    • +
    +

    TW2HK#

    +
      +
    • 台湾正体到香港繁体 (香港小学学习字词表标准)
    • +
    • 臺灣正體到香港繁體 (香港小學學習字詞表標準)
    • +
    • Traditional Chinese (Taiwan Standard) to Traditional Chinese (Hong Kong Standard)
    • +
    +

    TW2TWI#

    +
      +
    • 台湾正体到台湾正体 [惯用词]
    • +
    • 臺灣正體到臺灣正體 [慣用詞]
    • +
    • Traditional Chinese (Taiwan Standard) to Traditional Chinese (Taiwan Standard) [with idiom]
    • +
    +

    TW2JP#

    +
      +
    • 台湾正体到日本汉字
    • +
    • 臺灣正體到日本漢字
    • +
    • Traditional Chinese (Taiwan Standard) to New Japanese Kanji (Shinjitai)
    • +
    +

    TWI2T#

    +
      +
    • 台湾正体 [惯用词] 到繁体
    • +
    • 臺灣正體 [慣用詞] 到繁體
    • +
    • Traditional Chinese (Taiwan Standard) [with idiom] to Traditional Chinese
    • +
    +

    TWI2HK#

    +
      +
    • 台湾正体 [惯用词] 到香港繁体 (香港小学学习字词表标准)
    • +
    • 臺灣正體 [慣用詞] 到香港繁體 (香港小學學習字詞表標準)
    • +
    • Traditional Chinese (Taiwan Standard) [with idiom] to Traditional Chinese (Hong Kong Standard)
    • +
    +

    TWI2TW#

    +
      +
    • 台湾正体 [惯用词] 到台湾正体
    • +
    • 臺灣正體 [慣用詞] 到臺灣正體
    • +
    • Traditional Chinese (Taiwan Standard) [with idiom] to Traditional Chinese (Taiwan Standard)
    • +
    +

    TWI2JP#

    +
      +
    • 台湾正体 [惯用词] 到日本汉字
    • +
    • 臺灣正體 [慣用詞] 到日本漢字
    • +
    • Traditional Chinese (Taiwan Standard) [with idiom] to New Japanese Kanji (Shinjitai)
    • +
    +

    JP2S#

    +
      +
    • 日本汉字到简体
    • +
    • 日本漢字到簡體
    • +
    • New Japanese Kanji (Shinjitai) to Simplified Chinese
    • +
    +

    JP2HK#

    +
      +
    • 日本汉字到香港繁体 (香港小学学习字词表标准)
    • +
    • 日本漢字到香港繁體 (香港小學學習字詞表標準)
    • +
    • New Japanese Kanji (Shinjitai) to Traditional Chinese (Hong Kong Standard)
    • +
    +

    JP2TW#

    +
      +
    • 日本汉字到台湾正体
    • +
    • 日本漢字到臺灣正體
    • +
    • New Japanese Kanji (Shinjitai) to Traditional Chinese (Taiwan Standard)
    • +
    +

    JP2TWI#

    +
      +
    • 日本汉字到台湾正体 [惯用词]
    • +
    • 日本漢字到臺灣正體 [慣用詞]
    • +
    • New Japanese Kanji (Shinjitai) to Traditional Chinese (Taiwan Standard) [with idiom]
    • +
    +
    +
    +
    +
    + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets-app/docs/opencc.html b/app/src/main/assets-app/docs/opencc.html new file mode 100644 index 000000000..4bc2e0aab --- /dev/null +++ b/app/src/main/assets-app/docs/opencc.html @@ -0,0 +1,1062 @@ + + + + + OpenCC | AutoJs6 文档 - 6.5.0 + + + + + + + + + + +
    +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + + + +
    + +
    +
    +

    AutoJs6 文档 - 6.5.0

    +
    +

    + 索引 | + 查看全部 +

    +
    +
    +
    + + + +
    +

    OpenCC#

    +

    OpenCC, 全称 "Open Chinese Convert", 译为 "开放中文转换".

    +

    opencc 模块是一个中文简繁转换模块, 支持词汇级别的转换, 异体字转换和地区习惯用词转换 (中国大陆/台湾/香港/日本新字体).

    +
    +

    参阅:
    OpenCC 官方网站: https://opencc.byvoid.com
    OpenCC 官方文档: https://byvoid.github.io/OpenCC
    OpenCC 开源项目: https://github.com/BYVoid/OpenCC
    OpenCC (Android) 开源项目: https://github.com/qichuan/android-opencc

    +
    +

    下表列举了一些简体中文的转换示例:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    程序员文档文件文件夹荞麦面心里为之喜悦
    繁体程序員文檔文件文件夾蕎麥麪心裏爲之喜悅
    香港繁体程序員文檔文件文件夾蕎麥麪心裏為之喜悦
    台湾正体程序員文檔文件文件夾蕎麥麵心裡為之喜悅
    台湾正体 (惯)程式設計師文件檔案資料夾蕎麥麵心裡為之喜悅
    +
    +

    注: 表中 "惯" 表示惯用词.

    +
    +

    转换方法对照表:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    简体繁体香港繁体台湾正体台湾正体 (惯)日本汉字
    简体-s2ts2hks2tws2twi< s2jp >
    繁体t2s-t2hkt2tw< t2twi >t2jp
    香港繁体hk2shk2t-< hk2tw >< hk2twi >< hk2jp >
    台湾正体tw2stw2t< tw2hk >-< tw2twi >< tw2jp >
    台湾正体 (惯)twi2s< twi2t >< twi2hk >< twi2tw >-<< twi2jp >>
    日本汉字< jp2s >jp2t< jp2hk >< jp2tw ><< jp2twi >>-
    +
    +

    注:

    +

    尖括号表示 AutoJs6 封装方法, 内部经 1 次转换.
    双尖括号表示 AutoJs6 封装方法, 内部经 2 次转换.

    +

    台湾正体存在惯用词.
    在转换时, 如涉及到台湾正体, 方法名称将以 "twi" 体现惯用词转换.
    如 twi2s 表示台湾正体转简体并应用惯用词转换.
    再如 hk2twi 表示香港繁体转台湾正体并应用惯用词转换.

    +
    +
    +

    opencc

    + +
    +

    [@] opencc#

    +

    opencc 可作为全局对象使用:

    +
    typeof opencc; // "function"
    +typeof opencc.convert; // "function"
    +
    +

    opencc(s, type)#

    +

    6.5.0

    + +

    将字符串转换为目标类型.

    +
    /* 简体. */
    +let s = '鼠标里面的硅二极管坏了, 导致光标分辨率降低';
    +
    +/* 繁體 (臺灣正體標準) [惯用词]. */
    +let t = '滑鼠裡面的矽二極體壞了, 導致游標解析度降低';
    +
    +/* s 转换为 t. */
    +console.log(opencc(s, 'S2TWI'));
    +
    +/* t 转换为 s. */
    +console.log(opencc(t, 'TWI2S'));
    +
    +

    opencc(s, type)opencc.convert(s, type) 等价.

    +

    [m] convert#

    +

    convert(s, type)#

    +

    6.5.0

    + +

    将字符串转换为目标类型.

    +

    opencc.convert(s, type)opencc(s, type) 等价.

    +

    [m] s2t#

    +

    s2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到繁体.

    +

    相当于 opencc(s, 'S2T');

    +
    let str = '心里为何充满喜悦';
    +console.log(opencc.s2t(str)); // 心裏爲何充滿喜悅
    +console.log(opencc(str, 'S2T')); /* 同上. */
    +
    +
    +

    注: s2t 的逆转换方法为 t2s.

    +
    +

    [m] s2hk#

    +

    s2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'S2HK');

    +
    let str = '心里为何充满喜悦';
    +console.log(opencc.s2hk(str)); // 心裏為何充滿喜悦
    +console.log(opencc(str, 'S2HK')); /* 同上. */
    +
    +
    +

    注: s2hk 的逆转换方法为 hk2s.

    +
    +

    [m] s2tw#

    +

    s2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到台湾正体.

    +

    相当于 opencc(s, 'S2TW');

    +
    let str = '心里为何充满喜悦';
    +console.log(opencc.s2tw(str)); // 心裡為何充滿喜悅
    +console.log(opencc(str, 'S2TW')); /* 同上. */
    +
    +
    +

    注: s2tw 的逆转换方法为 tw2s.

    +
    +

    [m] s2twi#

    +

    s2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到繁体 (台湾正体标准) [惯用词].

    +

    相当于 opencc(s, 'S2TWI');

    +
    let strA = '心里为何充满喜悦';
    +console.log(opencc.s2twi(strA)); // 心裡為何充滿喜悅
    +console.log(opencc(strA, 'S2TWI')); /* 同上. */
    +
    +let strB = '使用鼠标完成文件重命名操作';
    +console.log(opencc.s2twi(strB)); // 使用滑鼠完成檔案重新命名操作
    +console.log(opencc(strB, 'S2TWI')); /* 同上. */
    +
    +
    +

    注: s2twi 的逆转换方法为 twi2s.

    +
    +

    [m] s2jp#

    +

    s2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从简体到日本汉字.

    +

    相当于 opencc(s, 'S2JP').

    +
    let str = '黑/废/泪/稻/亚';
    +console.log(opencc.s2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'S2JP')); /* 同上. */
    +
    +
    +

    注: s2jp 的逆转换方法为 jp2s.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    s2t -> t2jp
    +
    +

    [m] t2s#

    +

    t2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到简体.

    +

    相当于 opencc(s, 'T2S');

    +
    let str = '心裏爲何充滿喜悅';
    +console.log(opencc.t2s(str)); // 心里为何充满喜悦
    +console.log(opencc(str, 'T2S')); /* 同上. */
    +
    +
    +

    注: t2s 的逆转换方法为 s2t.

    +
    +

    [m] t2hk#

    +

    t2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'T2HK');

    +
    let str = '心裏爲何充滿喜悅';
    +console.log(opencc.t2hk(str)); // 心裏為何充滿喜悦
    +console.log(opencc(str, 'T2HK')); /* 同上. */
    +
    +
    +

    注: t2hk 的逆转换方法为 hk2t.

    +
    +

    [m] t2tw#

    +

    t2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到台湾正体.

    +

    相当于 opencc(s, 'T2TW');

    +
    let str = '心裏爲何充滿喜悅';
    +console.log(opencc.t2tw(str)); // 心裡為何充滿喜悅
    +console.log(opencc(str, 'T2TW')); /* 同上. */
    +
    +
    +

    注: t2tw 的逆转换方法为 tw2t.

    +
    +

    [m] t2twi#

    +

    t2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到台湾正体 [惯用词].

    +

    相当于 opencc(s, 'T2TWI').

    +
    let strA = '心裏爲何充滿喜悅';
    +console.log(opencc.t2twi(strA)); // 心裡為何充滿喜悅
    +console.log(opencc(strA, 'T2TWI')); /* 同上. */
    +
    +let strB = '使用鼠標完成文件重命名操作';
    +console.log(opencc.t2twi(strB)); // 使用滑鼠完成檔案重新命名操作
    +console.log(opencc(strB, 'T2TWI')); /* 同上. */
    +
    +
    +

    注: t2twi 的逆转换方法为 twi2t.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    t2s -> s2twi
    +
    +

    [m] t2jp#

    +

    t2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体到日本汉字.

    +

    相当于 opencc(s, 'T2JP');

    +
    let str = '黑/廢/淚/稻/亞';
    +console.log(opencc.t2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'T2JP')); /* 同上. */
    +
    +
    +

    注: t2jp 的逆转换方法为 jp2t.

    +
    +

    [m] hk2s#

    +

    hk2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到简体.

    +

    相当于 opencc(s, 'HK2S');

    +
    let str = '心裏為何充滿喜悦';
    +console.log(opencc.hk2s(str)); // 心里为何充满喜悦
    +console.log(opencc(str, 'HK2S')); /* 同上. */
    +
    +
    +

    注: hk2s 的逆转换方法为 s2hk.

    +
    +

    [m] hk2t#

    +

    hk2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到繁体.

    +

    相当于 opencc(s, 'HK2T');

    +
    let str = '心裏為何充滿喜悦';
    +console.log(opencc.hk2t(str)); // 心裏爲何充滿喜悅
    +console.log(opencc(str, 'HK2T')); /* 同上. */
    +
    +
    +

    注: hk2t 的逆转换方法为 t2hk.

    +
    +

    [m] hk2tw#

    +

    hk2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到台湾正体.

    +

    相当于 opencc(s, 'HK2TW').

    +
    let str = '心裏為何充滿喜悦';
    +console.log(opencc.hk2tw(str)); // 心裡為何充滿喜悅
    +console.log(opencc(str, 'HK2TW')); /* 同上. */
    +
    +
    +

    注: hk2tw 的逆转换方法为 tw2hk.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    hk2t -> t2tw
    +
    +

    [m] hk2twi#

    +

    hk2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到台湾正体 [惯用词].

    +

    相当于 opencc(s, 'HK2TWI').

    +
    let strA = '心裏為何充滿喜悦';
    +console.log(opencc.hk2twi(strA)); // 心裡為何充滿喜悅
    +console.log(opencc(strA, 'HK2TWI')); /* 同上. */
    +
    +let strB = '使用鼠標完成文件重命名操作';
    +console.log(opencc.hk2twi(strB)); // 使用滑鼠完成檔案重新命名操作
    +console.log(opencc(strB, 'HK2TWI')); /* 同上. */
    +
    +
    +

    注: hk2twi 的逆转换方法为 twi2hk.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    hk2s -> s2twi
    +
    +

    [m] hk2jp#

    +

    hk2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从香港繁体 (香港小学学习字词表标准) 到日本汉字.

    +

    相当于 opencc(s, 'HK2JP').

    +
    let str = '黑/廢/淚/稻/亞';
    +console.log(opencc.hk2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'HK2JP')); /* 同上. */
    +
    +
    +

    注: hk2jp 的逆转换方法为 jp2hk.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    hk2t -> t2jp
    +
    +

    [m] tw2s#

    +

    tw2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到简体.

    +

    相当于 opencc(s, 'TW2S');

    +
    let str = '心裡為何充滿喜悅';
    +console.log(opencc.tw2s(str)); // 心里为何充满喜悦
    +console.log(opencc(str, 'TW2S')); /* 同上. */
    +
    +
    +

    注: tw2s 的逆转换方法为 s2tw.

    +
    +

    [m] tw2t#

    +

    tw2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到繁体.

    +

    相当于 opencc(s, 'TW2T');

    +
    let str = '心裡為何充滿喜悅';
    +console.log(opencc.tw2t(str)); // 心裏爲何充滿喜悅
    +console.log(opencc(str, 'TW2T')); /* 同上. */
    +
    +
    +

    注: tw2t 的逆转换方法为 t2tw.

    +
    +

    [m] tw2hk#

    +

    tw2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'TW2HK').

    +
    let str = '心裡為何充滿喜悅';
    +console.log(opencc.tw2hk(str)); // 心裏為何充滿喜悦
    +console.log(opencc(str, 'TW2HK')); /* 同上. */
    +
    +
    +

    注: tw2hk 的逆转换方法为 hk2tw.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    tw2t -> t2hk
    +
    +

    [m] tw2twi#

    +

    tw2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到台湾正体 [惯用词].

    +

    相当于 opencc(s, 'TW2TWI').

    +
    let str = '使用鼠標完成文件重命名操作';
    +console.log(opencc.tw2twi(str)); // 使用滑鼠完成檔案重新命名操作
    +console.log(opencc(str, 'TW2TWI')); /* 同上. */
    +
    +
    +

    注: tw2twi 的逆转换方法为 twi2tw.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    tw2s -> s2twi
    +
    +

    [m] tw2jp#

    +

    tw2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体到日本汉字.

    +

    相当于 opencc(s, 'TW2JP').

    +
    let str = '黑/廢/淚/稻/亞';
    +console.log(opencc.tw2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'TW2JP')); /* 同上. */
    +
    +
    +

    注: tw2jp 的逆转换方法为 jp2tw.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    tw2t -> t2jp
    +
    +

    [m] twi2s#

    +

    twi2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从繁体 (台湾正体标准) [惯用词] 到简体.

    +

    相当于 opencc(s, 'TWI2S');

    +
    let strA = '心裡為何充滿喜悅';
    +console.log(opencc.twi2s(strA)); // 心里为何充满喜悦
    +console.log(opencc(strA, 'TWI2S')); /* 同上. */
    +
    +let strB = '使用滑鼠完成檔案重新命名操作';
    +console.log(opencc.twi2s(strB)); // 使用鼠标完成文件重命名操作
    +console.log(opencc(strB, 'TWI2S')); /* 同上. */
    +
    +
    +

    注: twi2s 的逆转换方法为 s2twi.

    +
    +

    [m] twi2t#

    +

    twi2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体 [惯用词] 到繁体.

    +

    相当于 opencc(s, 'TWI2T').

    +
    let strA = '心裡為何充滿喜悅';
    +console.log(opencc.twi2t(strA)); // 心裏爲何充滿喜悅
    +console.log(opencc(strA, 'TWI2T')); /* 同上. */
    +
    +let strB = '使用滑鼠完成檔案重新命名操作';
    +console.log(opencc.twi2t(strB)); // 使用鼠標完成文件重命名操作
    +console.log(opencc(strB, 'TWI2T')); /* 同上. */
    +
    +
    +

    注: twi2t 的逆转换方法为 t2twi.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    twi2s -> s2t
    +
    +

    [m] twi2hk#

    +

    twi2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体 [惯用词] 到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'TWI2HK').

    +
    let strA = '心裡為何充滿喜悅';
    +console.log(opencc.twi2hk(strA)); // 心裏為何充滿喜悦
    +console.log(opencc(strA, 'TWI2HK')); /* 同上. */
    +
    +let strB = '使用滑鼠完成檔案重新命名操作';
    +console.log(opencc.twi2hk(strB)); // 使用鼠標完成文件重命名操作
    +console.log(opencc(strB, 'TWI2HK')); /* 同上. */
    +
    +
    +

    注: twi2hk 的逆转换方法为 hk2twi.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    twi2s -> s2hk
    +
    +

    [m] twi2tw#

    +

    twi2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体 [惯用词] 到台湾正体.

    +

    相当于 opencc(s, 'TWI2TW').

    +
    let str = '使用滑鼠完成檔案重新命名操作';
    +console.log(opencc.twi2tw(str)); // 使用鼠標完成文件重命名操作
    +console.log(opencc(str, 'TWI2TW')); /* 同上. */
    +
    +
    +

    注: twi2tw 的逆转换方法为 tw2twi.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    twi2s -> s2tw
    +
    +

    [m] twi2jp#

    +

    twi2jp(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从台湾正体 [惯用词] 到日本汉字.

    +

    相当于 opencc(s, 'TWI2JP').

    +
    let str = '黑/廢/淚/稻/亞';
    +console.log(opencc.twi2jp(str)); // 黒/廃/涙/稲/亜
    +console.log(opencc(str, 'TWI2JP')); /* 同上. */
    +
    +
    +

    注: twi2jp 的逆转换方法为 jp2twi.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    twi2s -> s2t -> t2jp
    +
    +

    [m] jp2s#

    +

    jp2s(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到简体.

    +

    相当于 opencc(s, 'JP2S').

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2s(str)); // 黑/废/泪/稻/亚
    +console.log(opencc(str, 'JP2S')); /* 同上. */
    +
    +
    +

    注: jp2s 的逆转换方法为 s2jp.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    jp2t -> t2s
    +
    +

    [m] jp2t#

    +

    jp2t(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到繁体.

    +

    相当于 opencc(s, 'JP2T');

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2t(str)); // 黑/廢/淚/稻/亞
    +console.log(opencc(str, 'JP2T')); /* 同上. */
    +
    +
    +

    注: jp2t 的逆转换方法为 2tjp.

    +
    +

    [m] jp2hk#

    +

    jp2hk(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到香港繁体 (香港小学学习字词表标准).

    +

    相当于 opencc(s, 'JP2HK').

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2hk(str)); // 黑/廢/淚/稻/亞
    +console.log(opencc(str, 'JP2HK')); /* 同上. */
    +
    +
    +

    注: jp2hk 的逆转换方法为 hk2jp.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    jp2t -> t2hk
    +
    +

    [m] jp2tw#

    +

    jp2tw(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到台湾正体.

    +

    相当于 opencc(s, 'JP2TW').

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2tw(str)); // 黑/廢/淚/稻/亞
    +console.log(opencc(str, 'JP2TW')); /* 同上. */
    +
    +
    +

    注: jp2tw 的逆转换方法为 tw2jp.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    jp2t -> t2tw
    +
    +

    [m] jp2twi#

    +

    jp2twi(s)#

    +

    6.5.0

    +
      +
    • s { string } - 待转换字符串
    • +
    • returns { string } - 转换结果
    • +
    +

    字符串转换, 从日本汉字到台湾正体 [惯用词].

    +

    相当于 opencc(s, 'JP2TWI').

    +
    let str = '黒/廃/涙/稲/亜';
    +console.log(opencc.jp2twi(str)); // 黑/廢/淚/稻/亞
    +console.log(opencc(str, 'JP2TWI')); /* 同上. */
    +
    +
    +

    注: jp2twi 的逆转换方法为 twi2jp.

    +
    +

    此方法为 AutoJs6 封装方法, 内部进行如下转换:

    +
    jp2t -> t2s -> s2twi
    +
    + +
    +
    +
    + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/docs/opencvPointType.html b/app/src/main/assets-app/docs/opencvPointType.html similarity index 97% rename from app/src/main/assets/docs/opencvPointType.html rename to app/src/main/assets-app/docs/opencvPointType.html index 6b0e55356..c2f3f98ff 100644 --- a/app/src/main/assets/docs/opencvPointType.html +++ b/app/src/main/assets-app/docs/opencvPointType.html @@ -2,7 +2,7 @@ - OpencvPoint | AutoJs6 文档 - 6.4.2 + OpenCVPoint | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -173,7 +175,7 @@

    AutoJs6 文档 - 6.4.2

    目录

    -

    OpencvPoint#

    +

    OpenCVPoint#

    org.opencv.core.Point 别名.

    Point 表示一个点, 作为控件信息时则表示点在屏幕的相对位置.

    let point = pickup(/.+/, '.');
    diff --git a/app/src/main/assets/docs/opencvRectType.html b/app/src/main/assets-app/docs/opencvRectType.html
    similarity index 95%
    rename from app/src/main/assets/docs/opencvRectType.html
    rename to app/src/main/assets-app/docs/opencvRectType.html
    index 0260c2f5d..594a1d1aa 100644
    --- a/app/src/main/assets/docs/opencvRectType.html
    +++ b/app/src/main/assets-app/docs/opencvRectType.html
    @@ -2,7 +2,7 @@
     
     
         
    -    OpencvRect | AutoJs6 文档 - 6.4.2
    +    OpenCVRect | AutoJs6 文档 - 6.5.0
         
         
         
    @@ -72,6 +72,7 @@
     
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -173,7 +175,7 @@

    AutoJs6 文档 - 6.4.2

    目录

    -

    OpencvRect#

    +

    OpenCVRect#

    org.opencv.core.Rect 别名.

    -

    AndroidRect 类似, OpencvRect 也可表示一个矩形, 通常用于图像的区域表示.

    -

    在 AutoJs6 中, 通常不会用到 OpencvRect, 更常见的是使用 number[] 表示图像区域:

    -
    /* 使用 OpencvRect 表示区域. */
    +

    AndroidRect 类似, OpenCVRect 也可表示一个矩形, 通常用于图像的区域表示.

    +

    在 AutoJs6 中, 通常不会用到 OpenCVRect, 更常见的是使用 number[] 表示图像区域:

    +
    /* 使用 OpenCVRect 表示区域. */
     let regionA = new org.opencv.core.Rect(1, 2, 3, 4); /* 左, 上, 宽, 高. */
     
    -/* 使用 OpencvRect 表示区域. */
    +/* 使用 OpenCVRect 表示区域. */
     let regionB = new android.graphics.Rect(1, 2, 4, 6); /* 左, 上, 右, 下. */
     
     /* 使用 number[] 表示区域. */
    diff --git a/app/src/main/assets/docs/opencvSizeType.html b/app/src/main/assets-app/docs/opencvSizeType.html
    similarity index 96%
    rename from app/src/main/assets/docs/opencvSizeType.html
    rename to app/src/main/assets-app/docs/opencvSizeType.html
    index 26ec81d31..376defcf1 100644
    --- a/app/src/main/assets/docs/opencvSizeType.html
    +++ b/app/src/main/assets-app/docs/opencvSizeType.html
    @@ -2,7 +2,7 @@
     
     
         
    -    OpencvSize | AutoJs6 文档 - 6.4.2
    +    OpenCVSize | AutoJs6 文档 - 6.5.0
         
         
         
    @@ -72,6 +72,7 @@
     
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -173,7 +175,7 @@

    AutoJs6 文档 - 6.4.2

    -

    OpencvSize#

    +

    OpenCVSize#

    org.opencv.core.Size 别名.

    Size 表示一个长宽尺寸, 作为控件信息时则表示控件矩形在屏幕的控件占用尺寸.

    let size = pickup(/.+/, 'size');
    @@ -233,7 +235,7 @@ 

    [c] ()#

    [c] (point)#

    生成一个尺寸对象, 并按参数初始化宽高尺寸.

    diff --git a/app/src/main/assets/docs/overview.html b/app/src/main/assets-app/docs/overview.html similarity index 97% rename from app/src/main/assets/docs/overview.html rename to app/src/main/assets-app/docs/overview.html index ea0013307..faace9d52 100644 --- a/app/src/main/assets/docs/overview.html +++ b/app/src/main/assets-app/docs/overview.html @@ -2,7 +2,7 @@ - 综述 (Overview) | AutoJs6 文档 - 6.4.2 + 综述 (Overview) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/plugins.html b/app/src/main/assets-app/docs/plugins.html similarity index 98% rename from app/src/main/assets/docs/plugins.html rename to app/src/main/assets-app/docs/plugins.html index 6d135d128..8b0d4ee7d 100644 --- a/app/src/main/assets/docs/plugins.html +++ b/app/src/main/assets-app/docs/plugins.html @@ -2,7 +2,7 @@ - 插件 (Plugins) | AutoJs6 文档 - 6.4.2 + 插件 (Plugins) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/plugins/docsify-copy-code@2-styles.css b/app/src/main/assets-app/docs/plugins/docsify-copy-code@2-styles.css similarity index 100% rename from app/src/main/assets/docs/plugins/docsify-copy-code@2-styles.css rename to app/src/main/assets-app/docs/plugins/docsify-copy-code@2-styles.css diff --git a/app/src/main/assets/docs/plugins/docsify-copy-code@2.js b/app/src/main/assets-app/docs/plugins/docsify-copy-code@2.js similarity index 100% rename from app/src/main/assets/docs/plugins/docsify-copy-code@2.js rename to app/src/main/assets-app/docs/plugins/docsify-copy-code@2.js diff --git a/app/src/main/assets/docs/plugins/zoom-image-styles.css b/app/src/main/assets-app/docs/plugins/zoom-image-styles.css similarity index 100% rename from app/src/main/assets/docs/plugins/zoom-image-styles.css rename to app/src/main/assets-app/docs/plugins/zoom-image-styles.css diff --git a/app/src/main/assets/docs/plugins/zoom-image.js b/app/src/main/assets-app/docs/plugins/zoom-image.js similarity index 100% rename from app/src/main/assets/docs/plugins/zoom-image.js rename to app/src/main/assets-app/docs/plugins/zoom-image.js diff --git a/app/src/main/assets/docs/polyfill.html b/app/src/main/assets-app/docs/polyfill.html similarity index 97% rename from app/src/main/assets/docs/polyfill.html rename to app/src/main/assets-app/docs/polyfill.html index 65bdceee1..d00560993 100644 --- a/app/src/main/assets/docs/polyfill.html +++ b/app/src/main/assets-app/docs/polyfill.html @@ -2,7 +2,7 @@ - 代码填泥 (Polyfill) | AutoJs6 文档 - 6.4.2 + 代码填泥 (Polyfill) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/progress.html b/app/src/main/assets-app/docs/progress.html similarity index 97% rename from app/src/main/assets/docs/progress.html rename to app/src/main/assets-app/docs/progress.html index d2cf59cf9..7421027f6 100644 --- a/app/src/main/assets/docs/progress.html +++ b/app/src/main/assets-app/docs/progress.html @@ -2,7 +2,7 @@ - 文档部署进度 (Progress) | AutoJs6 文档 - 6.4.2 + 文档部署进度 (Progress) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -347,6 +349,10 @@

    文档部署进度 (Progress)√ +OpenCC - 中文转换 +√ + + Internationalization - 国际化 diff --git a/app/src/main/assets/docs/qa.html b/app/src/main/assets-app/docs/qa.html similarity index 98% rename from app/src/main/assets/docs/qa.html rename to app/src/main/assets-app/docs/qa.html index 44ed91b64..7a6fde0dd 100644 --- a/app/src/main/assets/docs/qa.html +++ b/app/src/main/assets-app/docs/qa.html @@ -2,7 +2,7 @@ - 疑难解答 (Q & A) | AutoJs6 文档 - 6.4.2 + 疑难解答 (Q & A) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/qrcode.html b/app/src/main/assets-app/docs/qrcode.html similarity index 97% rename from app/src/main/assets/docs/qrcode.html rename to app/src/main/assets-app/docs/qrcode.html index c21983032..40ba2520e 100644 --- a/app/src/main/assets/docs/qrcode.html +++ b/app/src/main/assets-app/docs/qrcode.html @@ -2,7 +2,7 @@ - 二维码 (QR Code) | AutoJs6 文档 - 6.4.2 + 二维码 (QR Code) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/recorder.html b/app/src/main/assets-app/docs/recorder.html similarity index 97% rename from app/src/main/assets/docs/recorder.html rename to app/src/main/assets-app/docs/recorder.html index bf9cb9bad..83c0953e3 100644 --- a/app/src/main/assets/docs/recorder.html +++ b/app/src/main/assets-app/docs/recorder.html @@ -2,7 +2,7 @@ - 记录器 (Recorder) | AutoJs6 文档 - 6.4.2 + 记录器 (Recorder) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/runtime.html b/app/src/main/assets-app/docs/runtime.html similarity index 97% rename from app/src/main/assets/docs/runtime.html rename to app/src/main/assets-app/docs/runtime.html index dfa3d4a3b..fae32eb14 100644 --- a/app/src/main/assets/docs/runtime.html +++ b/app/src/main/assets-app/docs/runtime.html @@ -2,7 +2,7 @@ - 运行时 (Runtime) | AutoJs6 文档 - 6.4.2 + 运行时 (Runtime) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/s13n.html b/app/src/main/assets-app/docs/s13n.html similarity index 97% rename from app/src/main/assets/docs/s13n.html rename to app/src/main/assets-app/docs/s13n.html index d7de2599c..e05aa5501 100644 --- a/app/src/main/assets/docs/s13n.html +++ b/app/src/main/assets-app/docs/s13n.html @@ -2,7 +2,7 @@ - 标准化 (Standardization) | AutoJs6 文档 - 6.4.2 + 标准化 (Standardization) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/scriptingJava.html b/app/src/main/assets-app/docs/scriptingJava.html similarity index 98% rename from app/src/main/assets/docs/scriptingJava.html rename to app/src/main/assets-app/docs/scriptingJava.html index 93deab3de..0e2e51d5c 100644 --- a/app/src/main/assets/docs/scriptingJava.html +++ b/app/src/main/assets-app/docs/scriptingJava.html @@ -2,7 +2,7 @@ - 脚本化 Java | AutoJs6 文档 - 6.4.2 + 脚本化 Java | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/sensors.html b/app/src/main/assets-app/docs/sensors.html similarity index 98% rename from app/src/main/assets/docs/sensors.html rename to app/src/main/assets-app/docs/sensors.html index 7781eff6e..439b48556 100644 --- a/app/src/main/assets/docs/sensors.html +++ b/app/src/main/assets-app/docs/sensors.html @@ -2,7 +2,7 @@ - 传感器 (Sensors) | AutoJs6 文档 - 6.4.2 + 传感器 (Sensors) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/shell.html b/app/src/main/assets-app/docs/shell.html similarity index 99% rename from app/src/main/assets/docs/shell.html rename to app/src/main/assets-app/docs/shell.html index 80e7d1537..9b9f23303 100644 --- a/app/src/main/assets/docs/shell.html +++ b/app/src/main/assets-app/docs/shell.html @@ -2,7 +2,7 @@ - Shell | AutoJs6 文档 - 6.4.2 + Shell | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/shizuku.html b/app/src/main/assets-app/docs/shizuku.html similarity index 94% rename from app/src/main/assets/docs/shizuku.html rename to app/src/main/assets-app/docs/shizuku.html index 0cfe0e2b8..9b3137a3b 100644 --- a/app/src/main/assets/docs/shizuku.html +++ b/app/src/main/assets-app/docs/shizuku.html @@ -2,7 +2,7 @@ - Shizuku | AutoJs6 文档 - 6.4.2 + Shizuku | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -176,6 +178,7 @@

    目录

  • Shizuku @@ -231,9 +234,13 @@

    shizuku(cmd)#

    6.4.0 Overload 2/2

    @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -228,6 +230,7 @@

    目录

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X

    @@ -305,9 +308,10 @@

    目录

    Okhttp3HttpUrl OcrOptions Okhttp3Request - OpencvPoint - OpencvRect -* OpencvSize + OpenCVPoint + OpenCVRect + OpenCVSize + OpenCCConversion diff --git a/app/src/main/assets/docs/storageType.html b/app/src/main/assets-app/docs/storageType.html similarity index 98% rename from app/src/main/assets/docs/storageType.html rename to app/src/main/assets-app/docs/storageType.html index d7deffb7d..f818172fd 100644 --- a/app/src/main/assets/docs/storageType.html +++ b/app/src/main/assets-app/docs/storageType.html @@ -2,7 +2,7 @@ - Storage (存储类) | AutoJs6 文档 - 6.4.2 + Storage (存储类) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/storages.html b/app/src/main/assets-app/docs/storages.html similarity index 97% rename from app/src/main/assets/docs/storages.html rename to app/src/main/assets-app/docs/storages.html index 07b56a175..f9d6d3695 100644 --- a/app/src/main/assets/docs/storages.html +++ b/app/src/main/assets-app/docs/storages.html @@ -2,7 +2,7 @@ - 存储 (Storages) | AutoJs6 文档 - 6.4.2 + 存储 (Storages) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/tasks.html b/app/src/main/assets-app/docs/tasks.html similarity index 97% rename from app/src/main/assets/docs/tasks.html rename to app/src/main/assets-app/docs/tasks.html index b9c997a60..80cf32965 100644 --- a/app/src/main/assets/docs/tasks.html +++ b/app/src/main/assets-app/docs/tasks.html @@ -2,7 +2,7 @@ - 任务 (Tasks) | AutoJs6 文档 - 6.4.2 + 任务 (Tasks) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/threads.html b/app/src/main/assets-app/docs/threads.html similarity index 98% rename from app/src/main/assets/docs/threads.html rename to app/src/main/assets-app/docs/threads.html index b8eaf6077..bacbd32b9 100644 --- a/app/src/main/assets/docs/threads.html +++ b/app/src/main/assets-app/docs/threads.html @@ -2,7 +2,7 @@ - 线程 (Threads) | AutoJs6 文档 - 6.4.2 + 线程 (Threads) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/timers.html b/app/src/main/assets-app/docs/timers.html similarity index 98% rename from app/src/main/assets/docs/timers.html rename to app/src/main/assets-app/docs/timers.html index d6fedb62b..35007360f 100644 --- a/app/src/main/assets/docs/timers.html +++ b/app/src/main/assets-app/docs/timers.html @@ -2,7 +2,7 @@ - 定时器 (Timers) | AutoJs6 文档 - 6.4.2 + 定时器 (Timers) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/toast.html b/app/src/main/assets-app/docs/toast.html similarity index 98% rename from app/src/main/assets/docs/toast.html rename to app/src/main/assets-app/docs/toast.html index d00916120..08e83fb61 100644 --- a/app/src/main/assets/docs/toast.html +++ b/app/src/main/assets-app/docs/toast.html @@ -2,7 +2,7 @@ - 消息浮动框 (Toast) | AutoJs6 文档 - 6.4.2 + 消息浮动框 (Toast) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/ui.html b/app/src/main/assets-app/docs/ui.html similarity index 99% rename from app/src/main/assets/docs/ui.html rename to app/src/main/assets-app/docs/ui.html index 12eef0a6d..b1c4c815f 100644 --- a/app/src/main/assets/docs/ui.html +++ b/app/src/main/assets-app/docs/ui.html @@ -2,7 +2,7 @@ - 用户界面 (UI) | AutoJs6 文档 - 6.4.2 + 用户界面 (UI) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/uiObjectActionsType.html b/app/src/main/assets-app/docs/uiObjectActionsType.html similarity index 99% rename from app/src/main/assets/docs/uiObjectActionsType.html rename to app/src/main/assets-app/docs/uiObjectActionsType.html index 9043276b8..52d066d8c 100644 --- a/app/src/main/assets/docs/uiObjectActionsType.html +++ b/app/src/main/assets-app/docs/uiObjectActionsType.html @@ -2,7 +2,7 @@ - 控件节点行为 (UiObjectActions) | AutoJs6 文档 - 6.4.2 + 控件节点行为 (UiObjectActions) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/uiObjectCollectionType.html b/app/src/main/assets-app/docs/uiObjectCollectionType.html similarity index 99% rename from app/src/main/assets/docs/uiObjectCollectionType.html rename to app/src/main/assets-app/docs/uiObjectCollectionType.html index 1ff7c2499..080a8e32f 100644 --- a/app/src/main/assets/docs/uiObjectCollectionType.html +++ b/app/src/main/assets-app/docs/uiObjectCollectionType.html @@ -2,7 +2,7 @@ - 控件集合 (UiObjectCollection) | AutoJs6 文档 - 6.4.2 + 控件集合 (UiObjectCollection) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/uiObjectType.html b/app/src/main/assets-app/docs/uiObjectType.html similarity index 99% rename from app/src/main/assets/docs/uiObjectType.html rename to app/src/main/assets-app/docs/uiObjectType.html index a3581937e..86ad42e24 100644 --- a/app/src/main/assets/docs/uiObjectType.html +++ b/app/src/main/assets-app/docs/uiObjectType.html @@ -2,7 +2,7 @@ - 控件节点 (UiObject) | AutoJs6 文档 - 6.4.2 + 控件节点 (UiObject) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -1296,7 +1298,7 @@

    [m#] point#

    6.2.0 A11Y

    返回控件矩形的中心点 (Point).

    该中心点坐标由 exactCenterXexactCenterY 计算获得, 因此会保留精度.

    @@ -1315,7 +1317,7 @@

    [m#] center#

    6.4.2 A11Y

    返回控件矩形的中心点 (Point).

    该中心点坐标由 exactCenterXexactCenterY 计算获得, 因此会保留精度.

    @@ -1334,7 +1336,7 @@

    [m#] size#

    6.2.0 A11Y

    返回控件矩形的尺寸 (Size).

    let w = pickup(/.+/);
    diff --git a/app/src/main/assets/docs/uiSelectorType.html b/app/src/main/assets-app/docs/uiSelectorType.html
    similarity index 98%
    rename from app/src/main/assets/docs/uiSelectorType.html
    rename to app/src/main/assets-app/docs/uiSelectorType.html
    index 2a80d9f77..284cc66cc 100644
    --- a/app/src/main/assets/docs/uiSelectorType.html
    +++ b/app/src/main/assets-app/docs/uiSelectorType.html
    @@ -2,7 +2,7 @@
     
     
         
    -    选择器 (UiSelector) | AutoJs6 文档 - 6.4.2
    +    选择器 (UiSelector) | AutoJs6 文档 - 6.5.0
         
         
         
    @@ -72,6 +72,7 @@
     
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | @@ -906,6 +908,14 @@

    目录

  • setProgress(progress)
  • +
  • [m#] plus +
  • +
  • [m#] append +
  • [m] pickup
  • +
  • 链式特性
  • @@ -963,7 +974,7 @@

    选择器 (UiSelector)链式调用 构建出用于多条件筛选的选择器:

    text("立即开始").minHeight(0.2).clickable(true);
     
    -

    上述示例是一个多条件选择器, 要求控件同时满足三个条件: 文本为 "立即开始", 控件高度值不低于屏幕高度的 20%, 控件可点击.

    +

    上述示例是一个多条件选择器, 要求控件同时满足三个条件: 文本为 "立即开始", 控件高度值不低于屏幕高度的 20%, 控件可点击. 详情参阅本章 链式特性 小节.

    在当前章节, 绝大多数方法的返回值类型标均注为 "UiSelector", 它们属于可链式调用的 "选择器构建方法", 其他方法统称为 "动作", 可归纳为 "状态方法" (查看状态的动作), "查找方法" (查找控件的动作), "行为方法" (执行控件行为的动作).

    选择器构建方法:

      @@ -4993,6 +5004,48 @@

      setProgress(progress)untilFind 筛选得到控件集合, 对集合执行 [ 设置进度值 ] 行为.

      选择器行为 存在潜在的永久阻塞风险且全局行为缺少针对性, 因此此方法不建议使用.

      +

      [m#] plus#

      +

      plus(selector)#

      +

      6.5.0

      +
        +
      • selector { UiSelector } - 待拼接的选择器
      • +
      • returns { UiSelector } - 拼接后的新选择器
      • +
      +

      选择器拼接, 不改变原选择器.

      +
      let selA = text('A').minTop(0.5);
      +let selB = desc('B').maxHeight(0.5);
      +let selPlused = selA.plus(selB);
      +console.log(selPlused); // text("A").minTop(0.5).desc("B").maxHeight(0.5)
      +console.log(selA); // text("A").minTop(0.5)
      +
      +

      上述示例可见, plus 方法不改变 selA 的值.

      +
      +

      参阅: append 方法小节.

      +
      +

      [m#] append#

      +

      append(selector)#

      +

      6.5.0

      +
        +
      • selector { UiSelector } - 待拼接的选择器
      • +
      • returns { UiSelector } - 拼接后的新选择器
      • +
      +

      选择器拼接, 且改变原选择器. 是一种 可变方法 (mutable method).

      +
      let selA = text('A').minTop(0.5);
      +let selB = desc('B').maxHeight(0.5);
      +let selPlused = selA.append(selB);
      +console.log(selPlused); // text("A").minTop(0.5).desc("B").maxHeight(0.5)
      +console.log(selA); // text("A").minTop(0.5).desc("B").maxHeight(0.5)
      +
      +

      上述示例可见, append 方法会改变 selA 的值.

      +

      因此上述示例等价于下述示例:

      +
      let selA = text('A').minTop(0.5);
      +let selB = desc('B').maxHeight(0.5);
      +selA.append(selB);
      +console.log(selA); // text("A").minTop(0.5).desc("B").maxHeight(0.5)
      +
      +
      +

      参阅: plus 方法小节.

      +

      [m] pickup#

      拾取选择器, 简称拾取器, 是高度封装的混合形式选择器, 用于在筛选控件及处理结果过程中实现快捷操作.
      支持 [ 选择器多形式混合 / 控件罗盘 / 结果筛选 / 参化调用 ] 等.

      部分特性:

      @@ -5452,6 +5505,32 @@

      字符串类型#

      +

      链式调用可以构建出多条件筛选的选择器:

      +
      let sel = text("立即开始").minHeight(0.2).clickable(true);
      +let w = sel.findOnce();
      +if (w !== null) { /* ... */ }
      +
      +

      但需特别留意, 上述示例 sel 变量是 可变的 (mutable):

      +
      let sel = text("立即开始").minHeight(0.2).clickable(true);
      +
      +let wA = sel.findOnce();
      +if (wA != null) { /* ... */}
      +console.log(sel); // text("立即开始").minHeight(0.2).clickable(true)
      +
      +let wB = sel.descMatch(/\w+/).findOnce();
      +if (wB != null) { /* ... */}
      +console.log(sel); // text("立即开始").minHeight(0.2).clickable(true).descMatch(/\w+/)
      +
      +let wC = sel.findOnce();
      +if (wC != null) { /* ... */}
      +console.log(sel); // text("立即开始").minHeight(0.2).clickable(true).descMatch(/\w+/)
      +
      +

      上述示例中, wB 变量赋值时, sel.descMatch(/\w+/) 使得 sel 发生改变.

      +

      此时的 sel 相当于是 text("立即开始").minHeight(0.2).clickable(true).sel.descMatch(/\w+/).

      +

      因此 wCwA 虽然使用了同样赋值语句, 但它们的 sel 并不相同.

      +

      将语句 let wB = sel.descMatch(/\w+/).findOnce()
      修改为 let wB = sel.plus(descMatch(/\w+/)).findOnce()
      即可保持 sel 变量不变.

      +

      关于选择器的拼接, 可参阅 plusappend 方法小节.

    diff --git a/app/src/main/assets/docs/util.html b/app/src/main/assets-app/docs/util.html similarity index 99% rename from app/src/main/assets/docs/util.html rename to app/src/main/assets-app/docs/util.html index 5c669a591..fe1253463 100644 --- a/app/src/main/assets/docs/util.html +++ b/app/src/main/assets-app/docs/util.html @@ -2,7 +2,7 @@ - Util | AutoJs6 文档 - 6.4.2 + Util | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@
  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/versionType.html b/app/src/main/assets-app/docs/versionType.html similarity index 98% rename from app/src/main/assets/docs/versionType.html rename to app/src/main/assets-app/docs/versionType.html index e5e68fd16..667325d63 100644 --- a/app/src/main/assets/docs/versionType.html +++ b/app/src/main/assets-app/docs/versionType.html @@ -2,7 +2,7 @@ - 版本工具类 (Version) | AutoJs6 文档 - 6.4.2 + 版本工具类 (Version) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/web.html b/app/src/main/assets-app/docs/web.html similarity index 98% rename from app/src/main/assets/docs/web.html rename to app/src/main/assets-app/docs/web.html index 7c9c6c1a3..21d24d520 100644 --- a/app/src/main/assets/docs/web.html +++ b/app/src/main/assets-app/docs/web.html @@ -2,7 +2,7 @@ - 万维网 (Web) | AutoJs6 文档 - 6.4.2 + 万维网 (Web) | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/docs/webSocketType.html b/app/src/main/assets-app/docs/webSocketType.html similarity index 99% rename from app/src/main/assets/docs/webSocketType.html rename to app/src/main/assets-app/docs/webSocketType.html index f81f5d2ed..31740019f 100644 --- a/app/src/main/assets/docs/webSocketType.html +++ b/app/src/main/assets-app/docs/webSocketType.html @@ -2,7 +2,7 @@ - WebSocket | AutoJs6 文档 - 6.4.2 + WebSocket | AutoJs6 文档 - 6.5.0 @@ -72,6 +72,7 @@

  • HTTP
  • Base64
  • Crypto - 密文
  • +
  • OpenCC - 中文转换
  • Internationalization - 国际化
  • Standardization - 标准化
  • E4X
  • @@ -145,9 +146,10 @@
  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -160,7 +162,7 @@
    -

    AutoJs6 文档 - 6.4.2

    +

    AutoJs6 文档 - 6.5.0

    索引 | diff --git a/app/src/main/assets/editor/theme/dark_plus.json b/app/src/main/assets-app/editor/theme/dark_plus.json similarity index 100% rename from app/src/main/assets/editor/theme/dark_plus.json rename to app/src/main/assets-app/editor/theme/dark_plus.json diff --git a/app/src/main/assets/editor/theme/light_plus.json b/app/src/main/assets-app/editor/theme/light_plus.json similarity index 100% rename from app/src/main/assets/editor/theme/light_plus.json rename to app/src/main/assets-app/editor/theme/light_plus.json diff --git a/app/src/main/assets/indices/all.json b/app/src/main/assets-app/indices/all.json similarity index 100% rename from app/src/main/assets/indices/all.json rename to app/src/main/assets-app/indices/all.json diff --git a/app/src/main/assets/indices/all_android_classes.json b/app/src/main/assets-app/indices/all_android_classes.json similarity index 100% rename from app/src/main/assets/indices/all_android_classes.json rename to app/src/main/assets-app/indices/all_android_classes.json diff --git a/app/src/main/assets/indices/glossary.json b/app/src/main/assets-app/indices/glossary.json similarity index 100% rename from app/src/main/assets/indices/glossary.json rename to app/src/main/assets-app/indices/glossary.json diff --git a/app/src/main/assets/indices/xml-nodes.json b/app/src/main/assets-app/indices/xml-nodes.json similarity index 100% rename from app/src/main/assets/indices/xml-nodes.json rename to app/src/main/assets-app/indices/xml-nodes.json diff --git a/app/src/main/assets/js-beautify/beautify.js b/app/src/main/assets-app/js-beautify/beautify.js similarity index 100% rename from app/src/main/assets/js-beautify/beautify.js rename to app/src/main/assets-app/js-beautify/beautify.js diff --git a/app/src/main/assets/js-beautify/xml_formatter.js b/app/src/main/assets-app/js-beautify/xml_formatter.js similarity index 100% rename from app/src/main/assets/js-beautify/xml_formatter.js rename to app/src/main/assets-app/js-beautify/xml_formatter.js diff --git "a/app/src/main/assets/sample/AutoJs6/\345\237\272\346\234\254\344\277\241\346\201\257 [v6.1.0+].js" "b/app/src/main/assets-app/sample/AutoJs6/\345\237\272\346\234\254\344\277\241\346\201\257 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/AutoJs6/\345\237\272\346\234\254\344\277\241\346\201\257 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/AutoJs6/\345\237\272\346\234\254\344\277\241\346\201\257 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/AutoJs6/\345\274\272\345\210\266 Root \346\243\200\346\237\245 [v6.1.0+].js" "b/app/src/main/assets-app/sample/AutoJs6/\345\274\272\345\210\266 Root \346\243\200\346\237\245 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/AutoJs6/\345\274\272\345\210\266 Root \346\243\200\346\237\245 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/AutoJs6/\345\274\272\345\210\266 Root \346\243\200\346\237\245 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\212\344\274\240.js" "b/app/src/main/assets-app/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\212\344\274\240.js" similarity index 100% rename from "app/src/main/assets/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\212\344\274\240.js" rename to "app/src/main/assets-app/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\212\344\274\240.js" diff --git "a/app/src/main/assets/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\213\350\275\275.js" "b/app/src/main/assets-app/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\213\350\275\275.js" similarity index 100% rename from "app/src/main/assets/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\213\350\275\275.js" rename to "app/src/main/assets-app/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\346\226\207\344\273\266\344\270\213\350\275\275.js" diff --git "a/app/src/main/assets/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\350\216\267\345\217\226\347\275\221\351\241\265.js" "b/app/src/main/assets-app/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\350\216\267\345\217\226\347\275\221\351\241\265.js" similarity index 100% rename from "app/src/main/assets/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\350\216\267\345\217\226\347\275\221\351\241\265.js" rename to "app/src/main/assets-app/sample/HTTP\347\275\221\347\273\234\350\257\267\346\261\202/\350\216\267\345\217\226\347\275\221\351\241\265.js" diff --git a/app/src/main/assets/sample/Java API/liveConnect.js b/app/src/main/assets-app/sample/Java API/liveConnect.js similarity index 100% rename from app/src/main/assets/sample/Java API/liveConnect.js rename to app/src/main/assets-app/sample/Java API/liveConnect.js diff --git a/app/src/main/assets/sample/JavaScript/E4X.js b/app/src/main/assets-app/sample/JavaScript/E4X.js similarity index 100% rename from app/src/main/assets/sample/JavaScript/E4X.js rename to app/src/main/assets-app/sample/JavaScript/E4X.js diff --git a/app/src/main/assets/sample/JavaScript/HelloWorld.js b/app/src/main/assets-app/sample/JavaScript/HelloWorld.js similarity index 100% rename from app/src/main/assets/sample/JavaScript/HelloWorld.js rename to app/src/main/assets-app/sample/JavaScript/HelloWorld.js diff --git "a/app/src/main/assets/sample/JavaScript/\346\225\260\345\255\227.js" "b/app/src/main/assets-app/sample/JavaScript/\346\225\260\345\255\227.js" similarity index 100% rename from "app/src/main/assets/sample/JavaScript/\346\225\260\345\255\227.js" rename to "app/src/main/assets-app/sample/JavaScript/\346\225\260\345\255\227.js" diff --git "a/app/src/main/assets/sample/OCR/PaddleOCR (\345\206\205\347\275\256API).js" "b/app/src/main/assets-app/sample/OCR/PaddleOCR (\345\206\205\347\275\256API).js" similarity index 100% rename from "app/src/main/assets/sample/OCR/PaddleOCR (\345\206\205\347\275\256API).js" rename to "app/src/main/assets-app/sample/OCR/PaddleOCR (\345\206\205\347\275\256API).js" diff --git "a/app/src/main/assets/sample/OCR/PaddleOCR (\345\216\237\345\247\213\347\261\273).js" "b/app/src/main/assets-app/sample/OCR/PaddleOCR (\345\216\237\345\247\213\347\261\273).js" similarity index 100% rename from "app/src/main/assets/sample/OCR/PaddleOCR (\345\216\237\345\247\213\347\261\273).js" rename to "app/src/main/assets-app/sample/OCR/PaddleOCR (\345\216\237\345\247\213\347\261\273).js" diff --git "a/app/src/main/assets/sample/OCR/PaddleOCR (\346\210\252\345\233\276\350\257\206\345\210\253).js" "b/app/src/main/assets-app/sample/OCR/PaddleOCR (\346\210\252\345\233\276\350\257\206\345\210\253).js" similarity index 100% rename from "app/src/main/assets/sample/OCR/PaddleOCR (\346\210\252\345\233\276\350\257\206\345\210\253).js" rename to "app/src/main/assets-app/sample/OCR/PaddleOCR (\346\210\252\345\233\276\350\257\206\345\210\253).js" diff --git a/app/src/main/assets/sample/OCR/test.png b/app/src/main/assets-app/sample/OCR/test.png similarity index 100% rename from app/src/main/assets/sample/OCR/test.png rename to app/src/main/assets-app/sample/OCR/test.png diff --git "a/app/src/main/assets/sample/Shell/\345\206\273\347\273\223\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" "b/app/src/main/assets-app/sample/Shell/\345\206\273\347\273\223\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" similarity index 100% rename from "app/src/main/assets/sample/Shell/\345\206\273\347\273\223\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" rename to "app/src/main/assets-app/sample/Shell/\345\206\273\347\273\223\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" diff --git "a/app/src/main/assets/sample/Shell/\347\273\223\346\235\237\346\211\200\346\234\211\345\220\216\345\217\260\350\277\233\347\250\213.js" "b/app/src/main/assets-app/sample/Shell/\347\273\223\346\235\237\346\211\200\346\234\211\345\220\216\345\217\260\350\277\233\347\250\213.js" similarity index 100% rename from "app/src/main/assets/sample/Shell/\347\273\223\346\235\237\346\211\200\346\234\211\345\220\216\345\217\260\350\277\233\347\250\213.js" rename to "app/src/main/assets-app/sample/Shell/\347\273\223\346\235\237\346\211\200\346\234\211\345\220\216\345\217\260\350\277\233\347\250\213.js" diff --git "a/app/src/main/assets/sample/Shell/\350\247\243\345\206\273\345\271\266\346\211\223\345\274\200\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" "b/app/src/main/assets-app/sample/Shell/\350\247\243\345\206\273\345\271\266\346\211\223\345\274\200\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" similarity index 100% rename from "app/src/main/assets/sample/Shell/\350\247\243\345\206\273\345\271\266\346\211\223\345\274\200\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" rename to "app/src/main/assets-app/sample/Shell/\350\247\243\345\206\273\345\271\266\346\211\223\345\274\200\347\275\221\346\230\223\344\272\221\351\237\263\344\271\220.js" diff --git "a/app/src/main/assets/sample/Shell/\351\224\201\345\261\217.js" "b/app/src/main/assets-app/sample/Shell/\351\224\201\345\261\217.js" similarity index 100% rename from "app/src/main/assets/sample/Shell/\351\224\201\345\261\217.js" rename to "app/src/main/assets-app/sample/Shell/\351\224\201\345\261\217.js" diff --git "a/app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/Toast\347\233\221\345\220\254.js" "b/app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/Toast\347\233\221\345\220\254.js" similarity index 100% rename from "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/Toast\347\233\221\345\220\254.js" rename to "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/Toast\347\233\221\345\220\254.js" diff --git "a/app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\346\214\211\351\224\256\347\233\221\345\220\254.js" "b/app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\346\214\211\351\224\256\347\233\221\345\220\254.js" similarity index 100% rename from "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\346\214\211\351\224\256\347\233\221\345\220\254.js" rename to "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\346\214\211\351\224\256\347\233\221\345\220\254.js" diff --git "a/app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\350\247\246\346\221\270\347\233\221\345\220\254.js" "b/app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\350\247\246\346\221\270\347\233\221\345\220\254.js" similarity index 100% rename from "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\350\247\246\346\221\270\347\233\221\345\220\254.js" rename to "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\350\247\246\346\221\270\347\233\221\345\220\254.js" diff --git "a/app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\200\232\347\237\245\347\233\221\345\220\254.js" "b/app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\200\232\347\237\245\347\233\221\345\220\254.js" similarity index 100% rename from "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\200\232\347\237\245\347\233\221\345\220\254.js" rename to "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\200\232\347\237\245\347\233\221\345\220\254.js" diff --git "a/app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\225\277\346\214\211\350\277\224\345\233\236\351\200\200\345\207\272\345\275\223\345\211\215\347\250\213\345\272\217.js" "b/app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\225\277\346\214\211\350\277\224\345\233\236\351\200\200\345\207\272\345\275\223\345\211\215\347\250\213\345\272\217.js" similarity index 100% rename from "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\225\277\346\214\211\350\277\224\345\233\236\351\200\200\345\207\272\345\275\223\345\211\215\347\250\213\345\272\217.js" rename to "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\225\277\346\214\211\350\277\224\345\233\236\351\200\200\345\207\272\345\275\223\345\211\215\347\250\213\345\272\217.js" diff --git "a/app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\345\207\217\351\224\256\345\210\206\346\236\220\345\270\203\345\261\200.js" "b/app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\345\207\217\351\224\256\345\210\206\346\236\220\345\270\203\345\261\200.js" similarity index 100% rename from "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\345\207\217\351\224\256\345\210\206\346\236\220\345\270\203\345\261\200.js" rename to "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\345\207\217\351\224\256\345\210\206\346\236\220\345\270\203\345\261\200.js" diff --git "a/app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\351\224\256\346\216\247\345\210\266\347\250\213\345\272\217.js" "b/app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\351\224\256\346\216\247\345\210\266\347\250\213\345\272\217.js" similarity index 100% rename from "app/src/main/assets/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\351\224\256\346\216\247\345\210\266\347\250\213\345\272\217.js" rename to "app/src/main/assets-app/sample/\344\272\213\344\273\266\344\270\216\347\233\221\345\220\254/\351\237\263\351\207\217\351\224\256\346\216\247\345\210\266\347\250\213\345\272\217.js" diff --git "a/app/src/main/assets/sample/\344\273\273\345\212\241/\344\270\200\346\254\241\346\200\247\344\273\273\345\212\241 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\344\273\273\345\212\241/\344\270\200\346\254\241\346\200\247\344\273\273\345\212\241 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\344\273\273\345\212\241/\344\270\200\346\254\241\346\200\247\344\273\273\345\212\241 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\344\273\273\345\212\241/\344\270\200\346\254\241\346\200\247\344\273\273\345\212\241 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\344\273\273\345\212\241/\346\204\217\345\233\276 (Intent) \344\273\273\345\212\241 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\344\273\273\345\212\241/\346\204\217\345\233\276 (Intent) \344\273\273\345\212\241 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\344\273\273\345\212\241/\346\204\217\345\233\276 (Intent) \344\273\273\345\212\241 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\344\273\273\345\212\241/\346\204\217\345\233\276 (Intent) \344\273\273\345\212\241 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\344\273\273\345\212\241/\346\257\217\345\221\250\344\273\273\345\212\241 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\344\273\273\345\212\241/\346\257\217\345\221\250\344\273\273\345\212\241 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\344\273\273\345\212\241/\346\257\217\345\221\250\344\273\273\345\212\241 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\344\273\273\345\212\241/\346\257\217\345\221\250\344\273\273\345\212\241 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\344\273\273\345\212\241/\346\257\217\346\227\245\344\273\273\345\212\241 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\344\273\273\345\212\241/\346\257\217\346\227\245\344\273\273\345\212\241 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\344\273\273\345\212\241/\346\257\217\346\227\245\344\273\273\345\212\241 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\344\273\273\345\212\241/\346\257\217\346\227\245\344\273\273\345\212\241 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\344\274\240\346\204\237\345\231\250/\346\211\223\345\215\260\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" "b/app/src/main/assets-app/sample/\344\274\240\346\204\237\345\231\250/\346\211\223\345\215\260\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" similarity index 100% rename from "app/src/main/assets/sample/\344\274\240\346\204\237\345\231\250/\346\211\223\345\215\260\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" rename to "app/src/main/assets-app/sample/\344\274\240\346\204\237\345\231\250/\346\211\223\345\215\260\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" diff --git "a/app/src/main/assets/sample/\344\274\240\346\204\237\345\231\250/\346\230\276\347\244\272\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" "b/app/src/main/assets-app/sample/\344\274\240\346\204\237\345\231\250/\346\230\276\347\244\272\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" similarity index 100% rename from "app/src/main/assets/sample/\344\274\240\346\204\237\345\231\250/\346\230\276\347\244\272\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" rename to "app/src/main/assets-app/sample/\344\274\240\346\204\237\345\231\250/\346\230\276\347\244\272\345\270\270\347\224\250\344\274\240\346\204\237\345\231\250\344\277\241\346\201\257.js" diff --git "a/app/src/main/assets/sample/\345\215\217\347\250\213/ui\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/main.js" "b/app/src/main/assets-app/sample/\345\215\217\347\250\213/UI\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/main.js" similarity index 100% rename from "app/src/main/assets/sample/\345\215\217\347\250\213/ui\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/main.js" rename to "app/src/main/assets-app/sample/\345\215\217\347\250\213/UI\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/main.js" diff --git "a/app/src/main/assets/sample/\345\215\217\347\250\213/ui\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/project.json" "b/app/src/main/assets-app/sample/\345\215\217\347\250\213/UI\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/project.json" similarity index 100% rename from "app/src/main/assets/sample/\345\215\217\347\250\213/ui\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/project.json" rename to "app/src/main/assets-app/sample/\345\215\217\347\250\213/UI\344\270\255\344\275\277\347\224\250\345\215\217\347\250\213/project.json" diff --git "a/app/src/main/assets/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/hello.txt" "b/app/src/main/assets-app/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/hello.txt" similarity index 100% rename from "app/src/main/assets/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/hello.txt" rename to "app/src/main/assets-app/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/hello.txt" diff --git "a/app/src/main/assets/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/main.js" "b/app/src/main/assets-app/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/main.js" similarity index 100% rename from "app/src/main/assets/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/main.js" rename to "app/src/main/assets-app/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/main.js" diff --git "a/app/src/main/assets/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/project.json" "b/app/src/main/assets-app/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/project.json" similarity index 100% rename from "app/src/main/assets/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/project.json" rename to "app/src/main/assets-app/sample/\345\215\217\347\250\213/\345\215\217\347\250\213HelloWorld/project.json" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2621.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2621.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2621.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2621.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2622.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2622.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2622.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\214\272\345\237\237\346\211\276\350\211\2622.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\233\276\347\211\207\345\244\204\347\220\206.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\233\276\347\211\207\345\244\204\347\220\206.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\233\276\347\211\207\345\244\204\347\220\206.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\233\276\347\211\207\345\244\204\347\220\206.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\237\272\346\234\254\351\242\234\350\211\262\350\275\254\346\215\242 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\237\272\346\234\254\351\242\234\350\211\262\350\275\254\346\215\242 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\237\272\346\234\254\351\242\234\350\211\262\350\275\254\346\215\242 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\237\272\346\234\254\351\242\234\350\211\262\350\275\254\346\215\242 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\256\236\346\227\266\346\230\276\347\244\272\350\247\246\346\221\270\347\202\271\351\242\234\350\211\262.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\256\236\346\227\266\346\230\276\347\244\272\350\247\246\346\221\270\347\202\271\351\242\234\350\211\262.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\256\236\346\227\266\346\230\276\347\244\272\350\247\246\346\221\270\347\202\271\351\242\234\350\211\262.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\345\256\236\346\227\266\346\230\276\347\244\272\350\247\246\346\221\270\347\202\271\351\242\234\350\211\262.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\210\252\345\233\276\345\271\266\344\277\235\345\255\230.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\210\252\345\233\276\345\271\266\344\277\235\345\255\230.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\210\252\345\233\276\345\271\266\344\277\235\345\255\230.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\210\252\345\233\276\345\271\266\344\277\235\345\255\230.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\210\260QQ\347\272\242\347\202\271\344\275\215\347\275\256.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\210\260QQ\347\272\242\347\202\271\344\275\215\347\275\256.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\210\260QQ\347\272\242\347\202\271\344\275\215\347\275\256.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\210\260QQ\347\272\242\347\202\271\344\275\215\347\275\256.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/block.png" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/block.png" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/block.png" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/block.png" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/mario.png" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/mario.png" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/mario.png" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/mario.png" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/super_mario.jpg" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/super_mario.jpg" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/super_mario.jpg" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/super_mario.jpg" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\346\211\200\346\234\211\351\227\256\345\217\267\346\226\271\345\235\227.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\346\211\200\346\234\211\351\227\256\345\217\267\346\226\271\345\235\227.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\346\211\200\346\234\211\351\227\256\345\217\267\346\226\271\345\235\227.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\346\211\200\346\234\211\351\227\256\345\217\267\346\226\271\345\235\227.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\227\256\345\217\267\346\226\271\345\235\227\345\271\266\347\224\273\345\207\272\344\275\215\347\275\256 [v6.2.0+].js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\227\256\345\217\267\346\226\271\345\235\227\345\271\266\347\224\273\345\207\272\344\275\215\347\275\256 [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\227\256\345\217\267\346\226\271\345\235\227\345\271\266\347\224\273\345\207\272\344\275\215\347\275\256 [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\227\256\345\217\267\346\226\271\345\235\227\345\271\266\347\224\273\345\207\272\344\275\215\347\275\256 [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\251\254\351\207\214\345\245\245.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\251\254\351\207\214\345\245\245.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\251\254\351\207\214\345\245\245.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\211\276\345\233\276/\346\211\276\345\207\272\351\251\254\351\207\214\345\245\245.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\250\241\347\263\212\346\211\276\350\211\262.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\250\241\347\263\212\346\211\276\350\211\262.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\250\241\347\263\212\346\211\276\350\211\262.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\346\250\241\347\263\212\346\211\276\350\211\262.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\347\262\276\347\241\256\346\211\276\350\211\262.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\347\262\276\347\241\256\346\211\276\350\211\262.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\347\262\276\347\241\256\346\211\276\350\211\262.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\347\262\276\347\241\256\346\211\276\350\211\262.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\350\216\267\345\217\226\347\275\221\347\273\234\345\233\276\347\211\207\345\271\266\344\277\235\345\255\230.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\350\216\267\345\217\226\347\275\221\347\273\234\345\233\276\347\211\207\345\271\266\344\277\235\345\255\230.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\350\216\267\345\217\226\347\275\221\347\273\234\345\233\276\347\211\207\345\271\266\344\277\235\345\255\230.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\350\216\267\345\217\226\347\275\221\347\273\234\345\233\276\347\211\207\345\271\266\344\277\235\345\255\230.js" diff --git "a/app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\351\242\234\350\211\262\350\216\267\345\217\226\345\222\214\346\243\200\346\265\213.js" "b/app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\351\242\234\350\211\262\350\216\267\345\217\226\345\222\214\346\243\200\346\265\213.js" similarity index 100% rename from "app/src/main/assets/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\351\242\234\350\211\262\350\216\267\345\217\226\345\222\214\346\243\200\346\265\213.js" rename to "app/src/main/assets-app/sample/\345\233\276\345\203\217\344\270\216\351\242\234\350\211\262/\351\242\234\350\211\262\350\216\267\345\217\226\345\222\214\346\243\200\346\265\213.js" diff --git "a/app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\216\237\345\255\220\345\217\230\351\207\217.js" "b/app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\216\237\345\255\220\345\217\230\351\207\217.js" similarity index 100% rename from "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\216\237\345\255\220\345\217\230\351\207\217.js" rename to "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\216\237\345\255\220\345\217\230\351\207\217.js" diff --git "a/app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\217\230\351\207\217\345\217\257\350\247\201\346\200\247\345\256\236\351\252\214.js" "b/app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\217\230\351\207\217\345\217\257\350\247\201\346\200\247\345\256\236\351\252\214.js" similarity index 100% rename from "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\217\230\351\207\217\345\217\257\350\247\201\346\200\247\345\256\236\351\252\214.js" rename to "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\217\230\351\207\217\345\217\257\350\247\201\346\200\247\345\256\236\351\252\214.js" diff --git "a/app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\346\214\211\351\224\256\347\233\221\345\220\254.js" "b/app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\346\214\211\351\224\256\347\233\221\345\220\254.js" similarity index 100% rename from "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\346\214\211\351\224\256\347\233\221\345\220\254.js" rename to "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\346\214\211\351\224\256\347\233\221\345\220\254.js" diff --git "a/app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\347\256\200\345\215\225\347\244\272\344\276\213.js" "b/app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\347\256\200\345\215\225\347\244\272\344\276\213.js" similarity index 100% rename from "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\347\256\200\345\215\225\347\244\272\344\276\213.js" rename to "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\345\244\232\347\272\277\347\250\213\347\256\200\345\215\225\347\244\272\344\276\213.js" diff --git "a/app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\347\272\277\347\250\213\345\220\257\345\212\250\344\270\216\345\205\263\351\227\255.js" "b/app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\347\272\277\347\250\213\345\220\257\345\212\250\344\270\216\345\205\263\351\227\255.js" similarity index 100% rename from "app/src/main/assets/sample/\345\244\232\347\272\277\347\250\213/\347\272\277\347\250\213\345\220\257\345\212\250\344\270\216\345\205\263\351\227\255.js" rename to "app/src/main/assets-app/sample/\345\244\232\347\272\277\347\250\213/\347\272\277\347\250\213\345\220\257\345\212\250\344\270\216\345\205\263\351\227\255.js" diff --git "a/app/src/main/assets/sample/\345\256\232\346\227\266\345\231\250/\345\256\232\346\227\266\346\211\247\350\241\214.js" "b/app/src/main/assets-app/sample/\345\256\232\346\227\266\345\231\250/\345\256\232\346\227\266\346\211\247\350\241\214.js" similarity index 100% rename from "app/src/main/assets/sample/\345\256\232\346\227\266\345\231\250/\345\256\232\346\227\266\346\211\247\350\241\214.js" rename to "app/src/main/assets-app/sample/\345\256\232\346\227\266\345\231\250/\345\256\232\346\227\266\346\211\247\350\241\214.js" diff --git "a/app/src/main/assets/sample/\345\256\232\346\227\266\345\231\250/\345\276\252\347\216\257\346\211\247\350\241\214.js" "b/app/src/main/assets-app/sample/\345\256\232\346\227\266\345\231\250/\345\276\252\347\216\257\346\211\247\350\241\214.js" similarity index 100% rename from "app/src/main/assets/sample/\345\256\232\346\227\266\345\231\250/\345\276\252\347\216\257\346\211\247\350\241\214.js" rename to "app/src/main/assets-app/sample/\345\256\232\346\227\266\345\231\250/\345\276\252\347\216\257\346\211\247\350\241\214.js" diff --git "a/app/src/main/assets/sample/\345\256\232\346\227\266\345\231\250/\346\235\241\344\273\266\345\221\250\346\234\237\346\211\247\350\241\214 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\345\256\232\346\227\266\345\231\250/\346\235\241\344\273\266\345\221\250\346\234\237\346\211\247\350\241\214 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\256\232\346\227\266\345\231\250/\346\235\241\344\273\266\345\221\250\346\234\237\346\211\247\350\241\214 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\345\256\232\346\227\266\345\231\250/\346\235\241\344\273\266\345\221\250\346\234\237\346\211\247\350\241\214 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/UI\346\250\241\345\274\217\344\270\213\344\275\277\347\224\250\345\257\271\350\257\235\346\241\206.js" "b/app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/UI\346\250\241\345\274\217\344\270\213\344\275\277\347\224\250\345\257\271\350\257\235\346\241\206.js" similarity index 100% rename from "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/UI\346\250\241\345\274\217\344\270\213\344\275\277\347\224\250\345\257\271\350\257\235\346\241\206.js" rename to "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/UI\346\250\241\345\274\217\344\270\213\344\275\277\347\224\250\345\257\271\350\257\235\346\241\206.js" diff --git "a/app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\344\270\252\346\200\247\345\214\226\345\257\271\350\257\235\346\241\206 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\344\270\252\346\200\247\345\214\226\345\257\271\350\257\235\346\241\206 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\344\270\252\346\200\247\345\214\226\345\257\271\350\257\235\346\241\206 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\344\270\252\346\200\247\345\214\226\345\257\271\350\257\235\346\241\206 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\345\215\225\351\200\211\346\241\206.js" "b/app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\345\215\225\351\200\211\346\241\206.js" similarity index 100% rename from "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\345\215\225\351\200\211\346\241\206.js" rename to "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\345\215\225\351\200\211\346\241\206.js" diff --git "a/app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\345\244\232\351\200\211\346\241\206.js" "b/app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\345\244\232\351\200\211\346\241\206.js" similarity index 100% rename from "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\345\244\232\351\200\211\346\241\206.js" rename to "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\345\244\232\351\200\211\346\241\206.js" diff --git "a/app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\346\250\241\346\213\237\346\233\264\346\226\260\344\270\213\350\275\275\345\257\271\350\257\235\346\241\206.js" "b/app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\346\250\241\346\213\237\346\233\264\346\226\260\344\270\213\350\275\275\345\257\271\350\257\235\346\241\206.js" similarity index 100% rename from "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\346\250\241\346\213\237\346\233\264\346\226\260\344\270\213\350\275\275\345\257\271\350\257\235\346\241\206.js" rename to "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\346\250\241\346\213\237\346\233\264\346\226\260\344\270\213\350\275\275\345\257\271\350\257\235\346\241\206.js" diff --git "a/app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\347\241\256\350\256\244\346\241\206.js" "b/app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\347\241\256\350\256\244\346\241\206.js" similarity index 100% rename from "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\347\241\256\350\256\244\346\241\206.js" rename to "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\347\241\256\350\256\244\346\241\206.js" diff --git "a/app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\347\256\200\345\215\225\350\256\241\347\256\227\345\231\250.js" "b/app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\347\256\200\345\215\225\350\256\241\347\256\227\345\231\250.js" similarity index 100% rename from "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\347\256\200\345\215\225\350\256\241\347\256\227\345\231\250.js" rename to "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\347\256\200\345\215\225\350\256\241\347\256\227\345\231\250.js" diff --git "a/app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\350\217\234\345\215\225.js" "b/app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\350\217\234\345\215\225.js" similarity index 100% rename from "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\350\217\234\345\215\225.js" rename to "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\350\217\234\345\215\225.js" diff --git "a/app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\350\276\223\345\205\245\346\241\206.js" "b/app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\350\276\223\345\205\245\346\241\206.js" similarity index 100% rename from "app/src/main/assets/sample/\345\257\271\350\257\235\346\241\206/\350\276\223\345\205\245\346\241\206.js" rename to "app/src/main/assets-app/sample/\345\257\271\350\257\235\346\241\206/\350\276\223\345\205\245\346\241\206.js" diff --git "a/app/src/main/assets/sample/\345\267\245\345\205\267/\345\256\211\345\215\223\347\211\210\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\345\267\245\345\205\267/\345\256\211\345\215\223\347\211\210\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\267\245\345\205\267/\345\256\211\345\215\223\347\211\210\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\345\267\245\345\205\267/\345\256\211\345\215\223\347\211\210\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\345\267\245\345\205\267/\346\221\251\346\226\257\347\224\265\347\240\201 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\345\267\245\345\205\267/\346\221\251\346\226\257\347\224\265\347\240\201 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\267\245\345\205\267/\346\221\251\346\226\257\347\224\265\347\240\201 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\345\267\245\345\205\267/\346\221\251\346\226\257\347\224\265\347\240\201 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\345\267\245\345\205\267/\350\216\267\345\217\226\347\261\273\344\270\216\347\261\273\345\220\215 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\345\267\245\345\205\267/\350\216\267\345\217\226\347\261\273\344\270\216\347\261\273\345\220\215 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\267\245\345\205\267/\350\216\267\345\217\226\347\261\273\344\270\216\347\261\273\345\220\215 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\345\267\245\345\205\267/\350\216\267\345\217\226\347\261\273\344\270\216\347\261\273\345\220\215 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/WannaCry (\344\273\205\344\270\272\345\250\261\344\271\220).js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/WannaCry (\344\273\205\344\270\272\345\250\261\344\271\220).js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/WannaCry (\344\273\205\344\270\272\345\250\261\344\271\220).js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/WannaCry (\344\273\205\344\270\272\345\250\261\344\271\220).js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/\345\272\224\347\224\250\346\265\217\350\247\210\345\231\250 [v6.2.0+].js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/\345\272\224\347\224\250\346\265\217\350\247\210\345\231\250 [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/\345\272\224\347\224\250\346\265\217\350\247\210\345\231\250 [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/\345\272\224\347\224\250\346\265\217\350\247\210\345\231\250 [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.2.0+].js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.3.1+].js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.3.1+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.3.1+].js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/\345\276\205\345\212\236\344\272\213\351\241\271 [v6.3.1+].js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/\346\216\247\344\273\266\345\210\207\346\215\242\346\230\276\347\244\272.js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/\346\216\247\344\273\266\345\210\207\346\215\242\346\230\276\347\244\272.js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/\346\216\247\344\273\266\345\210\207\346\215\242\346\230\276\347\244\272.js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/\346\216\247\344\273\266\345\210\207\346\215\242\346\230\276\347\244\272.js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/\346\222\255\346\224\276\350\247\206\351\242\221\346\226\207\344\273\266.js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/\346\222\255\346\224\276\350\247\206\351\242\221\346\226\207\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/\346\222\255\346\224\276\350\247\206\351\242\221\346\226\207\344\273\266.js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/\346\222\255\346\224\276\350\247\206\351\242\221\346\226\207\344\273\266.js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/\347\224\250\346\210\267\350\260\203\346\237\245.js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\224\250\346\210\267\350\260\203\346\237\245.js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/\347\224\250\346\210\267\350\260\203\346\237\245.js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\224\250\346\210\267\350\260\203\346\237\245.js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/\347\225\214\351\235\242\346\250\241\346\235\277\344\270\200.js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\225\214\351\235\242\346\250\241\346\235\277\344\270\200.js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/\347\225\214\351\235\242\346\250\241\346\235\277\344\270\200.js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\225\214\351\235\242\346\250\241\346\235\277\344\270\200.js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/\347\231\273\345\275\225\347\225\214\351\235\242.js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\231\273\345\275\225\347\225\214\351\235\242.js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/\347\231\273\345\275\225\347\225\214\351\235\242.js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\231\273\345\275\225\347\225\214\351\235\242.js" diff --git "a/app/src/main/assets/sample/\345\270\203\345\261\200/\347\256\200\345\215\225\345\256\211\345\215\223\345\270\203\345\261\200.js" "b/app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\256\200\345\215\225\345\256\211\345\215\223\345\270\203\345\261\200.js" similarity index 100% rename from "app/src/main/assets/sample/\345\270\203\345\261\200/\347\256\200\345\215\225\345\256\211\345\215\223\345\270\203\345\261\200.js" rename to "app/src/main/assets-app/sample/\345\270\203\345\261\200/\347\256\200\345\215\225\345\256\211\345\215\223\345\270\203\345\261\200.js" diff --git "a/app/src/main/assets/sample/\345\272\224\347\224\250/\345\215\270\350\275\275\345\272\224\347\224\250.js" "b/app/src/main/assets-app/sample/\345\272\224\347\224\250/\345\215\270\350\275\275\345\272\224\347\224\250.js" similarity index 100% rename from "app/src/main/assets/sample/\345\272\224\347\224\250/\345\215\270\350\275\275\345\272\224\347\224\250.js" rename to "app/src/main/assets-app/sample/\345\272\224\347\224\250/\345\215\270\350\275\275\345\272\224\347\224\250.js" diff --git "a/app/src/main/assets/sample/\345\272\224\347\224\250/\345\272\224\347\224\250\345\267\245\345\205\267.js" "b/app/src/main/assets-app/sample/\345\272\224\347\224\250/\345\272\224\347\224\250\345\267\245\345\205\267.js" similarity index 100% rename from "app/src/main/assets/sample/\345\272\224\347\224\250/\345\272\224\347\224\250\345\267\245\345\205\267.js" rename to "app/src/main/assets-app/sample/\345\272\224\347\224\250/\345\272\224\347\224\250\345\267\245\345\205\267.js" diff --git "a/app/src/main/assets/sample/\345\272\224\347\224\250/\345\274\272\345\210\266\345\201\234\346\255\242\345\272\224\347\224\250.js" "b/app/src/main/assets-app/sample/\345\272\224\347\224\250/\345\274\272\345\210\266\345\201\234\346\255\242\345\272\224\347\224\250.js" similarity index 100% rename from "app/src/main/assets/sample/\345\272\224\347\224\250/\345\274\272\345\210\266\345\201\234\346\255\242\345\272\224\347\224\250.js" rename to "app/src/main/assets-app/sample/\345\272\224\347\224\250/\345\274\272\345\210\266\345\201\234\346\255\242\345\272\224\347\224\250.js" diff --git "a/app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (QQ) [v6.2.0+].js" "b/app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (QQ) [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (QQ) [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (QQ) [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (\345\276\256\344\277\241) [v6.2.0+].js" "b/app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (\345\276\256\344\277\241) [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (\345\276\256\344\277\241) [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\210\206\344\272\253\346\226\207\346\234\254\346\266\210\346\201\257 (\345\276\256\344\277\241) [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\220\257\345\212\250 URL Scheme (\346\224\257\344\273\230\345\256\235) [v6.2.0+].js" "b/app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\220\257\345\212\250 URL Scheme (\346\224\257\344\273\230\345\256\235) [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\220\257\345\212\250 URL Scheme (\346\224\257\344\273\230\345\256\235) [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\345\220\257\345\212\250 URL Scheme (\346\224\257\344\273\230\345\256\235) [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\350\275\254\346\215\242\344\270\272 Shell \350\257\255\345\217\245.js" "b/app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\350\275\254\346\215\242\344\270\272 Shell \350\257\255\345\217\245.js" similarity index 100% rename from "app/src/main/assets/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\350\275\254\346\215\242\344\270\272 Shell \350\257\255\345\217\245.js" rename to "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\204\217\345\233\276/\350\275\254\346\215\242\344\270\272 Shell \350\257\255\345\217\245.js" diff --git "a/app/src/main/assets/sample/\345\272\224\347\224\250/\346\211\223\345\274\200\345\272\224\347\224\250.js" "b/app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\211\223\345\274\200\345\272\224\347\224\250.js" similarity index 100% rename from "app/src/main/assets/sample/\345\272\224\347\224\250/\346\211\223\345\274\200\345\272\224\347\224\250.js" rename to "app/src/main/assets-app/sample/\345\272\224\347\224\250/\346\211\223\345\274\200\345\272\224\347\224\250.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\344\270\213\346\213\211\350\217\234\345\215\225.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\344\270\213\346\213\211\350\217\234\345\215\225.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\344\270\213\346\213\211\350\217\234\345\215\225.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\344\270\213\346\213\211\350\217\234\345\215\225.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\345\210\227\350\241\250\346\216\247\344\273\266.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\210\227\350\241\250\346\216\247\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\345\210\227\350\241\250\346\216\247\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\210\227\350\241\250\346\216\247\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\215\241\347\211\207\345\270\203\345\261\200.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\345\233\276\347\211\207\346\216\247\344\273\266.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\233\276\347\211\207\346\216\247\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\345\233\276\347\211\207\346\216\247\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\233\276\347\211\207\346\216\247\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\345\244\215\351\200\211\346\241\206\345\215\225\351\200\211\346\241\206\346\216\247\344\273\266.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\244\215\351\200\211\346\241\206\345\215\225\351\200\211\346\241\206\346\216\247\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\345\244\215\351\200\211\346\241\206\345\215\225\351\200\211\346\241\206\346\216\247\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\244\215\351\200\211\346\241\206\345\215\225\351\200\211\346\241\206\346\216\247\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\345\274\200\345\205\263\346\216\247\344\273\266 [v6.3.1+].js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\274\200\345\205\263\346\216\247\344\273\266 [v6.3.1+].js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\345\274\200\345\205\263\346\216\247\344\273\266 [v6.3.1+].js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\345\274\200\345\205\263\346\216\247\344\273\266 [v6.3.1+].js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\346\214\211\351\222\256\346\216\247\344\273\266.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\346\214\211\351\222\256\346\216\247\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\346\214\211\351\222\256\346\216\247\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\346\214\211\351\222\256\346\216\247\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\346\226\207\346\234\254\346\216\247\344\273\266.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\346\226\207\346\234\254\346\216\247\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\346\226\207\346\234\254\346\216\247\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\346\226\207\346\234\254\346\216\247\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\346\227\266\351\227\264\346\227\245\346\234\237\351\200\211\346\213\251\346\216\247\344\273\266.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\346\227\266\351\227\264\346\227\245\346\234\237\351\200\211\346\213\251\346\216\247\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\346\227\266\351\227\264\346\227\245\346\234\237\351\200\211\346\213\251\346\216\247\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\346\227\266\351\227\264\346\227\245\346\234\237\351\200\211\346\213\251\346\216\247\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\344\275\277\347\224\250\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\344\275\277\347\224\250\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\344\275\277\347\224\250\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\344\275\277\347\224\250\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\203\345\261\200\346\250\241\346\235\277.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\203\345\261\200\346\250\241\346\235\277.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\203\345\261\200\346\250\241\346\235\277.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\203\345\261\200\346\250\241\346\235\277.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\246\351\242\234\350\211\262\346\214\211\351\222\256.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\246\351\242\234\350\211\262\346\214\211\351\222\256.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\246\351\242\234\350\211\262\346\214\211\351\222\256.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\345\270\246\351\242\234\350\211\262\346\214\211\351\222\256.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\346\250\241\345\235\227-\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\346\250\241\345\235\227-\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\346\250\241\345\235\227-\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\207\252\345\256\232\344\271\211\346\216\247\344\273\266-\346\250\241\345\235\227-\351\205\215\347\275\256\345\213\276\351\200\211\346\241\206.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\350\241\250\346\240\274\346\216\247\344\273\266-\345\206\205\347\275\256\345\233\276\346\240\207\346\237\245\347\234\213\345\231\250.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\241\250\346\240\274\346\216\247\344\273\266-\345\206\205\347\275\256\345\233\276\346\240\207\346\237\245\347\234\213\345\231\250.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\350\241\250\346\240\274\346\216\247\344\273\266-\345\206\205\347\275\256\345\233\276\346\240\207\346\237\245\347\234\213\345\231\250.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\241\250\346\240\274\346\216\247\344\273\266-\345\206\205\347\275\256\345\233\276\346\240\207\346\237\245\347\234\213\345\231\250.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\346\216\247\344\273\266.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\346\216\247\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\346\216\247\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\346\216\247\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\216\247\344\273\266/\350\277\233\345\272\246\346\235\241\346\216\247\344\273\266.js" "b/app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\277\233\345\272\246\346\235\241\346\216\247\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\344\273\266/\350\277\233\345\272\246\346\235\241\346\216\247\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\216\247\344\273\266/\350\277\233\345\272\246\346\235\241\346\216\247\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\344\272\247\347\224\237\351\232\217\346\234\272\346\225\260.js" "b/app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\344\272\247\347\224\237\351\232\217\346\234\272\346\225\260.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\344\272\247\347\224\237\351\232\217\346\234\272\346\225\260.js" rename to "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\344\272\247\347\224\237\351\232\217\346\234\272\346\225\260.js" diff --git "a/app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\344\277\235\345\255\230\346\227\245\345\277\227.js" "b/app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\344\277\235\345\255\230\346\227\245\345\277\227.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\344\277\235\345\255\230\346\227\245\345\277\227.js" rename to "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\344\277\235\345\255\230\346\227\245\345\277\227.js" diff --git "a/app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\344\270\215\345\220\214\347\272\247\345\210\253.js" "b/app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\344\270\215\345\220\214\347\272\247\345\210\253.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\344\270\215\345\220\214\347\272\247\345\210\253.js" rename to "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\344\270\215\345\220\214\347\272\247\345\210\253.js" diff --git "a/app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\350\260\203\347\224\250\346\240\210 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\350\260\203\347\224\250\346\240\210 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\350\260\203\347\224\250\346\240\210 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\346\211\223\345\215\260\350\260\203\347\224\250\346\240\210 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\346\240\274\345\274\217\345\214\226\350\276\223\345\207\272.js" "b/app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\346\240\274\345\274\217\345\214\226\350\276\223\345\207\272.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\346\240\274\345\274\217\345\214\226\350\276\223\345\207\272.js" rename to "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\346\240\274\345\274\217\345\214\226\350\276\223\345\207\272.js" diff --git "a/app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\347\273\210\347\253\257\346\250\241\346\213\237\345\231\250.js" "b/app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\347\273\210\347\253\257\346\250\241\346\213\237\345\231\250.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\347\273\210\347\253\257\346\250\241\346\213\237\345\231\250.js" rename to "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\347\273\210\347\253\257\346\250\241\346\213\237\345\231\250.js" diff --git "a/app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\350\260\203\346\225\264\346\216\247\345\210\266\345\217\260\345\244\247\345\260\217\344\275\215\347\275\256.js" "b/app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\350\260\203\346\225\264\346\216\247\345\210\266\345\217\260\345\244\247\345\260\217\344\275\215\347\275\256.js" similarity index 100% rename from "app/src/main/assets/sample/\346\216\247\345\210\266\345\217\260/\350\260\203\346\225\264\346\216\247\345\210\266\345\217\260\345\244\247\345\260\217\344\275\215\347\275\256.js" rename to "app/src/main/assets-app/sample/\346\216\247\345\210\266\345\217\260/\350\260\203\346\225\264\346\216\247\345\210\266\345\217\260\345\244\247\345\260\217\344\275\215\347\275\256.js" diff --git "a/app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\206\231\345\205\245\346\226\207\346\234\254\346\226\207\344\273\266.js" "b/app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\206\231\345\205\245\346\226\207\346\234\254\346\226\207\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\206\231\345\205\245\346\226\207\346\234\254\346\226\207\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\206\231\345\205\245\346\226\207\346\234\254\346\226\207\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\210\240\351\231\244\346\211\200\346\234\211\347\251\272\346\226\207\344\273\266\345\244\271.js" "b/app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\210\240\351\231\244\346\211\200\346\234\211\347\251\272\346\226\207\344\273\266\345\244\271.js" similarity index 100% rename from "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\210\240\351\231\244\346\211\200\346\234\211\347\251\272\346\226\207\344\273\266\345\244\271.js" rename to "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\345\210\240\351\231\244\346\211\200\346\234\211\347\251\272\346\226\207\344\273\266\345\244\271.js" diff --git "a/app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242 (\351\253\230\347\272\247).js" "b/app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242 (\351\253\230\347\272\247).js" similarity index 100% rename from "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242 (\351\253\230\347\272\247).js" rename to "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242 (\351\253\230\347\272\247).js" diff --git "a/app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242.js" "b/app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242.js" similarity index 100% rename from "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242.js" rename to "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\346\226\207\344\273\266\347\274\226\347\240\201\350\275\254\346\215\242.js" diff --git "a/app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\206\231\346\226\207\346\234\254\346\226\207\344\273\266.js" "b/app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\206\231\346\226\207\346\234\254\346\226\207\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\206\231\346\226\207\346\234\254\346\226\207\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\206\231\346\226\207\346\234\254\346\226\207\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\217\226\346\226\207\346\234\254\346\226\207\344\273\266.js" "b/app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\217\226\346\226\207\346\234\254\346\226\207\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\217\226\346\226\207\346\234\254\346\226\207\344\273\266.js" rename to "app/src/main/assets-app/sample/\346\226\207\344\273\266\350\257\273\345\206\231/\350\257\273\345\217\226\346\226\207\346\234\254\346\226\207\344\273\266.js" diff --git "a/app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\344\270\213\346\273\221.js" "b/app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\344\270\213\346\273\221.js" similarity index 100% rename from "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\344\270\213\346\273\221.js" rename to "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\344\270\213\346\273\221.js" diff --git "a/app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\346\215\217\345\220\210.js" "b/app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\346\215\217\345\220\210.js" similarity index 100% rename from "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\346\215\217\345\220\210.js" rename to "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\344\270\211\346\214\207\346\215\217\345\220\210.js" diff --git "a/app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\217\214\346\214\207\346\215\217\345\220\210.js" "b/app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\217\214\346\214\207\346\215\217\345\220\210.js" similarity index 100% rename from "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\217\214\346\214\207\346\215\217\345\220\210.js" rename to "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\217\214\346\214\207\346\215\217\345\220\210.js" diff --git "a/app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 11 (R) \346\226\260\345\242\236 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 11 (R) \346\226\260\345\242\236 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 11 (R) \346\226\260\345\242\236 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 11 (R) \346\226\260\345\242\236 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 9 (Pie) \346\226\260\345\242\236 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 9 (Pie) \346\226\260\345\242\236 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 9 (Pie) \346\226\260\345\242\236 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\256\211\345\215\223 9 (Pie) \346\226\260\345\242\236 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\277\203\345\275\242\346\211\213\345\212\277.js" "b/app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\277\203\345\275\242\346\211\213\345\212\277.js" similarity index 100% rename from "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\277\203\345\275\242\346\211\213\345\212\277.js" rename to "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\345\277\203\345\275\242\346\211\213\345\212\277.js" diff --git "a/app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\346\213\211\345\207\272\351\200\232\347\237\245\346\240\217.js" "b/app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\346\213\211\345\207\272\351\200\232\347\237\245\346\240\217.js" similarity index 100% rename from "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\346\213\211\345\207\272\351\200\232\347\237\245\346\240\217.js" rename to "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\346\213\211\345\207\272\351\200\232\347\237\245\346\240\217.js" diff --git "a/app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\347\202\271\345\207\273\345\267\246\344\270\212\350\247\222.js" "b/app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\347\202\271\345\207\273\345\267\246\344\270\212\350\247\222.js" similarity index 100% rename from "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\347\202\271\345\207\273\345\267\246\344\270\212\350\247\222.js" rename to "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\347\202\271\345\207\273\345\267\246\344\270\212\350\247\222.js" diff --git "a/app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\350\216\267\345\217\226\345\261\217\345\271\225\346\210\252\345\233\276 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\350\216\267\345\217\226\345\261\217\345\271\225\346\210\252\345\233\276 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\350\216\267\345\217\226\345\261\217\345\271\225\346\210\252\345\233\276 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\346\227\240\351\232\234\347\242\215\346\234\215\345\212\241/\350\216\267\345\217\226\345\261\217\345\271\225\346\210\252\345\233\276 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\260\347\273\204\345\222\214\345\244\215\346\235\202\345\257\271\350\261\241.js" "b/app/src/main/assets-app/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\260\347\273\204\345\222\214\345\244\215\346\235\202\345\257\271\350\261\241.js" similarity index 100% rename from "app/src/main/assets/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\260\347\273\204\345\222\214\345\244\215\346\235\202\345\257\271\350\261\241.js" rename to "app/src/main/assets-app/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\260\347\273\204\345\222\214\345\244\215\346\235\202\345\257\271\350\261\241.js" diff --git "a/app/src/main/assets/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\264\346\225\260\347\255\211\347\256\200\345\215\225\346\225\260\346\215\256.js" "b/app/src/main/assets-app/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\264\346\225\260\347\255\211\347\256\200\345\215\225\346\225\260\346\215\256.js" similarity index 100% rename from "app/src/main/assets/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\264\346\225\260\347\255\211\347\256\200\345\215\225\346\225\260\346\215\256.js" rename to "app/src/main/assets-app/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\344\277\235\345\255\230\346\225\264\346\225\260\347\255\211\347\256\200\345\215\225\346\225\260\346\215\256.js" diff --git "a/app/src/main/assets/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\351\232\217\346\211\213\350\256\260.js" "b/app/src/main/assets-app/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\351\232\217\346\211\213\350\256\260.js" similarity index 100% rename from "app/src/main/assets/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\351\232\217\346\211\213\350\256\260.js" rename to "app/src/main/assets-app/sample/\346\234\254\345\234\260\345\255\230\345\202\250/\351\232\217\346\211\213\350\256\260.js" diff --git "a/app/src/main/assets/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (main) [v6.3.1+].js" "b/app/src/main/assets-app/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (main) [v6.3.1+].js" similarity index 100% rename from "app/src/main/assets/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (main) [v6.3.1+].js" rename to "app/src/main/assets-app/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (main) [v6.3.1+].js" diff --git "a/app/src/main/assets/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (ui) [v6.3.1+].js" "b/app/src/main/assets-app/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (ui) [v6.3.1+].js" similarity index 100% rename from "app/src/main/assets/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (ui) [v6.3.1+].js" rename to "app/src/main/assets-app/sample/\346\265\213\350\257\225/\345\237\272\346\234\254\345\212\237\350\203\275\346\265\213\350\257\225 (ui) [v6.3.1+].js" diff --git "a/app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\345\212\250\346\200\201\346\202\254\346\265\256\346\226\207\345\255\227.js" "b/app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\345\212\250\346\200\201\346\202\254\346\265\256\346\226\207\345\255\227.js" similarity index 100% rename from "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\345\212\250\346\200\201\346\202\254\346\265\256\346\226\207\345\255\227.js" rename to "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\345\212\250\346\200\201\346\202\254\346\265\256\346\226\207\345\255\227.js" diff --git "a/app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\346\226\207\345\255\227.js" "b/app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\346\226\207\345\255\227.js" similarity index 100% rename from "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\346\226\207\345\255\227.js" rename to "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\346\226\207\345\255\227.js" diff --git "a/app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256.js" "b/app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256.js" similarity index 100% rename from "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256.js" rename to "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\202\254\346\265\256\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256.js" diff --git "a/app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\212\244\347\234\274\346\250\241\345\274\217.js" "b/app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\212\244\347\234\274\346\250\241\345\274\217.js" similarity index 100% rename from "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\212\244\347\234\274\346\250\241\345\274\217.js" rename to "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\212\244\347\234\274\346\250\241\345\274\217.js" diff --git "a/app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206 [v6.3.1+].js" "b/app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206 [v6.3.1+].js" similarity index 100% rename from "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206 [v6.3.1+].js" rename to "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206 [v6.3.1+].js" diff --git "a/app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206.js" "b/app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206.js" similarity index 100% rename from "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206.js" rename to "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\276\223\345\205\245\346\241\206.js" diff --git "a/app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256 (\347\256\200\345\215\225\347\211\210).js" "b/app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256 (\347\256\200\345\215\225\347\211\210).js" similarity index 100% rename from "app/src/main/assets/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256 (\347\256\200\345\215\225\347\211\210).js" rename to "app/src/main/assets-app/sample/\346\265\256\345\212\250\347\252\227\345\217\243/\346\265\256\345\212\250\347\252\227\345\217\243\350\277\220\350\241\214\350\204\232\346\234\254\346\214\211\351\222\256 (\347\256\200\345\215\225\347\211\210).js" diff --git "a/app/src/main/assets/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\347\256\200\345\215\225\347\211\210 [v6.2.0+].js" "b/app/src/main/assets-app/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\347\256\200\345\215\225\347\211\210 [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\347\256\200\345\215\225\347\211\210 [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\347\256\200\345\215\225\347\211\210 [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\351\253\230\347\272\247\347\211\210 [v6.2.0+].js" "b/app/src/main/assets-app/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\351\253\230\347\272\247\347\211\210 [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\351\253\230\347\272\247\347\211\210 [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\347\224\273\345\270\203/\345\207\275\346\225\260\345\233\276\345\203\217\351\253\230\347\272\247\347\211\210 [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207 [v6.2.0+].js" "b/app/src/main/assets-app/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207 [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207 [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207 [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207\351\207\215\345\212\233\346\204\237\345\272\224\347\211\210 [v6.2.0+].js" "b/app/src/main/assets-app/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207\351\207\215\345\212\233\346\204\237\345\272\224\347\211\210 [v6.2.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207\351\207\215\345\212\233\346\204\237\345\272\224\347\211\210 [v6.2.0+].js" rename to "app/src/main/assets-app/sample/\347\224\273\345\270\203/\350\264\252\345\220\203\350\233\207\351\207\215\345\212\233\346\204\237\345\272\224\347\211\210 [v6.2.0+].js" diff --git "a/app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\345\201\234\346\255\242\346\211\200\346\234\211\346\255\243\345\234\250\350\277\220\350\241\214\347\232\204\350\204\232\346\234\254.js" "b/app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\345\201\234\346\255\242\346\211\200\346\234\211\346\255\243\345\234\250\350\277\220\350\241\214\347\232\204\350\204\232\346\234\254.js" similarity index 100% rename from "app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\345\201\234\346\255\242\346\211\200\346\234\211\346\255\243\345\234\250\350\277\220\350\241\214\347\232\204\350\204\232\346\234\254.js" rename to "app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\345\201\234\346\255\242\346\211\200\346\234\211\346\255\243\345\234\250\350\277\220\350\241\214\347\232\204\350\204\232\346\234\254.js" diff --git "a/app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\345\275\225\345\210\266\346\226\207\344\273\266.js" "b/app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\345\275\225\345\210\266\346\226\207\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\345\275\225\345\210\266\346\226\207\344\273\266.js" rename to "app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\345\275\225\345\210\266\346\226\207\344\273\266.js" diff --git "a/app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\346\226\260\347\232\204\350\204\232\346\234\254\344\273\273\345\212\241.js" "b/app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\346\226\260\347\232\204\350\204\232\346\234\254\344\273\273\345\212\241.js" similarity index 100% rename from "app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\346\226\260\347\232\204\350\204\232\346\234\254\344\273\273\345\212\241.js" rename to "app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\346\226\260\347\232\204\350\204\232\346\234\254\344\273\273\345\212\241.js" diff --git "a/app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\350\204\232\346\234\254\346\226\207\344\273\266.js" "b/app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\350\204\232\346\234\254\346\226\207\344\273\266.js" similarity index 100% rename from "app/src/main/assets/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\350\204\232\346\234\254\346\226\207\344\273\266.js" rename to "app/src/main/assets-app/sample/\350\204\232\346\234\254\345\274\225\346\223\216/\350\277\220\350\241\214\350\204\232\346\234\254\346\226\207\344\273\266.js" diff --git "a/app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\345\237\272\346\234\254\350\257\273\345\206\231 [v6.0.3+].js" "b/app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\345\237\272\346\234\254\350\257\273\345\206\231 [v6.0.3+].js" similarity index 100% rename from "app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\345\237\272\346\234\254\350\257\273\345\206\231 [v6.0.3+].js" rename to "app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\345\237\272\346\234\254\350\257\273\345\206\231 [v6.0.3+].js" diff --git "a/app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\345\276\252\347\216\257\347\233\221\346\265\213 [v6.0.3+].js" "b/app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\345\276\252\347\216\257\347\233\221\346\265\213 [v6.0.3+].js" similarity index 100% rename from "app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\345\276\252\347\216\257\347\233\221\346\265\213 [v6.0.3+].js" rename to "app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\345\276\252\347\216\257\347\233\221\346\265\213 [v6.0.3+].js" diff --git "a/app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\346\235\241\344\273\266\346\243\200\346\265\213 [v6.0.3+].js" "b/app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\346\235\241\344\273\266\346\243\200\346\265\213 [v6.0.3+].js" similarity index 100% rename from "app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\346\235\241\344\273\266\346\243\200\346\265\213 [v6.0.3+].js" rename to "app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\346\235\241\344\273\266\346\243\200\346\265\213 [v6.0.3+].js" diff --git "a/app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\350\256\241\347\256\227\345\207\275\346\225\260\350\277\220\350\241\214\346\227\266\351\227\264 [v6.0.3+].js" "b/app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\350\256\241\347\256\227\345\207\275\346\225\260\350\277\220\350\241\214\346\227\266\351\227\264 [v6.0.3+].js" similarity index 100% rename from "app/src/main/assets/sample/\350\256\260\345\275\225\345\231\250/\350\256\241\347\256\227\345\207\275\346\225\260\350\277\220\350\241\214\346\227\266\351\227\264 [v6.0.3+].js" rename to "app/src/main/assets-app/sample/\350\256\260\345\275\225\345\231\250/\350\256\241\347\256\227\345\207\275\346\225\260\350\277\220\350\241\214\346\227\266\351\227\264 [v6.0.3+].js" diff --git "a/app/src/main/assets/sample/\350\256\276\345\244\207/\346\221\251\346\226\257\347\224\265\347\240\201\351\234\207\345\212\250 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\350\256\276\345\244\207/\346\221\251\346\226\257\347\224\265\347\240\201\351\234\207\345\212\250 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\350\256\276\345\244\207/\346\221\251\346\226\257\347\224\265\347\240\201\351\234\207\345\212\250 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\350\256\276\345\244\207/\346\221\251\346\226\257\347\224\265\347\240\201\351\234\207\345\212\250 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\350\256\276\345\244\207/\346\250\241\345\274\217\351\234\207\345\212\250 [v6.1.0+].js" "b/app/src/main/assets-app/sample/\350\256\276\345\244\207/\346\250\241\345\274\217\351\234\207\345\212\250 [v6.1.0+].js" similarity index 100% rename from "app/src/main/assets/sample/\350\256\276\345\244\207/\346\250\241\345\274\217\351\234\207\345\212\250 [v6.1.0+].js" rename to "app/src/main/assets-app/sample/\350\256\276\345\244\207/\346\250\241\345\274\217\351\234\207\345\212\250 [v6.1.0+].js" diff --git "a/app/src/main/assets/sample/\350\256\276\345\244\207/\350\216\267\345\217\226\350\256\276\345\244\207\344\277\241\346\201\257 [v6.4.2+].js" "b/app/src/main/assets-app/sample/\350\256\276\345\244\207/\350\216\267\345\217\226\350\256\276\345\244\207\344\277\241\346\201\257 [v6.4.2+].js" similarity index 100% rename from "app/src/main/assets/sample/\350\256\276\345\244\207/\350\216\267\345\217\226\350\256\276\345\244\207\344\277\241\346\201\257 [v6.4.2+].js" rename to "app/src/main/assets-app/sample/\350\256\276\345\244\207/\350\216\267\345\217\226\350\256\276\345\244\207\344\277\241\346\201\257 [v6.4.2+].js" diff --git "a/app/src/main/assets/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\344\272\256\345\272\246.js" "b/app/src/main/assets-app/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\344\272\256\345\272\246.js" similarity index 100% rename from "app/src/main/assets/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\344\272\256\345\272\246.js" rename to "app/src/main/assets-app/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\344\272\256\345\272\246.js" diff --git "a/app/src/main/assets/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\351\237\263\351\207\217.js" "b/app/src/main/assets-app/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\351\237\263\351\207\217.js" similarity index 100% rename from "app/src/main/assets/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\351\237\263\351\207\217.js" rename to "app/src/main/assets-app/sample/\350\256\276\345\244\207/\350\260\203\346\225\264\350\256\276\345\244\207\351\237\263\351\207\217.js" diff --git a/app/src/main/assets/project/auto.js.png b/app/src/main/assets-inrt/project/auto.js.png similarity index 100% rename from app/src/main/assets/project/auto.js.png rename to app/src/main/assets-inrt/project/auto.js.png diff --git a/app/src/main/assets/project/main.js b/app/src/main/assets-inrt/project/main.js similarity index 100% rename from app/src/main/assets/project/main.js rename to app/src/main/assets-inrt/project/main.js diff --git a/app/src/main/assets/project/project.json b/app/src/main/assets-inrt/project/project.json similarity index 100% rename from app/src/main/assets/project/project.json rename to app/src/main/assets-inrt/project/project.json diff --git a/app/src/main/assets/roboto_medium.ttf b/app/src/main/assets-inrt/roboto_medium.ttf similarity index 100% rename from app/src/main/assets/roboto_medium.ttf rename to app/src/main/assets-inrt/roboto_medium.ttf diff --git a/app/src/main/assets/docs/imageWrapper.html b/app/src/main/assets/docs/imageWrapper.html deleted file mode 100644 index 903d3803f..000000000 --- a/app/src/main/assets/docs/imageWrapper.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - 包装图像类 (ImageWrapper) | AutoJs6 文档 - 6.3.3 - - - - - - - - - - -

    -
    - - -
    - - -
    - - -
    - - -
    - - -
    - - -
    - - -
    - - -
    - - - -
    - -
    -
    -

    AutoJs6 文档 - 6.3.3

    -
    -

    - 索引 | - 查看全部 -

    -
    -
    -
    - - - -
    -

    包装图像类 (ImageWrapper)#

    -
    -

    此章节待补充或完善...

    -

    Marked by SuperMonster003 on Mar 24, 2023.

    - -
    -

    包装图像类用于 AutoJs6 的图像处理.

    -

    包装后的图像类隐藏了内部复杂的图像处理细节, 便于图像数据的 [ 生成 / 访问 / 传递 / 交互 ].

    -
    util.getClassName(ImageWrapper); // org.autojs.autojs.core.image.ImageWrapper
    -images.read('./picture.jpg') instanceof ImageWrapper; /* ImageWrapper 实例判断. */
    -ImageWrapper.ofBitmap(bitmap); /* 将 Bitmap 包装为 ImageWrapper. */
    -
    -

    在 [ images / ocr / canvas ] 等模块的方法中, 均或多或少地涉及 ImageWrapper 类型参数或返回值.

    -
    -

    ImageWrapper

    - -
    -

    [m#] oneShot#

    -

    oneShot()#

    -

    6.2.0

    - -

    //// -=-= PENDING =-=- ////

    - -
    -
    -
    - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/assets/init.js b/app/src/main/assets/init.js index 6a09e95f0..a5e748a4a 100644 --- a/app/src/main/assets/init.js +++ b/app/src/main/assets/init.js @@ -5,109 +5,6 @@ // ! declared globally in RhinoJavaScriptEngine.kt. let global = this; -/* Global classes. */ - -let Manifest = android.Manifest; -let Notification = android.app.Notification; -let NotificationManager = android.app.NotificationManager; -let PendingIntent = android.app.PendingIntent; -let Context = global.Context = android.content.Context; -let Intent = global.Intent = android.content.Intent; -let PackageManager = android.content.pm.PackageManager; -let ColorStateList = android.content.res.ColorStateList; -let Bitmap = android.graphics.Bitmap; -let BitmapFactory = android.graphics.BitmapFactory; -let Paint = android.graphics.Paint; -let ColorDrawable = android.graphics.drawable.ColorDrawable; -let Uri = android.net.Uri; -let Build = android.os.Build; -let Handler = android.os.Handler; -let Looper = android.os.Looper; -let InputType = android.text.InputType; -let TextWatcher = android.text.TextWatcher; -let Linkify = android.text.util.Linkify; -let Base64 = android.util.Base64; -let Log = android.util.Log; -let ContextThemeWrapper = android.view.ContextThemeWrapper; -let Gravity = android.view.Gravity; -let KeyEvent = android.view.KeyEvent; -let MotionEvent = android.view.MotionEvent; -let LayoutParams = android.view.WindowManager.LayoutParams; -let MimeTypeMap = android.webkit.MimeTypeMap; -let WebChromeClient = android.webkit.WebChromeClient; -let WebView = android.webkit.WebView; -let WebViewClient = android.webkit.WebViewClient; -let Toast = android.widget.Toast; -let BigTextStyle = androidx.core.app.NotificationCompat.BigTextStyle; -let NotificationCompat = androidx.core.app.NotificationCompat; -let FileProvider = androidx.core.content.FileProvider; -let Snackbar = com.google.android.material.snackbar.Snackbar; -let LogConfigurator = de.mindpipe.android.logging.log4j.LogConfigurator; -let Version = io.github.g00fy2.versioncompare.Version; -let ByteArrayOutputStream = java.io.ByteArrayOutputStream; -let File = java.io.File; -let Runnable = java.lang.Runnable; -let SecurityException = java.lang.SecurityException; -let Thread = java.lang.Thread; -let Throwable = java.lang.Throwable; -let URI = java.net.URI; -let StandardCharsets = java.nio.charset.StandardCharsets; -let Locale = java.util.Locale; -let AtomicLong = java.util.concurrent.atomic.AtomicLong; -let ReentrantLock = java.util.concurrent.locks.ReentrantLock; -let Callback = okhttp3.Callback; -let FormBody = okhttp3.FormBody; -let MediaType = okhttp3.MediaType; -let MultipartBody = okhttp3.MultipartBody; -let OkHttpClient = okhttp3.OkHttpClient; -let Request = okhttp3.Request; -let RequestBody = okhttp3.RequestBody; -let Level = org.apache.log4j.Level; -let LogManager = org.apache.log4j.LogManager; -let GlobalAppContext = org.autojs.autojs.app.GlobalAppContext; -let AccessibilityBridge = org.autojs.autojs.core.accessibility.AccessibilityBridge; -let UiSelector = org.autojs.autojs.core.accessibility.UiSelector; -let UiObject = org.autojs.autojs.core.automator.UiObject; -let UiObjectCollection = org.autojs.autojs.core.automator.UiObjectCollection; -let Crypto = org.autojs.autojs.core.crypto.Crypto; -let EventEmitter = org.autojs.autojs.core.eventloop.EventEmitter; -let Canvas = org.autojs.autojs.core.graphics.ScriptCanvas; -let MutableOkHttp = org.autojs.autojs.core.http.MutableOkHttp; -let ColorDetector = org.autojs.autojs.core.image.ColorDetector; -let ColorTable = org.autojs.autojs.core.image.ColorTable; -let Image = org.autojs.autojs.core.image.ImageWrapper; -let ImageWrapper = org.autojs.autojs.core.image.ImageWrapper; -let Mat = org.autojs.autojs.core.opencv.Mat; -let DynamicLayoutInflater = org.autojs.autojs.core.ui.inflater.DynamicLayoutInflater; -let JavaScriptEngine = org.autojs.autojs.engine.JavaScriptEngine; -let PFile = org.autojs.autojs.pio.PFile; -let Pref = org.autojs.autojs.pref.Pref; -let ProxyJavaObject = org.autojs.autojs.rhino.ProxyJavaObject; -let ProxyObject = org.autojs.autojs.rhino.ProxyObject; -let ScriptRuntime = org.autojs.autojs.runtime.ScriptRuntime; -let AppUtils = org.autojs.autojs.runtime.api.AppUtils; -let ScreenMetrics = org.autojs.autojs.runtime.api.ScreenMetrics; -let Shell = org.autojs.autojs.runtime.api.Shell; -let ScriptInterruptedException = org.autojs.autojs.runtime.exception.ScriptInterruptedException; -let JavaScriptSource = org.autojs.autojs.script.JavaScriptSource; -let ThemeColor = org.autojs.autojs.theme.ThemeColor; -let App = org.autojs.autojs.util.App; -let ArrayUtils = org.autojs.autojs.util.ArrayUtils; -let ColorUtils = org.autojs.autojs.util.ColorUtils; -let ConsoleUtils = org.autojs.autojs.util.ConsoleUtils; -let DeviceUtils = org.autojs.autojs.util.DeviceUtils; -let DisplayUtils = org.autojs.autojs.util.DisplayUtils; -let JavaUtils = org.autojs.autojs.util.JavaUtils; -let NetworkUtils = org.autojs.autojs.util.NetworkUtils; -let NotificationUtils = org.autojs.autojs.util.NotificationUtils; -let RootMode = org.autojs.autojs.util.RootUtils.RootMode; -let RootUtils = org.autojs.autojs.util.RootUtils; -let StringUtils = org.autojs.autojs.util.StringUtils; -let TextUtils = org.autojs.autojs.util.TextUtils; -let BuildConfig = org.autojs.autojs6.BuildConfig; -let VolatileBox = org.autojs.concurrent.VolatileBox; -let Imgproc = org.opencv.imgproc.Imgproc; - /* Global View classes. */ let JsAppBarLayout = org.autojs.autojs.core.ui.widget.JsAppBarLayout; @@ -303,6 +200,9 @@ Object.assign(this, { ( /* @ModuleIIFE */ () => { + const ProxyObject = org.autojs.autojs.rhino.ProxyObject; + const Pref = org.autojs.autojs.pref.Pref; + let _ = { Throwable: java.lang.Throwable, EvaluatorException: org.mozilla.javascript.EvaluatorException, @@ -386,6 +286,7 @@ Object.assign(this, { }, bind() { this.bindEpilogue(); + this.bindClasses(); this.bindModules(); this.bindPrologue(); }, @@ -489,6 +390,112 @@ Object.assign(this, { }, }); }, + bindClasses() { + Object.assign(global, { + Manifest: android.Manifest, + Notification: android.app.Notification, + NotificationManager: android.app.NotificationManager, + PendingIntent: android.app.PendingIntent, + Context: android.content.Context, + Intent: android.content.Intent, + PackageManager: android.content.pm.PackageManager, + ColorStateList: android.content.res.ColorStateList, + Bitmap: android.graphics.Bitmap, + BitmapFactory: android.graphics.BitmapFactory, + Paint: android.graphics.Paint, + ColorDrawable: android.graphics.drawable.ColorDrawable, + Uri: android.net.Uri, + Build: android.os.Build, + Handler: android.os.Handler, + Looper: android.os.Looper, + InputType: android.text.InputType, + TextWatcher: android.text.TextWatcher, + Linkify: android.text.util.Linkify, + Base64: android.util.Base64, + Log: android.util.Log, + ContextThemeWrapper: android.view.ContextThemeWrapper, + Gravity: android.view.Gravity, + KeyEvent: android.view.KeyEvent, + MotionEvent: android.view.MotionEvent, + LayoutParams: android.view.WindowManager.LayoutParams, + MimeTypeMap: android.webkit.MimeTypeMap, + WebChromeClient: android.webkit.WebChromeClient, + WebView: android.webkit.WebView, + WebViewClient: android.webkit.WebViewClient, + Toast: android.widget.Toast, + BigTextStyle: androidx.core.app.NotificationCompat.BigTextStyle, + NotificationCompat: androidx.core.app.NotificationCompat, + FileProvider: androidx.core.content.FileProvider, + Snackbar: com.google.android.material.snackbar.Snackbar, + LogConfigurator: de.mindpipe.android.logging.log4j.LogConfigurator, + Version: io.github.g00fy2.versioncompare.Version, + ByteArrayOutputStream: java.io.ByteArrayOutputStream, + File: java.io.File, + Runnable: java.lang.Runnable, + SecurityException: java.lang.SecurityException, + System: java.lang.System, + Thread: java.lang.Thread, + Throwable: java.lang.Throwable, + URI: java.net.URI, + StandardCharsets: java.nio.charset.StandardCharsets, + Locale: java.util.Locale, + AtomicLong: java.util.concurrent.atomic.AtomicLong, + ReentrantLock: java.util.concurrent.locks.ReentrantLock, + Callback: okhttp3.Callback, + FormBody: okhttp3.FormBody, + MediaType: okhttp3.MediaType, + MultipartBody: okhttp3.MultipartBody, + OkHttpClient: okhttp3.OkHttpClient, + Request: okhttp3.Request, + RequestBody: okhttp3.RequestBody, + Level: org.apache.log4j.Level, + LogManager: org.apache.log4j.LogManager, + GlobalAppContext: org.autojs.autojs.app.GlobalAppContext, + AccessibilityBridge: org.autojs.autojs.core.accessibility.AccessibilityBridge, + UiSelector: org.autojs.autojs.core.accessibility.UiSelector, + ApkBuilder: org.autojs.autojs.apkbuilder.ApkBuilder, + UiObject: org.autojs.autojs.core.automator.UiObject, + UiObjectCollection: org.autojs.autojs.core.automator.UiObjectCollection, + Crypto: org.autojs.autojs.core.crypto.Crypto, + EventEmitter: org.autojs.autojs.core.eventloop.EventEmitter, + Canvas: org.autojs.autojs.core.graphics.ScriptCanvas, + MutableOkHttp: org.autojs.autojs.core.http.MutableOkHttp, + ColorDetector: org.autojs.autojs.core.image.ColorDetector, + ColorTable: org.autojs.autojs.core.image.ColorTable, + Image: org.autojs.autojs.core.image.ImageWrapper, + ImageWrapper: org.autojs.autojs.core.image.ImageWrapper, + Mat: org.autojs.autojs.core.opencv.Mat, + DynamicLayoutInflater: org.autojs.autojs.core.ui.inflater.DynamicLayoutInflater, + JavaScriptEngine: org.autojs.autojs.engine.JavaScriptEngine, + PFile: org.autojs.autojs.pio.PFile, + Pref: org.autojs.autojs.pref.Pref, + ProxyJavaObject: org.autojs.autojs.rhino.ProxyJavaObject, + ProxyObject: org.autojs.autojs.rhino.ProxyObject, + ScriptRuntime: org.autojs.autojs.runtime.ScriptRuntime, + AppUtils: org.autojs.autojs.runtime.api.AppUtils, + ScreenMetrics: org.autojs.autojs.runtime.api.ScreenMetrics, + Shell: org.autojs.autojs.runtime.api.Shell, + ScriptInterruptedException: org.autojs.autojs.runtime.exception.ScriptInterruptedException, + JavaScriptSource: org.autojs.autojs.script.JavaScriptSource, + ThemeColor: org.autojs.autojs.theme.ThemeColor, + App: org.autojs.autojs.util.App, + ArrayUtils: org.autojs.autojs.util.ArrayUtils, + ColorUtils: org.autojs.autojs.util.ColorUtils, + ConsoleUtils: org.autojs.autojs.util.ConsoleUtils, + DeviceUtils: org.autojs.autojs.util.DeviceUtils, + DisplayUtils: org.autojs.autojs.util.DisplayUtils, + JavaUtils: org.autojs.autojs.util.JavaUtils, + NetworkUtils: org.autojs.autojs.util.NetworkUtils, + NotificationUtils: org.autojs.autojs.util.NotificationUtils, + RootMode: org.autojs.autojs.util.RootUtils.RootMode, + RootUtils: org.autojs.autojs.util.RootUtils, + StringUtils: org.autojs.autojs.util.StringUtils, + TextUtils: org.autojs.autojs.util.TextUtils, + BuildConfig: org.autojs.autojs6.BuildConfig, + VolatileBox: org.autojs.concurrent.VolatileBox, + Imgproc: org.opencv.imgproc.Imgproc, + }); + }, bindModules() { // @OrderMatters by SuperMonster003 on May 2, 2022. _.bind([ @@ -550,8 +557,8 @@ Object.assign(this, { [ 'ocr', 'barcode', 'qrcode' ], /* Safe to put last regardless of the order, no guarantee ;). */ - [ 'floaty', 'storages', 'device', 'recorder', 'toast' ], - [ 'media', 'sensors', 'events', 'base64', 'notice', 'shizuku' ], + [ 'floaty', 'storages', 'device', 'recorder', 'toast', 'media' ], + [ 'sensors', 'events', 'base64', 'notice', 'shizuku', 'opencc' ], /* Last but not the least */ [ 'globals' ], diff --git a/app/src/main/assets/modules/__app__.js b/app/src/main/assets/modules/__app__.js index 9f82a10db..b7b0f4a6b 100644 --- a/app/src/main/assets/modules/__app__.js +++ b/app/src/main/assets/modules/__app__.js @@ -10,6 +10,7 @@ let { autojs, shell, files, util } = global; * @return {Internal.App} */ module.exports = function (scriptRuntime, scope) { + const JavaInteger = java.lang.Integer; /** @@ -274,7 +275,7 @@ module.exports = function (scriptRuntime, scope) { if (rexWebSiteWithoutProtocol.test(o)) { return this.openUrl(`http://${o}`); } - let prop = runtime.getProperty(`${AppUtils.activityShortFormPrefix()}${o}`); + let prop = runtime.getProperty(`${AppUtils.activityShortFormPrefix}${o}`); if (!prop) { throw Error(`Activity short form ${o} not found`); } diff --git a/app/src/main/assets/modules/__autojs__.js b/app/src/main/assets/modules/__autojs__.js index 9702f5544..2b7f7ce1f 100644 --- a/app/src/main/assets/modules/__autojs__.js +++ b/app/src/main/assets/modules/__autojs__.js @@ -10,6 +10,11 @@ let { util } = global; * @return {Internal.Autojs} */ module.exports = function (scriptRuntime, scope) { + + const Manifest = android.Manifest; + const BuildConfig = org.autojs.autojs6.BuildConfig; + const PackageManager = android.content.pm.PackageManager; + const RootUtils = org.autojs.autojs.util.RootUtils; const RootMode = RootUtils.RootMode; const Settings = android.provider.Settings; const System = Settings.System; diff --git a/app/src/main/assets/modules/__automator__.js b/app/src/main/assets/modules/__automator__.js index d39db412d..f5bac0f22 100644 --- a/app/src/main/assets/modules/__automator__.js +++ b/app/src/main/assets/modules/__automator__.js @@ -10,12 +10,15 @@ let { util } = global; * @return {Internal.Automator} */ module.exports = function (scriptRuntime, scope) { + const ResultAdapter = require('result-adapter'); const Path = android.graphics.Path; const Rect = android.graphics.Rect; const GestureDescription = android.accessibilityservice.GestureDescription; const AccessibilityTool = org.autojs.autojs.core.accessibility.AccessibilityTool; + const AccessibilityBridge = org.autojs.autojs.core.accessibility.AccessibilityBridge; + const UiObject = org.autojs.autojs.core.automator.UiObject; /** * @type {org.autojs.autojs.core.accessibility.SimpleActionAutomator} diff --git a/app/src/main/assets/modules/__barcode__.js b/app/src/main/assets/modules/__barcode__.js index c27f14b9b..61d9871a3 100644 --- a/app/src/main/assets/modules/__barcode__.js +++ b/app/src/main/assets/modules/__barcode__.js @@ -61,10 +61,14 @@ module.exports = function (scriptRuntime, scope) { if (img === null) { throw TypeError(`Invalid image of path "${arguments[0]}" for barcode.detectAll(img, options?)`); } + + let argArray = Array.from(arguments); + argArray.splice(0, 1, img.oneShot()); + // @Overload // detectAll(img: ImageWrapper): Barcode.Result[]; // detectAll(img: ImageWrapper, options: DetectOptionsWithoutIsAll): Barcode.Result[]; - return this.detectAll(img.oneShot(), arguments[1]); + return this.detectAll.apply(this, argArray); } if (!(arguments[0] instanceof ImageWrapper)) { diff --git a/app/src/main/assets/modules/__base64__.js b/app/src/main/assets/modules/__base64__.js index 947cae2d4..ac4ae83be 100644 --- a/app/src/main/assets/modules/__base64__.js +++ b/app/src/main/assets/modules/__base64__.js @@ -4,6 +4,9 @@ * @return {Internal.Base64} */ module.exports = function (scriptRuntime, scope) { + + const Base64 = android.util.Base64; + let _ = { Base64Ctor: (/* @IIFE */ () => { /** diff --git a/app/src/main/assets/modules/__colors__.js b/app/src/main/assets/modules/__colors__.js index 4e76a63b1..0f6a9cfc4 100644 --- a/app/src/main/assets/modules/__colors__.js +++ b/app/src/main/assets/modules/__colors__.js @@ -10,11 +10,17 @@ let { util } = global; * @return {Internal.Colors} */ module.exports = function (scriptRuntime, scope) { + /** * @type {org.autojs.autojs.core.image.Colors} */ const rtColors = scriptRuntime.colors; + const ColorStateList = android.content.res.ColorStateList; + const ColorDetector = org.autojs.autojs.core.image.ColorDetector; + const ThemeColor = org.autojs.autojs.theme.ThemeColor; + const ColorTable = org.autojs.autojs.core.image.ColorTable; + let _ = { Color: (/* @IIFE */ () => { /** @@ -845,7 +851,7 @@ module.exports = function (scriptRuntime, scope) { parseRelativePercentage(percentage) { let p = Numberx.parseAny(percentage); if (isNaN(p) || p < 0) { - throw TypeError(`Relative percentage must be in range 0..255, instead of ${percentage}`) + throw TypeError(`Relative percentage must be in range 0..255, instead of ${percentage}`); } return p; }, diff --git a/app/src/main/assets/modules/__console__.js b/app/src/main/assets/modules/__console__.js index b07551d24..890d98121 100644 --- a/app/src/main/assets/modules/__console__.js +++ b/app/src/main/assets/modules/__console__.js @@ -9,6 +9,14 @@ let { files, util, s13n } = global; * @return {Internal.Console} */ module.exports = function (scriptRuntime, scope) { + + const Log = android.util.Log; + const Level = org.apache.log4j.Level; + const LogManager = org.apache.log4j.LogManager; + const LogConfigurator = de.mindpipe.android.logging.log4j.LogConfigurator; + const ProxyObject = org.autojs.autojs.rhino.ProxyObject; + const ConsoleUtils = org.autojs.autojs.util.ConsoleUtils; + // noinspection JSValidateTypes /** @type {org.autojs.autojs.core.console.GlobalConsole} */ const rtConsole = scriptRuntime.console; diff --git a/app/src/main/assets/modules/__crypto__.js b/app/src/main/assets/modules/__crypto__.js index eb27dfb32..0daffe737 100644 --- a/app/src/main/assets/modules/__crypto__.js +++ b/app/src/main/assets/modules/__crypto__.js @@ -1,7 +1,8 @@ // noinspection JSUnusedLocalSymbols module.exports = function (runtime, global) { - Crypto.KeyPair.prototype + + const Crypto = org.autojs.autojs.core.crypto.Crypto; return { Key: Crypto.Key, diff --git a/app/src/main/assets/modules/__device__.js b/app/src/main/assets/modules/__device__.js index 4e33896b7..62ec4f0bb 100644 --- a/app/src/main/assets/modules/__device__.js +++ b/app/src/main/assets/modules/__device__.js @@ -10,6 +10,10 @@ let { util } = global; * @return {Internal.Device} */ module.exports = function (scriptRuntime, scope) { + + const NetworkUtils = org.autojs.autojs.util.NetworkUtils; + const DeviceUtils = org.autojs.autojs.util.DeviceUtils; + const rtDevice = scriptRuntime.device; let _ = { diff --git a/app/src/main/assets/modules/__dialogs__.js b/app/src/main/assets/modules/__dialogs__.js index c41348492..34da6f87c 100644 --- a/app/src/main/assets/modules/__dialogs__.js +++ b/app/src/main/assets/modules/__dialogs__.js @@ -8,6 +8,12 @@ let { colors, threads, ui } = global; * @return {Internal.Dialogs} */ module.exports = function (scriptRuntime, scope) { + + const Looper = android.os.Looper; + const Linkify = android.text.util.Linkify; + const LayoutParams = android.view.WindowManager.LayoutParams; + const ColorDrawable = android.graphics.drawable.ColorDrawable; + let _ = { Dialogs: (/* @IIFE */ () => { /** diff --git a/app/src/main/assets/modules/__events__.js b/app/src/main/assets/modules/__events__.js index e92798d6b..7f57037c1 100644 --- a/app/src/main/assets/modules/__events__.js +++ b/app/src/main/assets/modules/__events__.js @@ -6,6 +6,9 @@ * @return {Internal.Events} */ module.exports = function (scriptRuntime, scope) { + + const KeyEvent = android.view.KeyEvent; + let _ = { Events: (/* @IIFE */ () => { /** diff --git a/app/src/main/assets/modules/__globals__.js b/app/src/main/assets/modules/__globals__.js index d60482ade..51f023dfe 100644 --- a/app/src/main/assets/modules/__globals__.js +++ b/app/src/main/assets/modules/__globals__.js @@ -12,6 +12,9 @@ let { autojs, console, device, pickup, ui, s13n, Numberx } = global; * @param {org.mozilla.javascript.Scriptable | global} scope */ module.exports = function (runtime, scope) { + + const ScreenMetrics = org.autojs.autojs.runtime.api.ScreenMetrics; + let _ = { scale: { base: { diff --git a/app/src/main/assets/modules/__http__.js b/app/src/main/assets/modules/__http__.js index 678a48187..f615fce47 100644 --- a/app/src/main/assets/modules/__http__.js +++ b/app/src/main/assets/modules/__http__.js @@ -10,6 +10,17 @@ let { ui } = global; * @return {Internal.Http} */ module.exports = function (scriptRuntime, scope) { + + const PFile = org.autojs.autojs.pio.PFile; + const Request = okhttp3.Request; + const RequestBody = okhttp3.RequestBody; + const MultipartBody = okhttp3.MultipartBody; + const MediaType = okhttp3.MediaType; + const FormBody = okhttp3.FormBody; + const Callback = okhttp3.Callback; + const MimeTypeMap = android.webkit.MimeTypeMap; + const MutableOkHttp = org.autojs.autojs.core.http.MutableOkHttp; + let _ = { Http: (/* @IIFE */ () => { /** diff --git a/app/src/main/assets/modules/__images__.js b/app/src/main/assets/modules/__images__.js index 57963855e..00d46ae40 100644 --- a/app/src/main/assets/modules/__images__.js +++ b/app/src/main/assets/modules/__images__.js @@ -10,14 +10,22 @@ let { files, util, ui, threads } = global; * @return {Internal.Images} */ module.exports = function (scriptRuntime, scope) { + const ResultAdapter = require('result-adapter'); const Point = org.opencv.core.Point; const Scalar = org.opencv.core.Scalar; const Size = org.opencv.core.Size; const Core = org.opencv.core.Core; + const Imgproc = org.opencv.imgproc.Imgproc; + const Gravity = android.view.Gravity; + const Mat = org.autojs.autojs.core.opencv.Mat; const Images = org.autojs.autojs.runtime.api.Images; + const ColorDetector = org.autojs.autojs.core.image.ColorDetector; const ScreenCapturer = org.autojs.autojs.core.image.capture.ScreenCapturer; + const Bitmap = android.graphics.Bitmap; + const BitmapFactory = android.graphics.BitmapFactory; + const ByteArrayOutputStream = java.io.ByteArrayOutputStream; const RtImages = org.autojs.autojs.runtime.api.Images; /** diff --git a/app/src/main/assets/modules/__notice__.js b/app/src/main/assets/modules/__notice__.js index 892cea952..5692bfedf 100644 --- a/app/src/main/assets/modules/__notice__.js +++ b/app/src/main/assets/modules/__notice__.js @@ -7,7 +7,13 @@ */ module.exports = function (scriptRuntime, scope) { + const AppUtils = org.autojs.autojs.runtime.api.AppUtils; + const NotificationUtils = org.autojs.autojs.util.NotificationUtils; + const NotificationCompat = androidx.core.app.NotificationCompat; const Builder = androidx.core.app.NotificationCompat.Builder; + const BigTextStyle = androidx.core.app.NotificationCompat.BigTextStyle; + const Notification = android.app.Notification; + const NotificationManager = android.app.NotificationManager; // @Caution by SuperMonster003 on May 6, 2023. // ! On device running with Android 7.x, diff --git a/app/src/main/assets/modules/__ocr__.js b/app/src/main/assets/modules/__ocr__.js index 550e95c69..441b2c9a9 100644 --- a/app/src/main/assets/modules/__ocr__.js +++ b/app/src/main/assets/modules/__ocr__.js @@ -93,10 +93,14 @@ module.exports = function (scriptRuntime, scope) { if (img === null) { throw TypeError(`Invalid image of path "${arguments[0]}" for ocr.recognizeText(img, options?)`); } + + let argArray = Array.from(arguments); + argArray.splice(0, 1, img.oneShot()); + // @Overload // recognizeText(img: ImageWrapper, options?: DetectOptionsMLKit | DetectOptionsPaddle): string[]; // recognizeText(img: ImageWrapper, region: OmniRegion): string[]; - return this.recognizeText(img.oneShot(), arguments[1]); + return this.recognizeText.apply(this, argArray); } if (!(arguments[0] instanceof ImageWrapper)) { @@ -115,8 +119,11 @@ module.exports = function (scriptRuntime, scope) { // @Signature recognizeText(img: ImageWrapper, region: OmniRegion): string[]; + let argArray = Array.from(arguments); + argArray.splice(1, 1, { region: arguments[1] }); + // @Overload recognizeText(img: ImageWrapper, options: DetectOptionsMLKit | DetectOptionsPaddle): string[]; - return this.recognizeText(arguments[0], { region: arguments[1] }); + return this.recognizeText.apply(this, argArray); } // @Signature recognizeText(img: ImageWrapper, options?: DetectOptionsMLKit | DetectOptionsPaddle): string[]; @@ -163,10 +170,14 @@ module.exports = function (scriptRuntime, scope) { if (img === null) { throw TypeError(`Invalid image of path "${arguments[0]}" for ocr.detect(img, options?)`); } + + let argArray = Array.from(arguments); + argArray.splice(0, 1, img.oneShot()); + // @Overload // detect(img: ImageWrapper, options?: DetectOptionsMLKit | DetectOptionsPaddle): org.autojs.autojs.runtime.api.OcrResult[]; // detect(img: ImageWrapper, region: OmniRegion): org.autojs.autojs.runtime.api.OcrResult[]; - return this.detect(img.oneShot(), arguments[1]); + return this.detect.apply(this, argArray); } if (!(arguments[0] instanceof ImageWrapper)) { @@ -185,8 +196,11 @@ module.exports = function (scriptRuntime, scope) { // @Signature detect(img: ImageWrapper, region: OmniRegion): org.autojs.autojs.runtime.api.OcrResult[]; + let argArray = Array.from(arguments); + argArray.splice(1, 1, { region: arguments[1] }); + // @Overload detect(img: ImageWrapper, options: DetectOptionsMLKit | DetectOptionsPaddle): org.autojs.autojs.runtime.api.OcrResult[]; - return this.detect(/* img */ arguments[0], { region: arguments[1] }); + return this.detect.apply(this, argArray); } // @Signature detect(img: ImageWrapper, options?: DetectOptionsMLKit | DetectOptionsPaddle): org.autojs.autojs.runtime.api.OcrResult[]; @@ -200,7 +214,7 @@ module.exports = function (scriptRuntime, scope) { /** type {Internal.Ocr.DetectMethod} */ let detectMethod; - switch (_mode) { + switch (arguments[OcrCtor.prototype._forcibleModeArgIndex] || _mode) { case modeName.mlkit: detectMethod = this.mlkit.detectMethodCreator(opt); break; @@ -235,6 +249,32 @@ module.exports = function (scriptRuntime, scope) { }, }; + /* Replace stubs. */ + + OcrCtor.prototype.mlkit.recognizeText = function () { + let argArray = Array.from(arguments); + argArray[OcrCtor.prototype._forcibleModeArgIndex] = modeName.mlkit; + return OcrCtor.prototype.recognizeText.apply(OcrCtor.prototype, argArray); + }; + + OcrCtor.prototype.mlkit.detect = function () { + let argArray = Array.from(arguments); + argArray[OcrCtor.prototype._forcibleModeArgIndex] = modeName.mlkit; + return OcrCtor.prototype.detect.apply(OcrCtor.prototype, argArray); + }; + + OcrCtor.prototype.paddle.recognizeText = function () { + let argArray = Array.from(arguments); + argArray[OcrCtor.prototype._forcibleModeArgIndex] = modeName.paddle; + return OcrCtor.prototype.recognizeText.apply(OcrCtor.prototype, argArray); + }; + + OcrCtor.prototype.paddle.detect = function () { + let argArray = Array.from(arguments); + argArray[OcrCtor.prototype._forcibleModeArgIndex] = modeName.paddle; + return OcrCtor.prototype.detect.apply(OcrCtor.prototype, argArray); + }; + /* Set prototype descriptors. */ Object.defineProperties(OcrCtor.prototype, { diff --git a/app/src/main/assets/modules/__opencc__.js b/app/src/main/assets/modules/__opencc__.js new file mode 100644 index 000000000..eec9cabb2 --- /dev/null +++ b/app/src/main/assets/modules/__opencc__.js @@ -0,0 +1,98 @@ +// noinspection JSUnusedGlobalSymbols,JSUnusedLocalSymbols,UnnecessaryLocalVariableJS + +/** + * @param {ScriptRuntime} scriptRuntime + * @param {org.mozilla.javascript.Scriptable | global} scope + * @return {Internal.OpenCC} + */ +module.exports = function (scriptRuntime, scope) { + + const ChineseConverter = com.zqc.opencc.android.lib.ChineseConverter; + const ConversionType = com.zqc.opencc.android.lib.ConversionType; + + let _ = { + OpenCC: (/* @IIFE */ () => { + /** + * @extends Internal.OpenCC + */ + const OpenCC = function () { + return Object.assign(function () { + return OpenCC.prototype.convert.apply(OpenCC.prototype, arguments); + }, OpenCC.prototype); + }; + + OpenCC.prototype = { + constructor: OpenCC, + convert(s, type) { + if (typeof type === 'string') { + let niceType = type.toUpperCase(); + if (niceType in ConversionType) { + return ChineseConverter.convert(s, ConversionType[niceType], context); + } + return OpenCC.prototype[type.toLowerCase()](s); + } + if (type instanceof ConversionType) { + return ChineseConverter.convert(s, type, context); + } + throw TypeError(`Unknown type "${type}" for opencc.convert`); + }, + + /* OpenCC conversion. */ + + hk2s: (s) => /* Stub. */ '', + hk2t: (s) => /* Stub. */ '', + jp2t: (s) => /* Stub. */ '', + s2hk: (s) => /* Stub. */ '', + s2t: (s) => /* Stub. */ '', + s2tw: (s) => /* Stub. */ '', + t2hk: (s) => /* Stub. */ '', + t2jp: (s) => /* Stub. */ '', + t2s: (s) => /* Stub. */ '', + t2tw: (s) => /* Stub. */ '', + tw2s: (s) => /* Stub. */ '', + tw2t: (s) => /* Stub. */ '', + + /* OpenCC conversion obsoleted by AutoJs6. */ + + /** @deprecated */ + s2twp: (s) => /* Stub. */ '', + s2twi: (s) => opencc.convert(s, ConversionType.S2TWP), + /** @deprecated */ + tw2sp: (s) => /* Stub. */ '', + twi2s: (s) => opencc.convert(s, ConversionType.TW2SP), + + /* Encapsulated conversion. */ + + s2jp: (s) => opencc.t2jp(opencc.s2t(s)), + t2twi: (s) => opencc.s2twi(opencc.t2s(s)), + hk2tw: (s) => opencc.t2tw(opencc.hk2t(s)), + hk2twi: (s) => opencc.s2twi(opencc.hk2s(s)), + hk2jp: (s) => opencc.t2jp(opencc.hk2t(s)), + tw2hk: (s) => opencc.t2hk(opencc.tw2t(s)), + tw2twi: (s) => opencc.s2twi(opencc.tw2s(s)), + tw2jp: (s) => opencc.t2jp(opencc.tw2t(s)), + twi2t: (s) => opencc.s2t(opencc.twi2s(s)), + twi2hk: (s) => opencc.s2hk(opencc.twi2s(s)), + twi2tw: (s) => opencc.s2tw(opencc.twi2s(s)), + twi2jp: (s) => opencc.t2jp(opencc.s2t(opencc.twi2s(s))), + jp2s: (s) => opencc.t2s(opencc.jp2t(s)), + jp2hk: (s) => opencc.t2hk(opencc.jp2t(s)), + jp2tw: (s) => opencc.t2tw(opencc.jp2t(s)), + jp2twi: (s) => opencc.s2twi(opencc.t2s(opencc.jp2t(s))), + }; + + Object.keys(ConversionType).forEach((key) => { + OpenCC.prototype[key.toLowerCase()] = (s) => ChineseConverter.convert(s, ConversionType[key], context); + }); + + return OpenCC; + })(), + }; + + /** + * @type {Internal.OpenCC} + */ + const opencc = new _.OpenCC(); + + return opencc; +}; \ No newline at end of file diff --git a/app/src/main/assets/modules/__qrcode__.js b/app/src/main/assets/modules/__qrcode__.js index 111c6b32c..4ae9ded1d 100644 --- a/app/src/main/assets/modules/__qrcode__.js +++ b/app/src/main/assets/modules/__qrcode__.js @@ -61,10 +61,14 @@ module.exports = function (scriptRuntime, scope) { if (img === null) { throw TypeError(`Invalid image of path "${arguments[0]}" for qrcode.detectAll(img, options?)`); } + + let argArray = Array.from(arguments); + argArray.splice(0, 1, img.oneShot()); + // @Overload // detectAll(img: ImageWrapper): QrCode.Result[]; // detectAll(img: ImageWrapper, options: DetectOptionsWithoutIsAll): QrCode.Result[]; - return this.detectAll(img.oneShot(), arguments[1]); + return this.detectAll.apply(this, argArray); } if (!(arguments[0] instanceof ImageWrapper)) { diff --git a/app/src/main/assets/modules/__selector__.js b/app/src/main/assets/modules/__selector__.js index 0e4ee458b..b4e787961 100644 --- a/app/src/main/assets/modules/__selector__.js +++ b/app/src/main/assets/modules/__selector__.js @@ -32,8 +32,12 @@ module.exports = function (scriptRuntime, scope) { return Selector; })(), javaObjectInstance: new java.lang.Object(), + scopeAugmentMethodBlacklist: [ + 'plus', 'append', + ], isInJavaObject: key => key in _.javaObjectInstance, isInScope: key => key in scope, + isInScopeAugmentMethodBlacklist: key => _.scopeAugmentMethodBlacklist.includes(key), scopeAugment() { Object.assign(scope, { pickup(root, selector, compass, resultType, callback) { @@ -144,7 +148,7 @@ module.exports = function (scriptRuntime, scope) { }); for (let method in scriptRuntime.selector()) { - if (_.isInJavaObject(method) || _.isInScope(method)) { + if (_.isInJavaObject(method) || _.isInScope(method) || _.isInScopeAugmentMethodBlacklist(method)) { // @Caution by SuperMonster003 as of Oct 23, 2022. // ! The following methods have been assigned by 'automator' module, // ! which not belonging to UiSelector: diff --git a/app/src/main/assets/modules/__threads__.js b/app/src/main/assets/modules/__threads__.js index 236dd39c1..40def036a 100644 --- a/app/src/main/assets/modules/__threads__.js +++ b/app/src/main/assets/modules/__threads__.js @@ -6,6 +6,8 @@ * @return {Internal.Threads} */ module.exports = function (scriptRuntime, scope) { + + const Throwable = java.lang.Throwable; const Synchronizer = org.mozilla.javascript.Synchronizer; const TimerThread = org.autojs.autojs.core.looper.TimerThread; diff --git a/app/src/main/assets/modules/__ui__.js b/app/src/main/assets/modules/__ui__.js index cb9d0f3d6..e40b27f6c 100644 --- a/app/src/main/assets/modules/__ui__.js +++ b/app/src/main/assets/modules/__ui__.js @@ -10,8 +10,17 @@ let { files } = global; * @return {Internal.UI} */ module.exports = function (scriptRuntime, scope) { + + const Looper = android.os.Looper; + const Runnable = java.lang.Runnable; + const ContextThemeWrapper = android.view.ContextThemeWrapper; const ViewExtras = org.autojs.autojs.core.ui.ViewExtras; + const JsListView = org.autojs.autojs.core.ui.widget.JsListView; + const JsGridView = org.autojs.autojs.core.ui.widget.JsGridView; const JsViewHelper = org.autojs.autojs.core.ui.JsViewHelper; + const ThemeColor = org.autojs.autojs.theme.ThemeColor; + const DynamicLayoutInflater = org.autojs.autojs.core.ui.inflater.DynamicLayoutInflater; + const ColorDrawable = android.graphics.drawable.ColorDrawable; require('object-observe-lite.min').call(scope); require('array-observe.min').call(scope); diff --git a/app/src/main/assets/modules/__util__.js b/app/src/main/assets/modules/__util__.js index a6f458776..36cdd0500 100644 --- a/app/src/main/assets/modules/__util__.js +++ b/app/src/main/assets/modules/__util__.js @@ -27,8 +27,11 @@ * @return {Internal.Util} */ module.exports = function (scriptRuntime, scope) { + + const Build = android.os.Build; const Arrays = java.util.Arrays; const HashMap = java.util.HashMap; + const JavaUtils = org.autojs.autojs.util.JavaUtils; let _ = { Util: (/* @IIFE */ () => { diff --git a/app/src/main/assets/modules/jvm-npm.js b/app/src/main/assets/modules/jvm-npm.js index 293b973fb..145627a08 100644 --- a/app/src/main/assets/modules/jvm-npm.js +++ b/app/src/main/assets/modules/jvm-npm.js @@ -19,8 +19,11 @@ /* jshint evil: true */ ( /* @ModuleIIFE */ () => { + + const File = java.io.File; const Scanner = java.util.Scanner; const System = java.lang.System; + const Thread = java.lang.Thread; let _ = { Module: (/* @IIFE */ () => { diff --git a/app/src/main/assets/modules/ocr-mlkit.js b/app/src/main/assets/modules/ocr-mlkit.js index 41c3c84dd..a52ce78f2 100644 --- a/app/src/main/assets/modules/ocr-mlkit.js +++ b/app/src/main/assets/modules/ocr-mlkit.js @@ -30,15 +30,23 @@ module.exports = function (scriptRuntime, scope) { OcrMLKitCtor.prototype = { constructor: OcrMLKitCtor, recognizeTextMethodCreator(options) { + ApkBuilder.Libs.ensure(ocr['_modeName']['mlkit'], ApkBuilder.Libs.MLKIT_GOOGLE_OCR); return function (img) { return Array.from(rtOcrMLKit.recognizeText(img)); }; }, + recognizeText() { + /* Stub. */ + }, detectMethodCreator(options) { + ApkBuilder.Libs.ensure(ocr['_modeName']['mlkit'], ApkBuilder.Libs.MLKIT_GOOGLE_OCR); return function (img) { return Array.from(rtOcrMLKit.detect(img).toArray()); }; }, + detect() { + /* Stub. */ + }, }; return OcrMLKitCtor; diff --git a/app/src/main/assets/modules/ocr-paddle.js b/app/src/main/assets/modules/ocr-paddle.js index 8a373b64b..f11913d65 100644 --- a/app/src/main/assets/modules/ocr-paddle.js +++ b/app/src/main/assets/modules/ocr-paddle.js @@ -30,6 +30,7 @@ module.exports = function (scriptRuntime, scope) { OcrPaddleCtor.prototype = { constructor: OcrPaddleCtor, recognizeTextMethodCreator(options) { + ApkBuilder.Libs.ensure(ocr['_modeName']['paddle'], ApkBuilder.Libs.PADDLE_LITE); return function (img) { const { cpuThreadNum, useSlim } = options; @@ -43,7 +44,11 @@ module.exports = function (scriptRuntime, scope) { )); }; }, + recognizeText() { + /* Stub. */ + }, detectMethodCreator(options) { + ApkBuilder.Libs.ensure(ocr['_modeName']['paddle'], ApkBuilder.Libs.PADDLE_LITE); return function (img) { const { cpuThreadNum, useSlim } = options; @@ -57,6 +62,9 @@ module.exports = function (scriptRuntime, scope) { ).toArray()); }; }, + detect() { + /* Stub. */ + }, }; return OcrPaddleCtor; diff --git a/app/src/main/assets/modules/result-adapter.js b/app/src/main/assets/modules/result-adapter.js index 3930073c1..535df78f2 100644 --- a/app/src/main/assets/modules/result-adapter.js +++ b/app/src/main/assets/modules/result-adapter.js @@ -1,4 +1,7 @@ ( /* @ModuleIIFE */ () => { + + const Looper = android.os.Looper; + let _ = { isUiThread() { return Looper.myLooper() === Looper.getMainLooper(); diff --git a/app/src/main/java/androidx/recyclerview/widget/ThemeColorRecyclerView.java b/app/src/main/java/androidx/recyclerview/widget/ThemeColorRecyclerView.java index 336de3d57..87fb05798 100644 --- a/app/src/main/java/androidx/recyclerview/widget/ThemeColorRecyclerView.java +++ b/app/src/main/java/androidx/recyclerview/widget/ThemeColorRecyclerView.java @@ -14,7 +14,7 @@ import java.lang.reflect.Field; /** - * Created by Stardust on 2016/8/14. + * Created by Stardust on Aug 14, 2016. */ public class ThemeColorRecyclerView extends RecyclerView implements ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/AbstractAutoJs.kt b/app/src/main/java/org/autojs/autojs/AbstractAutoJs.kt index daf90195e..c72e726e4 100644 --- a/app/src/main/java/org/autojs/autojs/AbstractAutoJs.kt +++ b/app/src/main/java/org/autojs/autojs/AbstractAutoJs.kt @@ -41,7 +41,7 @@ import org.mozilla.javascript.WrappedException import java.io.File /** - * Created by Stardust on 2017/11/29. + * Created by Stardust on Nov 29, 2017. * Modified by SuperMonster003 as of Jun 10, 2022. * Transformed by SuperMonster003 on Oct 10, 2022. * Modified by LZX284 (https://github.com/LZX284) as of Sep 30, 2023. diff --git a/app/src/main/java/org/autojs/autojs/App.kt b/app/src/main/java/org/autojs/autojs/App.kt index dda54d42f..1bbc7474f 100644 --- a/app/src/main/java/org/autojs/autojs/App.kt +++ b/app/src/main/java/org/autojs/autojs/App.kt @@ -40,7 +40,7 @@ import java.lang.ref.WeakReference import java.lang.reflect.Method /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. * Modified by SuperMonster003 as of Aug 23, 2022. */ class App : MultiDexApplication() { diff --git a/app/src/main/java/org/autojs/autojs/AutoJs.kt b/app/src/main/java/org/autojs/autojs/AutoJs.kt index 2d319f4b3..861643e65 100644 --- a/app/src/main/java/org/autojs/autojs/AutoJs.kt +++ b/app/src/main/java/org/autojs/autojs/AutoJs.kt @@ -33,7 +33,7 @@ import java.util.concurrent.Executors import org.autojs.autojs.inrt.autojs.AutoJs as AutoJsInrt /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. * Transformed by SuperMonster003 on Oct 10, 2022. * Modified by LZX284 (https://github.com/LZX284) as of Sep 30, 2023. diff --git a/app/src/main/java/org/autojs/autojs/annotation/ScriptClass.java b/app/src/main/java/org/autojs/autojs/annotation/ScriptClass.java index c57dd6878..553ba56e2 100644 --- a/app/src/main/java/org/autojs/autojs/annotation/ScriptClass.java +++ b/app/src/main/java/org/autojs/autojs/annotation/ScriptClass.java @@ -6,7 +6,7 @@ import java.lang.annotation.Target; /** - * Created by Stardust on 2017/4/3. + * Created by Stardust on Apr 3, 2017. */ @Retention(RetentionPolicy.SOURCE) @Target(ElementType.TYPE) diff --git a/app/src/main/java/org/autojs/autojs/annotation/ScriptInterface.java b/app/src/main/java/org/autojs/autojs/annotation/ScriptInterface.java index d36115f96..7ac223003 100644 --- a/app/src/main/java/org/autojs/autojs/annotation/ScriptInterface.java +++ b/app/src/main/java/org/autojs/autojs/annotation/ScriptInterface.java @@ -6,7 +6,7 @@ import java.lang.annotation.Target; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ @Retention(RetentionPolicy.SOURCE) @Target({ElementType.METHOD}) diff --git a/app/src/main/java/org/autojs/autojs/annotation/ScriptVariable.kt b/app/src/main/java/org/autojs/autojs/annotation/ScriptVariable.kt index c3ca21ce1..b4e8f167c 100644 --- a/app/src/main/java/org/autojs/autojs/annotation/ScriptVariable.kt +++ b/app/src/main/java/org/autojs/autojs/annotation/ScriptVariable.kt @@ -1,7 +1,7 @@ package org.autojs.autojs.annotation /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ @Retention(AnnotationRetention.SOURCE) @Target(AnnotationTarget.FIELD) diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt index 6f608d3d9..0c1f892a6 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt @@ -1,19 +1,25 @@ package org.autojs.autojs.apkbuilder +import android.content.Context +import android.content.pm.PackageManager.ApplicationInfoFlags +import android.content.pm.PackageManager.GET_SHARED_LIBRARY_FILES import android.content.res.AssetManager import android.graphics.Bitmap import android.graphics.BitmapFactory +import android.os.Build import android.util.Log import com.reandroid.arsc.chunk.TableBlock -import org.autojs.autojs.apkbuilder.util.StreamUtils import org.autojs.autojs.app.GlobalAppContext import org.autojs.autojs.engine.encryption.AdvancedEncryptionStandard +import org.autojs.autojs.io.Zip import org.autojs.autojs.pio.PFiles import org.autojs.autojs.project.BuildInfo import org.autojs.autojs.project.ProjectConfig import org.autojs.autojs.script.EncryptedScriptFileHeader.writeHeader import org.autojs.autojs.script.JavaScriptFileSource import org.autojs.autojs.util.MD5Utils +import org.autojs.autojs6.BuildConfig +import org.autojs.autojs6.R import pxb.android.StringItem import pxb.android.axml.AxmlWriter import zhao.arsceditor.ResDecoder.ARSCDecoder @@ -21,30 +27,36 @@ import java.io.* import java.util.concurrent.Callable /** - * Created by Stardust on 2017/10/24. + * Created by Stardust on Oct 24, 2017. * Modified by SuperMonster003 as of Jul 8, 2022. */ -open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: File, private val mWorkspacePath: String) { +open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File, private val workspacePath: String) { private var mProgressCallback: ProgressCallback? = null - private val mApkPackager = ApkPackager(apkInputStream, mWorkspacePath) private var mArscPackageName: String? = null private var mManifestEditor: ManifestEditor? = null private var mInitVector: String? = null private var mKey: String? = null - private val mAssetManager: AssetManager by lazy { GlobalAppContext.get().assets } + private lateinit var mAppConfig: AppConfig + + private val mApkPackager = ApkPackager(apkInputStream, workspacePath) + + private val mAssetManager: AssetManager by lazy { globalContext.assets } + private val mNativePath by lazy { File(globalContext.cacheDir, "native-lib").path } + + private var mLibsIncludes = Libs.DEFALUT_INCLUDES.toMutableList() + private var mAssetsFileIncludes = Assets.File.DEFAULT_INCLUDES.toMutableList() + private var mAssetsDirExcludes = Assets.Dir.DEFAULT_EXCLUDES.toMutableList() private val mManifestFile - get() = File(mWorkspacePath, "AndroidManifest.xml") + get() = File(workspacePath, "AndroidManifest.xml") private val mResourcesArscFile - get() = File(mWorkspacePath, "resources.arsc") - - private lateinit var mAppConfig: AppConfig + get() = File(workspacePath, "resources.arsc") init { - PFiles.ensureDir(mOutApkFile.path) + PFiles.ensureDir(outApkFile.path) } fun setProgressCallback(callback: ProgressCallback?) = also { mProgressCallback = callback } @@ -52,61 +64,70 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil @Throws(IOException::class) fun prepare() = also { mProgressCallback?.let { callback -> GlobalAppContext.post { callback.onPrepare(this) } } - File(mWorkspacePath).mkdirs() + File(workspacePath).mkdirs() mApkPackager.unzip() - copyAssetsRecursively("", File(mWorkspacePath, "assets")) + unzipLibs() } @Throws(IOException::class) fun setScriptFile(path: String?) = also { path?.let { when { - PFiles.isDir(it) -> copyDir("assets/project/", it) - else -> replaceFile("assets/project/main.js", it) + PFiles.isDir(it) -> copyDir(it, "assets/project/") + else -> replaceFile(it, "assets/project/main.js") } } } @Throws(IOException::class) - fun copyDir(relativePath: String, path: String) { - val fromDir = File(path) - val toDir = File(mWorkspacePath, relativePath).apply { mkdir() } - fromDir.listFiles()?.forEach { child -> - if (child.isFile) { - if (child.name.endsWith(".js")) { - encrypt(toDir, child) + @Suppress("SameParameterValue") + private fun copyDir(srcPath: String, relativeDestPath: String) { + copyDir(File(srcPath), relativeDestPath) + } + + @Throws(IOException::class) + fun copyDir(srcFile: File, relativeDestPath: String) { + val destDirFile = File(workspacePath, relativeDestPath).apply { mkdir() } + srcFile.listFiles()?.forEach { srcChildFile -> + if (srcChildFile.isFile) { + if (srcChildFile.name.endsWith(".js")) { + encryptToDir(srcChildFile, destDirFile) } else { - StreamUtils.write(FileInputStream(child), FileOutputStream(File(toDir, child.name))) + srcChildFile.copyTo(File(destDirFile, srcChildFile.name), true) } } else { - if (!mAppConfig.ignoredDirs.contains(child)) { - copyDir(PFiles.join(relativePath, child.name + "/"), child.path) + if (!mAppConfig.ignoredDirs.contains(srcChildFile)) { + copyDir(srcChildFile, PFiles.join(relativeDestPath, srcChildFile.name + File.separator)) } } } } @Throws(IOException::class) - private fun encrypt(toDir: File, file: File) = encrypt(FileOutputStream(File(toDir, file.name)), file) - - @Throws(IOException::class) - private fun encrypt(fos: FileOutputStream, file: File) { - try { - writeHeader(fos, JavaScriptFileSource(file).executionMode.toShort()) + private fun encrypt(srcFile: File, destFile: File) { + destFile.outputStream().use { os -> + writeHeader(os, JavaScriptFileSource(srcFile).executionMode.toShort()) AdvancedEncryptionStandard(mKey!!.toByteArray(), mInitVector!!) - .encrypt(PFiles.readBytes(file.path)) - .let { bytes -> fos.apply { write(bytes) }.apply { close() } } - } catch (e: Exception) { - throw IOException(e) + .encrypt(PFiles.readBytes(srcFile.path)) + .let { bytes -> os.write(bytes) } } } + private fun encryptToDir(srcFile: File, destDirFile: File) { + val destFile = File(destDirFile, srcFile.name) + encrypt(srcFile, destFile) + } + @Throws(IOException::class) - fun replaceFile(relativePath: String, newFilePath: String) = also { - if (newFilePath.endsWith(".js")) { - encrypt(FileOutputStream(File(mWorkspacePath, relativePath)), File(newFilePath)) + fun replaceFile(srcPath: String, relativeDestPath: String) = replaceFile(File(srcPath), relativeDestPath) + + @Throws(IOException::class) + fun replaceFile(srcFile: File, relativeDestPath: String) = also { + val destFile = File(workspacePath, relativeDestPath) + if (destFile.name.endsWith(".js")) { + encrypt(srcFile, destFile) } else { - StreamUtils.write(FileInputStream(newFilePath), FileOutputStream(File(mWorkspacePath, relativePath))) + srcFile.copyTo(destFile, true) } } @@ -121,6 +142,8 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil setArscPackageName(packageName) updateProjectConfig(this) + copyAssetsRecursively("", File(workspacePath, "assets")) + copyLibraries(this) setScriptFile(sourcePath) } } @@ -143,14 +166,36 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil .setPackageName(appConfig.packageName) .setVersionName(appConfig.versionName) .setVersionCode(appConfig.versionCode) - .also { - it.buildInfo = BuildInfo.generate(appConfig.versionCode.toLong()) - PFiles.write(File(mWorkspacePath, "assets/project/project.json").path, it.toJson()) + .also { config -> + config.buildInfo = BuildInfo.generate(appConfig.versionCode.toLong()) + File(workspacePath, "assets/project/project.json").also { file -> + file.parentFile?.let { parent -> if (!parent.exists()) parent.mkdirs() } + }.writeText(config.toJson()) } } }.run { mKey = MD5Utils.md5(packageName + versionName + mainScriptFile) mInitVector = MD5Utils.md5(buildInfo.buildId + name).substring(0, 16) + if (appConfig.libs.contains(Constants.OPENCV)) { + mLibsIncludes += Libs.OPENCV.toSet() + mAssetsDirExcludes -= Assets.Dir.OPENCV.toSet() + } + if (appConfig.libs.contains(Constants.MLKIT_GOOGLE_OCR)) { + mLibsIncludes += Libs.MLKIT_GOOGLE_OCR.toSet() + mAssetsDirExcludes -= Assets.Dir.MLKIT_GOOGLE_OCR.toSet() + } + if (appConfig.libs.contains(Constants.PADDLE_LITE)) { + mLibsIncludes += Libs.PADDLE_LITE.toSet() + Libs.PADDLE_LITE_EXT.toSet() + mAssetsDirExcludes -= Assets.Dir.PADDLE_LITE.toSet() + } + if (appConfig.libs.contains(Constants.MLKIT_BARCODE)) { + mLibsIncludes += Libs.MLKIT_BARCODE.toSet() + mAssetsDirExcludes -= Assets.Dir.MLKIT_BARCODE.toSet() + } + if (appConfig.libs.contains(Constants.OPENCC)) { + mLibsIncludes += Libs.OPENCC.toSet() + mAssetsDirExcludes -= Assets.Dir.OPENCC.toSet() + } } } @@ -167,7 +212,7 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil val appIcon = packageBlock.getOrCreate("", ICON_RES_DIR, ICON_NAME) val appIconPath = appIcon.resValue.decodeValue() Log.d(TAG, "Icon path: $appIconPath") - val file = File(mWorkspacePath, appIconPath).also { + val file = File(workspacePath, appIconPath).also { if (!it.exists()) { File(it.parent!!).mkdirs() it.createNewFile() @@ -186,6 +231,11 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil if (targetFile.isFile && targetFile.exists()) return val list = mAssetManager.list(assetPath) ?: return if (list.isEmpty()) /* asset is file */ { + if (!assetPath.contains(File.separatorChar)) /* assets root dir */ { + if (!mAssetsFileIncludes.contains(assetPath)) { + return + } + } mAssetManager.open(assetPath).use { input -> FileOutputStream(targetFile.absolutePath).use { output -> input.copyTo(output) @@ -193,6 +243,9 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil } } } else /* asset is folder */ { + if (mAssetsDirExcludes.any { assetPath.matches(Regex("$it(/[^/]+)*")) }) { + return + } targetFile.delete() targetFile.mkdir() list.forEach { @@ -205,14 +258,14 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil @Throws(Exception::class) fun sign() = also { mProgressCallback?.let { callback -> GlobalAppContext.post { callback.onSign(this) } } - val fos = FileOutputStream(mOutApkFile) - TinySign.sign(File(mWorkspacePath), fos) + val fos = FileOutputStream(outApkFile) + TinySign.sign(File(workspacePath), fos) fos.close() } fun cleanWorkspace() = also { mProgressCallback?.let { callback -> GlobalAppContext.post { callback.onClean(this) } } - delete(File(mWorkspacePath)) + delete(File(workspacePath)) } @Throws(IOException::class) @@ -220,8 +273,8 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil @Throws(IOException::class) private fun buildArsc() { - val oldArsc = File(mWorkspacePath, "resources.arsc") - val newArsc = File(mWorkspacePath, "resources.arsc.new") + val oldArsc = File(workspacePath, "resources.arsc") + val newArsc = File(workspacePath, "resources.arsc.new") val decoder = ARSCDecoder(BufferedInputStream(FileInputStream(oldArsc)), null, false) decoder.CloneArsc(FileOutputStream(newArsc), mArscPackageName, true) oldArsc.delete() @@ -256,6 +309,10 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil var ignoredDirs = ArrayList() var icon: Callable? = null private set + var abis: List = emptyList() + private set + var libs: List = emptyList() + private set fun ignoreDir(dir: File) = also { ignoredDirs.add(dir) } @@ -273,6 +330,10 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil fun setIcon(iconPath: String?) = also { iconPath?.let { this.icon = Callable { BitmapFactory.decodeFile(it) } } } + fun setAbis(abis: List?) = also { abis?.let { this.abis = it } } + + fun setLibs(libs: List?) = also { libs?.let { this.libs = it } } + companion object { @JvmStatic fun fromProjectConfig(projectDir: String?, projectConfig: ProjectConfig) = AppConfig() @@ -298,13 +359,144 @@ open class ApkBuilder(apkInputStream: InputStream?, private val mOutApkFile: Fil } } - companion object { + private fun unzipLibs() { + Zip.unzip(appApkFile, File(mNativePath), "lib/") + } - private val TAG = ApkBuilder::class.java.simpleName + private fun copyLibraries(config: AppConfig) { + config.abis.forEach { abi -> + mLibsIncludes.distinct().forEach { name -> + runCatching { + File(mNativePath, "$abi/$name").copyTo( + File(workspacePath, "lib/$abi/$name"), + overwrite = true + ) + } + } + } + } + + companion object { const val ICON_NAME = "ic_launcher" const val ICON_RES_DIR = "mipmap" + const val TEMPLATE_APK_NAME = "template.apk" + + private val TAG = ApkBuilder::class.java.simpleName + + private val globalContext: Context by lazy { GlobalAppContext.get() } + + val appApkFile by lazy { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + File(globalContext.packageManager.getApplicationInfo(globalContext.packageName, ApplicationInfoFlags.of(GET_SHARED_LIBRARY_FILES.toLong())).sourceDir) + } else { + File(globalContext.packageManager.getApplicationInfo(globalContext.packageName, 0).sourceDir) + } + } + + } + + @Suppress("SpellCheckingInspection") + object Libs { + + private val BASIC = listOf( + "libjackpal-androidterm5.so", /* Terminal Emulator. */ + "libjackpal-termexec2.so", /* Terminal Emulator. */ + ) + + private val MISCELLANEOUS = emptyList() + + @JvmField + val OPENCV = listOf( + "libc++_shared.so", + "libopencv_java4.so" + ) + + @JvmField + val MLKIT_GOOGLE_OCR = listOf( + "libmlkit_google_ocr_pipeline.so" + ) + + @JvmField + val PADDLE_LITE = listOf( + "libc++_shared.so", + "libpaddle_light_api_shared.so", + "libNative.so" + ) + + val PADDLE_LITE_EXT = listOf( + "libhiai.so", + "libhiai_ir.so", + "libhiai_ir_build.so", + ) + + @JvmField + val MLKIT_BARCODE = emptyList() + + @JvmField + val OPENCC = emptyList() + + val DEFALUT_INCLUDES: List = (BASIC + MISCELLANEOUS).distinct() + + @JvmStatic + fun ensure(name: String, libNameList: List) { + if (!BuildConfig.isInrt) return + val nativeLibraryDir = File(globalContext.applicationInfo.nativeLibraryDir) + val primaryNativeLibraries = nativeLibraryDir.list()?.toList() ?: emptyList() + if (!primaryNativeLibraries.containsAll(libNameList)) { + throw Exception(globalContext.getString(R.string.error_module_does_not_work_due_to_the_lack_of_necessary_library_files, name)) + } + } + + } + + @Suppress("SpellCheckingInspection") + object Assets { + object File { + + private val BASIC = listOf( + "init.js", "roboto_medium.ttf" + ) + + private val MISCELLANEOUS = emptyList() + + val DEFAULT_INCLUDES = (BASIC + MISCELLANEOUS).distinct() + + } + + object Dir { + + private val BASIC = listOf("doc", "docs", "editor", "indices", "js-beautify", "sample") + + private val MISCELLANEOUS = listOf("stored-locales") + + @JvmField + val OPENCV = emptyList() + + @JvmField + val MLKIT_GOOGLE_OCR = listOf("mlkit-google-ocr-models") + + @JvmField + val MLKIT_BARCODE = listOf("mlkit_barcode_models") + + @JvmField + val PADDLE_LITE = listOf("models") + + @JvmField + val OPENCC = listOf("openccdata") + + val DEFAULT_EXCLUDES = (BASIC + MLKIT_GOOGLE_OCR + MLKIT_BARCODE + PADDLE_LITE + OPENCC + MISCELLANEOUS).distinct() + + } + } + + object Constants { + const val OPENCV = "OpenCV" + const val MLKIT_GOOGLE_OCR = "MLKit Google OCR" + const val PADDLE_LITE = "MLKit Barcode" + const val MLKIT_BARCODE = "Paddle Lite" + const val OPENCC = "OpenCC" } } \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilderPluginHelper.java b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilderPluginHelper.java deleted file mode 100644 index b8417d95e..000000000 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilderPluginHelper.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.autojs.autojs.apkbuilder; - -import android.content.Context; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; - -import org.autojs.autojs.pio.UncheckedIOException; - -import org.autojs.autojs6.BuildConfig; - -import org.autojs.autojs.util.DeveloperUtils; - -import java.io.IOException; -import java.io.InputStream; - -/** - * Created by Stardust on 2017/11/29. - */ -public class ApkBuilderPluginHelper { - - private static final String PLUGIN_PACKAGE_NAME = "org.autojs.apkbuilderplugin"; - private static final boolean DEBUG_APK_PLUGIN = false; - - public static final String TEMPLATE_APK_PATH = "template.apk"; - - public static boolean isPluginAvailable(Context context) { - // return DeveloperUtils.checkSignature(context, PLUGIN_PACKAGE_NAME); - try { - context.getPackageManager().getPackageInfo(PLUGIN_PACKAGE_NAME, 0); - } catch (PackageManager.NameNotFoundException e) { - return false; - } - return true; - } - - public static InputStream openTemplateApk(Context context) { - try { - if (DEBUG_APK_PLUGIN && BuildConfig.DEBUG) { - return context.getAssets().open(TEMPLATE_APK_PATH); - } - return context.getPackageManager().getResourcesForApplication(PLUGIN_PACKAGE_NAME) - .getAssets().open(TEMPLATE_APK_PATH); - } catch (IOException e) { - throw new UncheckedIOException(e); - } catch (PackageManager.NameNotFoundException e) { - throw new RuntimeException(e); - } - } - - public static int getPluginVersion(Context context) { - try { - PackageInfo info = context.getPackageManager().getPackageInfo(PLUGIN_PACKAGE_NAME, 0); - return info.versionCode; - } catch (PackageManager.NameNotFoundException e) { - return -1; - } - } -} diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkPackager.java b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkPackager.java index 7945514af..cc91a7a92 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkPackager.java +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkPackager.java @@ -16,7 +16,7 @@ import pxb.android.tinysign.TinySign; /** - * Created by Stardust on 2017/10/23. + * Created by Stardust on Oct 23, 2017. */ public class ApkPackager { diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/ManifestEditor.java b/app/src/main/java/org/autojs/autojs/apkbuilder/ManifestEditor.java index 64f116865..f13e745e5 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/ManifestEditor.java +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/ManifestEditor.java @@ -10,7 +10,7 @@ import pxb.android.axml.NodeVisitor; /** - * Created by Stardust on 2017/10/23. + * Created by Stardust on Oct 23, 2017. */ public class ManifestEditor { diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/TinySign.java b/app/src/main/java/org/autojs/autojs/apkbuilder/TinySign.java index d14c8d341..f926c72d1 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/TinySign.java +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/TinySign.java @@ -46,7 +46,7 @@ private static void doDir(String prefix, File dir, ZipOutputStream zos, DigestOu if (f.isFile()) { doFile(prefix + f.getName(), f, zos, dos, m); } else { - doDir(prefix + f.getName() + "/", f, zos, dos, m); + doDir(prefix + f.getName() + File.separator, f, zos, dos, m); } } } @@ -168,7 +168,7 @@ private static void zipAndSha1(File dir, ZipOutputStream zos, DigestOutputStream if (f.isFile()) { doFile(f.getName(), f, zos, dos, m); } else { - doDir(f.getName() + "/", f, zos, dos, m); + doDir(f.getName() + File.separator, f, zos, dos, m); } } } diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/util/BoolFunction.java b/app/src/main/java/org/autojs/autojs/apkbuilder/util/BoolFunction.java index d8e65db3e..5d14a9544 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/util/BoolFunction.java +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/util/BoolFunction.java @@ -1,9 +1,10 @@ package org.autojs.autojs.apkbuilder.util; /** - * Created by Stardust on 2017/10/23. + * Created by Stardust on Oct 23, 2017. */ public interface BoolFunction { boolean accept(T t); + } diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/util/StreamUtils.java b/app/src/main/java/org/autojs/autojs/apkbuilder/util/StreamUtils.java index c4cfc605b..ae434822d 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/util/StreamUtils.java +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/util/StreamUtils.java @@ -6,7 +6,7 @@ import java.io.OutputStream; /** - * Created by Stardust on 2017/10/23. + * Created by Stardust on Oct 23, 2017. */ public class StreamUtils { diff --git a/app/src/main/java/org/autojs/autojs/app/CircularMenuOperationDialogBuilder.java b/app/src/main/java/org/autojs/autojs/app/CircularMenuOperationDialogBuilder.java index 9ca4ce40f..2540fa0a4 100644 --- a/app/src/main/java/org/autojs/autojs/app/CircularMenuOperationDialogBuilder.java +++ b/app/src/main/java/org/autojs/autojs/app/CircularMenuOperationDialogBuilder.java @@ -17,7 +17,7 @@ import java.util.ArrayList; /** - * Created by Stardust on 2017/6/26. + * Created by Stardust on Jun 26, 2017. */ public class CircularMenuOperationDialogBuilder extends AppLevelThemeDialogBuilder { diff --git a/app/src/main/java/org/autojs/autojs/app/DialogUtils.kt b/app/src/main/java/org/autojs/autojs/app/DialogUtils.kt index 3005ad788..e43d93fcf 100644 --- a/app/src/main/java/org/autojs/autojs/app/DialogUtils.kt +++ b/app/src/main/java/org/autojs/autojs/app/DialogUtils.kt @@ -19,7 +19,7 @@ import org.autojs.autojs.util.ViewUtils.showSnack import org.autojs.autojs6.R /** - * Created by Stardust on 2017/8/4. + * Created by Stardust on Aug 4, 2017. * Modified by SuperMonster003 as of Sep 10, 2022. * Transformed by SuperMonster003 on Oct 19, 2022. */ diff --git a/app/src/main/java/org/autojs/autojs/app/Fragment.java b/app/src/main/java/org/autojs/autojs/app/Fragment.java index 059a94afc..365b39a7d 100644 --- a/app/src/main/java/org/autojs/autojs/app/Fragment.java +++ b/app/src/main/java/org/autojs/autojs/app/Fragment.java @@ -10,7 +10,7 @@ import org.autojs.autojs.util.ViewUtils; /** - * Created by Stardust on 2017/1/30. + * Created by Stardust on Jan 30, 2017. */ public abstract class Fragment extends androidx.fragment.app.Fragment { diff --git a/app/src/main/java/org/autojs/autojs/app/FragmentPagerAdapterBuilder.java b/app/src/main/java/org/autojs/autojs/app/FragmentPagerAdapterBuilder.java index 5525c9c0d..03f00a42b 100644 --- a/app/src/main/java/org/autojs/autojs/app/FragmentPagerAdapterBuilder.java +++ b/app/src/main/java/org/autojs/autojs/app/FragmentPagerAdapterBuilder.java @@ -12,7 +12,7 @@ import java.util.List; /** - * Created by Stardust on 2017/3/24. + * Created by Stardust on Mar 24, 2017. */ public class FragmentPagerAdapterBuilder { diff --git a/app/src/main/java/org/autojs/autojs/app/GlobalAppContext.java b/app/src/main/java/org/autojs/autojs/app/GlobalAppContext.java index 2463cd295..be5716e53 100644 --- a/app/src/main/java/org/autojs/autojs/app/GlobalAppContext.java +++ b/app/src/main/java/org/autojs/autojs/app/GlobalAppContext.java @@ -7,7 +7,7 @@ import android.os.Looper; /** - * Created by Stardust on 2018/3/22. + * Created by Stardust on Mar 22, 2018. */ public class GlobalAppContext { diff --git a/app/src/main/java/org/autojs/autojs/app/OnActivityResultDelegate.java b/app/src/main/java/org/autojs/autojs/app/OnActivityResultDelegate.java index 5ad333ca4..367ed49e0 100644 --- a/app/src/main/java/org/autojs/autojs/app/OnActivityResultDelegate.java +++ b/app/src/main/java/org/autojs/autojs/app/OnActivityResultDelegate.java @@ -8,7 +8,7 @@ import java.util.List; /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. */ public interface OnActivityResultDelegate { diff --git a/app/src/main/java/org/autojs/autojs/app/SimpleActivityLifecycleCallbacks.java b/app/src/main/java/org/autojs/autojs/app/SimpleActivityLifecycleCallbacks.java index f512896e2..7b124eab7 100644 --- a/app/src/main/java/org/autojs/autojs/app/SimpleActivityLifecycleCallbacks.java +++ b/app/src/main/java/org/autojs/autojs/app/SimpleActivityLifecycleCallbacks.java @@ -5,7 +5,7 @@ import android.os.Bundle; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ public class SimpleActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks { diff --git a/app/src/main/java/org/autojs/autojs/app/tool/FloatingButtonTool.kt b/app/src/main/java/org/autojs/autojs/app/tool/FloatingButtonTool.kt index ba264a9e1..a37502c6b 100644 --- a/app/src/main/java/org/autojs/autojs/app/tool/FloatingButtonTool.kt +++ b/app/src/main/java/org/autojs/autojs/app/tool/FloatingButtonTool.kt @@ -2,7 +2,6 @@ package org.autojs.autojs.app.tool import android.app.Activity import android.content.Context -import org.autojs.autojs.service.AccessibilityService import org.autojs.autojs.ui.floating.FloatyWindowManger import org.autojs.autojs.ui.main.drawer.ShowableItemHelper @@ -11,8 +10,6 @@ import org.autojs.autojs.ui.main.drawer.ShowableItemHelper */ open class FloatingButtonTool(final override val context: Context) : ShowableItemHelper { - private val mAccessibilityService: AccessibilityService = AccessibilityService(context) - override val isShowing get() = FloatyWindowManger.isCircularMenuShowing() @@ -20,10 +17,14 @@ open class FloatingButtonTool(final override val context: Context) : ShowableIte override fun show(): Boolean { FloatyWindowManger.showCircularMenu(context) - return when (isShowing) { - true -> true.also { mAccessibilityService.startIfNeeded() } - else -> false - } + // @Comment by SuperMonster003 on Nov 16, 2023. + // ! Seems pointless to force a11y service + // ! to start along with showing floating button. + // return when (isShowing) { + // true -> true.also { mAccessibilityService.startIfNeeded() } + // else -> false + // } + return isShowing } override fun showIfNeeded() { diff --git a/app/src/main/java/org/autojs/autojs/codegeneration/CodeGenerator.java b/app/src/main/java/org/autojs/autojs/codegeneration/CodeGenerator.java index 84e5a57b0..3b4436766 100644 --- a/app/src/main/java/org/autojs/autojs/codegeneration/CodeGenerator.java +++ b/app/src/main/java/org/autojs/autojs/codegeneration/CodeGenerator.java @@ -7,7 +7,7 @@ import org.autojs.autojs.core.automator.UiObject; /** - * Created by Stardust on 2017/12/7. + * Created by Stardust on Dec 7, 2017. */ public class CodeGenerator { diff --git a/app/src/main/java/org/autojs/autojs/codegeneration/ReadOnlyUiObject.java b/app/src/main/java/org/autojs/autojs/codegeneration/ReadOnlyUiObject.java index 5634eadb7..e31a43943 100644 --- a/app/src/main/java/org/autojs/autojs/codegeneration/ReadOnlyUiObject.java +++ b/app/src/main/java/org/autojs/autojs/codegeneration/ReadOnlyUiObject.java @@ -10,7 +10,7 @@ import org.autojs.autojs.core.automator.UiObject; /** - * Created by Stardust on 2017/11/5. + * Created by Stardust on Nov 5, 2017. */ public class ReadOnlyUiObject extends UiObject { diff --git a/app/src/main/java/org/autojs/autojs/codegeneration/UiSelectorGenerator.kt b/app/src/main/java/org/autojs/autojs/codegeneration/UiSelectorGenerator.kt index 34ae2e386..78cf80c73 100644 --- a/app/src/main/java/org/autojs/autojs/codegeneration/UiSelectorGenerator.kt +++ b/app/src/main/java/org/autojs/autojs/codegeneration/UiSelectorGenerator.kt @@ -5,7 +5,7 @@ import org.autojs.autojs.core.automator.UiObject import org.autojs.autojs.tool.Consumer /** - * Created by Stardust on 2017/12/7. + * Created by Stardust on Dec 7, 2017. * Modified by SuperMonster003 as of Sep 2, 2022. */ class UiSelectorGenerator(private val mRoot: UiObject, private val mTarget: UiObject) { diff --git a/app/src/main/java/org/autojs/autojs/concurrent/ConcurrentArrayList.java b/app/src/main/java/org/autojs/autojs/concurrent/ConcurrentArrayList.java index 45293a3ff..c1f19b610 100644 --- a/app/src/main/java/org/autojs/autojs/concurrent/ConcurrentArrayList.java +++ b/app/src/main/java/org/autojs/autojs/concurrent/ConcurrentArrayList.java @@ -4,7 +4,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** - * Created by Stardust on 2017/12/30. + * Created by Stardust on Dec 30, 2017. */ public class ConcurrentArrayList { diff --git a/app/src/main/java/org/autojs/autojs/concurrent/UnderUseExecutors.java b/app/src/main/java/org/autojs/autojs/concurrent/UnderUseExecutors.java index e8e249ce5..addb2530e 100644 --- a/app/src/main/java/org/autojs/autojs/concurrent/UnderUseExecutors.java +++ b/app/src/main/java/org/autojs/autojs/concurrent/UnderUseExecutors.java @@ -4,7 +4,7 @@ import java.util.concurrent.Executors; /** - * Created by Stardust on 2017/5/2. + * Created by Stardust on May 2, 2017. */ public class UnderUseExecutors { diff --git a/app/src/main/java/org/autojs/autojs/concurrent/Value.java b/app/src/main/java/org/autojs/autojs/concurrent/Value.java index 26372d773..3b79eea33 100644 --- a/app/src/main/java/org/autojs/autojs/concurrent/Value.java +++ b/app/src/main/java/org/autojs/autojs/concurrent/Value.java @@ -1,7 +1,7 @@ package org.autojs.autojs.concurrent; /** - * Created by Stardust on 2017/12/27. + * Created by Stardust on Dec 27, 2017. */ public class Value { diff --git a/app/src/main/java/org/autojs/autojs/concurrent/VolatileBox.java b/app/src/main/java/org/autojs/autojs/concurrent/VolatileBox.java index e812d2bcc..3f5a36e9f 100644 --- a/app/src/main/java/org/autojs/autojs/concurrent/VolatileBox.java +++ b/app/src/main/java/org/autojs/autojs/concurrent/VolatileBox.java @@ -1,8 +1,7 @@ package org.autojs.autojs.concurrent; - /** - * Created by Stardust on 2017/5/8. + * Created by Stardust on May 8, 2017. * Modified by SuperMonster003 as of Jun 11, 2022. */ public class VolatileBox { diff --git a/app/src/main/java/org/autojs/autojs/concurrent/VolatileDispose.java b/app/src/main/java/org/autojs/autojs/concurrent/VolatileDispose.java index bef7e6648..896287af6 100644 --- a/app/src/main/java/org/autojs/autojs/concurrent/VolatileDispose.java +++ b/app/src/main/java/org/autojs/autojs/concurrent/VolatileDispose.java @@ -1,7 +1,7 @@ package org.autojs.autojs.concurrent; /** - * Created by Stardust on 2017/10/28. + * Created by Stardust on Oct 28, 2017. */ public class VolatileDispose { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityBridge.java b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityBridge.java index 42280b417..11e5b2d06 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityBridge.java +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityBridge.java @@ -7,6 +7,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import org.autojs.autojs.annotation.ScriptInterface; import org.autojs.autojs.core.activity.ActivityInfoProvider; import org.autojs.autojs.permission.UsageStatsPermission; import org.autojs.autojs.runtime.accessibility.AccessibilityConfig; @@ -17,9 +18,8 @@ import java.util.Collections; import java.util.List; - /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ public abstract class AccessibilityBridge { @@ -152,6 +152,7 @@ public AccessibilityConfig getConfig() { return mConfig; } + @ScriptInterface public void setAccessibilityListener(AccessibilityServiceCallback listener) { AccessibilityService.Companion.setCallback(listener); } diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityDelegate.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityDelegate.kt index 04ab695c1..89afc6763 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityDelegate.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityDelegate.kt @@ -4,7 +4,7 @@ import android.accessibilityservice.AccessibilityService import android.view.accessibility.AccessibilityEvent /** - * Created by Stardust on 2017/2/14. + * Created by Stardust on Feb 14, 2017. */ interface AccessibilityDelegate { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNodeInfoAllocator.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNodeInfoAllocator.kt index b65fd553e..7c33d1484 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNodeInfoAllocator.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNodeInfoAllocator.kt @@ -8,7 +8,7 @@ import androidx.core.view.accessibility.AccessibilityNodeInfoCompat import java.util.* /** - * Created by Stardust on 2017/3/22. + * Created by Stardust on Mar 22, 2017. * Modified by SuperMonster003 as of Jun 17, 2022. */ open class AccessibilityNodeInfoAllocator { @@ -110,7 +110,8 @@ open class AccessibilityNodeInfoAllocator { val global = AccessibilityNodeInfoAllocator() fun recycleList(root: AccessibilityNodeInfo, list: List) { - // FIXME: 2017/5/1 Issue #180 + // FIXME by Stardust on May 1, 2017. + // ! Issue #180. list.takeIf { SDK_INT < TIRAMISU } ?.filter { it !== root } ?.forEach { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNodeInfoHelper.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNodeInfoHelper.kt index 8025caa40..a7fd533e3 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNodeInfoHelper.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNodeInfoHelper.kt @@ -5,7 +5,7 @@ import android.view.accessibility.AccessibilityNodeInfo import androidx.core.view.accessibility.AccessibilityNodeInfoCompat /** - * Created by Stardust on 2017/3/6. + * Created by Stardust on Mar 6, 2017. */ object AccessibilityNodeInfoHelper { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNotificationObserver.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNotificationObserver.kt index ba5cac265..a537ac27e 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNotificationObserver.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityNotificationObserver.kt @@ -10,7 +10,7 @@ import java.util.ArrayList import java.util.concurrent.CopyOnWriteArrayList /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. */ class AccessibilityNotificationObserver(private val mContext: Context) : NotificationListener, AccessibilityDelegate { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityService.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityService.kt index dea5cfea2..21ac8eacc 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityService.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityService.kt @@ -1,7 +1,5 @@ package org.autojs.autojs.core.accessibility -import android.accessibilityservice.AccessibilityServiceInfo -import android.os.Build import android.util.Log import android.view.KeyEvent import android.view.accessibility.AccessibilityEvent @@ -13,14 +11,15 @@ import org.autojs.autojs.core.accessibility.SimpleActionAutomator.Companion.Acce import org.autojs.autojs.core.automator.AccessibilityEventWrapper import org.autojs.autojs.event.EventDispatcher import org.autojs.autojs.pref.Language -import org.autojs.autojs.pref.Pref -import java.util.* +import java.util.TreeMap +import java.util.concurrent.ExecutorService import java.util.concurrent.Executors import java.util.concurrent.TimeUnit import java.util.concurrent.locks.ReentrantLock /** - * Created by Stardust on 2017/5/2. + * Created by Stardust on May 2, 2017. + * Modified by SuperMonster003 as of Mar 20, 2022. */ open class AccessibilityService : android.accessibilityservice.AccessibilityService() { @@ -33,6 +32,10 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ private val gestureEventDispatcher = EventDispatcher() + private var mEventExecutor: ExecutorService? = null + private val eventExecutor: ExecutorService + get() = mEventExecutor ?: Executors.newSingleThreadExecutor().also { mEventExecutor = it } + private fun eventNameToType(event: String): Int { return try { AccessibilityEvent::class.java.getField( @@ -53,7 +56,6 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ override fun onAccessibilityEvent(event: AccessibilityEvent) { instance = this - connected = true val type = event.eventType eventBox[type]?.onAccessibilityEvent(AccessibilityEventWrapper(event)) if (containsAllEventTypes || eventTypes.contains(type)) { @@ -106,40 +108,26 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ override fun onDestroy() { Log.v(TAG, "onDestroy: $instance") - eventExecutor.shutdownNow() - eventExecutor.awaitTermination(1000L, TimeUnit.MILLISECONDS) + + instance = null + bridge = null + + mEventExecutor?.shutdownNow() callback?.onDisconnected() - connected = false + super.onDestroy() } override fun onServiceConnected() { - - Log.d(TAG, "onServiceConnected") - - instance = this - connected = true super.onServiceConnected() - + Log.d(TAG, "onServiceConnected: $serviceInfo") + instance = this + callback?.onConnected() LOCK.lock() - try { - ENABLED.signalAll() - serviceInfo = serviceInfo.also { info -> - AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS.let { - info.flags = (if (Pref.isStableModeEnabled) info.flags and it.inv() else info.flags or it) - } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE.let { - info.flags = (if (Pref.isGestureObservingEnabled) info.flags or it else info.flags and it.inv()) - } - } - } - callback?.onConnected() - } finally { - LOCK.unlock() - } - - // FIXME: 2017/2/12 有时在无障碍中开启服务后这里不会调用服务也不会运行,安卓的BUG??? + ENABLED.signalAll() + LOCK.unlock() + // FIXME by Stardust on Feb 12, 2017. + // ! 有时在无障碍中开启服务后这里不会调用服务也不会运行, 安卓的 BUG ??? } companion object { @@ -153,9 +141,6 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ private val LOCK = ReentrantLock() private val ENABLED = LOCK.newCondition() private var callback: AccessibilityServiceCallback? = null - private val eventExecutor = Executors.newSingleThreadExecutor() - - private var connected = false var instance: AccessibilityService? = null private set @@ -168,7 +153,7 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ val stickOnKeyObserver = OnKeyListener.Observer() - fun isRunning() = connected && instance != null + fun isRunning() = instance != null fun addDelegate(uniquePriority: Int, delegate: AccessibilityDelegate) { // @Hint by 抠脚本人 on Jul 10, 2023. @@ -184,10 +169,7 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ fun stop() = try { instance?.disableSelf() - eventExecutor.shutdownNow() - eventExecutor.awaitTermination(1000L, TimeUnit.MILLISECONDS) - callback?.onDisconnected() - connected = false + instance = null true } catch (e: Exception) { false @@ -227,5 +209,7 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ interface GestureListener { fun onGesture(gestureId: Int) } + } + } diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityServiceUsher.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityServiceUsher.kt new file mode 100644 index 000000000..d2db306ca --- /dev/null +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityServiceUsher.kt @@ -0,0 +1,35 @@ +package org.autojs.autojs.core.accessibility + +import android.accessibilityservice.AccessibilityServiceInfo +import android.os.Build +import android.util.Log +import org.autojs.autojs.pref.Pref + +class AccessibilityServiceUsher : AccessibilityService() { + + override fun onServiceConnected() { + Log.d(TAG, "onServiceConnected") + val serviceInfo = serviceInfo + if (Pref.isStableModeEnabled) { + serviceInfo.flags = serviceInfo.flags and AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS.inv() + } else { + serviceInfo.flags = serviceInfo.flags or AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (Pref.isGestureObservingEnabled) { + serviceInfo.flags = serviceInfo.flags or AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE + } else { + serviceInfo.flags = serviceInfo.flags and AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE.inv() + } + } + setServiceInfo(serviceInfo) + super.onServiceConnected() + } + + companion object { + + private val TAG = AccessibilityServiceUsher::class.java.simpleName + + } + +} \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityTool.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityTool.kt index 2ef8241d1..71d0d6991 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityTool.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/AccessibilityTool.kt @@ -8,6 +8,7 @@ import android.provider.Settings import android.provider.Settings.Secure import android.text.TextUtils import android.util.Log +import org.autojs.autojs.app.GlobalAppContext import org.autojs.autojs.pref.Pref import org.autojs.autojs.runtime.api.ProcessShell import org.autojs.autojs.runtime.exception.ScriptException @@ -18,13 +19,13 @@ import org.autojs.autojs.util.ViewUtils import org.autojs.autojs6.R /** - * Created by Stardust on 2017/1/26. + * Created by Stardust on Jan 26, 2017. * Modified by SuperMonster003 as of Feb 15, 2022. */ class AccessibilityTool(val context: Context) { private val tag: String = AccessibilityTool::class.java.simpleName - private val serviceName = "${context.packageName}/${AccessibilityService::class.java.name}" + private val serviceName = "${(GlobalAppContext.get()?: context).packageName}/${AccessibilityServiceUsher::class.java.name}" val service: Service = Service() @@ -56,7 +57,7 @@ class AccessibilityTool(val context: Context) { ) ?: return false TextUtils.SimpleStringSplitter(':').also { colonSplitter -> colonSplitter.setString(services) - val expectedComponentName = ComponentName(context, AccessibilityService::class.java) + val expectedComponentName = ComponentName(context, AccessibilityServiceUsher::class.java) while (colonSplitter.hasNext()) { val componentNameString = colonSplitter.next() val componentName = ComponentName.unflattenFromString(componentNameString) diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/KeyInterceptor.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/KeyInterceptor.kt index 68c277125..2b994fe19 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/KeyInterceptor.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/KeyInterceptor.kt @@ -5,7 +5,7 @@ import android.view.KeyEvent import java.util.concurrent.CopyOnWriteArrayList /** - * Created by Stardust on 2018/2/27. + * Created by Stardust on Feb 27, 2018. */ interface KeyInterceptor { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/LayoutInspectService.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/LayoutInspectService.kt index 0ecbd4e88..f1872398d 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/LayoutInspectService.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/LayoutInspectService.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.accessibility import android.accessibilityservice.AccessibilityServiceInfo /** - * Created by Stardust on 2017/7/13. + * Created by Stardust on Jul 13, 2017. */ class LayoutInspectService : AccessibilityService() { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/LayoutInspector.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/LayoutInspector.kt index 897a91492..6a58069d1 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/LayoutInspector.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/LayoutInspector.kt @@ -7,7 +7,7 @@ import java.util.concurrent.CopyOnWriteArrayList import java.util.concurrent.Executors /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. */ class LayoutInspector(private val mContext: Context) { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/NodeInfo.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/NodeInfo.kt index d6bdc32a5..fe902a873 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/NodeInfo.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/NodeInfo.kt @@ -14,7 +14,7 @@ import java.util.ArrayList import java.util.HashMap /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. * Modified by SuperMonster003 as of Jun 17, 2022. */ diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/NotificationListener.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/NotificationListener.kt index 02d9b1841..14664bfa2 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/NotificationListener.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/NotificationListener.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.accessibility import org.autojs.autojs.core.notification.Notification /** - * Created by Stardust on 2017/8/1. + * Created by Stardust on Aug 1, 2017. */ interface NotificationListener { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/OnKeyListener.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/OnKeyListener.kt index 65184213b..63f0c5e30 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/OnKeyListener.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/OnKeyListener.kt @@ -5,7 +5,7 @@ import android.view.KeyEvent import java.util.concurrent.CopyOnWriteArrayList /** - * Created by Stardust on 2017/7/18. + * Created by Stardust on Jul 18, 2017. */ interface OnKeyListener { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/SimpleActionAutomator.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/SimpleActionAutomator.kt index a66b86c72..2f4c705b1 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/SimpleActionAutomator.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/SimpleActionAutomator.kt @@ -30,7 +30,7 @@ import java.util.concurrent.atomic.AtomicInteger import android.accessibilityservice.AccessibilityService as AndroidAccessibilityService /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ class SimpleActionAutomator(private val accessibilityBridge: AccessibilityBridge, private val scriptRuntime: ScriptRuntime) { diff --git a/app/src/main/java/org/autojs/autojs/core/accessibility/UiSelector.kt b/app/src/main/java/org/autojs/autojs/core/accessibility/UiSelector.kt index 061c3bf42..f81254d3e 100644 --- a/app/src/main/java/org/autojs/autojs/core/accessibility/UiSelector.kt +++ b/app/src/main/java/org/autojs/autojs/core/accessibility/UiSelector.kt @@ -6,7 +6,6 @@ import android.os.Looper import android.os.SystemClock import android.view.accessibility.AccessibilityNodeInfo import androidx.annotation.FloatRange -import org.autojs.autojs.AutoJs import org.autojs.autojs.annotation.ScriptInterface import org.autojs.autojs.app.GlobalAppContext import org.autojs.autojs.concurrent.VolatileBox @@ -58,7 +57,7 @@ import org.mozilla.javascript.regexp.NativeRegExp import java.math.BigInteger /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Jun 11, 2022. */ open class UiSelector : UiObjectActions { @@ -750,13 +749,20 @@ open class UiSelector : UiObjectActions { private fun addFilter(filter: Filter) = also { selector.add(filter) } - private fun append(selector: UiSelector?) = also { + fun append(selector: UiSelector?) = also { selector?.let { this.selector.append(it) this.searchAlgorithm = it.searchAlgorithm } } + fun plus(selector: UiSelector?) = selector?.let { paramSel -> + UiSelector().also { newSel -> + newSel.selector.filters.addAll(this.selector.filters + paramSel.selector.filters) + newSel.searchAlgorithm = paramSel.searchAlgorithm + } + } ?: this + companion object { internal const val ID_IDENTIFIER = ":id/" @@ -766,34 +772,45 @@ open class UiSelector : UiObjectActions { } @JvmStatic - fun pickup(root: UiObject?, selector: Any?, compass: CharSequence?, resultType: Any?, callback: BaseFunction? = null): Any? { - return Picker.Builder() - .setRoot(root) - .setCompass(compass) - .setResultType(resultType) - .setSelector(selector) - .setCallback(callback) - .build() - .pick() - } - - internal class Picker private constructor(val root: UiObject?, val selector: UiSelector?, val compass: CharSequence?, val resultType: Any?, val callback: BaseFunction? = null) { - - internal fun pick(): Any? { - a11yToolService.ensure() - return Detector(compass, object : Result(resultType) { - - override fun byOne() = selector?.run { root?.let { return@run findOneOf(it) } ?: findOnce() } + fun pickup( + root: UiObject?, + selector: Any?, + compass: CharSequence?, + resultType: Any?, + callback: BaseFunction? = null, + ) = Picker.Builder() + .setRoot(root) + .setCompass(compass) + .setResultType(resultType) + .setSelector(selector) + .setCallback(callback) + .build() + .pick() + + internal class Picker private constructor( + val root: UiObject?, + val selector: UiSelector?, + val compass: CharSequence?, + val resultType: Any?, + val callback: BaseFunction? = null, + ) { + + internal fun pick() = Detector(compass, object : Result(resultType) { + + override fun byOne() = selector?.let { sel -> + root?.let { return sel.findOneOf(it) } ?: sel.findOnce() + } - override fun byAll() = selector?.run { root?.let { return@run findOf(it) } ?: find() } ?: EMPTY + override fun byAll() = selector?.let { sel -> + root?.let { return sel.findOf(it) } ?: sel.find() + } ?: EMPTY - }, callback, selector).detect() - } + }, callback, selector).detect() internal class Builder { private var mRoot: UiObject? = null - private var mSelector = UiSelector() + private var mSelector = UiSelector(AccessibilityService.bridge) private var mCompass: CharSequence? = COMPASS_PASS_ON private var mResultType: Any = RESULT_TYPE_WIDGET private var mCallback: BaseFunction? = null diff --git a/app/src/main/java/org/autojs/autojs/core/activity/ActivityInfoProvider.kt b/app/src/main/java/org/autojs/autojs/core/activity/ActivityInfoProvider.kt index dcca7b843..0da2df928 100644 --- a/app/src/main/java/org/autojs/autojs/core/activity/ActivityInfoProvider.kt +++ b/app/src/main/java/org/autojs/autojs/core/activity/ActivityInfoProvider.kt @@ -16,7 +16,7 @@ import org.autojs.autojs.runtime.api.Shell import java.util.regex.Pattern /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. */ class ActivityInfoProvider(private val context: Context) : AccessibilityDelegate { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/ActionArgument.kt b/app/src/main/java/org/autojs/autojs/core/automator/ActionArgument.kt index a15d64507..9e0a68530 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/ActionArgument.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/ActionArgument.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator import android.os.Bundle /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. */ abstract class ActionArgument private constructor(protected val key: String) { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/GlobalActionAutomator.kt b/app/src/main/java/org/autojs/autojs/core/automator/GlobalActionAutomator.kt index 4de82c56c..e68180114 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/GlobalActionAutomator.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/GlobalActionAutomator.kt @@ -18,7 +18,7 @@ import org.autojs.autojs.runtime.api.ScreenMetrics import org.autojs.autojs6.R /** - * Created by Stardust on 2017/5/16. + * Created by Stardust on May 16, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. */ class GlobalActionAutomator(private val mContext: Context, private val mHandler: Handler?, private val serviceProvider: () -> AccessibilityService) { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/UiObject.kt b/app/src/main/java/org/autojs/autojs/core/automator/UiObject.kt index f639254ad..6baead55e 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/UiObject.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/UiObject.kt @@ -26,7 +26,7 @@ import org.opencv.core.Point import org.opencv.core.Size /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of May 26, 2022. */ @@ -62,7 +62,7 @@ open class UiObject( } ?: 0) } } catch (e: IllegalStateException) { - // FIXME: 2017/5/5 + // FIXME by Stardust on May 5, 2017. null.also { e.printStackTrace() } } @@ -75,7 +75,7 @@ open class UiObject( return try { super.getChild(i)?.run { UiObject(unwrap(), depth + 1, i) } } catch (e: IllegalStateException) { - // FIXME: 2017/5/5 + // FIXME by Stardust on May 5, 2017. null.also { e.printStackTrace() } } } @@ -391,14 +391,14 @@ open class UiObject( else -> super.performAction(action, bundle) } } catch (e: IllegalStateException) { - // FIXME: 2017/5/5 + // FIXME by Stardust on May 5, 2017. false.also { e.printStackTrace() } } override fun performAction(action: Int): Boolean = try { super.performAction(action) } catch (e: IllegalStateException) { - // FIXME: 2017/5/5 + // FIXME by Stardust on May 5, 2017. false.also { e.printStackTrace() } } diff --git a/app/src/main/java/org/autojs/autojs/core/automator/UiObjectCollection.kt b/app/src/main/java/org/autojs/autojs/core/automator/UiObjectCollection.kt index 57cc7bf8d..20b8dc628 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/UiObjectCollection.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/UiObjectCollection.kt @@ -4,7 +4,7 @@ import org.autojs.autojs.core.accessibility.UiSelector import org.autojs.autojs.tool.Consumer /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Jul 1, 2022. */ class UiObjectCollection private constructor(val nodes: List) : UiObjectActions { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/Able.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/Able.kt index 19f9f4d00..77d95d9c6 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/Able.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/Able.kt @@ -5,7 +5,7 @@ import org.autojs.autojs.core.automator.UiObject import org.autojs.autojs.tool.SparseArrayEntries /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ interface Able { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/ActionFactory.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/ActionFactory.kt index d30b121f2..618c13c12 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/ActionFactory.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/ActionFactory.kt @@ -6,7 +6,7 @@ import android.view.accessibility.AccessibilityNodeInfo import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ object ActionFactory { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/ActionTarget.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/ActionTarget.kt index c54ee3d6c..13f0659cd 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/ActionTarget.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/ActionTarget.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.action import android.graphics.Rect /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ interface ActionTarget { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/DepthFirstSearchTargetAction.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/DepthFirstSearchTargetAction.kt index 0ffa3058e..20edf0124 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/DepthFirstSearchTargetAction.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/DepthFirstSearchTargetAction.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.action import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ class DepthFirstSearchTargetAction(action: Int, filter: Filter) : SearchTargetAction(action, filter) { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/FilterAction.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/FilterAction.kt index 98d1e3c6f..8d7f7e6d9 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/FilterAction.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/FilterAction.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.core.automator.UiObject import java.util.* /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ abstract class FilterAction(private val mFilter: Filter) : SimpleAction() { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/ScrollAction.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/ScrollAction.kt index 8010012c1..f1eeb6f1f 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/ScrollAction.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/ScrollAction.kt @@ -5,7 +5,7 @@ import org.autojs.autojs.core.automator.UiObject import java.util.ArrayList /** - * Created by Stardust on 2017/2/12. + * Created by Stardust on Feb 12, 2017. */ class ScrollAction(private val mAction: Int, private val mIndex: Int) : SimpleAction() { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/ScrollMaxAction.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/ScrollMaxAction.kt index b6d825203..2e4ecc871 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/ScrollMaxAction.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/ScrollMaxAction.kt @@ -8,7 +8,7 @@ import org.autojs.autojs.core.automator.UiObject import java.util.HashSet /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ class ScrollMaxAction(private val mScrollAction: Int) : SimpleAction() { private var mMaxScrollableNode: UiObject? = null diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/SearchTargetAction.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/SearchTargetAction.kt index bf888302a..5d3629d39 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/SearchTargetAction.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/SearchTargetAction.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.action import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ abstract class SearchTargetAction(val action: Int, filter: Filter) : FilterAction(filter) { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/SearchUpTargetAction.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/SearchUpTargetAction.kt index a9e48d112..cfb7ae903 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/SearchUpTargetAction.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/SearchUpTargetAction.kt @@ -4,7 +4,7 @@ package org.autojs.autojs.core.automator.action import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ class SearchUpTargetAction(action: Int, filter: Filter) : SearchTargetAction(action, filter) { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/action/SimpleAction.kt b/app/src/main/java/org/autojs/autojs/core/automator/action/SimpleAction.kt index def999517..de65c009c 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/action/SimpleAction.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/action/SimpleAction.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.action import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ abstract class SimpleAction { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/BooleanFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/BooleanFilter.kt index de0235c9a..d0036aadf 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/BooleanFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/BooleanFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ class BooleanFilter(private val mBooleanSupplier: BooleanSupplier, private val mExceptedValue: Boolean? = null) : Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/BoundsFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/BoundsFilter.kt index cc515303f..cdec55fb1 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/BoundsFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/BoundsFilter.kt @@ -10,7 +10,7 @@ import org.autojs.autojs.util.DisplayUtils.toFloorIntY import org.autojs.autojs.util.StringUtils.formatDouble /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ class BoundsFilter(private val left: Double, private val top: Double, private val right: Double, private val bottom: Double, private val type: Int) : Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/ClassNameFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/ClassNameFilter.kt index be3cfa1e7..beeb3e9a5 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/ClassNameFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/ClassNameFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ object ClassNameFilter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/DescFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/DescFilter.kt index 111dd581a..758a0345b 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/DescFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/DescFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ object DescFilter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/Filter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/Filter.kt index 51917a26f..94dc7a977 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/Filter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/Filter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. */ interface Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/IdFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/IdFilter.kt index 3ef84d9e7..fbc131bd1 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/IdFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/IdFilter.kt @@ -4,7 +4,7 @@ import org.autojs.autojs.core.accessibility.UiSelector.Companion.ID_IDENTIFIER import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ object IdFilter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/IntFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/IntFilter.kt index 31263159f..632b64a95 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/IntFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/IntFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/11/5. + * Created by Stardust on Nov 5, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ class IntFilter(private val mIntProperty: IntProperty, private val mValue: Int) : Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/KeyGetter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/KeyGetter.kt index 6bf7e9076..6b9eb22cc 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/KeyGetter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/KeyGetter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. */ interface KeyGetter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/PackageNameFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/PackageNameFilter.kt index 437339bbc..102550e27 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/PackageNameFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/PackageNameFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ object PackageNameFilter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/Selector.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/Selector.kt index d8a464dcb..ca4e39e36 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/Selector.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/Selector.kt @@ -4,18 +4,16 @@ import org.autojs.autojs.core.accessibility.UiSelector import org.autojs.autojs.core.automator.UiObject import java.util.* -class Selector : Filter { +open class Selector : Filter { - private val mFilters = LinkedList() + val filters = LinkedList() - override fun filter(node: UiObject) = mFilters.all { it.filter(node) } + override fun filter(node: UiObject) = filters.all { it.filter(node) } - private fun getFilter() = mFilters + fun add(filter: Filter) = filters.add(filter) - fun add(filter: Filter) = mFilters.add(filter) + fun append(uiSelector: UiSelector) = filters.addAll(uiSelector.selector.filters) - fun append(uiSelector: UiSelector) = mFilters.addAll(uiSelector.selector.getFilter()) - - override fun toString() = mFilters.joinToString(".").ifEmpty { Selector::class.java.toString() } + override fun toString() = filters.joinToString(".").ifEmpty { Selector::class.java.toString() } } \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringContainsFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringContainsFilter.kt index 0a856a445..546b2ecde 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringContainsFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringContainsFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ class StringContainsFilter internal constructor(private val mContains: String, private val mKeyGetter: KeyGetter) : Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringEndsWithFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringEndsWithFilter.kt index 45469d64a..4b65b747d 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringEndsWithFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringEndsWithFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ class StringEndsWithFilter(private val mSuffix: String, private val mKeyGetter: KeyGetter) : Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringEqualsFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringEqualsFilter.kt index 18d05e736..016ba1db7 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringEqualsFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringEqualsFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ class StringEqualsFilter(private val mValue: String, private val mKeyGetter: KeyGetter) : Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringMatchFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringMatchFilter.kt index 10ecb0921..de095cf63 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringMatchFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringMatchFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ class StringMatchFilter internal constructor(private val mRegex: String, private val mKeyGetter: KeyGetter) : Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringMatchesFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringMatchesFilter.kt index 688aa60e7..ee3d05d95 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringMatchesFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringMatchesFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. */ class StringMatchesFilter internal constructor(private val mRegex: String, private val mKeyGetter: KeyGetter) : Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringStartsWithFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringStartsWithFilter.kt index 959a7af55..aabffd13f 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/StringStartsWithFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/StringStartsWithFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ class StringStartsWithFilter(private val mPrefix: String, private val mKeyGetter: KeyGetter) : Filter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/filter/TextFilter.kt b/app/src/main/java/org/autojs/autojs/core/automator/filter/TextFilter.kt index 9afb00aa2..9c0f6d45e 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/filter/TextFilter.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/filter/TextFilter.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.automator.filter import org.autojs.autojs.core.automator.UiObject /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. * Modified by SuperMonster003 as of Nov 19, 2022. */ object TextFilter { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/search/DFS.kt b/app/src/main/java/org/autojs/autojs/core/automator/search/DFS.kt index e839c66c9..4af31b323 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/search/DFS.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/search/DFS.kt @@ -7,7 +7,7 @@ import java.util.* import kotlin.collections.ArrayList /** - * Created by Stardust on 2017/3/9. + * Created by Stardust on Mar 9, 2017. */ object DFS : SearchAlgorithm { diff --git a/app/src/main/java/org/autojs/autojs/core/automator/test/TestUiObject.kt b/app/src/main/java/org/autojs/autojs/core/automator/test/TestUiObject.kt index 3134f9941..9974ca583 100644 --- a/app/src/main/java/org/autojs/autojs/core/automator/test/TestUiObject.kt +++ b/app/src/main/java/org/autojs/autojs/core/automator/test/TestUiObject.kt @@ -7,7 +7,7 @@ import java.util.* import kotlin.math.max /** - * Created by Stardust on 2017/5/5. + * Created by Stardust on May 5, 2017. */ class TestUiObject @JvmOverloads constructor(private val mChildCount: Int = max(0, random.nextInt(6) - 2)) : UiObject(null) { diff --git a/app/src/main/java/org/autojs/autojs/core/broadcast/Broadcast.java b/app/src/main/java/org/autojs/autojs/core/broadcast/Broadcast.java index c45dfc823..1e1235159 100644 --- a/app/src/main/java/org/autojs/autojs/core/broadcast/Broadcast.java +++ b/app/src/main/java/org/autojs/autojs/core/broadcast/Broadcast.java @@ -3,7 +3,7 @@ import java.util.concurrent.CopyOnWriteArrayList; /** - * Created by Stardust on 2018/4/1. + * Created by Stardust on Apr 1, 2018. */ public class Broadcast { diff --git a/app/src/main/java/org/autojs/autojs/core/broadcast/BroadcastEmitter.java b/app/src/main/java/org/autojs/autojs/core/broadcast/BroadcastEmitter.java index 311b6ae69..40d881f41 100644 --- a/app/src/main/java/org/autojs/autojs/core/broadcast/BroadcastEmitter.java +++ b/app/src/main/java/org/autojs/autojs/core/broadcast/BroadcastEmitter.java @@ -5,7 +5,7 @@ import org.autojs.autojs.runtime.ScriptBridges; /** - * Created by Stardust on 2018/4/1. + * Created by Stardust on Apr 1, 2018. */ public class BroadcastEmitter extends EventEmitter { diff --git a/app/src/main/java/org/autojs/autojs/core/console/ConsoleFloaty.kt b/app/src/main/java/org/autojs/autojs/core/console/ConsoleFloaty.kt index 1adb18709..d9d60329d 100644 --- a/app/src/main/java/org/autojs/autojs/core/console/ConsoleFloaty.kt +++ b/app/src/main/java/org/autojs/autojs/core/console/ConsoleFloaty.kt @@ -22,7 +22,7 @@ import org.autojs.autojs6.databinding.FloatingConsoleExpandBinding import org.autojs.autojs6.databinding.FloatingWindowCollapseBinding /** - * Created by Stardust on 2017/4/20. + * Created by Stardust on Apr 20, 2017. */ class ConsoleFloaty(private val mConsole: ConsoleImpl) : AbstractResizableExpandableFloaty() { diff --git a/app/src/main/java/org/autojs/autojs/core/console/ConsoleImpl.kt b/app/src/main/java/org/autojs/autojs/core/console/ConsoleImpl.kt index 60777d0db..ecd89bad3 100644 --- a/app/src/main/java/org/autojs/autojs/core/console/ConsoleImpl.kt +++ b/app/src/main/java/org/autojs/autojs/core/console/ConsoleImpl.kt @@ -35,9 +35,8 @@ import java.util.concurrent.atomic.AtomicInteger import kotlin.math.ceil import kotlin.math.pow - /** - * Created by Stardust on 2017/5/2. + * Created by Stardust on May 2, 2017. * Modified by SuperMonster003 as of Apr 12, 2023. * Transformed by SuperMonster003 on Apr 12, 2023. */ @@ -432,7 +431,7 @@ open class ConsoleImpl(val uiHandler: UiHandler) : AbstractConsole() { override fun setPosition(x: Double, y: Double) = runWithWindow { configurator.setPosition(x, y) if (isShowing) { - mFloatyWindow!!.windowBridge.updatePosition(x.toInt(), y.toInt()) + mFloatyWindow!!.windowBridge?.updatePosition(x.toInt(), y.toInt()) } } diff --git a/app/src/main/java/org/autojs/autojs/core/console/ConsoleView.java b/app/src/main/java/org/autojs/autojs/core/console/ConsoleView.java index ae133214b..ef6f41c09 100644 --- a/app/src/main/java/org/autojs/autojs/core/console/ConsoleView.java +++ b/app/src/main/java/org/autojs/autojs/core/console/ConsoleView.java @@ -34,7 +34,7 @@ import java.util.Objects; /** - * Created by Stardust on 2017/5/2. + * Created by Stardust on May 2, 2017. *

    * TODO: 优化为无锁形式 */ diff --git a/app/src/main/java/org/autojs/autojs/core/console/GlobalConsole.java b/app/src/main/java/org/autojs/autojs/core/console/GlobalConsole.java index 080acb66b..02c13c523 100644 --- a/app/src/main/java/org/autojs/autojs/core/console/GlobalConsole.java +++ b/app/src/main/java/org/autojs/autojs/core/console/GlobalConsole.java @@ -20,7 +20,7 @@ import java.util.Locale; /** - * Created by Stardust on 2017/10/22. + * Created by Stardust on Oct 22, 2017. */ public class GlobalConsole extends ConsoleImpl { private static final String TAG = GlobalConsole.class.getSimpleName(); diff --git a/app/src/main/java/org/autojs/autojs/core/eventloop/EventEmitter.java b/app/src/main/java/org/autojs/autojs/core/eventloop/EventEmitter.java index 40b7b7aff..ec166f463 100644 --- a/app/src/main/java/org/autojs/autojs/core/eventloop/EventEmitter.java +++ b/app/src/main/java/org/autojs/autojs/core/eventloop/EventEmitter.java @@ -17,7 +17,7 @@ import java.util.concurrent.CopyOnWriteArrayList; /** - * Created by Stardust on 2017/7/19. + * Created by Stardust on Jul 19, 2017. */ public class EventEmitter { diff --git a/app/src/main/java/org/autojs/autojs/core/floaty/BaseResizableFloatyWindow.kt b/app/src/main/java/org/autojs/autojs/core/floaty/BaseResizableFloatyWindow.kt index 9d67d2cc8..cff664795 100644 --- a/app/src/main/java/org/autojs/autojs/core/floaty/BaseResizableFloatyWindow.kt +++ b/app/src/main/java/org/autojs/autojs/core/floaty/BaseResizableFloatyWindow.kt @@ -24,9 +24,8 @@ import org.autojs.autojs6.R import org.autojs.autojs6.databinding.FloatyWindowBinding import org.autojs.autojs6.databinding.RawWindowBinding - /** - * Created by Stardust on 2017/12/5. + * Created by Stardust on Dec 5, 2017. * Modified by SuperMonster003 as of Jun 10, 2022. * Transformed by SuperMonster003 on Oct 10, 2022. */ diff --git a/app/src/main/java/org/autojs/autojs/core/graphics/JsCanvasView.kt b/app/src/main/java/org/autojs/autojs/core/graphics/JsCanvasView.kt index a75203163..85fe577e8 100644 --- a/app/src/main/java/org/autojs/autojs/core/graphics/JsCanvasView.kt +++ b/app/src/main/java/org/autojs/autojs/core/graphics/JsCanvasView.kt @@ -17,7 +17,7 @@ import java.util.concurrent.ExecutorService import java.util.concurrent.Executors /** - * Created by Stardust on 2018/3/16. + * Created by Stardust on Mar 16, 2018. */ @SuppressLint("ViewConstructor") class JsCanvasView : TextureView, TextureView.SurfaceTextureListener { diff --git a/app/src/main/java/org/autojs/autojs/core/graphics/ScriptCanvas.java b/app/src/main/java/org/autojs/autojs/core/graphics/ScriptCanvas.java index b2399b594..8f752256e 100644 --- a/app/src/main/java/org/autojs/autojs/core/graphics/ScriptCanvas.java +++ b/app/src/main/java/org/autojs/autojs/core/graphics/ScriptCanvas.java @@ -18,7 +18,7 @@ import org.autojs.autojs.core.image.ImageWrapper; /** - * Created by Stardust on 2018/3/22. + * Created by Stardust on Mar 22, 2018. */ @SuppressWarnings("unused") public class ScriptCanvas { diff --git a/app/src/main/java/org/autojs/autojs/core/http/MutableOkHttp.kt b/app/src/main/java/org/autojs/autojs/core/http/MutableOkHttp.kt index df9ac63d7..b342ecf3b 100644 --- a/app/src/main/java/org/autojs/autojs/core/http/MutableOkHttp.kt +++ b/app/src/main/java/org/autojs/autojs/core/http/MutableOkHttp.kt @@ -6,7 +6,7 @@ import okhttp3.Response import java.util.concurrent.TimeUnit /** - * Created by Stardust on 2018/4/11. + * Created by Stardust on Apr 11, 2018. * Modified by SuperMonster003 as of Sep 8, 2022. */ class MutableOkHttp : OkHttpClient() { diff --git a/app/src/main/java/org/autojs/autojs/core/image/ColorDetector.kt b/app/src/main/java/org/autojs/autojs/core/image/ColorDetector.kt index 70399ac40..44d05c0ec 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/ColorDetector.kt +++ b/app/src/main/java/org/autojs/autojs/core/image/ColorDetector.kt @@ -12,7 +12,7 @@ import kotlin.math.roundToInt import kotlin.math.sqrt /** - * Created by Stardust on 2017/5/20. + * Created by Stardust on May 20, 2017. * Modified by SuperMonster003 as of Feb 15, 2023. */ interface ColorDetector { diff --git a/app/src/main/java/org/autojs/autojs/core/image/ColorFinder.java b/app/src/main/java/org/autojs/autojs/core/image/ColorFinder.java index 09ebe73b5..668fcff94 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/ColorFinder.java +++ b/app/src/main/java/org/autojs/autojs/core/image/ColorFinder.java @@ -18,9 +18,8 @@ import java.util.List; import java.util.Objects; - /** - * Created by Stardust on 2017/5/18. + * Created by Stardust on May 18, 2017. */ @SuppressWarnings("unused") public class ColorFinder { diff --git a/app/src/main/java/org/autojs/autojs/core/image/Colors.java b/app/src/main/java/org/autojs/autojs/core/image/Colors.java index 7dc9bac42..4bce9ddaa 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/Colors.java +++ b/app/src/main/java/org/autojs/autojs/core/image/Colors.java @@ -7,7 +7,7 @@ import org.autojs.autojs.util.ColorUtils; /** - * Created by Stardust on 2017/12/31. + * Created by Stardust on Dec 31, 2017. */ public class Colors { diff --git a/app/src/main/java/org/autojs/autojs/core/image/ImageWrapper.kt b/app/src/main/java/org/autojs/autojs/core/image/ImageWrapper.kt index 81191c789..6469df979 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/ImageWrapper.kt +++ b/app/src/main/java/org/autojs/autojs/core/image/ImageWrapper.kt @@ -18,7 +18,7 @@ import java.io.FileOutputStream import java.lang.ref.WeakReference /** - * Created by Stardust on 2017/11/25. + * Created by Stardust on Nov 25, 2017. * Modified by SuperMonster003 as of May 16, 2023. * Transformed by SuperMonster003 on May 16, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/core/image/TemplateMatching.java b/app/src/main/java/org/autojs/autojs/core/image/TemplateMatching.java index 553d292d5..0dd1c5f72 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/TemplateMatching.java +++ b/app/src/main/java/org/autojs/autojs/core/image/TemplateMatching.java @@ -20,9 +20,8 @@ import java.util.Iterator; import java.util.List; - /** - * Created by Stardust on 2017/11/25. + * Created by Stardust on Nov 25, 2017. */ public class TemplateMatching { diff --git a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCaptureRequestActivity.java b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCaptureRequestActivity.java index baf823990..3cae0fc57 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCaptureRequestActivity.java +++ b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCaptureRequestActivity.java @@ -12,7 +12,7 @@ import org.autojs.autojs.tool.IntentExtras; /** - * Created by Stardust on 2017/5/22. + * Created by Stardust on May 22, 2017. */ public class ScreenCaptureRequestActivity extends Activity { diff --git a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCaptureRequester.java b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCaptureRequester.java index 50272ff9d..8ca50d90b 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCaptureRequester.java +++ b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCaptureRequester.java @@ -8,7 +8,7 @@ import org.autojs.autojs.app.OnActivityResultDelegate; /** - * Created by Stardust on 2017/5/17. + * Created by Stardust on May 17, 2017. */ public interface ScreenCaptureRequester { diff --git a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturer.java b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturer.java index c2acadf86..703fca164 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturer.java +++ b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturer.java @@ -33,7 +33,7 @@ import java.util.concurrent.atomic.AtomicReference; /** - * Created by Stardust on 2017/5/17. + * Created by Stardust on May 17, 2017. * Modified by SuperMonster003 as of May 19, 2022. */ public class ScreenCapturer { diff --git a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturerForegroundService.java b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturerForegroundService.java index e2dc7e9d2..3c93cfd5c 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturerForegroundService.java +++ b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturerForegroundService.java @@ -45,7 +45,7 @@ private void startForeground() { ForegroundServiceCreator foregroundServiceCreator = new ForegroundServiceCreator.Builder(this) .setClassName(sClassName) .setIntent( - // @Reference to TonyJiangWJ/Auto.js (https://github.com/TonyJiangWJ/Auto.js) on Apr 10, 2022 + // @Reference to TonyJiangWJ/Auto.js (https://github.com/TonyJiangWJ/Auto.js) on Apr 10, 2022. ScreenCaptureRequestActivity.getIntent(this) ) .setNotificationId(NOTIFICATION_ID) @@ -64,8 +64,8 @@ private void startForeground() { @Override public void onDestroy() { + stopForeground(STOP_FOREGROUND_REMOVE); super.onDestroy(); - stopForeground(true); } } diff --git a/app/src/main/java/org/autojs/autojs/core/inputevent/InputDevices.java b/app/src/main/java/org/autojs/autojs/core/inputevent/InputDevices.java index 55fdd846f..998ca5312 100644 --- a/app/src/main/java/org/autojs/autojs/core/inputevent/InputDevices.java +++ b/app/src/main/java/org/autojs/autojs/core/inputevent/InputDevices.java @@ -4,9 +4,8 @@ import android.util.Log; import android.view.InputDevice; - /** - * Created by Stardust on 2017/8/1. + * Created by Stardust on Aug 1, 2017. */ public class InputDevices { diff --git a/app/src/main/java/org/autojs/autojs/core/inputevent/InputEventCodes.java b/app/src/main/java/org/autojs/autojs/core/inputevent/InputEventCodes.java index b20d36bd8..acffe2d56 100644 --- a/app/src/main/java/org/autojs/autojs/core/inputevent/InputEventCodes.java +++ b/app/src/main/java/org/autojs/autojs/core/inputevent/InputEventCodes.java @@ -1,7 +1,7 @@ package org.autojs.autojs.core.inputevent; /** - * Created by Stardust on 2017/8/5. + * Created by Stardust on Aug 5, 2017. *

    * from linux/input-event-codes.h */ diff --git a/app/src/main/java/org/autojs/autojs/core/inputevent/InputEventObserver.java b/app/src/main/java/org/autojs/autojs/core/inputevent/InputEventObserver.java index 2d93f8ca5..67ccde7d4 100644 --- a/app/src/main/java/org/autojs/autojs/core/inputevent/InputEventObserver.java +++ b/app/src/main/java/org/autojs/autojs/core/inputevent/InputEventObserver.java @@ -15,7 +15,7 @@ import java.util.regex.Pattern; /** - * Created by Stardust on 2017/8/4. + * Created by Stardust on Aug 4, 2017. */ public class InputEventObserver { diff --git a/app/src/main/java/org/autojs/autojs/core/inputevent/KeyEventDispatcher.java b/app/src/main/java/org/autojs/autojs/core/inputevent/KeyEventDispatcher.java index 32cbe910d..4f3d77f8a 100644 --- a/app/src/main/java/org/autojs/autojs/core/inputevent/KeyEventDispatcher.java +++ b/app/src/main/java/org/autojs/autojs/core/inputevent/KeyEventDispatcher.java @@ -3,7 +3,7 @@ import java.util.concurrent.CopyOnWriteArrayList; /** - * Created by Stardust on 2017/8/6. + * Created by Stardust on Aug 6, 2017. */ public class KeyEventDispatcher { diff --git a/app/src/main/java/org/autojs/autojs/core/inputevent/RootAutomator.java b/app/src/main/java/org/autojs/autojs/core/inputevent/RootAutomator.java index f966de140..eb4228148 100644 --- a/app/src/main/java/org/autojs/autojs/core/inputevent/RootAutomator.java +++ b/app/src/main/java/org/autojs/autojs/core/inputevent/RootAutomator.java @@ -33,7 +33,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** - * Created by Stardust on 2017/7/16. + * Created by Stardust on Jul 16, 2017. * Modified by SuperMonster003 as of May 12, 2022. */ public class RootAutomator implements Shell.Callback { diff --git a/app/src/main/java/org/autojs/autojs/core/inputevent/ShellKeyObserver.java b/app/src/main/java/org/autojs/autojs/core/inputevent/ShellKeyObserver.java index 769404903..7b373c2be 100644 --- a/app/src/main/java/org/autojs/autojs/core/inputevent/ShellKeyObserver.java +++ b/app/src/main/java/org/autojs/autojs/core/inputevent/ShellKeyObserver.java @@ -8,7 +8,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/5/4. + * Created by Stardust on May 4, 2017. */ public class ShellKeyObserver implements InputEventObserver.InputEventListener { diff --git a/app/src/main/java/org/autojs/autojs/core/inputevent/TouchObserver.java b/app/src/main/java/org/autojs/autojs/core/inputevent/TouchObserver.java index 00c67f096..6398bb44a 100644 --- a/app/src/main/java/org/autojs/autojs/core/inputevent/TouchObserver.java +++ b/app/src/main/java/org/autojs/autojs/core/inputevent/TouchObserver.java @@ -4,9 +4,8 @@ import static org.autojs.autojs.core.record.inputevent.InputEventRecorder.parseDeviceNumber; - /** - * Created by Stardust on 2017/7/20. + * Created by Stardust on Jul 20, 2017. */ public class TouchObserver implements InputEventObserver.InputEventListener { diff --git a/app/src/main/java/org/autojs/autojs/core/internal/Functions.java b/app/src/main/java/org/autojs/autojs/core/internal/Functions.java index f699502ae..589c535c4 100644 --- a/app/src/main/java/org/autojs/autojs/core/internal/Functions.java +++ b/app/src/main/java/org/autojs/autojs/core/internal/Functions.java @@ -5,7 +5,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/7/19. + * Created by Stardust on Jul 19, 2017. */ public class Functions { diff --git a/app/src/main/java/org/autojs/autojs/core/looper/LooperHelper.java b/app/src/main/java/org/autojs/autojs/core/looper/LooperHelper.java index 8090c063e..a0e889578 100644 --- a/app/src/main/java/org/autojs/autojs/core/looper/LooperHelper.java +++ b/app/src/main/java/org/autojs/autojs/core/looper/LooperHelper.java @@ -5,7 +5,7 @@ import java.util.concurrent.ConcurrentHashMap; /** - * Created by Stardust on 2017/12/27. + * Created by Stardust on Dec 27, 2017. */ public class LooperHelper { diff --git a/app/src/main/java/org/autojs/autojs/core/looper/Loopers.kt b/app/src/main/java/org/autojs/autojs/core/looper/Loopers.kt index 024f04513..e6452c9a5 100644 --- a/app/src/main/java/org/autojs/autojs/core/looper/Loopers.kt +++ b/app/src/main/java/org/autojs/autojs/core/looper/Loopers.kt @@ -13,7 +13,7 @@ import java.util.concurrent.locks.ReentrantLock import kotlin.concurrent.withLock /** - * Created by Stardust on 2017/7/29. + * Created by Stardust on Jul 29, 2017. * Modified by aiselp as of Jun 4, 2023. * ! 调整内容: * ! 使此类只负责单 loop 线程生命周期管理, 移除繁琐的调用链 diff --git a/app/src/main/java/org/autojs/autojs/core/looper/MainThreadProxy.java b/app/src/main/java/org/autojs/autojs/core/looper/MainThreadProxy.java index fb7f99612..99c5d3a37 100644 --- a/app/src/main/java/org/autojs/autojs/core/looper/MainThreadProxy.java +++ b/app/src/main/java/org/autojs/autojs/core/looper/MainThreadProxy.java @@ -8,7 +8,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/12/28. + * Created by Stardust on Dec 28, 2017. */ public class MainThreadProxy { diff --git a/app/src/main/java/org/autojs/autojs/core/looper/Timer.kt b/app/src/main/java/org/autojs/autojs/core/looper/Timer.kt index 7a72153fd..69ac956d5 100644 --- a/app/src/main/java/org/autojs/autojs/core/looper/Timer.kt +++ b/app/src/main/java/org/autojs/autojs/core/looper/Timer.kt @@ -8,7 +8,7 @@ import java.util.concurrent.ConcurrentHashMap import kotlin.random.Random /** - * Created by Stardust on 2017/12/27. + * Created by Stardust on Dec 27, 2017. * Modified by aiselp as of Jun 14, 2023. * Modified by SuperMonster003 as of Jul 12, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/core/looper/TimerThread.kt b/app/src/main/java/org/autojs/autojs/core/looper/TimerThread.kt index c06d7bc8f..8521da354 100644 --- a/app/src/main/java/org/autojs/autojs/core/looper/TimerThread.kt +++ b/app/src/main/java/org/autojs/autojs/core/looper/TimerThread.kt @@ -10,7 +10,7 @@ import org.mozilla.javascript.Context import java.util.concurrent.ConcurrentHashMap /** - * Created by Stardust on 2017/12/27. + * Created by Stardust on Dec 27, 2017. */ open class TimerThread(private val mRuntime: ScriptRuntime, private val mTarget: Runnable) : ThreadCompat(mTarget) { diff --git a/app/src/main/java/org/autojs/autojs/core/notification/Notification.kt b/app/src/main/java/org/autojs/autojs/core/notification/Notification.kt index f5265518f..63006e05d 100644 --- a/app/src/main/java/org/autojs/autojs/core/notification/Notification.kt +++ b/app/src/main/java/org/autojs/autojs/core/notification/Notification.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.notification import android.app.PendingIntent /** - * Created by Stardust on 2017/10/30. + * Created by Stardust on Oct 30, 2017. */ class Notification private constructor(val packageName: String) : android.app.Notification() { diff --git a/app/src/main/java/org/autojs/autojs/core/notification/NotificationListenerService.kt b/app/src/main/java/org/autojs/autojs/core/notification/NotificationListenerService.kt index 7a1f8444d..beb6b2691 100644 --- a/app/src/main/java/org/autojs/autojs/core/notification/NotificationListenerService.kt +++ b/app/src/main/java/org/autojs/autojs/core/notification/NotificationListenerService.kt @@ -5,7 +5,7 @@ import org.autojs.autojs.core.accessibility.NotificationListener import java.util.concurrent.CopyOnWriteArrayList /** - * Created by Stardust on 2017/10/30. + * Created by Stardust on Oct 30, 2017. */ class NotificationListenerService : android.service.notification.NotificationListenerService() { diff --git a/app/src/main/java/org/autojs/autojs/core/opencv/OpenCVHelper.java b/app/src/main/java/org/autojs/autojs/core/opencv/OpenCVHelper.java index 410357668..41d4363a9 100644 --- a/app/src/main/java/org/autojs/autojs/core/opencv/OpenCVHelper.java +++ b/app/src/main/java/org/autojs/autojs/core/opencv/OpenCVHelper.java @@ -11,9 +11,8 @@ import java.util.concurrent.Executor; import java.util.concurrent.Executors; - /** - * Created by Stardust on 2018/4/2. + * Created by Stardust on Apr 2, 2018. */ public class OpenCVHelper { diff --git a/app/src/main/java/org/autojs/autojs/core/record/GlobalActionRecorder.java b/app/src/main/java/org/autojs/autojs/core/record/GlobalActionRecorder.java index 5f91a5732..4444a4fa2 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/GlobalActionRecorder.java +++ b/app/src/main/java/org/autojs/autojs/core/record/GlobalActionRecorder.java @@ -21,7 +21,7 @@ import java.util.concurrent.CopyOnWriteArrayList; /** - * Created by Stardust on 2017/8/6. + * Created by Stardust on Aug 6, 2017. */ public class GlobalActionRecorder implements Recorder.OnStateChangedListener { diff --git a/app/src/main/java/org/autojs/autojs/core/record/Recorder.java b/app/src/main/java/org/autojs/autojs/core/record/Recorder.java index 89175052c..4225b0016 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/Recorder.java +++ b/app/src/main/java/org/autojs/autojs/core/record/Recorder.java @@ -3,7 +3,7 @@ import java.util.Arrays; /** - * Created by Stardust on 2017/3/16. + * Created by Stardust on Mar 16, 2017. */ public interface Recorder { diff --git a/app/src/main/java/org/autojs/autojs/core/record/accessibility/AccessibilityActionConverter.java b/app/src/main/java/org/autojs/autojs/core/record/accessibility/AccessibilityActionConverter.java index 0ec7c7c8b..0617305ca 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/accessibility/AccessibilityActionConverter.java +++ b/app/src/main/java/org/autojs/autojs/core/record/accessibility/AccessibilityActionConverter.java @@ -14,9 +14,8 @@ import java.util.List; - /** - * Created by Stardust on 2017/2/14. + * Created by Stardust on Feb 14, 2017. */ public class AccessibilityActionConverter { diff --git a/app/src/main/java/org/autojs/autojs/core/record/accessibility/AccessibilityActionRecorder.java b/app/src/main/java/org/autojs/autojs/core/record/accessibility/AccessibilityActionRecorder.java index 011b78d58..529d043bb 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/accessibility/AccessibilityActionRecorder.java +++ b/app/src/main/java/org/autojs/autojs/core/record/accessibility/AccessibilityActionRecorder.java @@ -12,9 +12,8 @@ import java.util.HashSet; import java.util.Set; - /** - * Created by Stardust on 2017/2/14. + * Created by Stardust on Feb 14, 2017. */ public class AccessibilityActionRecorder extends Recorder.AbstractRecorder implements AccessibilityDelegate { diff --git a/app/src/main/java/org/autojs/autojs/core/record/inputevent/EventFormatException.java b/app/src/main/java/org/autojs/autojs/core/record/inputevent/EventFormatException.java index 3f215e3d4..6730d8ecb 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/inputevent/EventFormatException.java +++ b/app/src/main/java/org/autojs/autojs/core/record/inputevent/EventFormatException.java @@ -1,7 +1,7 @@ package org.autojs.autojs.core.record.inputevent; /** - * Created by Stardust on 2017/3/7. + * Created by Stardust on Mar 7, 2017. */ public class EventFormatException extends RuntimeException { diff --git a/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventRecorder.java b/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventRecorder.java index 00be448dc..aec8d8527 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventRecorder.java +++ b/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventRecorder.java @@ -9,7 +9,7 @@ import java.util.regex.Pattern; /** - * Created by Stardust on 2017/3/7. + * Created by Stardust on Mar 7, 2017. */ public abstract class InputEventRecorder extends Recorder.AbstractRecorder implements InputEventObserver.InputEventListener { diff --git a/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToAutoFileRecorder.kt b/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToAutoFileRecorder.kt index 4d7ea9a32..4ccfb948d 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToAutoFileRecorder.kt +++ b/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToAutoFileRecorder.kt @@ -16,7 +16,7 @@ import java.io.FileOutputStream import java.io.IOException /** - * Created by Stardust on 2017/8/2. + * Created by Stardust on Aug 2, 2017. */ class InputEventToAutoFileRecorder(context: Context) : InputEventRecorder() { private var mLastEventTime = 0.0 diff --git a/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java b/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java index 7c02cbb12..105a390a1 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java +++ b/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java @@ -10,7 +10,7 @@ import static org.autojs.autojs.runtime.api.ScreenMetrics.getDeviceScreenWidth; /** - * Created by Stardust on 2017/8/1. + * Created by Stardust on Aug 1, 2017. */ public class InputEventToRootAutomatorRecorder extends InputEventRecorder { diff --git a/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToSendEventJsRecorder.java b/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToSendEventJsRecorder.java index 40c986518..5e4a29495 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToSendEventJsRecorder.java +++ b/app/src/main/java/org/autojs/autojs/core/record/inputevent/InputEventToSendEventJsRecorder.java @@ -8,7 +8,7 @@ import static org.autojs.autojs.runtime.api.ScreenMetrics.getDeviceScreenWidth; /** - * Created by Stardust on 2017/5/3. + * Created by Stardust on May 3, 2017. */ public class InputEventToSendEventJsRecorder extends InputEventRecorder { diff --git a/app/src/main/java/org/autojs/autojs/core/record/inputevent/TouchRecorder.java b/app/src/main/java/org/autojs/autojs/core/record/inputevent/TouchRecorder.java index f928a07e1..663c04597 100644 --- a/app/src/main/java/org/autojs/autojs/core/record/inputevent/TouchRecorder.java +++ b/app/src/main/java/org/autojs/autojs/core/record/inputevent/TouchRecorder.java @@ -6,7 +6,7 @@ import org.autojs.autojs.core.record.Recorder; /** - * Created by Stardust on 2017/3/16. + * Created by Stardust on Mar 16, 2017. */ public class TouchRecorder extends Recorder.AbstractRecorder { diff --git a/app/src/main/java/org/autojs/autojs/core/storage/LocalStorage.java b/app/src/main/java/org/autojs/autojs/core/storage/LocalStorage.java index 1cd261bf6..0d6dcc352 100644 --- a/app/src/main/java/org/autojs/autojs/core/storage/LocalStorage.java +++ b/app/src/main/java/org/autojs/autojs/core/storage/LocalStorage.java @@ -4,7 +4,7 @@ import android.content.SharedPreferences; /** - * Created by Stardust on 2017/12/3. + * Created by Stardust on Dec 3, 2017. */ public class LocalStorage { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/JsViewHelper.kt b/app/src/main/java/org/autojs/autojs/core/ui/JsViewHelper.kt index 1cac63c4b..eb6ba6a56 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/JsViewHelper.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/JsViewHelper.kt @@ -5,7 +5,7 @@ import android.view.ViewGroup import org.autojs.autojs.core.ui.inflater.util.Ids /** - * Created by Stardust on 2017/5/14. + * Created by Stardust on May 14, 2017. * Transformed by 抠脚本人 (https://github.com/little-alei) on Jul 10, 2023. */ object JsViewHelper { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/attribute/ImageViewAttributes.kt b/app/src/main/java/org/autojs/autojs/core/ui/attribute/ImageViewAttributes.kt index 4787c7d50..f74f16e26 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/attribute/ImageViewAttributes.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/attribute/ImageViewAttributes.kt @@ -26,7 +26,8 @@ open class ImageViewAttributes(resourceParser: ResourceParser, view: View) : Vie registerAttr("scaleType") { view.scaleType = SCALE_TYPES[it] } registerAttr("src") { drawables.setupWithImage(view, it) } registerAttr("tint") { - // FIXME: 2018/10/13 setImageTineList not working + // FIXME by Stardust on Oct 13, 2018. + // ! Method setImageTineList not working. val mode = ImageViewCompat.getImageTintMode(view) view.setColorFilter(ColorUtils.parse(view, it), mode ?: PorterDuff.Mode.SRC_ATOP) } diff --git a/app/src/main/java/org/autojs/autojs/core/ui/dialog/BlockedMaterialDialog.java b/app/src/main/java/org/autojs/autojs/core/ui/dialog/BlockedMaterialDialog.java index 046181c79..479c62526 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/dialog/BlockedMaterialDialog.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/dialog/BlockedMaterialDialog.java @@ -21,7 +21,7 @@ import org.autojs.autojs.tool.UiHandler; /** - * Created by Stardust on 2017/5/8. + * Created by Stardust on May 8, 2017. */ public class BlockedMaterialDialog extends MaterialDialog { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/dialog/JsDialog.java b/app/src/main/java/org/autojs/autojs/core/ui/dialog/JsDialog.java index 62d700230..c94d9e844 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/dialog/JsDialog.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/dialog/JsDialog.java @@ -51,7 +51,7 @@ import java.util.List; /** - * Created by Stardust on 2018/4/17. + * Created by Stardust on Apr 17, 2018. */ public class JsDialog { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/dialog/JsDialogBuilder.java b/app/src/main/java/org/autojs/autojs/core/ui/dialog/JsDialogBuilder.java index b685dbc4a..1445ca598 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/dialog/JsDialogBuilder.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/dialog/JsDialogBuilder.java @@ -11,7 +11,7 @@ import org.autojs.autojs.tool.UiHandler; /** - * Created by Stardust on 2018/4/17. + * Created by Stardust on Apr 17, 2018. * Modified by SuperMonster003 as of Mar 20, 2022. * Modified by aiselp as of Jun 10, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/Exceptions.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/Exceptions.kt index 1b13f8946..439de4324 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/Exceptions.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/Exceptions.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.core.ui.inflater import android.view.View /** - * Created by Stardust on 2017/11/4. + * Created by Stardust on Nov 4, 2017. * Transformed by SuperMonster003 on May 21, 2023. */ object Exceptions { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/ImageLoader.java b/app/src/main/java/org/autojs/autojs/core/ui/inflater/ImageLoader.java index d319b361c..3b21d6aa9 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/ImageLoader.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/ImageLoader.java @@ -9,7 +9,7 @@ import androidx.annotation.Nullable; /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. */ public interface ImageLoader { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/LayoutInflaterDelegate.java b/app/src/main/java/org/autojs/autojs/core/ui/inflater/LayoutInflaterDelegate.java index 1a2e0e7d1..4999b2e8f 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/LayoutInflaterDelegate.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/LayoutInflaterDelegate.java @@ -10,7 +10,7 @@ import java.util.HashMap; /** - * Created by Stardust on 2018/3/29. + * Created by Stardust on Mar 29, 2018. */ public interface LayoutInflaterDelegate { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/ResourceParser.java b/app/src/main/java/org/autojs/autojs/core/ui/inflater/ResourceParser.java index 3966d1372..5b6e678d7 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/ResourceParser.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/ResourceParser.java @@ -3,7 +3,7 @@ import org.autojs.autojs.core.ui.inflater.util.Drawables; /** - * Created by Stardust on 2018/1/24. + * Created by Stardust on Jan 24, 2018. */ public class ResourceParser { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/ViewCreator.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/ViewCreator.kt index 74823f1d0..007bcb677 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/ViewCreator.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/ViewCreator.kt @@ -5,7 +5,7 @@ import android.view.View import android.view.ViewGroup /** - * Created by Stardust on 2017/11/29. + * Created by Stardust on Nov 29, 2017. * Transformed by SuperMonster003 on Jun 8, 2023. */ interface ViewCreator { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/BaseViewInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/BaseViewInflater.kt index 91ddbc767..bc7a8033d 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/BaseViewInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/BaseViewInflater.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.core.ui.inflater.ResourceParser import org.autojs.autojs.core.ui.inflater.util.Drawables /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. * Modified by SuperMonster003 as of Dec 5, 2021. * Transformed by SuperMonster003 on Apr 12, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/DatePickerInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/DatePickerInflater.kt index 4cf4ab7b0..62d3013bf 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/DatePickerInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/DatePickerInflater.kt @@ -9,7 +9,7 @@ import org.autojs.autojs.core.ui.inflater.ViewCreator import org.autojs.autojs6.R /** - * Created by Stardust on 2017/11/29. + * Created by Stardust on Nov 29, 2017. * Modified by SuperMonster003 as of Apr 12, 2023. * Transformed by SuperMonster003 on Apr 12, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ImageViewInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ImageViewInflater.kt index 92204ce21..187f5daad 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ImageViewInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ImageViewInflater.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.core.ui.inflater.ResourceParser import org.autojs.autojs.core.ui.inflater.ViewCreator /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. * Modified by SuperMonster003 as of May 26, 2022. * Transformed by SuperMonster003 on May 19, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsCanvasViewInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsCanvasViewInflater.kt index 91a72bb30..f56554aa7 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsCanvasViewInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsCanvasViewInflater.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.core.ui.inflater.ResourceParser import org.autojs.autojs.core.ui.inflater.ViewCreator /** - * Created by Stardust on 2018/3/16. + * Created by Stardust on Mar 16, 2018. */ class JsCanvasViewInflater(resourceParser: ResourceParser) : TextureViewInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsFrameLayoutInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsFrameLayoutInflater.kt index 8a628a9dc..738c6302f 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsFrameLayoutInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsFrameLayoutInflater.kt @@ -10,7 +10,7 @@ import org.autojs.autojs.core.ui.inflater.util.Gravities import org.autojs.autojs.core.ui.widget.JsFrameLayout /** - * Created by Stardust on 2017/11/29. + * Created by Stardust on Nov 29, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ class JsFrameLayoutInflater(resourceParser: ResourceParser) : FrameLayoutInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsGridViewInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsGridViewInflater.kt index 36db878ae..9a6b16522 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsGridViewInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsGridViewInflater.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.core.ui.inflater.ViewCreator import org.autojs.autojs.core.ui.widget.JsGridView /** - * Created by Stardust on 2018/3/30. + * Created by Stardust on Mar 30, 2018. * Transformed by SuperMonster003 on May 20, 2023. */ class JsGridViewInflater(resourceParser: ResourceParser) : JsListViewInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsImageViewInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsImageViewInflater.kt index 2ebae08b5..69b454872 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsImageViewInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsImageViewInflater.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.core.ui.inflater.ViewCreator import org.autojs.autojs.core.ui.widget.JsImageView /** - * Created by Stardust on 2017/11/30. + * Created by Stardust on Nov 30, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ class JsImageViewInflater(resourceParser: ResourceParser) : RoundedImageViewInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsListViewInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsListViewInflater.kt index d5f7b3084..eff7f383b 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsListViewInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsListViewInflater.kt @@ -9,7 +9,7 @@ import org.autojs.autojs.core.ui.widget.JsListView import org.w3c.dom.Node /** - * Created by Stardust on 2018/3/28. + * Created by Stardust on Mar 28, 2018. * Transformed by SuperMonster003 on May 20, 2023. */ open class JsListViewInflater(resourceParser: ResourceParser) : RecyclerViewInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsSpinnerInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsSpinnerInflater.kt index 0e76a099e..1b7eba9aa 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsSpinnerInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsSpinnerInflater.kt @@ -9,7 +9,7 @@ import org.autojs.autojs.core.ui.inflater.util.ValueMapper import org.autojs.autojs.core.ui.widget.JsSpinner /** - * Created by Stardust on 2017/11/29. + * Created by Stardust on Nov 29, 2017. * Transformed by SuperMonster003 on Apr 12, 2023. */ class JsSpinnerInflater(resourceParser: ResourceParser) : AppCompatSpinnerInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsToolbarInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsToolbarInflater.kt index 151de53bd..4956ba5e6 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsToolbarInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/JsToolbarInflater.kt @@ -9,7 +9,7 @@ import org.autojs.autojs.core.ui.widget.JsToolbar import org.autojs.autojs6.R /** - * Created by Stardust on 2017/11/5. + * Created by Stardust on Nov 5, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ class JsToolbarInflater(resourceParser: ResourceParser) : ToolbarInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/LinearLayoutInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/LinearLayoutInflater.kt index 1fa909684..d67745b0d 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/LinearLayoutInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/LinearLayoutInflater.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.core.ui.inflater.ResourceParser import org.autojs.autojs.core.ui.inflater.ViewCreator /** - * Created by Stardust on 2017/11/4. + * Created by Stardust on Nov 4, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ open class LinearLayoutInflater(resourceParser: ResourceParser) : ViewGroupInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ProgressBarInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ProgressBarInflater.kt index 9f9abaa0c..1eecea644 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ProgressBarInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ProgressBarInflater.kt @@ -9,7 +9,7 @@ import org.autojs.autojs.core.ui.inflater.ViewCreator import org.autojs.autojs.core.ui.inflater.util.Res /** - * Created by Stardust on 2017/11/29. + * Created by Stardust on Nov 29, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ open class ProgressBarInflater(resourceParser: ResourceParser) : BaseViewInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/RadioGroupInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/RadioGroupInflater.kt index 2eb5a0b32..077e11ec2 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/RadioGroupInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/RadioGroupInflater.kt @@ -6,7 +6,7 @@ import org.autojs.autojs.core.ui.inflater.ResourceParser import org.autojs.autojs.core.ui.inflater.util.Ids /** - * Created by Stardust on 2017/11/29. + * Created by Stardust on Nov 29, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ open class RadioGroupInflater(resourceParser: ResourceParser) : LinearLayoutInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/TextViewInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/TextViewInflater.kt index 6a9da8a8c..4365cf731 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/TextViewInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/TextViewInflater.kt @@ -14,7 +14,7 @@ import org.autojs.autojs.core.ui.inflater.ResourceParser import org.autojs.autojs.core.ui.inflater.util.ValueMapper /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. * Modified by SuperMonster003 as of May 26, 2022. * Transformed by SuperMonster003 on Apr 12, 2023. */ @@ -114,7 +114,8 @@ open class TextViewInflater(resourceParser: ResourceParser) : Base .map("none", 0) .map("normal", 1) - // TODO: 2017/11/4 IME FLAG + // TODO by Stardust on Nov 4, 2017. + // ! IME FLAG. val IME_OPTIONS: ValueMapper = ValueMapper("imeOptions") .map("actionDone", EditorInfo.IME_ACTION_DONE) .map("actionGo", EditorInfo.IME_ACTION_DONE) diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/TimePickerInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/TimePickerInflater.kt index 3a747fac5..971d312dc 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/TimePickerInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/TimePickerInflater.kt @@ -9,7 +9,7 @@ import org.autojs.autojs.core.ui.inflater.ViewCreator import org.autojs.autojs6.R /** - * Created by Stardust on 2017/11/29. + * Created by Stardust on Nov 29, 2017. * Transformed by SuperMonster003 on May 23, 2023. */ open class TimePickerInflater(resourceParser: ResourceParser) : FrameLayoutInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ViewGroupInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ViewGroupInflater.kt index 2eecf511e..8bdd5205c 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ViewGroupInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ViewGroupInflater.kt @@ -4,7 +4,7 @@ import android.view.ViewGroup import org.autojs.autojs.core.ui.inflater.ResourceParser /** - * Created by Stardust on 2017/11/4. + * Created by Stardust on Nov 4, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ open class ViewGroupInflater(resourceParser: ResourceParser) : BaseViewInflater(resourceParser) { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ViewInflater.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ViewInflater.kt index f0c07c653..28594ce65 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ViewInflater.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/inflaters/ViewInflater.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.core.ui.inflater.ViewCreator import org.w3c.dom.Node /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. */ interface ViewInflater { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Colors.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Colors.kt index c048ca100..2fe879f96 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Colors.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Colors.kt @@ -5,7 +5,7 @@ import android.view.View import org.autojs.autojs.util.ColorUtils /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. * Modified by SuperMonster003 as of May 19, 2023. * Transformed by SuperMonster003 on May 19, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Drawables.kt b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Drawables.kt index 685867376..22e254a25 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Drawables.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Drawables.kt @@ -24,7 +24,7 @@ import java.util.concurrent.Executors import java.util.regex.Pattern /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. * Transformed by SuperMonster003 on Jun 5, 2023. */ open class Drawables { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Gravities.java b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Gravities.java index 8b2525f0d..5655aace4 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Gravities.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Gravities.java @@ -5,7 +5,7 @@ import org.autojs.autojs.pref.Language; /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. */ public class Gravities { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Ids.java b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Ids.java index 6d1e95654..f6ebe4032 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Ids.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Ids.java @@ -4,7 +4,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. */ public class Ids { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Res.java b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Res.java index baf084f77..23efb0eda 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Res.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Res.java @@ -4,7 +4,7 @@ import android.view.View; /** - * Created by Stardust on 2017/11/5. + * Created by Stardust on Nov 5, 2017. */ public class Res { public static int parseStyle(View view, String value) { @@ -12,7 +12,8 @@ public static int parseStyle(View view, String value) { } public static int parseStyle(Context context, String value) { - // FIXME: 2017/11/5 Can or should it retrieve android.R.style or styleable? + // FIXME by Stardust on Nov 5, 2017. + // ! Can or should it retrieve android.R.style or styleable? if (value.startsWith("@style/")) { value = value.substring(7); } diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Strings.java b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Strings.java index 87de1e540..42a65587a 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Strings.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/Strings.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable; /** - * Created by Stardust on 2017/11/4. + * Created by Stardust on Nov 4, 2017. */ public class Strings { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/ValueMapper.java b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/ValueMapper.java index a30862f03..59b8a98e4 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/ValueMapper.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/inflater/util/ValueMapper.java @@ -5,7 +5,7 @@ import java.util.HashMap; /** - * Created by Stardust on 2017/11/3. + * Created by Stardust on Nov 3, 2017. */ public class ValueMapper { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsButton.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsButton.kt index 9825f6580..12df3c118 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsButton.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsButton.kt @@ -9,7 +9,7 @@ import android.widget.Button import android.widget.CompoundButton /** - * Created by Stardust on 2017/5/15. + * Created by Stardust on May 15, 2017. * Transformed by SuperMonster003 on May 18, 2023. */ @SuppressLint("AppCompatCustomView") diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsCanvasView.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsCanvasView.kt index da47d1cba..43414f831 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsCanvasView.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsCanvasView.kt @@ -18,7 +18,7 @@ import java.util.concurrent.ExecutorService import java.util.concurrent.Executors /** - * Created by Stardust on 2018/3/16. + * Created by Stardust on Mar 16, 2018. * Modified by SuperMonster003 as of Dec 1, 2021. */ @SuppressLint("ViewConstructor") diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsCheckBox.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsCheckBox.kt index f366f4dcb..a73e525c3 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsCheckBox.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsCheckBox.kt @@ -5,7 +5,7 @@ import android.util.AttributeSet import androidx.appcompat.widget.AppCompatCheckBox /** - * Created by Stardust on 2017/10/19. + * Created by Stardust on Oct 19, 2017. * Transformed by SuperMonster003 on May 21, 2023. */ class JsCheckBox : AppCompatCheckBox { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsEditText.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsEditText.kt index 10971f9ab..0e6b16333 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsEditText.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsEditText.kt @@ -6,7 +6,7 @@ import android.util.AttributeSet import android.widget.EditText /** - * Created by Stardust on 2017/5/15. + * Created by Stardust on May 15, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ @SuppressLint("AppCompatCustomView") diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsFrameLayout.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsFrameLayout.kt index 501139ccf..8dccba031 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsFrameLayout.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsFrameLayout.kt @@ -8,7 +8,7 @@ import androidx.annotation.StyleRes import org.autojs.autojs.core.ui.JsViewHelper /** - * Created by Stardust on 2017/5/14. + * Created by Stardust on May 14, 2017. * Transformed by SuperMonster003 on May 22, 2023. */ class JsFrameLayout : FrameLayout { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsGridView.java b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsGridView.java index 48ef5abe0..95f932305 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsGridView.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsGridView.java @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView; /** - * Created by Stardust on 2018/3/30. + * Created by Stardust on Mar 30, 2018. */ public class JsGridView extends JsListView { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsImageView.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsImageView.kt index 5629675aa..b5c6f2d2c 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsImageView.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsImageView.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.core.image.ImageWrapper import org.autojs.autojs.core.ui.inflater.util.Drawables /** - * Created by Stardust on 2017/11/30. + * Created by Stardust on Nov 30, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ class JsImageView : RoundedImageView { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsLinearLayout.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsLinearLayout.kt index b7c35ca81..82ea06db3 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsLinearLayout.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsLinearLayout.kt @@ -6,7 +6,7 @@ import android.widget.LinearLayout import org.autojs.autojs.core.ui.JsViewHelper /** - * Created by Stardust on 2017/5/14. + * Created by Stardust on May 14, 2017. * Transformed by SuperMonster003 on May 22, 2023. */ class JsLinearLayout : LinearLayout { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsListView.java b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsListView.java index 3d2a35440..0ae8d1ad5 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsListView.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsListView.java @@ -20,7 +20,7 @@ import org.w3c.dom.NodeList; /** - * Created by Stardust on 2018/3/28. + * Created by Stardust on Mar 28, 2018. */ public class JsListView extends RecyclerView { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsRelativeLayout.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsRelativeLayout.kt index d6eab0882..d7aad9149 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsRelativeLayout.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsRelativeLayout.kt @@ -6,7 +6,7 @@ import android.widget.RelativeLayout import org.autojs.autojs.core.ui.JsViewHelper /** - * Created by Stardust on 2017/5/14. + * Created by Stardust on May 14, 2017. * Transformed by SuperMonster003 on May 23, 2023. */ class JsRelativeLayout : RelativeLayout { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsSwitch.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsSwitch.kt index 18496ce9e..2ad53145c 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsSwitch.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsSwitch.kt @@ -6,7 +6,7 @@ import android.widget.CompoundButton import androidx.appcompat.widget.SwitchCompat /** - * Created by Stardust on 2017/9/18. + * Created by Stardust on Sep 18, 2017. * Transformed by SuperMonster003 on May 21, 2023. */ open class JsSwitch : SwitchCompat { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsTextView.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsTextView.kt index f02dc4879..b5ee1128c 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsTextView.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsTextView.kt @@ -5,7 +5,7 @@ import android.util.AttributeSet import androidx.appcompat.widget.AppCompatTextView /** - * Created by Stardust on 2017/5/15. + * Created by Stardust on May 15, 2017. * Transformed by SuperMonster003 on May 20, 2023. */ class JsTextView : AppCompatTextView { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsTextViewLegacy.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsTextViewLegacy.kt index 96a743a5e..ede2ce7b6 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsTextViewLegacy.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsTextViewLegacy.kt @@ -8,7 +8,7 @@ import androidx.appcompatlegacy.widget.AppCompatTextView * Created by SuperMonster003 on Mar 20, 2022. * Transformed by SuperMonster003 on May 22, 2023. */ -// @Reference to TonyJiangWJ/Auto.js (https://github.com/TonyJiangWJ/Auto.js) on Mar 20, 2022 +// @Reference to TonyJiangWJ/Auto.js (https://github.com/TonyJiangWJ/Auto.js) on Mar 20, 2022. class JsTextViewLegacy : AppCompatTextView { constructor(context: Context) : super(context) diff --git a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsWebView.kt b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsWebView.kt index b93ecb41f..8d647529e 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/widget/JsWebView.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/widget/JsWebView.kt @@ -8,7 +8,7 @@ import android.webkit.WebView import android.webkit.WebViewClient /** - * Created by Stardust on 2017/11/29. + * Created by Stardust on Nov 29, 2017. */ class JsWebView : WebView { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/xml/AttributeHandler.java b/app/src/main/java/org/autojs/autojs/core/ui/xml/AttributeHandler.java index 103b712a6..e66d4b9b4 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/xml/AttributeHandler.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/xml/AttributeHandler.java @@ -6,7 +6,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/5/14. + * Created by Stardust on May 14, 2017. */ public interface AttributeHandler { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/xml/NodeHandler.java b/app/src/main/java/org/autojs/autojs/core/ui/xml/NodeHandler.java index d0095bfa1..4593fb0e8 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/xml/NodeHandler.java +++ b/app/src/main/java/org/autojs/autojs/core/ui/xml/NodeHandler.java @@ -6,7 +6,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/5/15. + * Created by Stardust on May 15, 2017. */ public interface NodeHandler { diff --git a/app/src/main/java/org/autojs/autojs/core/ui/xml/XmlConverter.kt b/app/src/main/java/org/autojs/autojs/core/ui/xml/XmlConverter.kt index ce4f7e137..0e40fc09e 100644 --- a/app/src/main/java/org/autojs/autojs/core/ui/xml/XmlConverter.kt +++ b/app/src/main/java/org/autojs/autojs/core/ui/xml/XmlConverter.kt @@ -28,7 +28,7 @@ import javax.xml.parsers.DocumentBuilderFactory import javax.xml.parsers.ParserConfigurationException /** - * Created by Stardust on 2017/5/14. + * Created by Stardust on May 14, 2017. * Modified by SuperMonster003 as of Feb 5, 2022. * Transformed by SuperMonster003 on May 20, 2023. */ @@ -83,7 +83,7 @@ object XmlConverter { .map(arrayOf("webview", "web"), JsWebView::class.java.name) .map( "text", - // @Reference to TonyJiangWJ/Auto.js (https://github.com/TonyJiangWJ/Auto.js) on Mar 20, 2022 + // @Reference to TonyJiangWJ/Auto.js (https://github.com/TonyJiangWJ/Auto.js) on Mar 20, 2022. when (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { true -> JsTextViewLegacy::class.java.name else -> JsTextView::class.java.name diff --git a/app/src/main/java/org/autojs/autojs/core/web/InjectableWebClient.java b/app/src/main/java/org/autojs/autojs/core/web/InjectableWebClient.java index 440cb28c1..4dcc0b7c7 100644 --- a/app/src/main/java/org/autojs/autojs/core/web/InjectableWebClient.java +++ b/app/src/main/java/org/autojs/autojs/core/web/InjectableWebClient.java @@ -17,7 +17,7 @@ import java.util.Queue; /** - * Created by Stardust on 2017/4/1. + * Created by Stardust on Apr 1, 2017. */ public class InjectableWebClient extends WebViewClient { diff --git a/app/src/main/java/org/autojs/autojs/core/web/InjectableWebView.kt b/app/src/main/java/org/autojs/autojs/core/web/InjectableWebView.kt index d23355f9c..e3e06e720 100644 --- a/app/src/main/java/org/autojs/autojs/core/web/InjectableWebView.kt +++ b/app/src/main/java/org/autojs/autojs/core/web/InjectableWebView.kt @@ -10,7 +10,7 @@ import org.autojs.autojs.annotation.ScriptInterface import org.mozilla.javascript.Scriptable /** - * Created by Stardust on 2017/4/1. + * Created by Stardust on Apr 1, 2017. * Modified by SuperMonster003 as of Jan 21, 2023. * Transformed by SuperMonster003 on Apr 18, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/engine/JavaScriptEngine.java b/app/src/main/java/org/autojs/autojs/engine/JavaScriptEngine.java index 464e1835a..53c766f2a 100644 --- a/app/src/main/java/org/autojs/autojs/engine/JavaScriptEngine.java +++ b/app/src/main/java/org/autojs/autojs/engine/JavaScriptEngine.java @@ -10,7 +10,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/8/3. + * Created by Stardust on Aug 3, 2017. */ public abstract class JavaScriptEngine extends ScriptEngine.AbstractScriptEngine { private ScriptRuntime mRuntime; diff --git a/app/src/main/java/org/autojs/autojs/engine/LoopBasedJavaScriptEngine.java b/app/src/main/java/org/autojs/autojs/engine/LoopBasedJavaScriptEngine.java index 5a30291b6..91d97ff0a 100644 --- a/app/src/main/java/org/autojs/autojs/engine/LoopBasedJavaScriptEngine.java +++ b/app/src/main/java/org/autojs/autojs/engine/LoopBasedJavaScriptEngine.java @@ -4,22 +4,21 @@ import android.content.Context; import android.os.Handler; import android.os.Looper; +import android.util.Log; import org.autojs.autojs.core.looper.LooperHelper; +import org.autojs.autojs.runtime.ScriptRuntime; import org.autojs.autojs.script.JavaScriptSource; import org.autojs.autojs.script.ScriptSource; +import org.autojs.autojs6.BuildConfig; import org.mozilla.javascript.ContinuationPending; /** - * Created by Stardust on 2017/7/28. + * Created by Stardust on Jul 28, 2017. */ public class LoopBasedJavaScriptEngine extends RhinoJavaScriptEngine { - public interface ExecuteCallback { - void onResult(Object r); - - void onException(Exception e); - } + private final String TAG = LoopBasedJavaScriptEngine.class.getSimpleName(); private Handler mHandler; private boolean mLooping = false; @@ -28,31 +27,40 @@ public LoopBasedJavaScriptEngine(Context context) { super(context); } + public interface ExecuteCallback { + void onResult(Object r); + + void onException(Throwable e); + } + @Override public Object execute(final JavaScriptSource source) { execute(source, null); return null; } - public void execute(final ScriptSource source, final ExecuteCallback callback) { Runnable r = () -> { try { Object o = LoopBasedJavaScriptEngine.super.execute((JavaScriptSource) source); - if (callback != null) + if (callback != null) { callback.onResult(o); + } } catch (ContinuationPending ignored) { - } catch (Exception e) { + } catch (Throwable e) { + if (e.getMessage() != null) { + Log.e(TAG, e.getMessage()); + } if (callback == null) { throw e; } else { callback.onException(e); } } - - }; + mHandler.post(r); + if (!mLooping && Looper.myLooper() != Looper.getMainLooper()) { mLooping = true; while (true) { @@ -62,6 +70,9 @@ public void execute(final ScriptSource source, final ExecuteCallback callback) { continue; } catch (Throwable t) { mLooping = false; + if (BuildConfig.isInrt && t.getMessage() != null) { + ScriptRuntime.popException(t.getMessage()); + } throw t; } break; @@ -101,5 +112,4 @@ public void init() { super.init(); } - } diff --git a/app/src/main/java/org/autojs/autojs/engine/RhinoJavaScriptEngine.kt b/app/src/main/java/org/autojs/autojs/engine/RhinoJavaScriptEngine.kt index aabc1121a..694aba2e9 100644 --- a/app/src/main/java/org/autojs/autojs/engine/RhinoJavaScriptEngine.kt +++ b/app/src/main/java/org/autojs/autojs/engine/RhinoJavaScriptEngine.kt @@ -28,7 +28,7 @@ import java.net.URI import java.util.Locale /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. * Modified by SuperMonster003 as of May 26, 2022. */ open class RhinoJavaScriptEngine(private val mAndroidContext: android.content.Context) : JavaScriptEngine() { diff --git a/app/src/main/java/org/autojs/autojs/engine/RootAutomatorEngine.kt b/app/src/main/java/org/autojs/autojs/engine/RootAutomatorEngine.kt index ef4be2e51..4f69709e6 100644 --- a/app/src/main/java/org/autojs/autojs/engine/RootAutomatorEngine.kt +++ b/app/src/main/java/org/autojs/autojs/engine/RootAutomatorEngine.kt @@ -19,7 +19,7 @@ import java.io.InputStreamReader import java.util.regex.Pattern /** - * Created by Stardust on 2017/8/1. + * Created by Stardust on Aug 1, 2017. * Modified by SuperMonster003 as of Sep 10, 2022. */ class RootAutomatorEngine @JvmOverloads constructor(private val mContext: Context, deviceNameOrPath: String? = InputDevices.getTouchDeviceName()) : ScriptEngine.AbstractScriptEngine() { diff --git a/app/src/main/java/org/autojs/autojs/engine/ScriptEngine.java b/app/src/main/java/org/autojs/autojs/engine/ScriptEngine.java index d4441a800..6e69b1460 100644 --- a/app/src/main/java/org/autojs/autojs/engine/ScriptEngine.java +++ b/app/src/main/java/org/autojs/autojs/engine/ScriptEngine.java @@ -10,7 +10,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. *

    * A ScriptEngine is created by {@link ScriptEngineManager#createEngine(String, int)} ()}, and then can be * used to execute script with {@link ScriptEngine#execute(ScriptSource)} in the same thread. diff --git a/app/src/main/java/org/autojs/autojs/engine/ScriptEngineFactory.java b/app/src/main/java/org/autojs/autojs/engine/ScriptEngineFactory.java index 29bf40035..d4cc2f27e 100644 --- a/app/src/main/java/org/autojs/autojs/engine/ScriptEngineFactory.java +++ b/app/src/main/java/org/autojs/autojs/engine/ScriptEngineFactory.java @@ -13,7 +13,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/8/2. + * Created by Stardust on Aug 2, 2017. */ public class ScriptEngineFactory { diff --git a/app/src/main/java/org/autojs/autojs/engine/ScriptEngineManager.java b/app/src/main/java/org/autojs/autojs/engine/ScriptEngineManager.java index ffcd46e89..009d2bd3f 100644 --- a/app/src/main/java/org/autojs/autojs/engine/ScriptEngineManager.java +++ b/app/src/main/java/org/autojs/autojs/engine/ScriptEngineManager.java @@ -15,7 +15,7 @@ import java.util.Set; /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. */ public class ScriptEngineManager { diff --git a/app/src/main/java/org/autojs/autojs/engine/ScriptEngineService.java b/app/src/main/java/org/autojs/autojs/engine/ScriptEngineService.java index b62b0232d..cd8c87023 100644 --- a/app/src/main/java/org/autojs/autojs/engine/ScriptEngineService.java +++ b/app/src/main/java/org/autojs/autojs/engine/ScriptEngineService.java @@ -2,6 +2,7 @@ import android.content.Context; import android.os.Build; +import android.util.Log; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; @@ -31,10 +32,12 @@ import java.util.Set; /** - * Created by Stardust on 2017/1/23. + * Created by Stardust on Jan 23, 2017. */ public class ScriptEngineService { + private static final String TAG = ScriptEngineService.class.getSimpleName(); + private static ScriptEngineService sInstance; private final Context mApplicationContext; private final UiHandler mUiHandler; @@ -59,6 +62,7 @@ public void onEngineRemove(ScriptEngine engine) { mScriptExecutionObserver.registerScriptExecutionListener(new SimpleScriptExecutionListener() { @Override public void onStart(ScriptExecution execution) { + Log.d(TAG, "onStart"); ScriptSource scriptSource = execution.getSource(); if (execution.getEngine() instanceof JavaScriptEngine) { ((JavaScriptEngine) execution.getEngine()).getRuntime().console.setTitle(scriptSource.getName()); @@ -77,6 +81,7 @@ private void onFinish(ScriptExecution execution) { @Override public void onException(ScriptExecution execution, Throwable e) { + Log.d(TAG, "onException"); e.printStackTrace(); onFinish(execution); String message = null; @@ -94,7 +99,10 @@ public void onException(ScriptExecution execution, Throwable e) { } } if (message != null) { + Log.e(TAG, message); mUiHandler.toast(getLanguageContext().getString(R.string.text_error) + ": " + message); + } else { + Log.e(TAG, "No exception message"); } } @@ -148,8 +156,10 @@ private ScriptExecution executeInternal(ScriptExecutionTask task) { } RunnableScriptExecution r; if (source instanceof JavaScriptSource) { + Log.d(TAG, "JavaScriptSource: true"); r = new LoopedBasedJavaScriptExecution(mScriptEngineManager, task); } else { + Log.d(TAG, "JavaScriptSource: false"); r = new RunnableScriptExecution(mScriptEngineManager, task); } new ThreadCompat(r).start(); diff --git a/app/src/main/java/org/autojs/autojs/engine/ScriptEngineServiceBuilder.java b/app/src/main/java/org/autojs/autojs/engine/ScriptEngineServiceBuilder.java index 37ed60bcd..ffb2b158a 100644 --- a/app/src/main/java/org/autojs/autojs/engine/ScriptEngineServiceBuilder.java +++ b/app/src/main/java/org/autojs/autojs/engine/ScriptEngineServiceBuilder.java @@ -6,7 +6,7 @@ import org.autojs.autojs.tool.UiHandler; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ public class ScriptEngineServiceBuilder { diff --git a/app/src/main/java/org/autojs/autojs/engine/module/AssetAndUrlModuleSourceProvider.kt b/app/src/main/java/org/autojs/autojs/engine/module/AssetAndUrlModuleSourceProvider.kt index 02fac4068..4fb1405d9 100644 --- a/app/src/main/java/org/autojs/autojs/engine/module/AssetAndUrlModuleSourceProvider.kt +++ b/app/src/main/java/org/autojs/autojs/engine/module/AssetAndUrlModuleSourceProvider.kt @@ -24,7 +24,7 @@ import java.nio.charset.Charset import java.nio.charset.StandardCharsets /** - * Created by Stardust on 2017/5/9. + * Created by Stardust on May 9, 2017. * Transformed by SuperMonster003 on Jul 14, 2023. */ // @Inspired by aiselp (https://github.com/aiselp) on Jul 14, 2023. diff --git a/app/src/main/java/org/autojs/autojs/engine/preprocess/AbstractProcessor.java b/app/src/main/java/org/autojs/autojs/engine/preprocess/AbstractProcessor.java index c2b137658..b7ed31dc0 100644 --- a/app/src/main/java/org/autojs/autojs/engine/preprocess/AbstractProcessor.java +++ b/app/src/main/java/org/autojs/autojs/engine/preprocess/AbstractProcessor.java @@ -5,7 +5,7 @@ import java.io.Reader; /** - * Created by Stardust on 2017/5/15. + * Created by Stardust on May 15, 2017. */ public abstract class AbstractProcessor implements Preprocessor { diff --git a/app/src/main/java/org/autojs/autojs/engine/preprocess/MultiLinePreprocessor.java b/app/src/main/java/org/autojs/autojs/engine/preprocess/MultiLinePreprocessor.java index 7149c9a75..9c75568fa 100644 --- a/app/src/main/java/org/autojs/autojs/engine/preprocess/MultiLinePreprocessor.java +++ b/app/src/main/java/org/autojs/autojs/engine/preprocess/MultiLinePreprocessor.java @@ -4,7 +4,7 @@ import java.io.StringReader; /** - * Created by Stardust on 2017/5/15. + * Created by Stardust on May 15, 2017. */ public class MultiLinePreprocessor extends AbstractProcessor { diff --git a/app/src/main/java/org/autojs/autojs/engine/preprocess/Preprocessor.java b/app/src/main/java/org/autojs/autojs/engine/preprocess/Preprocessor.java index 735eb55bb..ad92d0920 100644 --- a/app/src/main/java/org/autojs/autojs/engine/preprocess/Preprocessor.java +++ b/app/src/main/java/org/autojs/autojs/engine/preprocess/Preprocessor.java @@ -4,7 +4,7 @@ import java.io.Reader; /** - * Created by Stardust on 2017/5/15. + * Created by Stardust on May 15, 2017. */ public interface Preprocessor { diff --git a/app/src/main/java/org/autojs/autojs/event/BackPressedHandler.java b/app/src/main/java/org/autojs/autojs/event/BackPressedHandler.java index ed181a661..598100708 100644 --- a/app/src/main/java/org/autojs/autojs/event/BackPressedHandler.java +++ b/app/src/main/java/org/autojs/autojs/event/BackPressedHandler.java @@ -7,7 +7,7 @@ import java.util.concurrent.CopyOnWriteArrayList; /** - * Created by Stardust on 2017/2/3. + * Created by Stardust on Feb 3, 2017. */ public interface BackPressedHandler { diff --git a/app/src/main/java/org/autojs/autojs/event/EventDispatcher.java b/app/src/main/java/org/autojs/autojs/event/EventDispatcher.java index 44a7d4eb5..b1b45894f 100644 --- a/app/src/main/java/org/autojs/autojs/event/EventDispatcher.java +++ b/app/src/main/java/org/autojs/autojs/event/EventDispatcher.java @@ -3,7 +3,7 @@ import java.util.concurrent.CopyOnWriteArrayList; /** - * Created by Stardust on 2017/8/6. + * Created by Stardust on Aug 6, 2017. */ public class EventDispatcher { diff --git a/app/src/main/java/org/autojs/autojs/event/GlobalKeyObserver.java b/app/src/main/java/org/autojs/autojs/event/GlobalKeyObserver.java index b02168bae..330d85754 100644 --- a/app/src/main/java/org/autojs/autojs/event/GlobalKeyObserver.java +++ b/app/src/main/java/org/autojs/autojs/event/GlobalKeyObserver.java @@ -12,7 +12,7 @@ import org.autojs.autojs.pref.Pref; /** - * Created by Stardust on 2017/8/14. + * Created by Stardust on Aug 14, 2017. */ public class GlobalKeyObserver implements OnKeyListener, ShellKeyObserver.KeyListener { diff --git a/app/src/main/java/org/autojs/autojs/execution/ExecutionConfig.kt b/app/src/main/java/org/autojs/autojs/execution/ExecutionConfig.kt index ea419e6ae..095e65202 100644 --- a/app/src/main/java/org/autojs/autojs/execution/ExecutionConfig.kt +++ b/app/src/main/java/org/autojs/autojs/execution/ExecutionConfig.kt @@ -5,7 +5,7 @@ import android.os.Parcelable import org.autojs.autojs.project.ScriptConfig /** - * Created by Stardust on 2017/2/1. + * Created by Stardust on Feb 1, 2017. */ data class ExecutionConfig( var workingDirectory: String = "", diff --git a/app/src/main/java/org/autojs/autojs/execution/LoopedBasedJavaScriptExecution.java b/app/src/main/java/org/autojs/autojs/execution/LoopedBasedJavaScriptExecution.java index 7fda8c913..ccb799adc 100644 --- a/app/src/main/java/org/autojs/autojs/execution/LoopedBasedJavaScriptExecution.java +++ b/app/src/main/java/org/autojs/autojs/execution/LoopedBasedJavaScriptExecution.java @@ -4,10 +4,12 @@ import org.autojs.autojs.engine.LoopBasedJavaScriptEngine; import org.autojs.autojs.engine.ScriptEngine; import org.autojs.autojs.engine.ScriptEngineManager; +import org.autojs.autojs.inrt.autojs.LoopBasedJavaScriptEngineWithDecryption; import org.autojs.autojs.script.JavaScriptSource; +import org.autojs.autojs6.BuildConfig; /** - * Created by Stardust on 2017/10/27. + * Created by Stardust on Oct 27, 2017. */ public class LoopedBasedJavaScriptExecution extends RunnableScriptExecution { @@ -15,14 +17,16 @@ public LoopedBasedJavaScriptExecution(ScriptEngineManager manager, ScriptExecuti super(manager, task); } - protected Object doExecution(final ScriptEngine engine) { engine.setTag(ScriptEngine.TAG_SOURCE, getSource()); getListener().onStart(this); long delay = getConfig().getDelay(); sleep(delay); - final LoopBasedJavaScriptEngine javaScriptEngine = (LoopBasedJavaScriptEngine) engine; final long interval = getConfig().getInterval(); + + var javaScriptEngine = BuildConfig.isInrt + ? (LoopBasedJavaScriptEngineWithDecryption) engine + : (LoopBasedJavaScriptEngine) engine; javaScriptEngine.getRuntime().loopers.setMainLooperQuitHandler(new Loopers.LooperQuitHandler() { long times = getConfig().getLoopTimes() == 0 ? Integer.MAX_VALUE : getConfig().getLoopTimes(); @@ -39,6 +43,7 @@ public boolean shouldQuit() { } }); javaScriptEngine.execute(getSource()); + return null; } diff --git a/app/src/main/java/org/autojs/autojs/execution/RunnableScriptExecution.java b/app/src/main/java/org/autojs/autojs/execution/RunnableScriptExecution.java index 67c776198..113423214 100644 --- a/app/src/main/java/org/autojs/autojs/execution/RunnableScriptExecution.java +++ b/app/src/main/java/org/autojs/autojs/execution/RunnableScriptExecution.java @@ -9,7 +9,7 @@ import org.autojs.autojs.script.ScriptSource; /** - * Created by Stardust on 2017/5/1. + * Created by Stardust on May 1, 2017. */ public class RunnableScriptExecution extends ScriptExecution.AbstractScriptExecution implements Runnable { diff --git a/app/src/main/java/org/autojs/autojs/execution/ScriptExecuteActivity.kt b/app/src/main/java/org/autojs/autojs/execution/ScriptExecuteActivity.kt index d7c47ed2a..d7fa6365d 100644 --- a/app/src/main/java/org/autojs/autojs/execution/ScriptExecuteActivity.kt +++ b/app/src/main/java/org/autojs/autojs/execution/ScriptExecuteActivity.kt @@ -19,12 +19,14 @@ import org.autojs.autojs.engine.ScriptEngine import org.autojs.autojs.engine.ScriptEngineManager import org.autojs.autojs.engine.ScriptEngineService import org.autojs.autojs.execution.ScriptExecution.AbstractScriptExecution +import org.autojs.autojs.inrt.autojs.LoopBasedJavaScriptEngineWithDecryption import org.autojs.autojs.runtime.ScriptRuntime import org.autojs.autojs.script.ScriptSource +import org.autojs.autojs6.BuildConfig import org.mozilla.javascript.ContinuationPending /** - * Created by Stardust on 2017/2/5. + * Created by Stardust on Feb 5, 2017. */ class ScriptExecuteActivity : AppCompatActivity() { private var mResult: Any? = null @@ -36,7 +38,8 @@ class ScriptExecuteActivity : AppCompatActivity() { lateinit var eventEmitter: EventEmitter private set - // FIXME: 2018/3/16 如果Activity被回收则得不到改进 + // FIXME by Stardust on Mar 16, 2018. + // ! 如果 Activity 被回收则得不到改进. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val executionId = intent.getIntExtra(EXTRA_EXECUTION_ID, ScriptExecution.NO_ID) @@ -71,42 +74,44 @@ class ScriptExecuteActivity : AppCompatActivity() { } private fun onException(e: Throwable) { - mExecutionListener!!.onException(mScriptExecution, e) + mExecutionListener?.onException(mScriptExecution, e) super.finish() } + private fun prepare() { + mScriptEngine.put("activity", this) + mScriptEngine.setTag("activity", this) + mScriptEngine.setTag(ScriptEngine.TAG_ENV_PATH, mScriptExecution.config.path) + mScriptEngine.setTag(ScriptEngine.TAG_WORKING_DIRECTORY, mScriptExecution.config.workingDirectory) + mScriptEngine.init() + } + private fun doExecution() { - mScriptEngine.setTag(ScriptEngine.TAG_SOURCE, mScriptSource) - mExecutionListener!!.onStart(mScriptExecution) - (mScriptEngine as LoopBasedJavaScriptEngine?)!!.execute(mScriptSource, object : ExecuteCallback { + val executeCallback = object : ExecuteCallback { override fun onResult(r: Any) { mResult = r } - override fun onException(e: Exception) { + override fun onException(e: Throwable) { this@ScriptExecuteActivity.onException(e) } - }) - } + } - private fun prepare() { - mScriptEngine.put("activity", this) - mScriptEngine.setTag("activity", this) - mScriptEngine.setTag(ScriptEngine.TAG_ENV_PATH, mScriptExecution.config.path) - mScriptEngine.setTag(ScriptEngine.TAG_WORKING_DIRECTORY, mScriptExecution.config.workingDirectory) - mScriptEngine.init() + mScriptEngine.setTag(ScriptEngine.TAG_SOURCE, mScriptSource) + mExecutionListener!!.onStart(mScriptExecution) + + if (BuildConfig.isInrt) { + (mScriptEngine as LoopBasedJavaScriptEngineWithDecryption?)!!.execute(mScriptSource, executeCallback) + } else { + (mScriptEngine as LoopBasedJavaScriptEngine?)!!.execute(mScriptSource, executeCallback) + } } override fun finish() { - if (mExecutionListener == null) { - super.finish() - return - } - val exception = mScriptEngine.uncaughtException - if (exception != null) { - onException(exception) - } else { - mExecutionListener!!.onSuccess(mScriptExecution, mResult) + if (::mScriptEngine.isInitialized) { + mScriptEngine.uncaughtException + ?.let { onException(it) } + ?: mExecutionListener?.onSuccess(mScriptExecution, mResult) } super.finish() } @@ -115,9 +120,11 @@ class ScriptExecuteActivity : AppCompatActivity() { super.onDestroy() Log.d(LOG_TAG, "onDestroy") - mScriptEngine.put("activity", null) - mScriptEngine.setTag("activity", null) - mScriptEngine.destroy() + if (::mScriptEngine.isInitialized) { + mScriptEngine.put("activity", null) + mScriptEngine.setTag("activity", null) + mScriptEngine.destroy() + } @Suppress("DEPRECATION") mRuntime.loopers?.waitWhenIdle(false) diff --git a/app/src/main/java/org/autojs/autojs/execution/ScriptExecution.java b/app/src/main/java/org/autojs/autojs/execution/ScriptExecution.java index 633ceead9..9c032e380 100644 --- a/app/src/main/java/org/autojs/autojs/execution/ScriptExecution.java +++ b/app/src/main/java/org/autojs/autojs/execution/ScriptExecution.java @@ -6,7 +6,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** - * Created by Stardust on 2017/4/3. + * Created by Stardust on Apr 3, 2017. */ public interface ScriptExecution { diff --git a/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionGlobalListener.java b/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionGlobalListener.java index 5cb988f28..149e1515c 100644 --- a/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionGlobalListener.java +++ b/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionGlobalListener.java @@ -10,7 +10,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/5/3. + * Created by Stardust on May 3, 2017. */ public class ScriptExecutionGlobalListener implements ScriptExecutionListener { private static final String ENGINE_TAG_START_TIME = "org.autojs.autojs.autojs.Goodbye, World"; diff --git a/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionListener.java b/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionListener.java index 3757ddbcc..2e99a05a9 100644 --- a/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionListener.java +++ b/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionListener.java @@ -3,7 +3,7 @@ import java.io.Serializable; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ public interface ScriptExecutionListener extends Serializable { diff --git a/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionObserver.java b/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionObserver.java index f7ce66823..99316428f 100644 --- a/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionObserver.java +++ b/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionObserver.java @@ -3,7 +3,7 @@ import java.util.concurrent.CopyOnWriteArraySet; /** - * Created by Stardust on 2017/5/3. + * Created by Stardust on May 3, 2017. */ public class ScriptExecutionObserver implements ScriptExecutionListener { private final CopyOnWriteArraySet mScriptExecutionListeners = new CopyOnWriteArraySet<>(); diff --git a/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionTask.java b/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionTask.java index b883769c9..1b55c6328 100644 --- a/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionTask.java +++ b/app/src/main/java/org/autojs/autojs/execution/ScriptExecutionTask.java @@ -5,7 +5,7 @@ import java.io.Serializable; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ public class ScriptExecutionTask implements Serializable { diff --git a/app/src/main/java/org/autojs/autojs/execution/SimpleScriptExecutionListener.java b/app/src/main/java/org/autojs/autojs/execution/SimpleScriptExecutionListener.java index c6bc4adae..77349ca36 100644 --- a/app/src/main/java/org/autojs/autojs/execution/SimpleScriptExecutionListener.java +++ b/app/src/main/java/org/autojs/autojs/execution/SimpleScriptExecutionListener.java @@ -1,7 +1,7 @@ package org.autojs.autojs.execution; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ public class SimpleScriptExecutionListener implements ScriptExecutionListener { diff --git a/app/src/main/java/org/autojs/autojs/external/ScriptExecutionIntentService.java b/app/src/main/java/org/autojs/autojs/external/ScriptExecutionIntentService.java index 7437ef819..5b84d911b 100644 --- a/app/src/main/java/org/autojs/autojs/external/ScriptExecutionIntentService.java +++ b/app/src/main/java/org/autojs/autojs/external/ScriptExecutionIntentService.java @@ -6,7 +6,7 @@ import androidx.annotation.Nullable; /** - * Created by Stardust on 2017/5/15. + * Created by Stardust on May 15, 2017. */ public class ScriptExecutionIntentService extends IntentService { diff --git a/app/src/main/java/org/autojs/autojs/external/ScriptIntents.kt b/app/src/main/java/org/autojs/autojs/external/ScriptIntents.kt index 752440623..a2e76a801 100644 --- a/app/src/main/java/org/autojs/autojs/external/ScriptIntents.kt +++ b/app/src/main/java/org/autojs/autojs/external/ScriptIntents.kt @@ -15,7 +15,7 @@ import org.json.JSONObject import java.io.File /** - * Created by Stardust on 2017/4/1. + * Created by Stardust on Apr 1, 2017. * Modified by SuperMonster003 as of Mar 25, 2023. * Transformed by SuperMonster003 on Mar 25, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/external/foreground/MainActivityForegroundService.kt b/app/src/main/java/org/autojs/autojs/external/foreground/MainActivityForegroundService.kt index 01b99f9b3..73df4723e 100644 --- a/app/src/main/java/org/autojs/autojs/external/foreground/MainActivityForegroundService.kt +++ b/app/src/main/java/org/autojs/autojs/external/foreground/MainActivityForegroundService.kt @@ -46,7 +46,7 @@ class MainActivityForegroundService : Service() { companion object { - private const val NOTIFICATION_ID = 1 + private const val NOTIFICATION_ID = 0xBF private val sClassName = MainActivityForegroundService::class.java } diff --git a/app/src/main/java/org/autojs/autojs/external/open/EditIntentActivity.java b/app/src/main/java/org/autojs/autojs/external/open/EditIntentActivity.java index 6c347b55e..d256f9325 100644 --- a/app/src/main/java/org/autojs/autojs/external/open/EditIntentActivity.java +++ b/app/src/main/java/org/autojs/autojs/external/open/EditIntentActivity.java @@ -18,7 +18,7 @@ import java.io.File; /** - * Created by Stardust on 2017/2/2. + * Created by Stardust on Feb 2, 2017. */ public class EditIntentActivity extends BaseActivity { diff --git a/app/src/main/java/org/autojs/autojs/external/open/ImportIntentActivity.java b/app/src/main/java/org/autojs/autojs/external/open/ImportIntentActivity.java index fafc0c5f4..2fdb8c27e 100644 --- a/app/src/main/java/org/autojs/autojs/external/open/ImportIntentActivity.java +++ b/app/src/main/java/org/autojs/autojs/external/open/ImportIntentActivity.java @@ -17,7 +17,7 @@ import java.io.InputStream; /** - * Created by Stardust on 2017/2/2. + * Created by Stardust on Feb 2, 2017. */ public class ImportIntentActivity extends BaseActivity { diff --git a/app/src/main/java/org/autojs/autojs/external/open/RunIntentActivity.java b/app/src/main/java/org/autojs/autojs/external/open/RunIntentActivity.java index d16c0b565..f0632fc0e 100644 --- a/app/src/main/java/org/autojs/autojs/external/open/RunIntentActivity.java +++ b/app/src/main/java/org/autojs/autojs/external/open/RunIntentActivity.java @@ -18,7 +18,7 @@ import java.io.InputStream; /** - * Created by Stardust on 2017/2/22. + * Created by Stardust on Feb 22, 2017. */ public class RunIntentActivity extends Activity { diff --git a/app/src/main/java/org/autojs/autojs/external/shortcut/Shortcut.java b/app/src/main/java/org/autojs/autojs/external/shortcut/Shortcut.java index 65116fa17..6ce0a6443 100644 --- a/app/src/main/java/org/autojs/autojs/external/shortcut/Shortcut.java +++ b/app/src/main/java/org/autojs/autojs/external/shortcut/Shortcut.java @@ -9,7 +9,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/1/20. + * Created by Stardust on Jan 20, 2017. */ public class Shortcut { diff --git a/app/src/main/java/org/autojs/autojs/external/shortcut/ShortcutActivity.java b/app/src/main/java/org/autojs/autojs/external/shortcut/ShortcutActivity.java index 1da1a51df..2fd560a6a 100644 --- a/app/src/main/java/org/autojs/autojs/external/shortcut/ShortcutActivity.java +++ b/app/src/main/java/org/autojs/autojs/external/shortcut/ShortcutActivity.java @@ -10,7 +10,7 @@ import org.autojs.autojs.util.ViewUtils; /** - * Created by Stardust on 2017/1/23. + * Created by Stardust on Jan 23, 2017. */ public class ShortcutActivity extends Activity { diff --git a/app/src/main/java/org/autojs/autojs/external/shortcut/ShortcutManager.java b/app/src/main/java/org/autojs/autojs/external/shortcut/ShortcutManager.java index a81156a59..cc22a3466 100644 --- a/app/src/main/java/org/autojs/autojs/external/shortcut/ShortcutManager.java +++ b/app/src/main/java/org/autojs/autojs/external/shortcut/ShortcutManager.java @@ -13,7 +13,7 @@ import java.util.List; /** - * Created by Stardust on 2017/10/25. + * Created by Stardust on Oct 25, 2017. */ @RequiresApi(api = Build.VERSION_CODES.N_MR1) public class ShortcutManager { diff --git a/app/src/main/java/org/autojs/autojs/external/tasker/FireSettingReceiver.java b/app/src/main/java/org/autojs/autojs/external/tasker/FireSettingReceiver.java index a312878c9..57b6e821d 100644 --- a/app/src/main/java/org/autojs/autojs/external/tasker/FireSettingReceiver.java +++ b/app/src/main/java/org/autojs/autojs/external/tasker/FireSettingReceiver.java @@ -12,7 +12,7 @@ import org.json.JSONObject; /** - * Created by Stardust on 2017/3/27. + * Created by Stardust on Mar 27, 2017. */ public class FireSettingReceiver extends AbstractPluginSettingReceiver { diff --git a/app/src/main/java/org/autojs/autojs/external/tasker/TaskPrefEditActivity.kt b/app/src/main/java/org/autojs/autojs/external/tasker/TaskPrefEditActivity.kt index ef12a915f..080e705a6 100644 --- a/app/src/main/java/org/autojs/autojs/external/tasker/TaskPrefEditActivity.kt +++ b/app/src/main/java/org/autojs/autojs/external/tasker/TaskPrefEditActivity.kt @@ -20,7 +20,7 @@ import org.json.JSONException import org.json.JSONObject /** - * Created by Stardust on 2017/3/27. + * Created by Stardust on Mar 27, 2017. * Modified by SuperMonster003 as of May 26, 2022. * Transformed by SuperMonster003 on May 13, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/external/tasker/TaskerScriptEditActivity.java b/app/src/main/java/org/autojs/autojs/external/tasker/TaskerScriptEditActivity.java index 603cebd2d..1d5f33edb 100644 --- a/app/src/main/java/org/autojs/autojs/external/tasker/TaskerScriptEditActivity.java +++ b/app/src/main/java/org/autojs/autojs/external/tasker/TaskerScriptEditActivity.java @@ -22,7 +22,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers; /** - * Created by Stardust on 2017/4/5. + * Created by Stardust on Apr 5, 2017. * Modified by SuperMonster003 as of May 26, 2022. */ public class TaskerScriptEditActivity extends BaseActivity { diff --git a/app/src/main/java/org/autojs/autojs/external/tile/LayoutHierarchyTile.java b/app/src/main/java/org/autojs/autojs/external/tile/LayoutHierarchyTile.java index 73b02b2d7..de43223f6 100644 --- a/app/src/main/java/org/autojs/autojs/external/tile/LayoutHierarchyTile.java +++ b/app/src/main/java/org/autojs/autojs/external/tile/LayoutHierarchyTile.java @@ -7,6 +7,7 @@ import org.autojs.autojs.ui.floating.layoutinspector.LayoutHierarchyFloatyWindow; public class LayoutHierarchyTile extends LayoutInspectTileService { + @Override protected FullScreenFloatyWindow onCreateWindow(NodeInfo capture, Context context) { return new LayoutHierarchyFloatyWindow(capture, context, true) { diff --git a/app/src/main/java/org/autojs/autojs/external/tile/LayoutInspectTileService.java b/app/src/main/java/org/autojs/autojs/external/tile/LayoutInspectTileService.java index 0dc496dd5..fd7e5b77a 100644 --- a/app/src/main/java/org/autojs/autojs/external/tile/LayoutInspectTileService.java +++ b/app/src/main/java/org/autojs/autojs/external/tile/LayoutInspectTileService.java @@ -13,7 +13,6 @@ import org.autojs.autojs.AutoJs; import org.autojs.autojs.app.GlobalAppContext; -import org.autojs.autojs.core.accessibility.AccessibilityService; import org.autojs.autojs.core.accessibility.AccessibilityTool; import org.autojs.autojs.core.accessibility.LayoutInspector; import org.autojs.autojs.core.accessibility.NodeInfo; @@ -74,14 +73,23 @@ public void onClick() { if (mA11yService.isRunning()) { mCapturing = true; - GlobalAppContext.postDelayed(() -> AutoJs.getInstance().getLayoutInspector().captureCurrentWindow(), 1000); + captureCurrentWindowDelayed(); } else { - ViewUtils.showToast(this, R.string.error_no_accessibility_permission_to_capture); - mA11yService.start(); - updateTile(); + if (mA11yService.start(false)) { + mCapturing = true; + captureCurrentWindowDelayed(); + } else { + ViewUtils.showToast(this, R.string.error_no_accessibility_permission_to_capture); + mA11yService.launchSettings(); + updateTile(); + } } } + private static void captureCurrentWindowDelayed() { + GlobalAppContext.postDelayed(() -> AutoJs.getInstance().getLayoutInspector().captureCurrentWindow(), 1000); + } + // @Hint by SuperMonster003 on Oct 8, 2022. // ! Apparently not a good idea. private void collapseTile() { diff --git a/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidget.java b/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidget.java index afbb0f865..ec5f7987a 100644 --- a/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidget.java +++ b/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidget.java @@ -18,7 +18,7 @@ import java.util.Set; /** - * Created by Stardust on 2017/7/11. + * Created by Stardust on Jul 11, 2017. * Modified by SuperMonster003 as of May 6, 2022. */ public class ScriptWidget extends AppWidgetProvider { diff --git a/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidgetSettingsActivity.java b/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidgetSettingsActivity.java index 0777dea9c..8a0b0ceda 100644 --- a/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidgetSettingsActivity.java +++ b/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidgetSettingsActivity.java @@ -20,7 +20,7 @@ import org.autojs.autojs6.databinding.ActivityScriptWidgetSettingsBinding; /** - * Created by Stardust on 2017/7/11. + * Created by Stardust on Jul 11, 2017. * Modified by SuperMonster003 as of May 8, 2023. */ public class ScriptWidgetSettingsActivity extends BaseActivity { diff --git a/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidgets.java b/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidgets.java index 4509cba58..73a1abdc9 100644 --- a/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidgets.java +++ b/app/src/main/java/org/autojs/autojs/external/widget/ScriptWidgets.java @@ -14,7 +14,7 @@ import java.util.regex.Pattern; /** - * Created by Stardust on 2017/7/11. + * Created by Stardust on Jul 11, 2017. */ public class ScriptWidgets { diff --git a/app/src/main/java/org/autojs/autojs/groundwork/WrapContentLinearLayoutManager.java b/app/src/main/java/org/autojs/autojs/groundwork/WrapContentLinearLayoutManager.java index 29fd471ad..ff6957c31 100644 --- a/app/src/main/java/org/autojs/autojs/groundwork/WrapContentLinearLayoutManager.java +++ b/app/src/main/java/org/autojs/autojs/groundwork/WrapContentLinearLayoutManager.java @@ -8,7 +8,7 @@ import androidx.recyclerview.widget.RecyclerView; /** - * Created by Stardust on 2017/2/13. + * Created by Stardust on Feb 13, 2017. *
    * * Reference: stackoverflow diff --git a/app/src/main/java/org/autojs/autojs/inrt/LogActivity.kt b/app/src/main/java/org/autojs/autojs/inrt/LogActivity.kt index f84b26ccd..426510d08 100644 --- a/app/src/main/java/org/autojs/autojs/inrt/LogActivity.kt +++ b/app/src/main/java/org/autojs/autojs/inrt/LogActivity.kt @@ -12,9 +12,10 @@ import org.autojs.autojs.inrt.autojs.AutoJs import org.autojs.autojs.inrt.launch.GlobalProjectLauncher import org.autojs.autojs.core.console.ConsoleImpl import org.autojs.autojs.core.console.ConsoleView +import org.autojs.autojs.ui.BaseActivity import org.autojs.autojs6.R -class LogActivity : AppCompatActivity() { +class LogActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/org/autojs/autojs/inrt/Pref.kt b/app/src/main/java/org/autojs/autojs/inrt/Pref.kt index 8152e754f..af9ccb041 100644 --- a/app/src/main/java/org/autojs/autojs/inrt/Pref.kt +++ b/app/src/main/java/org/autojs/autojs/inrt/Pref.kt @@ -7,7 +7,7 @@ import org.autojs.autojs.app.GlobalAppContext import org.autojs.autojs6.R /** - * Created by Stardust on 2017/12/8. + * Created by Stardust on Dec 8, 2017. */ object Pref { diff --git a/app/src/main/java/org/autojs/autojs/inrt/SettingsActivity.kt b/app/src/main/java/org/autojs/autojs/inrt/SettingsActivity.kt index f633e592d..85696505d 100644 --- a/app/src/main/java/org/autojs/autojs/inrt/SettingsActivity.kt +++ b/app/src/main/java/org/autojs/autojs/inrt/SettingsActivity.kt @@ -6,7 +6,7 @@ import androidx.appcompat.widget.Toolbar import org.autojs.autojs6.R /** - * Created by Stardust on 2017/12/8. + * Created by Stardust on Dec 8, 2017. * Modified by SuperMonster003 as of Oct 27, 2023. */ class SettingsActivity : AppCompatActivity() { diff --git a/app/src/main/java/org/autojs/autojs/inrt/SplashActivity.kt b/app/src/main/java/org/autojs/autojs/inrt/SplashActivity.kt index c147a8320..22f83590a 100644 --- a/app/src/main/java/org/autojs/autojs/inrt/SplashActivity.kt +++ b/app/src/main/java/org/autojs/autojs/inrt/SplashActivity.kt @@ -1,6 +1,7 @@ package org.autojs.autojs.inrt import android.Manifest +import android.annotation.SuppressLint import android.content.Intent import android.content.pm.PackageManager.PERMISSION_DENIED import android.graphics.Typeface @@ -9,20 +10,20 @@ import android.os.Handler import android.os.Looper import android.widget.TextView import android.widget.Toast -import androidx.annotation.NonNull -import androidx.annotation.Nullable import androidx.appcompat.app.AppCompatActivity import org.autojs.autojs.inrt.autojs.AutoJs import org.autojs.autojs.inrt.launch.GlobalProjectLauncher +import org.autojs.autojs.ui.splash.SplashActivity.Companion.INIT_TIMEOUT import org.autojs.autojs6.R +import kotlin.concurrent.thread /** - * Created by Stardust on 2018/2/2. + * Created by Stardust on Feb 2, 2018. */ +@SuppressLint("CustomSplashScreen") class SplashActivity : AppCompatActivity() { - override fun onCreate(@Nullable savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) + override fun onCreate(savedInstanceState: Bundle?) { setContentView(R.layout.activity_splash_inrt) val slug = findViewById(R.id.slug) slug.typeface = Typeface.createFromAsset(assets, "roboto_medium.ttf") @@ -31,6 +32,7 @@ class SplashActivity : AppCompatActivity() { } else { Handler(Looper.myLooper()!!).postDelayed({ this@SplashActivity.main() }, INIT_TIMEOUT) } + super.onCreate(savedInstanceState) } private fun main() { @@ -38,7 +40,7 @@ class SplashActivity : AppCompatActivity() { } private fun runScript() { - Thread { + thread(true) { try { GlobalProjectLauncher.launch(this) } catch (e: Exception) { @@ -49,15 +51,15 @@ class SplashActivity : AppCompatActivity() { AutoJs.instance.globalConsole.printAllStackTrace(e) } } - }.start() + } } - override fun onRequestPermissionsResult(requestCode: Int, @NonNull permissions: Array, @NonNull grantResults: IntArray) { + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) runScript() } - private fun checkPermission(vararg permissions: String) { + private fun checkPermission(@Suppress("SameParameterValue") vararg permissions: String) { val requestPermissions = getRequestPermissions(permissions) if (requestPermissions.isNotEmpty()) { requestPermissions(requestPermissions, PERMISSION_REQUEST_CODE) @@ -66,21 +68,16 @@ class SplashActivity : AppCompatActivity() { } } - - private fun getRequestPermissions(permissions: Array): Array { - val list = ArrayList() - for (permission in permissions) { - if (checkSelfPermission(permission) == PERMISSION_DENIED) { - list.add(permission) - } + private fun getRequestPermissions(permissions: Array) = ArrayList() + .let { list -> + permissions.filterTo(list) { checkSelfPermission(it) == PERMISSION_DENIED } + list.toTypedArray() } - return list.toTypedArray() - } companion object { private const val PERMISSION_REQUEST_CODE = 11186 - private const val INIT_TIMEOUT: Long = 1000 + } } diff --git a/app/src/main/java/org/autojs/autojs/inrt/autojs/AutoJs.kt b/app/src/main/java/org/autojs/autojs/inrt/autojs/AutoJs.kt index b53ced321..0e8e222bd 100644 --- a/app/src/main/java/org/autojs/autojs/inrt/autojs/AutoJs.kt +++ b/app/src/main/java/org/autojs/autojs/inrt/autojs/AutoJs.kt @@ -2,16 +2,22 @@ package org.autojs.autojs.inrt.autojs import android.app.Application import android.content.Context +import android.util.Log +import com.google.mlkit.common.MlKit import org.autojs.autojs.inrt.LogActivity import org.autojs.autojs.inrt.SettingsActivity import org.autojs.autojs.runtime.api.AppUtils import org.autojs.autojs.AutoJs as AutoJsApp /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ class AutoJs(application: Application) : AutoJsApp(application) { + init { + initMLKit(application) + } + override fun createAppUtils(context: Context) = AppUtils(context, context.packageName + ".fileprovider") override fun createRuntime() = super.createRuntime().apply { @@ -19,8 +25,18 @@ class AutoJs(application: Application) : AutoJsApp(application) { putProperty("class.console", LogActivity::class.java) } + private fun initMLKit(application: Application) { + // @Hint by SuperMonster003 on Nov 26, 2023. + // ! To avoid the exception as below (only happened on packaged apps). + // ! IllegalStateException: MlKitContext has not been initialized. + MlKit.initialize(application) + Log.d(TAG, "MLKit initialized") + } + companion object { + private const val TAG = "AutoJsInrt" + val instance get() = AutoJsApp.instance diff --git a/app/src/main/java/org/autojs/autojs/inrt/autojs/LoopBasedJavaScriptEngineWithDecryption.kt b/app/src/main/java/org/autojs/autojs/inrt/autojs/LoopBasedJavaScriptEngineWithDecryption.kt index 27ff08254..323c843fd 100644 --- a/app/src/main/java/org/autojs/autojs/inrt/autojs/LoopBasedJavaScriptEngineWithDecryption.kt +++ b/app/src/main/java/org/autojs/autojs/inrt/autojs/LoopBasedJavaScriptEngineWithDecryption.kt @@ -12,7 +12,7 @@ import org.autojs.autojs.script.StringScriptSource class LoopBasedJavaScriptEngineWithDecryption(context: Context) : LoopBasedJavaScriptEngine(context) { - override fun execute(source: ScriptSource, callback: ExecuteCallback?) { + override fun execute(source: ScriptSource?, callback: ExecuteCallback?) { if (source is JavaScriptFileSource) { try { val file = source.file diff --git a/app/src/main/java/org/autojs/autojs/inrt/launch/AssetsProjectLauncher.kt b/app/src/main/java/org/autojs/autojs/inrt/launch/AssetsProjectLauncher.kt index 9241d1654..b6907857f 100644 --- a/app/src/main/java/org/autojs/autojs/inrt/launch/AssetsProjectLauncher.kt +++ b/app/src/main/java/org/autojs/autojs/inrt/launch/AssetsProjectLauncher.kt @@ -21,7 +21,7 @@ import java.io.File import java.io.IOException /** - * Created by Stardust on 2018/1/24. + * Created by Stardust on Jan 24, 2018. */ open class AssetsProjectLauncher(private val mAssetsProjectDir: String, private val mActivity: Context) { private val mProjectDir: String = File(mActivity.filesDir, "project/").path diff --git a/app/src/main/java/org/autojs/autojs/inrt/launch/GlobalProjectLauncher.kt b/app/src/main/java/org/autojs/autojs/inrt/launch/GlobalProjectLauncher.kt index dc170910f..4f297ffaf 100644 --- a/app/src/main/java/org/autojs/autojs/inrt/launch/GlobalProjectLauncher.kt +++ b/app/src/main/java/org/autojs/autojs/inrt/launch/GlobalProjectLauncher.kt @@ -4,7 +4,7 @@ import android.annotation.SuppressLint import org.autojs.autojs.app.GlobalAppContext /** - * Created by Stardust on 2018/3/21. + * Created by Stardust on Mar 21, 2018. */ @SuppressLint("StaticFieldLeak") object GlobalProjectLauncher: AssetsProjectLauncher("project", GlobalAppContext.get()) diff --git a/app/src/main/java/org/autojs/autojs/io/EFile.java b/app/src/main/java/org/autojs/autojs/io/EFile.java index a76cfbec3..410ac4b80 100644 --- a/app/src/main/java/org/autojs/autojs/io/EFile.java +++ b/app/src/main/java/org/autojs/autojs/io/EFile.java @@ -6,7 +6,7 @@ import java.net.URI; /** - * Created by Stardust on 2017/8/19. + * Created by Stardust on Aug 19, 2017. */ public class EFile extends File { diff --git a/app/src/main/java/org/autojs/autojs/io/Zip.java b/app/src/main/java/org/autojs/autojs/io/Zip.java deleted file mode 100644 index e659625cf..000000000 --- a/app/src/main/java/org/autojs/autojs/io/Zip.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.autojs.autojs.io; - -import org.autojs.autojs.pio.PFiles; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -public class Zip { - - public static void unzip(InputStream stream, File dir) throws IOException { - FileOutputStream fos = null; - ZipInputStream zis = null; - try { - zis = new ZipInputStream(stream); - ZipEntry entry; - while ((entry = zis.getNextEntry()) != null) { - File file = new File(dir, entry.getName()); - if (entry.isDirectory()) { - file.mkdirs(); - } else { - PFiles.ensureDir(file.getPath()); - fos = new FileOutputStream(file); - PFiles.write(zis, fos, false); - fos.close(); - fos = null; - zis.closeEntry(); - } - } - } finally { - PFiles.closeSilently(fos); - PFiles.closeSilently(stream); - PFiles.closeSilently(zis); - } - } - - public static void unzip(File zipFile, File dir) throws IOException { - unzip(new FileInputStream(zipFile), dir); - } - - -} diff --git a/app/src/main/java/org/autojs/autojs/io/Zip.kt b/app/src/main/java/org/autojs/autojs/io/Zip.kt new file mode 100644 index 000000000..9639abfef --- /dev/null +++ b/app/src/main/java/org/autojs/autojs/io/Zip.kt @@ -0,0 +1,70 @@ +package org.autojs.autojs.io + +import org.autojs.autojs.pio.PFiles.closeSilently +import org.autojs.autojs.pio.PFiles.ensureDir +import org.autojs.autojs.pio.PFiles.write +import java.io.File +import java.io.FileInputStream +import java.io.FileOutputStream +import java.io.IOException +import java.io.InputStream +import java.util.zip.ZipEntry +import java.util.zip.ZipInputStream + +object Zip { + @JvmStatic + @Throws(IOException::class) + fun unzip(stream: InputStream?, dir: File?) { + var fos: FileOutputStream? = null + var zis: ZipInputStream? = null + try { + zis = ZipInputStream(stream) + var entry: ZipEntry + while (zis.nextEntry.also { entry = it } != null) { + val file = File(dir, entry.name) + if (entry.isDirectory) { + file.mkdirs() + } else { + ensureDir(file.path) + fos = FileOutputStream(file) + write(zis, fos, false) + fos.close() + fos = null + zis.closeEntry() + } + } + } finally { + closeSilently(fos) + closeSilently(stream) + closeSilently(zis) + } + } + + @Throws(IOException::class) + fun unzip(zipFile: File?, dir: File?) { + unzip(FileInputStream(zipFile), dir) + } + + // @Reference to kkevsekk1/AutoX (https://github.com/kkevsekk1/AutoX) on Nov 16, 2023. + // ! https://github.com/kkevsekk1/AutoX/blob/f197c5928f37345bffe7dbe9e5d41ab8f4f9424d/app/src/main/java/org/autojs/autojs/tool/ZipTool.kt#L7 + fun unzip(fromFile: File, newDir: File, unzipPath: String) { + var niceUnzipPath = unzipPath + if (!niceUnzipPath.endsWith(File.separator)) niceUnzipPath += File.separator + if (!newDir.exists()) newDir.mkdirs() + var z: ZipEntry? + ZipInputStream(fromFile.inputStream()).use { input -> + while (input.nextEntry.also { z = it } != null) { + val zipEntry = z ?: continue + if (!zipEntry.isDirectory && zipEntry.name.startsWith(niceUnzipPath)) { + val f = File(newDir, zipEntry.name.replace(Regex("^$niceUnzipPath"), "")) + f.parentFile?.let { + if (!it.exists()) it.mkdirs() + } + f.outputStream().use { out -> + input.copyTo(out) + } + } + } + } + } +} diff --git a/app/src/main/java/org/autojs/autojs/lang/ThreadCompat.java b/app/src/main/java/org/autojs/autojs/lang/ThreadCompat.java index 4e9e96fd0..a28a468db 100644 --- a/app/src/main/java/org/autojs/autojs/lang/ThreadCompat.java +++ b/app/src/main/java/org/autojs/autojs/lang/ThreadCompat.java @@ -7,11 +7,13 @@ import java.util.WeakHashMap; /** - * Created by Stardust on 2017/4/30. + * Created by Stardust on Apr 30, 2017. */ public class ThreadCompat extends Thread { - // FIXME: 2017/12/29 是否需要用synchronizedMap?这里虽然线程不安全,但竞争很小 + // FIXME by Stardust on Dec 29, 2017. + // ! 是否需要用 synchronizedMap? + // ! 这里虽然线程不安全, 但竞争很小. private static final Set interruptedThreads = Collections.newSetFromMap(new WeakHashMap<>()); public ThreadCompat() { diff --git a/app/src/main/java/org/autojs/autojs/model/autocomplete/AnyWordsCompletion.java b/app/src/main/java/org/autojs/autojs/model/autocomplete/AnyWordsCompletion.java index 6967e3b02..d5aeccbcc 100644 --- a/app/src/main/java/org/autojs/autojs/model/autocomplete/AnyWordsCompletion.java +++ b/app/src/main/java/org/autojs/autojs/model/autocomplete/AnyWordsCompletion.java @@ -9,7 +9,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** - * Created by Stardust on 2018/2/26. + * Created by Stardust on Feb 26, 2018. */ public class AnyWordsCompletion extends SimpleTextWatcher { diff --git a/app/src/main/java/org/autojs/autojs/model/autocomplete/AutoCompletion.java b/app/src/main/java/org/autojs/autojs/model/autocomplete/AutoCompletion.java index 26629a847..e7e53d479 100644 --- a/app/src/main/java/org/autojs/autojs/model/autocomplete/AutoCompletion.java +++ b/app/src/main/java/org/autojs/autojs/model/autocomplete/AutoCompletion.java @@ -23,7 +23,7 @@ import io.reactivex.schedulers.Schedulers; /** - * Created by Stardust on 2018/2/3. + * Created by Stardust on Feb 3, 2018. */ public class AutoCompletion { diff --git a/app/src/main/java/org/autojs/autojs/model/autocomplete/CodeCompletion.kt b/app/src/main/java/org/autojs/autojs/model/autocomplete/CodeCompletion.kt index c0e8aadbb..acb8f8f67 100644 --- a/app/src/main/java/org/autojs/autojs/model/autocomplete/CodeCompletion.kt +++ b/app/src/main/java/org/autojs/autojs/model/autocomplete/CodeCompletion.kt @@ -1,7 +1,7 @@ package org.autojs.autojs.model.autocomplete /** - * Created by Stardust on 2018/2/3. + * Created by Stardust on Feb 3, 2018. * Transformed by 抠脚本人 (https://github.com/little-alei) on Jul 11, 2023. */ class CodeCompletion { diff --git a/app/src/main/java/org/autojs/autojs/model/autocomplete/CodeCompletions.kt b/app/src/main/java/org/autojs/autojs/model/autocomplete/CodeCompletions.kt index 19387b773..d22b1b1b8 100644 --- a/app/src/main/java/org/autojs/autojs/model/autocomplete/CodeCompletions.kt +++ b/app/src/main/java/org/autojs/autojs/model/autocomplete/CodeCompletions.kt @@ -1,7 +1,7 @@ package org.autojs.autojs.model.autocomplete /** - * Created by Stardust on 2017/9/27. + * Created by Stardust on Sep 27, 2017. * Transformed by 抠脚本人 (https://github.com/little-alei) on Jul 11, 2023. */ class CodeCompletions(val from: Int, private val mCompletions: List) { diff --git a/app/src/main/java/org/autojs/autojs/model/autocomplete/DictionaryTree.java b/app/src/main/java/org/autojs/autojs/model/autocomplete/DictionaryTree.java index c242b49a5..03af94fe0 100644 --- a/app/src/main/java/org/autojs/autojs/model/autocomplete/DictionaryTree.java +++ b/app/src/main/java/org/autojs/autojs/model/autocomplete/DictionaryTree.java @@ -9,7 +9,7 @@ import java.util.TreeMap; /** - * Created by Stardust on 2018/2/3. + * Created by Stardust on Feb 3, 2018. */ public class DictionaryTree { diff --git a/app/src/main/java/org/autojs/autojs/model/autocomplete/Symbols.java b/app/src/main/java/org/autojs/autojs/model/autocomplete/Symbols.java index 5b82d6078..f616a8184 100644 --- a/app/src/main/java/org/autojs/autojs/model/autocomplete/Symbols.java +++ b/app/src/main/java/org/autojs/autojs/model/autocomplete/Symbols.java @@ -3,7 +3,7 @@ import java.util.Arrays; /** - * Created by Stardust on 2017/9/28. + * Created by Stardust on Sep 28, 2017. * Modified by SuperMonster003 as of Aug 24, 2022. */ public class Symbols { diff --git a/app/src/main/java/org/autojs/autojs/model/editor/TokenColor.java b/app/src/main/java/org/autojs/autojs/model/editor/TokenColor.java index e5a1b960b..f0376fa7d 100644 --- a/app/src/main/java/org/autojs/autojs/model/editor/TokenColor.java +++ b/app/src/main/java/org/autojs/autojs/model/editor/TokenColor.java @@ -8,7 +8,7 @@ import java.util.List; /** - * Created by Stardust on 2018/2/21. + * Created by Stardust on Feb 21, 2018. */ public class TokenColor { diff --git a/app/src/main/java/org/autojs/autojs/model/editor/TokenColorDeserializer.java b/app/src/main/java/org/autojs/autojs/model/editor/TokenColorDeserializer.java index 313c491ae..550939770 100644 --- a/app/src/main/java/org/autojs/autojs/model/editor/TokenColorDeserializer.java +++ b/app/src/main/java/org/autojs/autojs/model/editor/TokenColorDeserializer.java @@ -12,7 +12,7 @@ import java.util.List; /** - * Created by Stardust on 2018/2/21. + * Created by Stardust on Feb 21, 2018. */ public class TokenColorDeserializer implements JsonDeserializer { diff --git a/app/src/main/java/org/autojs/autojs/model/editor/TokenColorSettings.java b/app/src/main/java/org/autojs/autojs/model/editor/TokenColorSettings.java index b4c57ce53..b61d369a1 100644 --- a/app/src/main/java/org/autojs/autojs/model/editor/TokenColorSettings.java +++ b/app/src/main/java/org/autojs/autojs/model/editor/TokenColorSettings.java @@ -3,7 +3,7 @@ import com.google.gson.annotations.SerializedName; /** - * Created by Stardust on 2018/2/21. + * Created by Stardust on Feb 21, 2018. */ public class TokenColorSettings { diff --git a/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerFileItem.java b/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerFileItem.java index 2de51ff59..7b17769e2 100644 --- a/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerFileItem.java +++ b/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerFileItem.java @@ -65,14 +65,24 @@ public long lastModified() { return mFile.lastModified(); } + @Override + public boolean canRename() { + return !isInSampleDir(mFile) && mFile.canWrite(); + } + @Override public boolean canDelete() { - return mFile.canWrite(); + return !isInSampleDir(mFile) && mFile.canWrite(); } @Override - public boolean canRename() { - return mFile.canWrite(); + public boolean canBuildApk() { + return getType() == FileUtils.TYPE.JAVASCRIPT || mFile.canBuildApk(); + } + + @Override + public boolean canSetAsWorkingDir() { + return !isInSampleDir(mFile); } public ExplorerFileItem rename(String newName) { @@ -85,7 +95,7 @@ public FileUtils.TYPE getType() { if (mFile.isDirectory()) { return FileUtils.TYPE.DIRECTORY; } - if (mFile.isProject()) { + if (getName().equals(FileUtils.TYPE.PROJECT.getTypeName())) { return FileUtils.TYPE.PROJECT; } String extension = mFile.getExtension(); @@ -122,6 +132,10 @@ public boolean isExecutable() { return type == FileUtils.TYPE.JAVASCRIPT || type == FileUtils.TYPE.AUTO; } + private boolean isInSampleDir(PFile file) { + return Explorers.Providers.workspace().isInSampleDir(file); + } + @NonNull @Override public String toString() { diff --git a/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerItem.java b/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerItem.java index f35f3a6db..c906b8172 100644 --- a/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerItem.java +++ b/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerItem.java @@ -21,6 +21,14 @@ public interface ExplorerItem { boolean canRename(); + default boolean canBuildApk() { + return true; + } + + default boolean canSetAsWorkingDir() { + return true; + } + @NonNull FileUtils.TYPE getType(); diff --git a/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerSampleItem.java b/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerSampleItem.java index 396d1c83d..a9331e22b 100644 --- a/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerSampleItem.java +++ b/app/src/main/java/org/autojs/autojs/model/explorer/ExplorerSampleItem.java @@ -26,4 +26,15 @@ public boolean canDelete() { public boolean canRename() { return false; } + + @Override + public boolean canBuildApk() { + return getFile().canBuildApk(); + } + + @Override + public boolean canSetAsWorkingDir() { + return false; + } + } diff --git a/app/src/main/java/org/autojs/autojs/model/explorer/WorkspaceFileProvider.java b/app/src/main/java/org/autojs/autojs/model/explorer/WorkspaceFileProvider.java index fbc1e548b..e791e2629 100644 --- a/app/src/main/java/org/autojs/autojs/model/explorer/WorkspaceFileProvider.java +++ b/app/src/main/java/org/autojs/autojs/model/explorer/WorkspaceFileProvider.java @@ -45,7 +45,7 @@ public Single getExplorerPage(ExplorerPage page) { p.addChild(new ExplorerProjectPage(file, parent, projectConfig)); return; } - if (inSampleDir(file)) { + if (isInSampleDir(file)) { p.addChild(new ExplorerSamplePage(file, p)); } else { p.addChild(new ExplorerDirPage(file, p)); @@ -61,13 +61,17 @@ public Single getExplorerPage(ExplorerPage page) { .subscribeOn(Schedulers.io()); } - private boolean inSampleDir(PFile file) { + public boolean isInSampleDir(PFile file) { return file.getPath().startsWith(mSampleDir.getPath()); } + public boolean isCurrentSampleDir(PFile file) { + return file.getPath().equals(mSampleDir.getPath()); + } + @Override protected Observable listFiles(PFile directory) { - if (inSampleDir(directory)) { + if (isInSampleDir(directory)) { return listSamples(directory); } return super.listFiles(directory); @@ -89,7 +93,7 @@ private Observable listSamples(PFile directory) { return file; } try { - InputStream stream = mAssetManager.open(pathOfAsset + "/" + child); + InputStream stream = mAssetManager.open(pathOfAsset + File.separator + child); PFiles.copyStream(stream, file.getPath()); } catch (FileNotFoundException e) { file.mkdirs(); diff --git a/app/src/main/java/org/autojs/autojs/model/indices/Module.java b/app/src/main/java/org/autojs/autojs/model/indices/Module.java index 81311758d..263a13e4c 100644 --- a/app/src/main/java/org/autojs/autojs/model/indices/Module.java +++ b/app/src/main/java/org/autojs/autojs/model/indices/Module.java @@ -6,7 +6,7 @@ import java.util.List; /** - * Created by Stardust on 2017/12/9. + * Created by Stardust on Dec 9, 2017. */ public class Module { diff --git a/app/src/main/java/org/autojs/autojs/model/indices/Modules.java b/app/src/main/java/org/autojs/autojs/model/indices/Modules.java index a2c91c687..ce6081641 100644 --- a/app/src/main/java/org/autojs/autojs/model/indices/Modules.java +++ b/app/src/main/java/org/autojs/autojs/model/indices/Modules.java @@ -15,7 +15,7 @@ import io.reactivex.schedulers.Schedulers; /** - * Created by Stardust on 2017/12/9. + * Created by Stardust on Dec 9, 2017. */ public class Modules { diff --git a/app/src/main/java/org/autojs/autojs/model/indices/Property.java b/app/src/main/java/org/autojs/autojs/model/indices/Property.java index a6407e0b8..7f6134caa 100644 --- a/app/src/main/java/org/autojs/autojs/model/indices/Property.java +++ b/app/src/main/java/org/autojs/autojs/model/indices/Property.java @@ -3,7 +3,7 @@ import com.google.gson.annotations.SerializedName; /** - * Created by Stardust on 2017/12/9. + * Created by Stardust on Dec 9, 2017. */ public class Property { diff --git a/app/src/main/java/org/autojs/autojs/model/sample/SampleFile.java b/app/src/main/java/org/autojs/autojs/model/sample/SampleFile.java index d7ccf2398..f0503945a 100644 --- a/app/src/main/java/org/autojs/autojs/model/sample/SampleFile.java +++ b/app/src/main/java/org/autojs/autojs/model/sample/SampleFile.java @@ -18,7 +18,7 @@ import java.io.Reader; /** - * Created by Stardust on 2017/10/28. + * Created by Stardust on Oct 28, 2017. */ public class SampleFile extends ScriptFile { diff --git a/app/src/main/java/org/autojs/autojs/model/script/PathChecker.java b/app/src/main/java/org/autojs/autojs/model/script/PathChecker.java index cfab00f1b..f490fdfb3 100644 --- a/app/src/main/java/org/autojs/autojs/model/script/PathChecker.java +++ b/app/src/main/java/org/autojs/autojs/model/script/PathChecker.java @@ -15,7 +15,7 @@ import java.io.File; /** - * Created by Stardust on 2017/4/1. + * Created by Stardust on Apr 1, 2017. */ public class PathChecker { public static final int CHECK_RESULT_OK = 0; diff --git a/app/src/main/java/org/autojs/autojs/model/script/ScriptFile.java b/app/src/main/java/org/autojs/autojs/model/script/ScriptFile.java index ae4037475..17c76b6c8 100644 --- a/app/src/main/java/org/autojs/autojs/model/script/ScriptFile.java +++ b/app/src/main/java/org/autojs/autojs/model/script/ScriptFile.java @@ -8,7 +8,7 @@ import java.io.File; /** - * Created by Stardust on 2017/1/23. + * Created by Stardust on Jan 23, 2017. */ public class ScriptFile extends PFile { diff --git a/app/src/main/java/org/autojs/autojs/model/script/Scripts.kt b/app/src/main/java/org/autojs/autojs/model/script/Scripts.kt index 77e1c56a4..0dd9b4588 100644 --- a/app/src/main/java/org/autojs/autojs/model/script/Scripts.kt +++ b/app/src/main/java/org/autojs/autojs/model/script/Scripts.kt @@ -25,7 +25,7 @@ import java.io.File import java.io.FileFilter /** - * Created by Stardust on 2017/5/3. + * Created by Stardust on May 3, 2017. */ object Scripts { diff --git a/app/src/main/java/org/autojs/autojs/net/AutoHttpURLConnection.java b/app/src/main/java/org/autojs/autojs/net/AutoHttpURLConnection.java index 33d3fb9e8..d9c699e6f 100644 --- a/app/src/main/java/org/autojs/autojs/net/AutoHttpURLConnection.java +++ b/app/src/main/java/org/autojs/autojs/net/AutoHttpURLConnection.java @@ -9,7 +9,7 @@ import java.net.URL; /** - * Created by Stardust on 2017/4/10. + * Created by Stardust on Apr 10, 2017. */ public class AutoHttpURLConnection extends HttpURLConnection implements AutoCloseable { diff --git a/app/src/main/java/org/autojs/autojs/network/UpdateChecker.java b/app/src/main/java/org/autojs/autojs/network/UpdateChecker.java index 7604ad34d..9084f821d 100644 --- a/app/src/main/java/org/autojs/autojs/network/UpdateChecker.java +++ b/app/src/main/java/org/autojs/autojs/network/UpdateChecker.java @@ -59,7 +59,7 @@ import retrofit2.converter.gson.GsonConverterFactory; /** - * Created by Stardust on 2017/9/20. + * Created by Stardust on Sep 20, 2017. * Modified by SuperMonster003 as of Feb 26, 2022. */ public class UpdateChecker { @@ -115,27 +115,29 @@ public void onNext(ResponseBody responseBody) { return; } - VersionInfo versionInfo = getVersionInfo(responseBody); - - switch (mPromptMode) { - case DIALOG -> { - if (versionInfo == null) { - ViewUtils.showToast(mContext, R.string.error_parse_version_info); - return; - } - if (versionInfo.isNewer() && versionInfo.isNotIgnored()) { - showDialog(versionInfo); - } else { - ViewUtils.showToast(mContext, R.string.text_is_latest_version); - Pref.refreshLastNoNewerUpdatesTimestamp(); + mGitHubExecutor.execute(() -> { + VersionInfo versionInfo = getVersionInfo(responseBody); + + switch (mPromptMode) { + case DIALOG -> { + if (versionInfo == null) { + ViewUtils.showToast(mContext, R.string.error_parse_version_info); + return; + } + if (versionInfo.isNewer() && versionInfo.isNotIgnored()) { + mHandler.post(() -> showDialog(versionInfo)); + } else { + ViewUtils.showToast(mContext, R.string.text_is_latest_version); + Pref.refreshLastNoNewerUpdatesTimestamp(); + } } - } - case SNACKBAR -> { - if (versionInfo != null && versionInfo.isNewer() && versionInfo.isNotIgnored()) { - showSnackBar(versionInfo); + case SNACKBAR -> { + if (versionInfo != null && versionInfo.isNewer() && versionInfo.isNotIgnored()) { + mHandler.post(() -> showSnackBar(versionInfo)); + } } } - } + }); } @Override diff --git a/app/src/main/java/org/autojs/autojs/network/api/DownloadApi.java b/app/src/main/java/org/autojs/autojs/network/api/DownloadApi.java index 1d20517f9..4a85dc572 100644 --- a/app/src/main/java/org/autojs/autojs/network/api/DownloadApi.java +++ b/app/src/main/java/org/autojs/autojs/network/api/DownloadApi.java @@ -7,7 +7,7 @@ import retrofit2.http.Url; /** - * Created by Stardust on 2017/12/6. + * Created by Stardust on Dec 6, 2017. */ public interface DownloadApi { diff --git a/app/src/main/java/org/autojs/autojs/network/api/UpdateCheckerApi.java b/app/src/main/java/org/autojs/autojs/network/api/UpdateCheckerApi.java index 687c31d5a..6b568b37e 100644 --- a/app/src/main/java/org/autojs/autojs/network/api/UpdateCheckerApi.java +++ b/app/src/main/java/org/autojs/autojs/network/api/UpdateCheckerApi.java @@ -8,7 +8,7 @@ import retrofit2.http.Url; /** - * Created by Stardust on 2017/9/20. + * Created by Stardust on Sep 20, 2017. * Modified by SuperMonster003 as of Feb 28, 2022. */ public interface UpdateCheckerApi { diff --git a/app/src/main/java/org/autojs/autojs/network/download/DownloadFailedException.java b/app/src/main/java/org/autojs/autojs/network/download/DownloadFailedException.java index 5e3e08058..3bb5828b0 100644 --- a/app/src/main/java/org/autojs/autojs/network/download/DownloadFailedException.java +++ b/app/src/main/java/org/autojs/autojs/network/download/DownloadFailedException.java @@ -3,7 +3,7 @@ import androidx.annotation.NonNull; /** - * Created by Stardust on 2017/10/20. + * Created by Stardust on Oct 20, 2017. */ public class DownloadFailedException extends Throwable { private final String mUrl; diff --git a/app/src/main/java/org/autojs/autojs/network/download/DownloadManager.java b/app/src/main/java/org/autojs/autojs/network/download/DownloadManager.java index a6dcee19a..282a64989 100644 --- a/app/src/main/java/org/autojs/autojs/network/download/DownloadManager.java +++ b/app/src/main/java/org/autojs/autojs/network/download/DownloadManager.java @@ -47,7 +47,7 @@ import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; /** - * Created by Stardust on 2017/10/20. + * Created by Stardust on Oct 20, 2017. */ public class DownloadManager { @@ -329,7 +329,8 @@ private void activeProgressDialogButton() { private void onCancel() { recycle(); - // TODO: 2017/12/6 notify? + // TODO by Stardust on Dec 6, 2017. + // ! notify? } public void recycle() { diff --git a/app/src/main/java/org/autojs/autojs/network/entity/VersionInfo.kt b/app/src/main/java/org/autojs/autojs/network/entity/VersionInfo.kt index e95a34c2d..0928d30e3 100644 --- a/app/src/main/java/org/autojs/autojs/network/entity/VersionInfo.kt +++ b/app/src/main/java/org/autojs/autojs/network/entity/VersionInfo.kt @@ -7,7 +7,7 @@ import org.autojs.autojs6.BuildConfig import org.autojs.autojs6.R /** - * Created by Stardust on 2017/9/20. + * Created by Stardust on Sep 20, 2017. * Modified by SuperMonster003 as of May 29, 2022. */ class VersionInfo : ExtendedVersionInfo { diff --git a/app/src/main/java/org/autojs/autojs/permission/DisplayOverOtherAppsPermission.kt b/app/src/main/java/org/autojs/autojs/permission/DisplayOverOtherAppsPermission.kt index 96f0802e7..ee1ce5d9b 100644 --- a/app/src/main/java/org/autojs/autojs/permission/DisplayOverOtherAppsPermission.kt +++ b/app/src/main/java/org/autojs/autojs/permission/DisplayOverOtherAppsPermission.kt @@ -13,7 +13,7 @@ import org.autojs.autojs.util.ViewUtils import org.autojs.autojs6.R /** - * Created by Stardust on 2018/1/30. + * Created by Stardust on Jan 30, 2018. * Modified by SuperMonster003 as of Apr 10, 2022. * Transformed by SuperMonster003 on Jun 21, 2022. */ diff --git a/app/src/main/java/org/autojs/autojs/pio/PFile.java b/app/src/main/java/org/autojs/autojs/pio/PFile.java index 8283e4b6e..9d6e56ca8 100644 --- a/app/src/main/java/org/autojs/autojs/pio/PFile.java +++ b/app/src/main/java/org/autojs/autojs/pio/PFile.java @@ -10,11 +10,12 @@ import java.net.URI; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.Locale; /** - * Created by Stardust on 2017/10/19. + * Created by Stardust on Oct 19, 2017. */ public class PFile extends File { @@ -163,8 +164,17 @@ public boolean moveTo(PFile to) { return renameTo(new File(to, getName())); } - public boolean isProject() { - return getName().equals(FileUtils.TYPE.PROJECT.getTypeName()); + public boolean canBuildApk() { + if (isFile()) { + return getExtension().equals(FileUtils.TYPE.JAVASCRIPT.getExtension()); + } + if (isDirectory()) { + PFile[] listedFiles = listFiles(); + if (listedFiles != null) { + return Arrays.stream(listedFiles).anyMatch(pFile -> pFile.getName().equals(FileUtils.TYPE.PROJECT.getTypeName())); + } + } + return false; } } diff --git a/app/src/main/java/org/autojs/autojs/pio/PFileInterface.java b/app/src/main/java/org/autojs/autojs/pio/PFileInterface.java index f3b6968c6..429604220 100644 --- a/app/src/main/java/org/autojs/autojs/pio/PFileInterface.java +++ b/app/src/main/java/org/autojs/autojs/pio/PFileInterface.java @@ -1,7 +1,7 @@ package org.autojs.autojs.pio; /** - * Created by Stardust on 2017/12/5. + * Created by Stardust on Dec 5, 2017. */ public interface PFileInterface { diff --git a/app/src/main/java/org/autojs/autojs/pio/PFiles.kt b/app/src/main/java/org/autojs/autojs/pio/PFiles.kt index e36ad7108..1c0024343 100644 --- a/app/src/main/java/org/autojs/autojs/pio/PFiles.kt +++ b/app/src/main/java/org/autojs/autojs/pio/PFiles.kt @@ -22,7 +22,7 @@ import kotlin.math.ln import kotlin.math.pow /** - * Created by Stardust on 2017/4/1. + * Created by Stardust on Apr 1, 2017. */ object PFiles { @@ -92,8 +92,7 @@ object PFiles { @JvmStatic fun ensureDir(path: String): Boolean { - var i = path.lastIndexOf("\\") - if (i < 0) i = path.lastIndexOf("/") + val i = path.lastIndexOf(separator) return if (i >= 0) { val folder = path.substring(0, i) val file = File(folder) diff --git a/app/src/main/java/org/autojs/autojs/pio/PRandomAccessBinaryFile.java b/app/src/main/java/org/autojs/autojs/pio/PRandomAccessBinaryFile.java index 174ebe756..3973035de 100644 --- a/app/src/main/java/org/autojs/autojs/pio/PRandomAccessBinaryFile.java +++ b/app/src/main/java/org/autojs/autojs/pio/PRandomAccessBinaryFile.java @@ -6,7 +6,7 @@ import java.io.RandomAccessFile; /** - * Created by Stardust on 2017/4/29. + * Created by Stardust on Apr 29, 2017. */ public class PRandomAccessBinaryFile extends RandomAccessFile { diff --git a/app/src/main/java/org/autojs/autojs/pio/PReadableBinaryFile.java b/app/src/main/java/org/autojs/autojs/pio/PReadableBinaryFile.java index abb902874..565a00975 100644 --- a/app/src/main/java/org/autojs/autojs/pio/PReadableBinaryFile.java +++ b/app/src/main/java/org/autojs/autojs/pio/PReadableBinaryFile.java @@ -4,7 +4,7 @@ import java.io.IOException; /** - * Created by Stardust on 2017/4/6. + * Created by Stardust on Apr 6, 2017. */ public class PReadableBinaryFile implements Closeable { diff --git a/app/src/main/java/org/autojs/autojs/pio/PReadableTextFile.java b/app/src/main/java/org/autojs/autojs/pio/PReadableTextFile.java index 877aff9d2..01c4a8e62 100644 --- a/app/src/main/java/org/autojs/autojs/pio/PReadableTextFile.java +++ b/app/src/main/java/org/autojs/autojs/pio/PReadableTextFile.java @@ -11,7 +11,7 @@ import java.util.List; /** - * Created by Stardust on 2017/4/1. + * Created by Stardust on Apr 1, 2017. */ public class PReadableTextFile implements Closeable, PFileInterface { diff --git a/app/src/main/java/org/autojs/autojs/pio/PWritableTextFile.java b/app/src/main/java/org/autojs/autojs/pio/PWritableTextFile.java index c6f5bfca1..b61403549 100644 --- a/app/src/main/java/org/autojs/autojs/pio/PWritableTextFile.java +++ b/app/src/main/java/org/autojs/autojs/pio/PWritableTextFile.java @@ -13,7 +13,7 @@ import java.util.List; /** - * Created by Stardust on 2017/4/1. + * Created by Stardust on Apr 1, 2017. */ public class PWritableTextFile implements Closeable, PFileInterface { diff --git a/app/src/main/java/org/autojs/autojs/pio/UncheckedIOException.java b/app/src/main/java/org/autojs/autojs/pio/UncheckedIOException.java index 346ab3ba2..3af8dac1f 100644 --- a/app/src/main/java/org/autojs/autojs/pio/UncheckedIOException.java +++ b/app/src/main/java/org/autojs/autojs/pio/UncheckedIOException.java @@ -3,7 +3,7 @@ import java.io.IOException; /** - * Created by Stardust on 2017/4/1. + * Created by Stardust on Apr 1, 2017. */ public class UncheckedIOException extends RuntimeException { diff --git a/app/src/main/java/org/autojs/autojs/pluginclient/DevPluginResponseHandler.java b/app/src/main/java/org/autojs/autojs/pluginclient/DevPluginResponseHandler.java index 5232a5671..ecea9d18d 100644 --- a/app/src/main/java/org/autojs/autojs/pluginclient/DevPluginResponseHandler.java +++ b/app/src/main/java/org/autojs/autojs/pluginclient/DevPluginResponseHandler.java @@ -33,7 +33,7 @@ import io.reactivex.schedulers.Schedulers; /** - * Created by Stardust on 2017/5/11. + * Created by Stardust on May 11, 2017. */ public class DevPluginResponseHandler implements Handler { diff --git a/app/src/main/java/org/autojs/autojs/pluginclient/DevPluginService.kt b/app/src/main/java/org/autojs/autojs/pluginclient/DevPluginService.kt index 97f0e2b86..4cfd74b13 100644 --- a/app/src/main/java/org/autojs/autojs/pluginclient/DevPluginService.kt +++ b/app/src/main/java/org/autojs/autojs/pluginclient/DevPluginService.kt @@ -15,7 +15,7 @@ import java.io.IOException import java.net.ServerSocket /** - * Created by Stardust on 2017/5/11. + * Created by Stardust on May 11, 2017. * Modified by SuperMonster003 as of Jan 1, 2022. * Transformed by SuperMonster003 on Jul 1, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/pluginclient/Handler.java b/app/src/main/java/org/autojs/autojs/pluginclient/Handler.java index 535020565..5ccb302ca 100644 --- a/app/src/main/java/org/autojs/autojs/pluginclient/Handler.java +++ b/app/src/main/java/org/autojs/autojs/pluginclient/Handler.java @@ -3,7 +3,7 @@ import com.google.gson.JsonObject; /** - * Created by Stardust on 2017/5/11. + * Created by Stardust on May 11, 2017. */ public interface Handler { diff --git a/app/src/main/java/org/autojs/autojs/pluginclient/Router.java b/app/src/main/java/org/autojs/autojs/pluginclient/Router.java index eaf97f0de..625912e1e 100644 --- a/app/src/main/java/org/autojs/autojs/pluginclient/Router.java +++ b/app/src/main/java/org/autojs/autojs/pluginclient/Router.java @@ -9,7 +9,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/5/11. + * Created by Stardust on May 11, 2017. */ public class Router implements Handler { diff --git a/app/src/main/java/org/autojs/autojs/pref/Pref.kt b/app/src/main/java/org/autojs/autojs/pref/Pref.kt index c1d4a5021..d46ee6f19 100644 --- a/app/src/main/java/org/autojs/autojs/pref/Pref.kt +++ b/app/src/main/java/org/autojs/autojs/pref/Pref.kt @@ -23,7 +23,7 @@ import org.joda.time.format.DateTimeFormat import java.util.LinkedList /** - * Created by Stardust on 2017/1/31. + * Created by Stardust on Jan 31, 2017. */ object Pref { diff --git a/app/src/main/java/org/autojs/autojs/project/LaunchConfig.java b/app/src/main/java/org/autojs/autojs/project/LaunchConfig.java index 70557603e..e3e8ead98 100644 --- a/app/src/main/java/org/autojs/autojs/project/LaunchConfig.java +++ b/app/src/main/java/org/autojs/autojs/project/LaunchConfig.java @@ -3,7 +3,7 @@ import com.google.gson.annotations.SerializedName; /** - * Created by Stardust on 2018/1/25. + * Created by Stardust on Jan 25, 2018. */ public class LaunchConfig { diff --git a/app/src/main/java/org/autojs/autojs/project/ProjectConfig.java b/app/src/main/java/org/autojs/autojs/project/ProjectConfig.java index a36dfdcfa..ff4ae87a8 100644 --- a/app/src/main/java/org/autojs/autojs/project/ProjectConfig.java +++ b/app/src/main/java/org/autojs/autojs/project/ProjectConfig.java @@ -9,6 +9,7 @@ import org.autojs.autojs.model.explorer.ExplorerPage; import org.autojs.autojs.pio.PFiles; +import org.jetbrains.annotations.NotNull; import java.io.File; import java.util.ArrayList; @@ -18,7 +19,7 @@ import java.util.Map; /** - * Created by Stardust on 2018/1/24. + * Created by Stardust on Jan 24, 2018. */ public class ProjectConfig { @@ -59,7 +60,6 @@ public class ProjectConfig { @SerializedName("useFeatures") private List mFeatures = new ArrayList<>(); - public static ProjectConfig fromJson(String json) { if (json == null) { return null; diff --git a/app/src/main/java/org/autojs/autojs/rhino/AndroidClassLoader.kt b/app/src/main/java/org/autojs/autojs/rhino/AndroidClassLoader.kt index c105586bb..4eed5f554 100644 --- a/app/src/main/java/org/autojs/autojs/rhino/AndroidClassLoader.kt +++ b/app/src/main/java/org/autojs/autojs/rhino/AndroidClassLoader.kt @@ -17,7 +17,7 @@ import java.io.FileNotFoundException import java.io.IOException /** - * Created by Stardust on 2017/4/5. + * Created by Stardust on Apr 5, 2017. * Modified by SuperMonster003 as of Jul 5, 2023. * Transformed by SuperMonster003 on Jul 5, 2023. */ @@ -53,6 +53,12 @@ class AndroidClassLoader(private val parent: ClassLoader, private val cacheDir: if (!file.exists() || !file.canRead()) { throw FileNotFoundException(str(R.string.file_not_exist_or_readable, path)) } + + // @Hint by SuperMonster003 on Nov 30, 2023. + // ! Try to avoid java.lang.SecurityException which looks like below (API Level 34+): + // ! Writable dex file '/data/user/0/org.autojs.autojs6/cache/classes/xxx.jar' is not allowed. + file.setReadOnly() + return DexClassLoader(path, cacheDir.path, null, parent).also { mDexClassLoaders[path] = it } diff --git a/app/src/main/java/org/autojs/autojs/rhino/AndroidContextFactory.kt b/app/src/main/java/org/autojs/autojs/rhino/AndroidContextFactory.kt index e133807af..0100dd360 100644 --- a/app/src/main/java/org/autojs/autojs/rhino/AndroidContextFactory.kt +++ b/app/src/main/java/org/autojs/autojs/rhino/AndroidContextFactory.kt @@ -14,7 +14,7 @@ import java.util.Locale import java.util.concurrent.atomic.AtomicInteger /** - * Created by Stardust on 2017/4/5. + * Created by Stardust on Apr 5, 2017. */ open class AndroidContextFactory(private val cacheDirectory: File) : ContextFactory() { companion object { diff --git a/app/src/main/java/org/autojs/autojs/rhino/NativeJavaClassWithPrototype.java b/app/src/main/java/org/autojs/autojs/rhino/NativeJavaClassWithPrototype.java index 725b0cd25..cb2f8c94b 100644 --- a/app/src/main/java/org/autojs/autojs/rhino/NativeJavaClassWithPrototype.java +++ b/app/src/main/java/org/autojs/autojs/rhino/NativeJavaClassWithPrototype.java @@ -7,7 +7,7 @@ import java.util.concurrent.ConcurrentHashMap; /** - * Created by Stardust on 2018/4/4. + * Created by Stardust on Apr 4, 2018. */ public class NativeJavaClassWithPrototype extends NativeJavaClass { diff --git a/app/src/main/java/org/autojs/autojs/rhino/NativeJavaObjectWithPrototype.java b/app/src/main/java/org/autojs/autojs/rhino/NativeJavaObjectWithPrototype.java index b3f99a378..3a5ec9f02 100644 --- a/app/src/main/java/org/autojs/autojs/rhino/NativeJavaObjectWithPrototype.java +++ b/app/src/main/java/org/autojs/autojs/rhino/NativeJavaObjectWithPrototype.java @@ -4,7 +4,7 @@ import org.mozilla.javascript.Scriptable; /** - * Created by Stardust on 2018/4/4. + * Created by Stardust on Apr 4, 2018. */ public class NativeJavaObjectWithPrototype extends NativeJavaObject { diff --git a/app/src/main/java/org/autojs/autojs/rhino/NoSecurityController.java b/app/src/main/java/org/autojs/autojs/rhino/NoSecurityController.java index 48d784806..c8b49c7ac 100644 --- a/app/src/main/java/org/autojs/autojs/rhino/NoSecurityController.java +++ b/app/src/main/java/org/autojs/autojs/rhino/NoSecurityController.java @@ -7,7 +7,7 @@ import java.io.Serializable; /** - * Created by Stardust on 2017/4/5. + * Created by Stardust on Apr 5, 2017. */ public class NoSecurityController extends SecurityController implements Serializable { @Override diff --git a/app/src/main/java/org/autojs/autojs/rhino/ProxyJavaObject.kt b/app/src/main/java/org/autojs/autojs/rhino/ProxyJavaObject.kt index 2b53b7d7c..b68f27476 100644 --- a/app/src/main/java/org/autojs/autojs/rhino/ProxyJavaObject.kt +++ b/app/src/main/java/org/autojs/autojs/rhino/ProxyJavaObject.kt @@ -8,7 +8,7 @@ import org.mozilla.javascript.Scriptable import org.mozilla.javascript.UniqueTag /** - * Created by Stardust on 2017/12/6. + * Created by Stardust on Dec 6, 2017. * Modified by SuperMonster003 as of Apr 12, 2023. */ class ProxyJavaObject : NativeJavaObject { diff --git a/app/src/main/java/org/autojs/autojs/rhino/ProxyObject.kt b/app/src/main/java/org/autojs/autojs/rhino/ProxyObject.kt index 7be117692..5d8768840 100644 --- a/app/src/main/java/org/autojs/autojs/rhino/ProxyObject.kt +++ b/app/src/main/java/org/autojs/autojs/rhino/ProxyObject.kt @@ -7,7 +7,7 @@ import org.mozilla.javascript.Scriptable import org.mozilla.javascript.UniqueTag /** - * Created by Stardust on 2017/5/17. + * Created by Stardust on May 17, 2017. * Modified by SuperMonster003 as of Apr 12, 2023. */ open class ProxyObject() : NativeObject() { diff --git a/app/src/main/java/org/autojs/autojs/rhino/RhinoAndroidHelper.java b/app/src/main/java/org/autojs/autojs/rhino/RhinoAndroidHelper.java index 0dcc33379..09268c402 100644 --- a/app/src/main/java/org/autojs/autojs/rhino/RhinoAndroidHelper.java +++ b/app/src/main/java/org/autojs/autojs/rhino/RhinoAndroidHelper.java @@ -10,7 +10,7 @@ import java.io.IOException; /** - * Created by Stardust on 2017/4/5. + * Created by Stardust on Apr 5, 2017. */ public class RhinoAndroidHelper { diff --git a/app/src/main/java/org/autojs/autojs/runtime/ScriptBridges.kt b/app/src/main/java/org/autojs/autojs/runtime/ScriptBridges.kt index ef55b8f5d..662ac2cf6 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/ScriptBridges.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/ScriptBridges.kt @@ -12,7 +12,7 @@ import org.mozilla.javascript.Scriptable import org.mozilla.javascript.Undefined /** - * Created by Stardust on 2017/7/21. + * Created by Stardust on Jul 21, 2017. * Modified by SuperMonster003 as of May 26, 2022. * Transformed by SuperMonster003 on Nov 7, 2023. * diff --git a/app/src/main/java/org/autojs/autojs/runtime/ScriptRuntime.java b/app/src/main/java/org/autojs/autojs/runtime/ScriptRuntime.java index 6db302a2e..67a1e70e6 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/ScriptRuntime.java +++ b/app/src/main/java/org/autojs/autojs/runtime/ScriptRuntime.java @@ -79,7 +79,7 @@ import java.util.concurrent.ConcurrentHashMap; /** - * Created by Stardust on 2017/1/27. + * Created by Stardust on Jan 27, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. */ @SuppressWarnings("unused") diff --git a/app/src/main/java/org/autojs/autojs/runtime/accessibility/AccessibilityConfig.java b/app/src/main/java/org/autojs/autojs/runtime/accessibility/AccessibilityConfig.java index eb2207c81..0c2695566 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/accessibility/AccessibilityConfig.java +++ b/app/src/main/java/org/autojs/autojs/runtime/accessibility/AccessibilityConfig.java @@ -7,7 +7,7 @@ import java.util.List; /** - * Created by Stardust on 2017/4/29. + * Created by Stardust on Apr 29, 2017. */ public class AccessibilityConfig { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/AbstractConsole.kt b/app/src/main/java/org/autojs/autojs/runtime/api/AbstractConsole.kt index 462101413..59e55fc0e 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/AbstractConsole.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/AbstractConsole.kt @@ -4,7 +4,7 @@ import android.util.Log import org.autojs.autojs.runtime.exception.ScriptException /** - * Created by Stardust on 2017/5/1. + * Created by Stardust on May 1, 2017. */ abstract class AbstractConsole : Console { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/AbstractShell.java b/app/src/main/java/org/autojs/autojs/runtime/api/AbstractShell.java index 68f9049be..2f2289d7d 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/AbstractShell.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/AbstractShell.java @@ -12,7 +12,7 @@ import org.autojs.autojs.engine.RootAutomatorEngine; /** - * Created by Stardust on 2017/4/24. + * Created by Stardust on Apr 24, 2017. */ public abstract class AbstractShell { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/AppUtils.kt b/app/src/main/java/org/autojs/autojs/runtime/api/AppUtils.kt index 2a48457c7..714b678a0 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/AppUtils.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/AppUtils.kt @@ -18,7 +18,7 @@ import java.lang.ref.WeakReference import java.net.URI /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. * Modified by SuperMonster003 as of Jul 13, 2022. */ class AppUtils { @@ -60,6 +60,7 @@ class AppUtils { } @ScriptInterface + @Suppress("unused") fun sendLocalBroadcastSync(intent: Intent?) { intent?.let { LocalBroadcastManager.getInstance(mContext).sendBroadcastSync(it) } } @@ -84,7 +85,7 @@ class AppUtils { null } - private fun getApplicationInfoCompat(packageManager: PackageManager, packageName: String, flags: Int) = when { + private fun getApplicationInfoCompat(packageManager: PackageManager, packageName: String, @Suppress("SameParameterValue") flags: Int) = when { Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> { packageManager.getApplicationInfo(packageName, ApplicationInfoFlags.of(flags.toLong())) } @@ -113,7 +114,7 @@ class AppUtils { false } - private fun getPackageInfoCompat(packageManager: PackageManager, packageName: String, flags: Int) = when { + private fun getPackageInfoCompat(packageManager: PackageManager, packageName: String, @Suppress("SameParameterValue") flags: Int) = when { Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> { packageManager.getPackageInfo(packageName, PackageInfoFlags.of(flags.toLong())) } @@ -122,6 +123,7 @@ class AppUtils { @ScriptInterface @Throws(Exception::class) + @Suppress("unused") fun ensureInstalled(packageName: String?) { try { getPackageInfoCompat(mPackageManager, packageName!!, 0) @@ -141,6 +143,7 @@ class AppUtils { } @ScriptInterface + @Suppress("unused") fun isInstalledAndEnabled(packageName: String?) = try { getApplicationInfoCompat(mPackageManager, packageName!!, 0).enabled } catch (e: NameNotFoundException) { @@ -227,10 +230,14 @@ class AppUtils { } @JvmStatic - fun isBroadcastShortForm(s: String) = BroadcastShortForm.entries.any { it.shortName.contentEquals(s) } + @ScriptInterface + @Suppress("unused") + fun isBroadcastShortForm(s: String) = (@Suppress("EnumValuesSoftDeprecate") BroadcastShortForm.values()).any { it.shortName.contentEquals(s) } @JvmStatic - fun isActivityShortForm(s: String) = ActivityShortForm.entries.any { it.shortName.contentEquals(s) } + @ScriptInterface + @Suppress("unused") + fun isActivityShortForm(s: String) = (@Suppress("EnumValuesSoftDeprecate") ActivityShortForm.values()).any { it.shortName.contentEquals(s) } fun getInstalledApplications(context: Context): List = context.packageManager.let { when { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Console.kt b/app/src/main/java/org/autojs/autojs/runtime/api/Console.kt index 006d29abb..2c0c7a9eb 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Console.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Console.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.runtime.api import org.autojs.autojs.annotation.ScriptInterface /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. * Modified by SuperMonster003 as of Oct 19, 2022. */ interface Console { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Device.java b/app/src/main/java/org/autojs/autojs/runtime/api/Device.java index c7e988c98..77c63a291 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Device.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Device.java @@ -41,7 +41,7 @@ import ezy.assist.compat.SettingsCompat; /** - * Created by Stardust on 2017/12/2. + * Created by Stardust on Dec 2, 2017. * Modified by SuperMonster003 as of Jan 1, 2022. */ public class Device { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Dialogs.java b/app/src/main/java/org/autojs/autojs/runtime/api/Dialogs.java index 48625b5c4..2a8fd0c90 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Dialogs.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Dialogs.java @@ -17,7 +17,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/5/8. + * Created by Stardust on May 8, 2017. */ public class Dialogs { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Engines.java b/app/src/main/java/org/autojs/autojs/runtime/api/Engines.java index 74c87c2aa..2908900ce 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Engines.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Engines.java @@ -13,7 +13,7 @@ import java.util.Set; /** - * Created by Stardust on 2017/8/4. + * Created by Stardust on Aug 4, 2017. */ public class Engines { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Events.java b/app/src/main/java/org/autojs/autojs/runtime/api/Events.java index 4868bcbc6..73a2996b9 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Events.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Events.java @@ -37,7 +37,7 @@ import java.util.Set; /** - * Created by Stardust on 2017/7/18. + * Created by Stardust on Jul 18, 2017. */ public class Events extends EventEmitter implements OnKeyListener, TouchObserver.OnTouchEventListener, NotificationListener, AccessibilityNotificationObserver.ToastListener, AccessibilityService.Companion.GestureListener { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Files.java b/app/src/main/java/org/autojs/autojs/runtime/api/Files.java index 25da6fbed..8c1939bb2 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Files.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Files.java @@ -9,9 +9,11 @@ import java.io.File; import java.io.IOException; +import java.util.regex.Pattern; /** - * Created by Stardust on 2018/1/23. + * Created by Stardust on Jan 23, 2018. + * Modified by SuperMonster003 as of May 26, 2022. */ public class Files { @@ -21,13 +23,14 @@ public Files(ScriptRuntime runtime) { mRuntime = runtime; } - // FIXME: 2018/10/16 is not correct in sub-directory? + // FIXME by Stardust on Oct 16, 2018. + // ! Is not correct in sub-directory? public String path(String relativePath) { String cwd = cwd(); - if (cwd == null || relativePath == null || relativePath.startsWith("/")) + if (cwd == null || relativePath == null || relativePath.startsWith(File.separator)) return relativePath; File f = new File(cwd); - String[] paths = relativePath.split("/"); + String[] paths = relativePath.split(Pattern.quote(File.separator)); for (String path : paths) { if (path.equals(".")) continue; @@ -38,7 +41,7 @@ public String path(String relativePath) { f = new File(f, path); } String path = f.getPath(); - return relativePath.endsWith(File.separator) ? path + "/" : path; + return relativePath.endsWith(File.separator) ? path + File.separator : path; } public String cwd() { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Floaty.kt b/app/src/main/java/org/autojs/autojs/runtime/api/Floaty.kt index f64619851..e44fa6452 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Floaty.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Floaty.kt @@ -22,7 +22,7 @@ import java.util.concurrent.CopyOnWriteArraySet import kotlin.concurrent.Volatile /** - * Created by Stardust on 2017/12/5. + * Created by Stardust on Dec 5, 2017. * Modified by SuperMonster003 as of Mar 27, 2022. * Transformed by SuperMonster003 on Mar 27, 2022. */ @@ -124,7 +124,7 @@ class Floaty(private val mUiHandler: UiHandler, private val mRuntime: ScriptRunt get() = mWindow?.windowView?.height ?: 0 fun setSize(w: Int, h: Int) = runWithWindow { - mWindow!!.windowBridge.updateMeasure(w, h) + mWindow!!.windowBridge?.updateMeasure(w, h) setViewMeasure(mWindow!!.windowView, w, h) } @@ -138,7 +138,7 @@ class Floaty(private val mUiHandler: UiHandler, private val mRuntime: ScriptRunt } fun setPosition(x: Int, y: Int) = runWithWindow { - mWindow!!.windowBridge.updatePosition(x, y) + mWindow!!.windowBridge?.updatePosition(x, y) } fun exitOnClose() { @@ -202,7 +202,7 @@ class Floaty(private val mUiHandler: UiHandler, private val mRuntime: ScriptRunt get() = mWindow?.rootView?.height ?: 0 fun setSize(w: Int, h: Int) = runWithWindow { - mWindow!!.windowBridge.updateMeasure(w, h) + mWindow!!.windowBridge?.updateMeasure(w, h) setViewMeasure(mWindow!!.rootView, w, h) } @@ -212,7 +212,7 @@ class Floaty(private val mUiHandler: UiHandler, private val mRuntime: ScriptRunt } fun setPosition(x: Int, y: Int) = runWithWindow { - mWindow!!.windowBridge.updatePosition(x, y) + mWindow!!.windowBridge?.updatePosition(x, y) } var isAdjustEnabled: Boolean diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Images.java b/app/src/main/java/org/autojs/autojs/runtime/api/Images.java index 5bf0764db..efbb15520 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Images.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Images.java @@ -48,7 +48,7 @@ import java.util.List; /** - * Created by Stardust on 2017/5/20. + * Created by Stardust on May 20, 2017. */ @SuppressWarnings("unused") public class Images { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Media.java b/app/src/main/java/org/autojs/autojs/runtime/api/Media.java index 6ddd60957..137b37e41 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Media.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Media.java @@ -12,7 +12,7 @@ import java.io.IOException; /** - * Created by Stardust on 2018/2/12. + * Created by Stardust on Feb 12, 2018. */ public class Media implements MediaScannerConnection.MediaScannerConnectionClient { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Plugins.java b/app/src/main/java/org/autojs/autojs/runtime/api/Plugins.java index d7055600d..f6b89ec11 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Plugins.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Plugins.java @@ -37,7 +37,7 @@ public Plugin load(String packageName) { } private File getScriptCacheDir(String packageName) { - File dir = new File(mPluginCacheDir, packageName + "/"); + File dir = new File(mPluginCacheDir, packageName + File.separator); dir.mkdirs(); return dir; } diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/ProcessShell.java b/app/src/main/java/org/autojs/autojs/runtime/api/ProcessShell.java index a23d1f6ce..71f1e5a3a 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/ProcessShell.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/ProcessShell.java @@ -15,7 +15,7 @@ import java.io.InputStreamReader; /** - * Created by Stardust on 2017/1/20. + * Created by Stardust on Jan 20, 2017. *

    * 来自网络~~ */ @@ -228,6 +228,8 @@ public static Result execCommand(String[] commands, Process process) { commandResult.code = index < 0 ? 1 : Integer.parseInt(message.substring(index + aimErrStr.length()).replaceAll("^(\\d+).+", "$1")); commandResult.result = ""; commandResult.error = message != null ? message : ""; + + e.printStackTrace(); } finally { try { if (os != null) os.close(); diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/ScreenMetrics.kt b/app/src/main/java/org/autojs/autojs/runtime/api/ScreenMetrics.kt index b220c181f..746709607 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/ScreenMetrics.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/ScreenMetrics.kt @@ -12,7 +12,7 @@ import android.view.WindowManager import org.autojs.autojs.app.GlobalAppContext /** - * Created by Stardust on 2017/4/26. + * Created by Stardust on Apr 26, 2017. */ @Suppress("unused") class ScreenMetrics(private var designWidth: Int, private var designHeight: Int) { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Sensors.java b/app/src/main/java/org/autojs/autojs/runtime/api/Sensors.java index 87239cc96..ad57c6db2 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Sensors.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Sensors.java @@ -20,7 +20,7 @@ import java.util.Set; /** - * Created by Stardust on 2018/2/5. + * Created by Stardust on Feb 5, 2018. * Modified by SuperMonster003 as of Dec 5, 2021. * Modified by aiselp as of Jun 10, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Shell.java b/app/src/main/java/org/autojs/autojs/runtime/api/Shell.java index 41f981ef4..60ec3955d 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Shell.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Shell.java @@ -18,7 +18,7 @@ import jackpal.androidterm.util.TermSettings; /** - * Created by Stardust on 2017/4/24. + * Created by Stardust on Apr 24, 2017. */ public class Shell extends AbstractShell { diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Threads.kt b/app/src/main/java/org/autojs/autojs/runtime/api/Threads.kt index 79cf23921..3c91f128f 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Threads.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Threads.kt @@ -16,7 +16,7 @@ import java.util.concurrent.atomic.AtomicLong import java.util.concurrent.locks.ReentrantLock /** - * Created by Stardust on 2017/12/3. + * Created by Stardust on Dec 3, 2017. * Modified by aiselp as of Jun 10, 2023. * Modified by SuperMonster003 as of Aug 28, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/Timers.java b/app/src/main/java/org/autojs/autojs/runtime/api/Timers.java index 6e1db5756..188e9865a 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/Timers.java +++ b/app/src/main/java/org/autojs/autojs/runtime/api/Timers.java @@ -7,7 +7,7 @@ import org.autojs.autojs.runtime.ScriptRuntime; /** - * Created by Stardust on 2017/7/21. + * Created by Stardust on Jul 21, 2017. * Modified by SuperMonster003 as of May 26, 2022. * Modified by aiselp as of Jun 10, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/UI.kt b/app/src/main/java/org/autojs/autojs/runtime/api/UI.kt index ee5b68037..14a69aee2 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/UI.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/UI.kt @@ -10,7 +10,7 @@ import org.mozilla.javascript.Scriptable import java.util.concurrent.ConcurrentHashMap /** - * Created by Stardust on 2017/5/14. + * Created by Stardust on May 14, 2017. * Modified by SuperMonster003 as of Dec 5, 2021. * Transformed by SuperMonster003 on May 20, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptEnvironmentException.java b/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptEnvironmentException.java index cb439e69a..533392894 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptEnvironmentException.java +++ b/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptEnvironmentException.java @@ -1,7 +1,7 @@ package org.autojs.autojs.runtime.exception; /** - * Created by Stardust on 2017/7/1. + * Created by Stardust on Jul 1, 2017. */ public class ScriptEnvironmentException extends ScriptException { diff --git a/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptException.java b/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptException.java index 9bb4a12a9..c8265e0b1 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptException.java +++ b/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptException.java @@ -1,7 +1,7 @@ package org.autojs.autojs.runtime.exception; /** - * Created by Stardust on 2017/1/29. + * Created by Stardust on Jan 29, 2017. */ public class ScriptException extends RuntimeException { diff --git a/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptInterruptedException.java b/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptInterruptedException.java index 0a7c8c8bb..6aa9afdfb 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptInterruptedException.java +++ b/app/src/main/java/org/autojs/autojs/runtime/exception/ScriptInterruptedException.java @@ -1,7 +1,7 @@ package org.autojs.autojs.runtime.exception; /** - * Created by Stardust on 2017/4/30. + * Created by Stardust on Apr 30, 2017. */ public class ScriptInterruptedException extends ScriptException { diff --git a/app/src/main/java/org/autojs/autojs/script/AutoFileSource.java b/app/src/main/java/org/autojs/autojs/script/AutoFileSource.java index 906ee4b28..40cb62c6f 100644 --- a/app/src/main/java/org/autojs/autojs/script/AutoFileSource.java +++ b/app/src/main/java/org/autojs/autojs/script/AutoFileSource.java @@ -7,7 +7,7 @@ import java.io.File; /** - * Created by Stardust on 2017/8/2. + * Created by Stardust on Aug 2, 2017. */ public class AutoFileSource extends ScriptSource { diff --git a/app/src/main/java/org/autojs/autojs/script/JavaScriptFileSource.java b/app/src/main/java/org/autojs/autojs/script/JavaScriptFileSource.java index cf14cf62f..cfdb29aa3 100644 --- a/app/src/main/java/org/autojs/autojs/script/JavaScriptFileSource.java +++ b/app/src/main/java/org/autojs/autojs/script/JavaScriptFileSource.java @@ -11,7 +11,7 @@ import java.io.Reader; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ public class JavaScriptFileSource extends JavaScriptSource { diff --git a/app/src/main/java/org/autojs/autojs/script/JavaScriptSource.java b/app/src/main/java/org/autojs/autojs/script/JavaScriptSource.java index 59154f4f9..474e20ff3 100644 --- a/app/src/main/java/org/autojs/autojs/script/JavaScriptSource.java +++ b/app/src/main/java/org/autojs/autojs/script/JavaScriptSource.java @@ -15,7 +15,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/8/2. + * Created by Stardust on Aug 2, 2017. */ public abstract class JavaScriptSource extends ScriptSource { diff --git a/app/src/main/java/org/autojs/autojs/script/JsBeautifier.java b/app/src/main/java/org/autojs/autojs/script/JsBeautifier.java index 2bdf950d5..3fb8d6292 100644 --- a/app/src/main/java/org/autojs/autojs/script/JsBeautifier.java +++ b/app/src/main/java/org/autojs/autojs/script/JsBeautifier.java @@ -23,7 +23,7 @@ import java.util.concurrent.Executors; /** - * Created by Stardust on 2017/4/12. + * Created by Stardust on Apr 12, 2017. */ public class JsBeautifier { diff --git a/app/src/main/java/org/autojs/autojs/script/ScriptSource.kt b/app/src/main/java/org/autojs/autojs/script/ScriptSource.kt index 376851202..e9c2575fe 100644 --- a/app/src/main/java/org/autojs/autojs/script/ScriptSource.kt +++ b/app/src/main/java/org/autojs/autojs/script/ScriptSource.kt @@ -6,7 +6,7 @@ import org.autojs.autojs.util.WorkingDirectoryUtils import java.io.Serializable /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. * Modified by SuperMonster003 as of Oct 3, 2022. */ abstract class ScriptSource constructor(private val sourceName: String) : Serializable { diff --git a/app/src/main/java/org/autojs/autojs/script/SequenceScriptSource.java b/app/src/main/java/org/autojs/autojs/script/SequenceScriptSource.java index f9ad0f28e..1a66855a0 100644 --- a/app/src/main/java/org/autojs/autojs/script/SequenceScriptSource.java +++ b/app/src/main/java/org/autojs/autojs/script/SequenceScriptSource.java @@ -9,7 +9,7 @@ import java.io.StringReader; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ public class SequenceScriptSource extends JavaScriptSource { diff --git a/app/src/main/java/org/autojs/autojs/script/StringScriptSource.java b/app/src/main/java/org/autojs/autojs/script/StringScriptSource.java index bcba92e96..da469d8a8 100644 --- a/app/src/main/java/org/autojs/autojs/script/StringScriptSource.java +++ b/app/src/main/java/org/autojs/autojs/script/StringScriptSource.java @@ -7,7 +7,7 @@ import java.io.Reader; /** - * Created by Stardust on 2017/4/2. + * Created by Stardust on Apr 2, 2017. */ public class StringScriptSource extends JavaScriptSource { diff --git a/app/src/main/java/org/autojs/autojs/service/AccessibilityService.kt b/app/src/main/java/org/autojs/autojs/service/AccessibilityService.kt index c16d346b7..2b81cfcba 100644 --- a/app/src/main/java/org/autojs/autojs/service/AccessibilityService.kt +++ b/app/src/main/java/org/autojs/autojs/service/AccessibilityService.kt @@ -6,13 +6,13 @@ import org.autojs.autojs.ui.main.drawer.ServiceItemHelper import org.autojs.autojs.util.ViewUtils import org.autojs.autojs6.R -class AccessibilityService(override val context: Context) : ServiceItemHelper { +open class AccessibilityService(final override val context: Context) : ServiceItemHelper { private val mA11yTool = AccessibilityTool(context) private val mA11yToolService = mA11yTool.service override val isRunning - get() = mA11yToolService.isRunning() + get() = mA11yToolService.exists() || mA11yToolService.isRunning() override fun active(): Boolean { var result = true @@ -47,4 +47,11 @@ class AccessibilityService(override val context: Context) : ServiceItemHelper { } } + override fun onToggleSuccess() { + if (mA11yToolService.exists() && !mA11yToolService.isRunning()) { + ViewUtils.showToast(context, R.string.text_a11y_service_enabled_but_not_running, true) + } + super.onToggleSuccess() + } + } diff --git a/app/src/main/java/org/autojs/autojs/storage/database/ModelChange.java b/app/src/main/java/org/autojs/autojs/storage/database/ModelChange.java index e1fecb660..4f9bd7a08 100644 --- a/app/src/main/java/org/autojs/autojs/storage/database/ModelChange.java +++ b/app/src/main/java/org/autojs/autojs/storage/database/ModelChange.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; /** - * Created by Stardust on 2017/11/28. + * Created by Stardust on Nov 28, 2017. */ public class ModelChange { diff --git a/app/src/main/java/org/autojs/autojs/storage/file/TmpScriptFiles.java b/app/src/main/java/org/autojs/autojs/storage/file/TmpScriptFiles.java index 2d99efa21..e7f8a044c 100644 --- a/app/src/main/java/org/autojs/autojs/storage/file/TmpScriptFiles.java +++ b/app/src/main/java/org/autojs/autojs/storage/file/TmpScriptFiles.java @@ -8,7 +8,7 @@ import java.io.IOException; /** - * Created by Stardust on 2017/10/21. + * Created by Stardust on Oct 21, 2017. */ public class TmpScriptFiles { diff --git a/app/src/main/java/org/autojs/autojs/theme/ThemeColor.kt b/app/src/main/java/org/autojs/autojs/theme/ThemeColor.kt index 6fdef7b73..6a710228e 100644 --- a/app/src/main/java/org/autojs/autojs/theme/ThemeColor.kt +++ b/app/src/main/java/org/autojs/autojs/theme/ThemeColor.kt @@ -11,7 +11,7 @@ import org.autojs.autojs.theme.ThemeColorManager.defaultThemeColor import org.autojs.autojs6.R /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. * Modified by SuperMonster003 as of Mar 30, 2023. * Transformed by SuperMonster003 on Mar 30, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/theme/ThemeColorHelper.java b/app/src/main/java/org/autojs/autojs/theme/ThemeColorHelper.java index 7485c7124..acb939ce8 100644 --- a/app/src/main/java/org/autojs/autojs/theme/ThemeColorHelper.java +++ b/app/src/main/java/org/autojs/autojs/theme/ThemeColorHelper.java @@ -20,9 +20,8 @@ import org.autojs.autojs.theme.internal.ScrollingViewEdgeGlowColorHelper; - /** - * Created by Stardust on 2016/10/24. + * Created by Stardust on Oct 24, 2016. */ public class ThemeColorHelper { diff --git a/app/src/main/java/org/autojs/autojs/theme/ThemeColorManager.kt b/app/src/main/java/org/autojs/autojs/theme/ThemeColorManager.kt index 0d05aac0b..c0667b0d9 100644 --- a/app/src/main/java/org/autojs/autojs/theme/ThemeColorManager.kt +++ b/app/src/main/java/org/autojs/autojs/theme/ThemeColorManager.kt @@ -10,7 +10,7 @@ import java.util.LinkedList import java.util.Vector /** - * Created by Stardust on 2016/5/10. + * Created by Stardust on May 10, 2016. */ object ThemeColorManager { diff --git a/app/src/main/java/org/autojs/autojs/theme/ThemeColorManagerCompat.java b/app/src/main/java/org/autojs/autojs/theme/ThemeColorManagerCompat.java index 7602e0035..8cca4443b 100644 --- a/app/src/main/java/org/autojs/autojs/theme/ThemeColorManagerCompat.java +++ b/app/src/main/java/org/autojs/autojs/theme/ThemeColorManagerCompat.java @@ -6,7 +6,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/3/12. + * Created by Stardust on Mar 12, 2017. */ public class ThemeColorManagerCompat { diff --git a/app/src/main/java/org/autojs/autojs/theme/ThemeColorMutable.java b/app/src/main/java/org/autojs/autojs/theme/ThemeColorMutable.java index 1eed40d46..8ce510f7c 100644 --- a/app/src/main/java/org/autojs/autojs/theme/ThemeColorMutable.java +++ b/app/src/main/java/org/autojs/autojs/theme/ThemeColorMutable.java @@ -1,7 +1,7 @@ package org.autojs.autojs.theme; /** - * Created by Stardust on 2016/10/24. + * Created by Stardust on Oct 24, 2016. */ public interface ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/theme/ThemeColorMutableReference.java b/app/src/main/java/org/autojs/autojs/theme/ThemeColorMutableReference.java index d3608b767..732b2160e 100644 --- a/app/src/main/java/org/autojs/autojs/theme/ThemeColorMutableReference.java +++ b/app/src/main/java/org/autojs/autojs/theme/ThemeColorMutableReference.java @@ -1,7 +1,7 @@ package org.autojs.autojs.theme; /** - * Created by Stardust on 2016/10/24. + * Created by Stardust on Oct 24, 2016. */ public interface ThemeColorMutableReference { diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectActivity.kt b/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectActivity.kt index d8a80e2a0..c7bc0b183 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectActivity.kt +++ b/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectActivity.kt @@ -34,7 +34,7 @@ import org.autojs.autojs6.R import kotlin.math.hypot /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. * Modified by SuperMonster003 as of Sep 22, 2022. * Transformed by SuperMonster003 on Sep 22, 2022. */ diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ThemeColorMaterialDialog.java b/app/src/main/java/org/autojs/autojs/theme/app/ThemeColorMaterialDialog.java index fcfe58f14..b1902790d 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ThemeColorMaterialDialog.java +++ b/app/src/main/java/org/autojs/autojs/theme/app/ThemeColorMaterialDialog.java @@ -1,7 +1,7 @@ package org.autojs.autojs.theme.app; /** - * Created by Stardust on 2016/8/15. + * Created by Stardust on Aug 15, 2016. */ public class ThemeColorMaterialDialog { diff --git a/app/src/main/java/org/autojs/autojs/theme/dialog/ThemeColorMaterialDialogBuilder.java b/app/src/main/java/org/autojs/autojs/theme/dialog/ThemeColorMaterialDialogBuilder.java index 1b7673456..5aeb2b4a4 100644 --- a/app/src/main/java/org/autojs/autojs/theme/dialog/ThemeColorMaterialDialogBuilder.java +++ b/app/src/main/java/org/autojs/autojs/theme/dialog/ThemeColorMaterialDialogBuilder.java @@ -11,7 +11,7 @@ import org.autojs.autojs.theme.ThemeColorMutable; /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. */ public class ThemeColorMaterialDialogBuilder extends MaterialDialog.Builder implements ThemeColorMutable { public ThemeColorMaterialDialogBuilder(@NonNull Context context) { diff --git a/app/src/main/java/org/autojs/autojs/theme/internal/ScrollingViewEdgeGlowColorHelper.java b/app/src/main/java/org/autojs/autojs/theme/internal/ScrollingViewEdgeGlowColorHelper.java index f2fbbb3a8..786283594 100644 --- a/app/src/main/java/org/autojs/autojs/theme/internal/ScrollingViewEdgeGlowColorHelper.java +++ b/app/src/main/java/org/autojs/autojs/theme/internal/ScrollingViewEdgeGlowColorHelper.java @@ -10,7 +10,7 @@ import java.util.Objects; /** - * Created by Stardust on 2016/8/14. + * Created by Stardust on Aug 14, 2016. */ public class ScrollingViewEdgeGlowColorHelper { diff --git a/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorCheckBoxPreference.java b/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorCheckBoxPreference.java index 4a0fe255a..f92b01bd4 100644 --- a/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorCheckBoxPreference.java +++ b/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorCheckBoxPreference.java @@ -8,7 +8,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. */ public class ThemeColorCheckBoxPreference extends CheckBoxPreference { diff --git a/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorPreferenceCategory.kt b/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorPreferenceCategory.kt index d268d6819..f651a6cad 100644 --- a/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorPreferenceCategory.kt +++ b/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorPreferenceCategory.kt @@ -12,7 +12,7 @@ import org.autojs.autojs.theme.ThemeColorManager import org.autojs.autojs.theme.ThemeColorMutable /** - * Created by Stardust on 2016/8/8. + * Created by Stardust on Aug 8, 2016. * Transformed by SuperMonster003 on Sep 25, 2022. */ class ThemeColorPreferenceCategory : PreferenceCategory, ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorPreferenceFragment.java b/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorPreferenceFragment.java index 930394ea2..f9198190d 100644 --- a/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorPreferenceFragment.java +++ b/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorPreferenceFragment.java @@ -12,7 +12,7 @@ import org.autojs.autojs.theme.internal.ScrollingViewEdgeGlowColorHelper; /** - * Created by Stardust on 2016/8/14. + * Created by Stardust on Aug 14, 2016. */ public class ThemeColorPreferenceFragment extends PreferenceFragmentCompat implements ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorSwitchPreference.kt b/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorSwitchPreference.kt index fd5fba5c6..5be31dacd 100644 --- a/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorSwitchPreference.kt +++ b/app/src/main/java/org/autojs/autojs/theme/preference/ThemeColorSwitchPreference.kt @@ -19,7 +19,7 @@ import org.autojs.autojs.theme.ThemeColorMutable import org.autojs.autojs6.R /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. */ class ThemeColorSwitchPreference : SwitchPreference, ThemeColorMutable, LongClickablePreferenceLike { diff --git a/app/src/main/java/org/autojs/autojs/theme/util/ListBuilder.java b/app/src/main/java/org/autojs/autojs/theme/util/ListBuilder.java index ee0da44cf..98195d3f2 100644 --- a/app/src/main/java/org/autojs/autojs/theme/util/ListBuilder.java +++ b/app/src/main/java/org/autojs/autojs/theme/util/ListBuilder.java @@ -4,7 +4,7 @@ import java.util.List; /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. */ public class ListBuilder { diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorFloatingActionButton.java b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorFloatingActionButton.java index 8a0362c9c..3f7ad54b9 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorFloatingActionButton.java +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorFloatingActionButton.java @@ -11,7 +11,7 @@ import org.autojs.autojs.theme.ThemeColorMutable; /** - * Created by Stardust on 2016/8/16. + * Created by Stardust on Aug 16, 2016. */ public class ThemeColorFloatingActionButton extends FloatingActionButton implements ThemeColorMutable { public ThemeColorFloatingActionButton(Context context) { diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorHorizontalScrollView.java b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorHorizontalScrollView.java index dab4e6cb1..fd561ac28 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorHorizontalScrollView.java +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorHorizontalScrollView.java @@ -12,7 +12,7 @@ import java.lang.reflect.Field; /** - * Created by Stardust on 2016/8/14. + * Created by Stardust on Aug 14, 2016. */ public class ThemeColorHorizontalScrollView extends HorizontalScrollView implements ThemeColorMutable { private int mFadingEdgeColor; diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorImageView.java b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorImageView.java index e7675329c..fe2efa52d 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorImageView.java +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorImageView.java @@ -12,7 +12,7 @@ import org.autojs.autojs.util.DrawableUtils; /** - * Created by Stardust on 2017/2/12. + * Created by Stardust on Feb 12, 2017. */ public class ThemeColorImageView extends AppCompatImageView implements ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorImageViewCompat.kt b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorImageViewCompat.kt index 764e59a99..db94ea14b 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorImageViewCompat.kt +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorImageViewCompat.kt @@ -9,7 +9,7 @@ import org.autojs.autojs.theme.ThemeColorManager.add import org.autojs.autojs.theme.ThemeColorMutable /** - * Created by Stardust on 2017/5/10. + * Created by Stardust on May 10, 2017. * Transformed by SuperMonster003 on May 15, 2023. */ class ThemeColorImageViewCompat : AppCompatImageView, ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorNavigationView.java b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorNavigationView.java index e2702dd39..1c6faee7f 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorNavigationView.java +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorNavigationView.java @@ -13,7 +13,7 @@ import java.lang.reflect.Field; /** - * Created by Stardust on 2016/8/15. + * Created by Stardust on Aug 15, 2016. */ public class ThemeColorNavigationView extends NavigationView implements ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorScrollView.java b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorScrollView.java index 316bcdd6e..1bde51fb9 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorScrollView.java +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorScrollView.java @@ -10,7 +10,7 @@ import org.autojs.autojs.theme.internal.ScrollingViewEdgeGlowColorHelper; /** - * Created by Stardust on 2016/8/14. + * Created by Stardust on Aug 14, 2016. */ public class ThemeColorScrollView extends ScrollView implements ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorSwipeRefreshLayout.java b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorSwipeRefreshLayout.java index 2f8a8c870..13012d230 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorSwipeRefreshLayout.java +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorSwipeRefreshLayout.java @@ -11,7 +11,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2018/1/23. + * Created by Stardust on Jan 23, 2018. */ public class ThemeColorSwipeRefreshLayout extends SwipeRefreshLayout implements ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorSwitch.java b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorSwitch.java index dc8965c47..6f50470bb 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorSwitch.java +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorSwitch.java @@ -11,7 +11,7 @@ import org.autojs.autojs.theme.ThemeColorMutable; /** - * Created by Stardust on 2016/8/7. + * Created by Stardust on Aug 7, 2016. */ public class ThemeColorSwitch extends SwitchCompat implements ThemeColorMutable { public ThemeColorSwitch(Context context) { diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorTextView.java b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorTextView.java index 1b8157df0..1e1f6c580 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorTextView.java +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorTextView.java @@ -10,7 +10,7 @@ import org.autojs.autojs.theme.ThemeColorMutable; /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. */ public class ThemeColorTextView extends AppCompatTextView implements ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorToolbar.java b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorToolbar.java index 5d23b64b7..b35a0dafd 100644 --- a/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorToolbar.java +++ b/app/src/main/java/org/autojs/autojs/theme/widget/ThemeColorToolbar.java @@ -12,7 +12,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. */ public class ThemeColorToolbar extends Toolbar implements ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/timing/TaskReceiver.java b/app/src/main/java/org/autojs/autojs/timing/TaskReceiver.java index b2eb64efd..ea6c118ca 100644 --- a/app/src/main/java/org/autojs/autojs/timing/TaskReceiver.java +++ b/app/src/main/java/org/autojs/autojs/timing/TaskReceiver.java @@ -8,7 +8,7 @@ import org.autojs.autojs.external.ScriptIntents; /** - * Created by Stardust on 2017/11/27. + * Created by Stardust on Nov 27, 2017. */ public class TaskReceiver extends BroadcastReceiver { diff --git a/app/src/main/java/org/autojs/autojs/timing/TimedTaskManager.kt b/app/src/main/java/org/autojs/autojs/timing/TimedTaskManager.kt index 52a43592b..898e4d881 100644 --- a/app/src/main/java/org/autojs/autojs/timing/TimedTaskManager.kt +++ b/app/src/main/java/org/autojs/autojs/timing/TimedTaskManager.kt @@ -14,7 +14,7 @@ import org.autojs.autojs.timing.TimedTaskScheduler.scheduleTaskIfNeeded import org.autojs.autojs.util.Observers /** - * Created by Stardust on 2017/11/27. + * Created by Stardust on Nov 27, 2017. * Modified by SuperMonster003 as of May 26, 2022. * Transformed by SuperMonster003 on Apr 2, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.kt b/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.kt index 83669c627..d1232e018 100644 --- a/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.kt +++ b/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.kt @@ -12,7 +12,7 @@ import org.autojs.autojs.external.ScriptIntents.handleIntent import java.util.concurrent.TimeUnit /** - * Created by Stardust on 2017/11/27. + * Created by Stardust on Nov 27, 2017. */ object TimedTaskScheduler { diff --git a/app/src/main/java/org/autojs/autojs/tool/Callback.java b/app/src/main/java/org/autojs/autojs/tool/Callback.java index 9f0c66e20..bd76e0d00 100644 --- a/app/src/main/java/org/autojs/autojs/tool/Callback.java +++ b/app/src/main/java/org/autojs/autojs/tool/Callback.java @@ -1,7 +1,7 @@ package org.autojs.autojs.tool; /** - * Created by Stardust on 2017/4/18. + * Created by Stardust on Apr 18, 2017. */ public interface Callback { diff --git a/app/src/main/java/org/autojs/autojs/tool/Consumer.java b/app/src/main/java/org/autojs/autojs/tool/Consumer.java index 77469c705..443e2c524 100644 --- a/app/src/main/java/org/autojs/autojs/tool/Consumer.java +++ b/app/src/main/java/org/autojs/autojs/tool/Consumer.java @@ -3,7 +3,7 @@ import androidx.annotation.Keep; /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. */ @Keep public interface Consumer { diff --git a/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java b/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java deleted file mode 100644 index ac316cbcc..000000000 --- a/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.autojs.autojs.tool; - -import android.content.Intent; -import android.os.Looper; -import android.util.Log; - -import androidx.annotation.NonNull; - -import com.tencent.bugly.crashreport.BuglyLog; -import com.tencent.bugly.crashreport.CrashReport; - -import org.autojs.autojs.app.GlobalAppContext; -import org.autojs.autojs.core.accessibility.AccessibilityService; -import org.autojs.autojs6.BuildConfig; -import org.mozilla.javascript.RhinoException; - -import java.lang.Thread.UncaughtExceptionHandler; -import java.util.Map; - -/** - * Created by Stardust on 2017/2/2 - */ -public class CrashHandler extends CrashReport.CrashHandleCallback implements UncaughtExceptionHandler { - - private static final String TAG = "CrashHandler"; - private static int crashCount = 0; - private static long firstCrashMillis = 0; - private final Class mErrorReportClass; - private UncaughtExceptionHandler mBuglyHandler; - private final UncaughtExceptionHandler mSystemHandler; - - public CrashHandler(Class errorReportClass) { - this.mErrorReportClass = errorReportClass; - mSystemHandler = Thread.getDefaultUncaughtExceptionHandler(); - } - - public void setBuglyHandler(UncaughtExceptionHandler buglyHandler) { - mBuglyHandler = buglyHandler; - } - - public void uncaughtException(@NonNull Thread thread, @NonNull Throwable ex) { - Log.e(TAG, "Uncaught Exception", ex); - if (thread != Looper.getMainLooper().getThread()) { - if (!(ex instanceof RhinoException)) { - CrashReport.postCatchedException(ex, thread); - } - return; - } - AccessibilityService service = AccessibilityService.Companion.getInstance(); - if (service != null) { - Log.d(TAG, "disable service: " + service); - service.disableSelf(); - } else { - BuglyLog.d(TAG, "cannot disable service: " + AccessibilityService.class.getSimpleName()); - } - if (BuildConfig.DEBUG) { - mSystemHandler.uncaughtException(thread, ex); - } else { - mBuglyHandler.uncaughtException(thread, ex); - } - } - - @Override - public synchronized Map onCrashHandleStart(int crashType, String errorType, - String errorMessage, String errorStack) { - Log.d(TAG, "onCrashHandleStart: crashType = " + crashType + ", errorType = " + errorType + ", msg = " - + errorMessage + ", stack = " + errorStack); - try { - if (crashTooManyTimes()) - return super.onCrashHandleStart(crashType, errorType, errorMessage, errorStack); - String msg = errorType + ": " + errorMessage; - startErrorReportActivity(msg, errorStack); - } catch (Throwable throwable) { - throwable.printStackTrace(); - } - return super.onCrashHandleStart(crashType, errorType, errorMessage, errorStack); - } - - private void startErrorReportActivity(String msg, String detail) { - Intent intent = new Intent(GlobalAppContext.get(), this.mErrorReportClass); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); - intent.putExtra("message", msg); - intent.putExtra("error", detail); - GlobalAppContext.get().startActivity(intent); - } - - private boolean crashTooManyTimes() { - if (crashIntervalTooLong()) { - resetCrashCount(); - return false; - } - crashCount++; - return crashCount >= 5; - } - - private void resetCrashCount() { - firstCrashMillis = System.currentTimeMillis(); - crashCount = 0; - } - - private boolean crashIntervalTooLong() { - return System.currentTimeMillis() - firstCrashMillis > 3000; - } - - -} \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/tool/CrashHandler.kt b/app/src/main/java/org/autojs/autojs/tool/CrashHandler.kt new file mode 100644 index 000000000..114aa8baf --- /dev/null +++ b/app/src/main/java/org/autojs/autojs/tool/CrashHandler.kt @@ -0,0 +1,92 @@ +package org.autojs.autojs.tool + +import android.content.Intent +import android.os.Looper +import android.util.Log +import com.tencent.bugly.crashreport.BuglyLog +import com.tencent.bugly.crashreport.CrashReport +import com.tencent.bugly.crashreport.CrashReport.CrashHandleCallback +import org.autojs.autojs.app.GlobalAppContext +import org.autojs.autojs.core.accessibility.AccessibilityService +import org.autojs.autojs6.BuildConfig +import org.mozilla.javascript.RhinoException +import java.lang.Thread.UncaughtExceptionHandler + +/** + * Created by Stardust on Feb 2, 2017. + * Modified by SuperMonster003 as of Dec 1, 2021. + * Transformed by SuperMonster003 on Nov 28, 2023. + */ +class CrashHandler(private val errorReportClass: Class<*>) : CrashHandleCallback(), UncaughtExceptionHandler { + + private var mBuglyHandler: UncaughtExceptionHandler? = null + private val mSystemHandler: UncaughtExceptionHandler? by lazy { + Thread.getDefaultUncaughtExceptionHandler() + } + + @Synchronized + override fun onCrashHandleStart(crashType: Int, errorType: String, errorMessage: String, errorStack: String): Map { + Log.d(TAG, "onCrashHandleStart: crashType = $crashType, errorType = $errorType, msg = $errorMessage, stack = $errorStack") + try { + if (crashTooManyTimes()) { + return super.onCrashHandleStart(crashType, errorType, errorMessage, errorStack) + } + startErrorReportActivity("$errorType: $errorMessage", errorStack) + } catch (e: Throwable) { + e.printStackTrace() + } + return super.onCrashHandleStart(crashType, errorType, errorMessage, errorStack) + } + + override fun uncaughtException(thread: Thread, ex: Throwable) { + Log.e(TAG, "Uncaught Exception", ex) + if (thread !== Looper.getMainLooper().thread) { + if (ex !is RhinoException) { + CrashReport.postCatchedException(ex, thread) + } + return + } + val service = AccessibilityService.instance + if (service != null && AccessibilityService.stop()) { + Log.d(TAG, "Service disabled: $service") + } else { + BuglyLog.d(TAG, "Failed to disable service: ${AccessibilityService::class.java.simpleName}") + } + if (BuildConfig.DEBUG) { + mSystemHandler?.uncaughtException(thread, ex) + } else { + mBuglyHandler?.uncaughtException(thread, ex) + } + } + + fun setBuglyHandler(buglyHandler: UncaughtExceptionHandler?) { + mBuglyHandler = buglyHandler + } + + private fun startErrorReportActivity(msg: String, detail: String) { + Intent(GlobalAppContext.get(), errorReportClass).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_SINGLE_TOP) + putExtra("message", msg) + putExtra("error", detail) + }.let { GlobalAppContext.get().startActivity(it) } + } + + private fun crashTooManyTimes() = when { + crashIntervalTooLong() -> false.also { resetCrashCount() } + else -> ++crashCount >= 5 + } + + private fun resetCrashCount() { + firstCrashMillis = System.currentTimeMillis() + crashCount = 0 + } + + private fun crashIntervalTooLong() = System.currentTimeMillis() - firstCrashMillis > 3000 + + companion object { + private const val TAG = "CrashHandler" + private var crashCount = 0 + private var firstCrashMillis = 0L + } + +} \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/tool/Func1.java b/app/src/main/java/org/autojs/autojs/tool/Func1.java index 15d517eea..d2978eb0c 100644 --- a/app/src/main/java/org/autojs/autojs/tool/Func1.java +++ b/app/src/main/java/org/autojs/autojs/tool/Func1.java @@ -1,7 +1,7 @@ package org.autojs.autojs.tool; /** - * Created by Stardust on 2017/7/7. + * Created by Stardust on Jul 7, 2017. */ public interface Func1 { diff --git a/app/src/main/java/org/autojs/autojs/tool/ImageSelector.java b/app/src/main/java/org/autojs/autojs/tool/ImageSelector.java index 6b3b1b263..fd9f1efe8 100644 --- a/app/src/main/java/org/autojs/autojs/tool/ImageSelector.java +++ b/app/src/main/java/org/autojs/autojs/tool/ImageSelector.java @@ -8,7 +8,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. */ public class ImageSelector implements OnActivityResultDelegate { diff --git a/app/src/main/java/org/autojs/autojs/tool/IntentExtras.java b/app/src/main/java/org/autojs/autojs/tool/IntentExtras.java index 610c9ed80..c340a723d 100644 --- a/app/src/main/java/org/autojs/autojs/tool/IntentExtras.java +++ b/app/src/main/java/org/autojs/autojs/tool/IntentExtras.java @@ -9,7 +9,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** - * Created by Stardust on 2017/7/11. + * Created by Stardust on Jul 11, 2017. */ public class IntentExtras implements Serializable { diff --git a/app/src/main/java/org/autojs/autojs/tool/LimitedHashMap.java b/app/src/main/java/org/autojs/autojs/tool/LimitedHashMap.java index 6667b1847..771232b95 100644 --- a/app/src/main/java/org/autojs/autojs/tool/LimitedHashMap.java +++ b/app/src/main/java/org/autojs/autojs/tool/LimitedHashMap.java @@ -3,7 +3,7 @@ import java.util.LinkedHashMap; /** - * Created by Stardust on 2017/3/31. + * Created by Stardust on Mar 31, 2017. */ public class LimitedHashMap extends LinkedHashMap { diff --git a/app/src/main/java/org/autojs/autojs/tool/MapBuilder.java b/app/src/main/java/org/autojs/autojs/tool/MapBuilder.java index 12f3beab7..de9df8e63 100644 --- a/app/src/main/java/org/autojs/autojs/tool/MapBuilder.java +++ b/app/src/main/java/org/autojs/autojs/tool/MapBuilder.java @@ -4,7 +4,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/1/26. + * Created by Stardust on Jan 26, 2017. */ public class MapBuilder { diff --git a/app/src/main/java/org/autojs/autojs/tool/SimpleCache.java b/app/src/main/java/org/autojs/autojs/tool/SimpleCache.java index 375c9b390..ee327e9c2 100644 --- a/app/src/main/java/org/autojs/autojs/tool/SimpleCache.java +++ b/app/src/main/java/org/autojs/autojs/tool/SimpleCache.java @@ -4,7 +4,7 @@ import java.util.TimerTask; /** - * Created by Stardust on 2017/4/5. + * Created by Stardust on Apr 5, 2017. */ public class SimpleCache { diff --git a/app/src/main/java/org/autojs/autojs/tool/SimpleObserver.java b/app/src/main/java/org/autojs/autojs/tool/SimpleObserver.java index 9143c74b1..389df852a 100644 --- a/app/src/main/java/org/autojs/autojs/tool/SimpleObserver.java +++ b/app/src/main/java/org/autojs/autojs/tool/SimpleObserver.java @@ -5,7 +5,7 @@ import io.reactivex.disposables.Disposable; /** - * Created by Stardust on 2017/8/20. + * Created by Stardust on Aug 20, 2017. */ public class SimpleObserver implements Observer { @Override diff --git a/app/src/main/java/org/autojs/autojs/tool/SparseArrayEntries.java b/app/src/main/java/org/autojs/autojs/tool/SparseArrayEntries.java index 4d1bf6733..64c206db4 100644 --- a/app/src/main/java/org/autojs/autojs/tool/SparseArrayEntries.java +++ b/app/src/main/java/org/autojs/autojs/tool/SparseArrayEntries.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; /** - * Created by Stardust on 2017/1/26. + * Created by Stardust on Jan 26, 2017. */ public class SparseArrayEntries { diff --git a/app/src/main/java/org/autojs/autojs/tool/StateObserver.java b/app/src/main/java/org/autojs/autojs/tool/StateObserver.java index 5a14e53f5..5e8830ebc 100644 --- a/app/src/main/java/org/autojs/autojs/tool/StateObserver.java +++ b/app/src/main/java/org/autojs/autojs/tool/StateObserver.java @@ -8,7 +8,7 @@ import java.util.concurrent.CopyOnWriteArrayList; /** - * Created by Stardust on 2017/2/3. + * Created by Stardust on Feb 3, 2017. */ public class StateObserver { diff --git a/app/src/main/java/org/autojs/autojs/tool/Supplier.java b/app/src/main/java/org/autojs/autojs/tool/Supplier.java index 60716cb40..e1325de03 100644 --- a/app/src/main/java/org/autojs/autojs/tool/Supplier.java +++ b/app/src/main/java/org/autojs/autojs/tool/Supplier.java @@ -1,7 +1,7 @@ package org.autojs.autojs.tool; /** - * Created by Stardust on 2017/5/1. + * Created by Stardust on May 1, 2017. */ public interface Supplier { diff --git a/app/src/main/java/org/autojs/autojs/tool/UiHandler.kt b/app/src/main/java/org/autojs/autojs/tool/UiHandler.kt index d92d158db..41d6a8dc7 100644 --- a/app/src/main/java/org/autojs/autojs/tool/UiHandler.kt +++ b/app/src/main/java/org/autojs/autojs/tool/UiHandler.kt @@ -12,7 +12,7 @@ import org.autojs.autojs.app.GlobalAppContext import org.autojs.autojs.runtime.api.ScriptToast /** - * Created by Stardust on 2017/5/2. + * Created by Stardust on May 2, 2017. * Transformed by SuperMonster003 on Oct 25, 2023. */ class UiHandler(val applicationContext: Context) : Handler(Looper.getMainLooper()) { diff --git a/app/src/main/java/org/autojs/autojs/ui/BaseActivity.kt b/app/src/main/java/org/autojs/autojs/ui/BaseActivity.kt index 0692ce387..a9e10a220 100644 --- a/app/src/main/java/org/autojs/autojs/ui/BaseActivity.kt +++ b/app/src/main/java/org/autojs/autojs/ui/BaseActivity.kt @@ -14,7 +14,7 @@ import org.autojs.autojs.util.LocaleUtils import org.autojs.autojs.util.ViewUtils /** - * Created by Stardust on 2017/1/23. + * Created by Stardust on Jan 23, 2017. * Modified by SuperMonster003 as of Feb 18, 2022. */ abstract class BaseActivity : AppCompatActivity() { diff --git a/app/src/main/java/org/autojs/autojs/ui/codegeneration/CodeGenerateDialog.java b/app/src/main/java/org/autojs/autojs/ui/codegeneration/CodeGenerateDialog.java index 46a842e45..4be0f96f1 100644 --- a/app/src/main/java/org/autojs/autojs/ui/codegeneration/CodeGenerateDialog.java +++ b/app/src/main/java/org/autojs/autojs/ui/codegeneration/CodeGenerateDialog.java @@ -34,7 +34,7 @@ import java.util.List; /** - * Created by Stardust on 2017/11/6. + * Created by Stardust on Nov 6, 2017. */ public class CodeGenerateDialog extends AppLevelThemeDialogBuilder { private final List mOptionGroups = new ListBuilder() diff --git a/app/src/main/java/org/autojs/autojs/ui/common/NotAskAgainDialog.java b/app/src/main/java/org/autojs/autojs/ui/common/NotAskAgainDialog.java index 7ddb6d505..8e6f3549f 100644 --- a/app/src/main/java/org/autojs/autojs/ui/common/NotAskAgainDialog.java +++ b/app/src/main/java/org/autojs/autojs/ui/common/NotAskAgainDialog.java @@ -13,7 +13,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/1/30. + * Created by Stardust on Jan 30, 2017. */ public class NotAskAgainDialog extends MaterialDialog { diff --git a/app/src/main/java/org/autojs/autojs/ui/common/RxDialogs.java b/app/src/main/java/org/autojs/autojs/ui/common/RxDialogs.java index 59919de96..f9ffac0de 100644 --- a/app/src/main/java/org/autojs/autojs/ui/common/RxDialogs.java +++ b/app/src/main/java/org/autojs/autojs/ui/common/RxDialogs.java @@ -10,7 +10,7 @@ import io.reactivex.subjects.PublishSubject; /** - * Created by Stardust on 2017/10/21. + * Created by Stardust on Oct 21, 2017. */ public class RxDialogs { diff --git a/app/src/main/java/org/autojs/autojs/ui/common/ScriptLoopDialog.java b/app/src/main/java/org/autojs/autojs/ui/common/ScriptLoopDialog.java index 87ec5cf73..50d9e2aa5 100644 --- a/app/src/main/java/org/autojs/autojs/ui/common/ScriptLoopDialog.java +++ b/app/src/main/java/org/autojs/autojs/ui/common/ScriptLoopDialog.java @@ -16,7 +16,7 @@ import org.autojs.autojs6.databinding.DialogScriptLoopBinding; /** - * Created by Stardust on 2017/7/8. + * Created by Stardust on Jul 8, 2017. */ public class ScriptLoopDialog { diff --git a/app/src/main/java/org/autojs/autojs/ui/common/ScriptOperations.java b/app/src/main/java/org/autojs/autojs/ui/common/ScriptOperations.java index c2e183daf..21efbd3b6 100644 --- a/app/src/main/java/org/autojs/autojs/ui/common/ScriptOperations.java +++ b/app/src/main/java/org/autojs/autojs/ui/common/ScriptOperations.java @@ -55,9 +55,8 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.subjects.PublishSubject; - /** - * Created by Stardust on 2017/7/31. + * Created by Stardust on Jul 31, 2017. */ @SuppressLint("CheckResult") public class ScriptOperations { @@ -97,7 +96,8 @@ public void newScriptFileForScript(final String script) { } private String getCurrentDirectoryPath() { - return getCurrentDirectory().getPath() + "/"; + String path = getCurrentDirectory().getPath(); + return path.endsWith(File.separator) ? path : path + File.separator; } private ScriptFile getCurrentDirectory() { @@ -227,7 +227,7 @@ private void showMessage(final int resId) { if (Looper.myLooper() == Looper.getMainLooper()) { showMessageWithoutThreadSwitch(resId); } - //switch to ui thread to show message + // switch to ui thread to show message GlobalAppContext.post(() -> showMessageWithoutThreadSwitch(resId)); } diff --git a/app/src/main/java/org/autojs/autojs/ui/doc/DocumentationActivity.kt b/app/src/main/java/org/autojs/autojs/ui/doc/DocumentationActivity.kt index 41598455c..9c7c02395 100644 --- a/app/src/main/java/org/autojs/autojs/ui/doc/DocumentationActivity.kt +++ b/app/src/main/java/org/autojs/autojs/ui/doc/DocumentationActivity.kt @@ -8,7 +8,7 @@ import org.autojs.autojs.util.DocsUtils.getUrl import org.autojs.autojs6.databinding.ActivityDocumentationBinding /** - * Created by Stardust on 2017/10/24. + * Created by Stardust on Oct 24, 2017. */ class DocumentationActivity : BaseActivity() { diff --git a/app/src/main/java/org/autojs/autojs/ui/doc/DocumentationFragment.kt b/app/src/main/java/org/autojs/autojs/ui/doc/DocumentationFragment.kt index 69b0c9d74..527dc5135 100644 --- a/app/src/main/java/org/autojs/autojs/ui/doc/DocumentationFragment.kt +++ b/app/src/main/java/org/autojs/autojs/ui/doc/DocumentationFragment.kt @@ -23,7 +23,7 @@ import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe /** - * Created by Stardust on 2017/8/22. + * Created by Stardust on Aug 22, 2017. * Modified by SuperMonster003 as of Mar 26, 2022. * Transformed by SuperMonster003 on Mar 31, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/ui/doc/ManualDialog.kt b/app/src/main/java/org/autojs/autojs/ui/doc/ManualDialog.kt index 50fecb9b3..305aa1cb1 100644 --- a/app/src/main/java/org/autojs/autojs/ui/doc/ManualDialog.kt +++ b/app/src/main/java/org/autojs/autojs/ui/doc/ManualDialog.kt @@ -13,7 +13,7 @@ import org.autojs.autojs.ui.widget.EWebView import org.autojs.autojs6.databinding.FloatingManualDialogBinding /** - * Created by Stardust on 2017/10/24. + * Created by Stardust on Oct 24, 2017. * Modified by SuperMonster003 as of May 26, 2022. * Transformed by SuperMonster003 on May 13, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/EditActivity.kt b/app/src/main/java/org/autojs/autojs/ui/edit/EditActivity.kt index f83e0751b..415649d45 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/EditActivity.kt +++ b/app/src/main/java/org/autojs/autojs/ui/edit/EditActivity.kt @@ -31,7 +31,7 @@ import java.io.File import java.io.IOException /** - * Created by Stardust on 2017/1/29. + * Created by Stardust on Jan 29, 2017. * Modified by SuperMonster003 as of Jan 21, 2023. */ open class EditActivity : BaseActivity(), DelegateHost, PermissionRequestProxyActivity { diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/EditorMenu.java b/app/src/main/java/org/autojs/autojs/ui/edit/EditorMenu.java index 7bcb1c00c..5399dc3a6 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/EditorMenu.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/EditorMenu.java @@ -36,7 +36,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers; /** - * Created by Stardust on 2017/9/28. + * Created by Stardust on Sep 28, 2017. */ @SuppressWarnings("ResultOfMethodCallIgnored") @SuppressLint("CheckResult") diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/EditorView.kt b/app/src/main/java/org/autojs/autojs/ui/edit/EditorView.kt index c6727564a..14b7da645 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/EditorView.kt +++ b/app/src/main/java/org/autojs/autojs/ui/edit/EditorView.kt @@ -78,7 +78,7 @@ import org.autojs.autojs6.databinding.EditorViewBinding import java.io.File /** - * Created by Stardust on 2017/9/28. + * Created by Stardust on Sep 28, 2017. * Modified by SuperMonster003 as of May 1, 2023. * Transformed by SuperMonster003 on May 1, 2023. */ @@ -276,13 +276,8 @@ class EditorView : LinearLayout, OnHintClickListener, ClickCallback, ToolbarFrag private fun setUpFunctionsKeyboard() { mFunctionsKeyboardHelper = FunctionsKeyboardHelper.with(context as Activity) .setContent(editor) - - // @Hint by SuperMonster003 on Jul 20, 2023. - // ! Note the order in which setFunctionsView and setFunctionsTrigger are called. - // ! zh-CN: 需留意 setFunctionsView 与 setFunctionsTrigger 的先后顺序. - .setFunctionsView(mFunctionsKeyboard) .setFunctionsTrigger(mShowFunctionsButton) - + .setFunctionsView(mFunctionsKeyboard) .setEditView(editor.codeEditText) .build() @@ -393,10 +388,10 @@ class EditorView : LinearLayout, OnHintClickListener, ClickCallback, ToolbarFrag if (showMessage) { showSnack(this, R.string.text_start_running) } - // TODO: 2018/10/24 + // TODO by Stardust on Oct 24, 2018. val execution = runWithBroadcastSender( file, - uri!!.path?.let { File(it).parent }, + workingDirectory = uri!!.path?.let { File(it).parent }, overriddenFullPath, ) ?: return null scriptExecutionId = execution.id @@ -532,7 +527,8 @@ class EditorView : LinearLayout, OnHintClickListener, ClickCallback, ToolbarFrag activity.supportFragmentManager.beginTransaction() .replace(R.id.toolbar_menu, SearchToolbarFragment().apply { setOnMenuItemClickListener(this@EditorView) - arguments?.putBoolean(SearchToolbarFragment.ARGUMENT_SHOW_REPLACE_ITEM, showReplaceItem) + arguments ?: let { arguments = Bundle() } + arguments!!.putBoolean(SearchToolbarFragment.ARGUMENT_SHOW_REPLACE_ITEM, showReplaceItem) }) .commit() } diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/FindOrReplaceDialogBuilder.kt b/app/src/main/java/org/autojs/autojs/ui/edit/FindOrReplaceDialogBuilder.kt index 5ac079214..c7a190ef6 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/FindOrReplaceDialogBuilder.kt +++ b/app/src/main/java/org/autojs/autojs/ui/edit/FindOrReplaceDialogBuilder.kt @@ -14,7 +14,7 @@ import org.autojs.autojs6.R import org.autojs.autojs6.databinding.DialogFindOrReplaceBinding /** - * Created by Stardust on 2017/9/28. + * Created by Stardust on Sep 28, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. * Transformed by SuperMonster003 on May 12, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/TextSizeSettingDialogBuilder.java b/app/src/main/java/org/autojs/autojs/ui/edit/TextSizeSettingDialogBuilder.java index 898dff5e7..aeb15db81 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/TextSizeSettingDialogBuilder.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/TextSizeSettingDialogBuilder.java @@ -14,7 +14,7 @@ import org.autojs.autojs6.databinding.DialogTextSizeSettingBinding; /** - * Created by Stardust on 2018/2/24. + * Created by Stardust on Feb 24, 2018. */ public class TextSizeSettingDialogBuilder extends MaterialDialog.Builder implements SeekBar.OnSeekBarChangeListener { diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/completion/CodeCompletionBar.java b/app/src/main/java/org/autojs/autojs/ui/edit/completion/CodeCompletionBar.java index e773f9e5f..c82e25f9d 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/completion/CodeCompletionBar.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/completion/CodeCompletionBar.java @@ -17,7 +17,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/2/17. + * Created by Stardust on Feb 17, 2017. */ public class CodeCompletionBar extends RecyclerView { diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/editor/AutoIndent.java b/app/src/main/java/org/autojs/autojs/ui/edit/editor/AutoIndent.java index 8fab53c3c..6c07d15e6 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/editor/AutoIndent.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/editor/AutoIndent.java @@ -4,7 +4,7 @@ import android.text.TextWatcher; /** - * Created by Stardust on 2018/2/25. + * Created by Stardust on Feb 25, 2018. */ public class AutoIndent implements TextWatcher { diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/editor/BracketMatching.java b/app/src/main/java/org/autojs/autojs/ui/edit/editor/BracketMatching.java index 7c30f483e..35127b831 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/editor/BracketMatching.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/editor/BracketMatching.java @@ -1,7 +1,7 @@ package org.autojs.autojs.ui.edit.editor; /** - * Created by Stardust on 2018/2/25. + * Created by Stardust on Feb 25, 2018. */ public class BracketMatching { diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditText.kt b/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditText.kt index 0cea6940b..f0e3a313e 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditText.kt +++ b/app/src/main/java/org/autojs/autojs/ui/edit/editor/CodeEditText.kt @@ -48,7 +48,7 @@ import org.mozilla.javascript.Token import java.util.concurrent.CopyOnWriteArrayList /** - * Created by Administrator on 2018/2/11. + * Created by Administrator on Feb 11, 2018. * Modified by SuperMonster003 as of May 1, 2023. */ class CodeEditText : AppCompatEditText { @@ -127,7 +127,9 @@ class CodeEditText : AppCompatEditText { // 调用 super.onDraw 绘制光标和选择高亮 // 因为字体颜色被设置为透明 // 因此 super.onDraw 绘制的字体不显示 - // TODO: 2018/2/24 优化效率。不绘制透明字体。 + // TODO by Stardust on Feb 24, 2018. + // ! 优化效率. + // ! 不绘制透明字体. super.onDraw(canvas) canvas.save() canvas.translate(0f, extendedPaddingTop.toFloat()) @@ -212,7 +214,7 @@ class CodeEditText : AppCompatEditText { val color = when (i) { mUnmatchedBracket -> mTheme.getColorForToken(Token.ERROR) mMatchingBrackets[0], mMatchingBrackets[1] -> mTheme.getColorForToken(TokenMapping.TOKEN_MATCHED_BRACKET) - else -> highlightTokens.colors[i] + else -> highlightTokens.colors[i.coerceAtMost(highlightTokens.colors.size - 1)] } if (previousColor != color) { paint.color = previousColor @@ -224,13 +226,17 @@ class CodeEditText : AppCompatEditText { i++ } paint.color = previousColor - val offsetX = paint.measureText(text, lineStart, previousColorPos) - if (previousColorPos < 0 || visibleCharEnd > textLength || previousColorPos >= visibleCharEnd) { - Log.e(TAG, "IndexOutOfBounds: previousColorPos = $previousColorPos, visibleCharEnd = $visibleCharEnd, textLength = $textLength") - // postInvalidate(); - return - } try { + if (previousColorPos < 0) { + throw IndexOutOfBoundsException("Proactively throw a local exception as \"previousColorPos < 0\"") + } + if (visibleCharEnd > textLength) { + throw IndexOutOfBoundsException("Proactively throw a local exception as \"visibleCharEnd > textLength\"") + } + if (previousColorPos >= visibleCharEnd) { + throw IndexOutOfBoundsException("Proactively throw a local exception as \"previousColorPos >= visibleCharEnd\"") + } + val offsetX = paint.measureText(text, lineStart, previousColorPos) canvas.drawText(text!!, previousColorPos, visibleCharEnd, paddingLeft + offsetX, lineBaseline.toFloat(), paint) } catch (ex: IndexOutOfBoundsException) { Log.e(TAG, "IndexOutOfBounds: previousColorPos = $previousColorPos, visibleCharEnd = $visibleCharEnd, textLength = $textLength") diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/editor/LayoutHelper.java b/app/src/main/java/org/autojs/autojs/ui/edit/editor/LayoutHelper.java index 371a1d2bf..17c9644df 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/editor/LayoutHelper.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/editor/LayoutHelper.java @@ -5,7 +5,7 @@ import android.text.Layout; /** - * Created by Stardust on 2018/2/13. + * Created by Stardust on Feb 13, 2018. */ public class LayoutHelper { diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/keyboard/FunctionsKeyboardHelper.java b/app/src/main/java/org/autojs/autojs/ui/edit/keyboard/FunctionsKeyboardHelper.java index d37162bc3..a2b956e26 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/keyboard/FunctionsKeyboardHelper.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/keyboard/FunctionsKeyboardHelper.java @@ -15,8 +15,8 @@ import org.autojs.autojs.event.BackPressedHandler; /** - * Created by Stardust on 2017/12/9. - * https://github.com/dss886/Android-FunctionsInputDetector + * Created by Stardust on Dec 9, 2017. + * Android-FunctionsInputDetector */ public class FunctionsKeyboardHelper implements BackPressedHandler { diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/keyboard/FunctionsKeyboardView.java b/app/src/main/java/org/autojs/autojs/ui/edit/keyboard/FunctionsKeyboardView.java index f508f1fbe..440e832c3 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/keyboard/FunctionsKeyboardView.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/keyboard/FunctionsKeyboardView.java @@ -36,22 +36,16 @@ import io.reactivex.android.schedulers.AndroidSchedulers; /** - * Created by Stardust on 2017/12/9. + * Created by Stardust on Dec 9, 2017. + * Modified by SuperMonster003 as of May 26, 2022. */ public class FunctionsKeyboardView extends FrameLayout { - public interface ClickCallback { - void onModuleLongClick(Module module); - - void onPropertyClick(Module m, Property property); - - void onPropertyLongClick(Module m, Property property); - } - private static final int SPAN_COUNT = 4; private RecyclerView mModulesView; private RecyclerView mPropertiesView; + private Drawable mGridDividerView; private List mModules; private final Map> mSpanSizes = new HashMap<>(); @@ -80,54 +74,70 @@ public FunctionsKeyboardView(@NonNull Context context, @Nullable AttributeSet at init(); } + public interface ClickCallback { + void onModuleLongClick(Module module); + + void onPropertyClick(Module m, Property property); + + void onPropertyLongClick(Module m, Property property); + } + public void setClickCallback(ClickCallback clickCallback) { mClickCallback = clickCallback; } private void init() { - FunctionsKeyboardViewBinding binding = FunctionsKeyboardViewBinding.inflate(LayoutInflater.from(getContext())); + FunctionsKeyboardViewBinding binding = FunctionsKeyboardViewBinding.inflate(LayoutInflater.from(getContext()), this, true); - mModulesView = binding.moduleList; - mPropertiesView = binding.properties; - - initModulesView(); - initPropertiesView(); + initModulesView(binding); + initPropertiesView(binding); } - private void initPropertiesView() { + private void initPropertiesView(FunctionsKeyboardViewBinding binding) { + mPropertiesView = binding.properties; WrapContentGridLayoutManger manager = new WrapContentGridLayoutManger(getContext(), SPAN_COUNT); manager.setDebugInfo("FunctionsKeyboardView"); mPropertiesView.setLayoutManager(manager); mPropertiesView.setAdapter(new PropertiesAdapter()); manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { - @Override public int getSpanSize(int position) { return mSpanSizes.get(mSelectedModule).get(position); } }); - Drawable divider = ContextCompat.getDrawable(getContext(), R.drawable.divider_functions_view); - GridDividerDecoration dividerItemDecoration = new GridDividerDecoration(getContext(), divider); + mGridDividerView = ContextCompat.getDrawable(getContext(), R.drawable.divider_functions_view); + GridDividerDecoration dividerItemDecoration = new GridDividerDecoration(getContext(), mGridDividerView); mPropertiesView.addItemDecoration(dividerItemDecoration); } private void initSpanSizes(Module module) { - if (mSpanSizes.containsKey(module)) + if (mSpanSizes.containsKey(module)) { return; - if (getMeasuredWidth() == 0) + } + if (getMeasuredWidth() == 0) { throw new IllegalStateException(); + } List spanSizes = new ArrayList<>(); - //初始化spanSizes列表 + // 初始化 spanSizes 列表. for (Property property : mSelectedModule.getProperties()) { int width = Math.max(getTextWidth(property.getKey()), getTextWidth(property.getSummary())); - int spanSize = (int) Math.ceil(width / ((double) getMeasuredWidth() / 4)); + if (mGridDividerView != null) { + // @Hint by SuperMonster003 on Nov 30, 2023. + // ! Increase the width as much as possible to prevent multi-line module names in TextView. + // ! Like: + // ! [ stopAllAndToas ] + // ! [ t ] + width += mGridDividerView.getIntrinsicWidth() * 2; + } + int spanSize = (int) Math.ceil(width / ((double) getMeasuredWidth() / SPAN_COUNT)); spanSizes.add(Math.min(spanSize, 2)); } - //遍历这个列表,调整spanSize。例如以下这种情况时: + // 遍历这个列表, 调整 spanSize. + // 例如以下这种情况: // [] [] [] // [ ] [] [] // [] [] [] [] - //把第一行的第三个元素的spanSize设置为2 + // 把第一行的第三个元素的 spanSize 设置为 2. int column = 0; for (int i = 0; i < spanSizes.size(); i++) { int spanSize = spanSizes.get(i); @@ -137,7 +147,7 @@ private void initSpanSizes(Module module) { } else { column += spanSize; } - if (column == 4) { + if (column == SPAN_COUNT) { column = 0; } } @@ -145,8 +155,9 @@ private void initSpanSizes(Module module) { } private String getDisplayText(Property property) { - if (TextUtils.isEmpty(property.getSummary())) + if (TextUtils.isEmpty(property.getSummary())) { return property.getKey(); + } return property.getKey() + "\n" + property.getSummary(); } @@ -160,7 +171,8 @@ private int getTextWidth(String text) { return r.width(); } - private void initModulesView() { + private void initModulesView(FunctionsKeyboardViewBinding binding) { + mModulesView = binding.moduleList; mModulesView.setLayoutManager(new LinearLayoutManager(getContext(), RecyclerView.HORIZONTAL, false)); mModulesView.setAdapter(new ModulesAdapter()); } @@ -185,8 +197,9 @@ private void setSelectedModule(Module module, @Nullable View moduleView) { mSelectedModuleView.setSelected(false); } mSelectedModuleView = moduleView; - if (mSelectedModuleView != null) + if (mSelectedModuleView != null) { mSelectedModuleView.setSelected(true); + } initSpanSizes(mSelectedModule); mPropertiesView.getAdapter().notifyDataSetChanged(); } @@ -194,8 +207,9 @@ private void setSelectedModule(Module module, @Nullable View moduleView) { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if (mModules == null) + if (mModules == null) { loadModules(); + } } private class ModuleViewHolder extends RecyclerView.ViewHolder { @@ -208,8 +222,9 @@ private class ModuleViewHolder extends RecyclerView.ViewHolder { super(itemView); mTextView = (TextView) itemView; mTextView.setOnClickListener(v -> { - if (mModule == null) + if (mModule == null) { return; + } setSelectedModule(mModule, mTextView); }); mTextView.setOnLongClickListener(v -> { @@ -278,6 +293,7 @@ public void onBindViewHolder(ModuleViewHolder holder, int position) { public int getItemCount() { return mModules == null ? 0 : mModules.size(); } + } private class PropertiesAdapter extends RecyclerView.Adapter { @@ -298,6 +314,7 @@ public void onBindViewHolder(PropertyViewHolder holder, int position) { public int getItemCount() { return mSelectedModule == null ? 0 : mSelectedModule.getProperties().size(); } + } } diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/theme/Theme.java b/app/src/main/java/org/autojs/autojs/ui/edit/theme/Theme.java index a4a5cde3e..2efa8add5 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/theme/Theme.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/theme/Theme.java @@ -14,7 +14,7 @@ import java.io.Reader; /** - * Created by Stardust on 2018/2/16. + * Created by Stardust on Feb 16, 2018. */ public class Theme { diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/theme/Themes.java b/app/src/main/java/org/autojs/autojs/ui/edit/theme/Themes.java index b083fe530..ee5e413fc 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/theme/Themes.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/theme/Themes.java @@ -6,6 +6,7 @@ import org.autojs.autojs.pref.Pref; import org.autojs.autojs.util.ViewUtils; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; @@ -17,7 +18,7 @@ import io.reactivex.subjects.PublishSubject; /** - * Created by Stardust on 2018/2/22. + * Created by Stardust on Feb 22, 2018. */ public class Themes { @@ -71,7 +72,7 @@ private static Observable> getAllThemesInner(Context context) { } try { return Observable.fromArray(context.getAssets().list(ASSETS_THEMES_PATH)) - .map(file -> context.getAssets().open(ASSETS_THEMES_PATH + "/" + file)) + .map(file -> context.getAssets().open(ASSETS_THEMES_PATH + File.separator + file)) .map(stream -> Theme.fromJson(new InputStreamReader(stream))) .collectInto((List) new ArrayList(), List::add) .toObservable(); diff --git a/app/src/main/java/org/autojs/autojs/ui/edit/theme/TokenMapping.java b/app/src/main/java/org/autojs/autojs/ui/edit/theme/TokenMapping.java index c446d5f0c..b001d2013 100644 --- a/app/src/main/java/org/autojs/autojs/ui/edit/theme/TokenMapping.java +++ b/app/src/main/java/org/autojs/autojs/ui/edit/theme/TokenMapping.java @@ -9,11 +9,10 @@ import java.util.List; /** - * Created by Stardust on 2018/2/21. + * Created by Stardust on Feb 21, 2018. */ public class TokenMapping { - public static final int TOKEN_MATCHED_BRACKET = Token.LAST_TOKEN + 1; private static final List KEYWORD = tokenNamesToTypes(Arrays.asList("return", "new", "delete", "typeof", "null", "this", "false", "true", "throw", "in", "instanceof", "yield", "try", "function", "if", "else", "switch", "case", "default", "while", "do", "for", "break", "continue", "var", "with", "catch", "finally", "void", "let", "const", "debugger")); @@ -22,17 +21,21 @@ public class TokenMapping { public static List getTokensForScope(String scope) { switch (scope) { - case "keyword": + case "keyword" -> { return KEYWORD; - case "keyword.operator": + } + case "keyword.operator" -> { return KEYWORD_OPERATOR; - case "keyword.control": + } + case "keyword.control" -> { return KEYWORD_CONTROL; - default: + } + default -> { int token = tokenNameToType(scope); if (isValidToken(token)) { return Collections.singletonList(token); } + } } return Collections.emptyList(); } @@ -43,17 +46,21 @@ public static boolean isValidToken(int token) { public static int tokenNameToType(String name) { switch (name) { - case "this.self": + case "this.self" -> { return Token.THIS; - case "keyword.operator.quantifier.regexp": + } + case "keyword.operator.quantifier.regexp" -> { return Token.REGEXP; - case "variable": + } + case "variable" -> { return Token.NAME; - case "constant.numeric": + } + case "constant.numeric" -> { return Token.NUMBER; - case "bracket.matched": + } + case "bracket.matched" -> { return TOKEN_MATCHED_BRACKET; - + } } for (int token = Token.ERROR; token < Token.LAST_TOKEN; token++) { if (token == Token.STRICT_SETNAME || token == Token.SETCONSTVAR) diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyService.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyService.java index b7356dcb9..82b781ca5 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyService.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyService.java @@ -13,7 +13,7 @@ import java.util.concurrent.CopyOnWriteArraySet; /** - * Created by Stardust on 2017/5/1. + * Created by Stardust on May 1, 2017. */ public class FloatyService extends Service { diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyWindow.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyWindow.java index 6320f6199..cd0a00a87 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyWindow.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyWindow.java @@ -4,12 +4,13 @@ import android.view.WindowManager; import androidx.annotation.CallSuper; +import androidx.annotation.Nullable; import org.opencv.core.Point; import org.opencv.core.Size; /** - * Created by Stardust on 2017/5/1. + * Created by Stardust on May 1, 2017. */ public abstract class FloatyWindow { private WindowManager mWindowManager; @@ -30,7 +31,6 @@ public void onCreate(FloatyService service, WindowManager manager) { onCreateWindow(service, manager); } - protected void onCreateWindow(FloatyService service, WindowManager manager) { setWindowLayoutParams(onCreateWindowLayoutParams()); setWindowView(onCreateView(service)); @@ -38,7 +38,7 @@ protected void onCreateWindow(FloatyService service, WindowManager manager) { onViewCreated(getWindowView()); - //attach to window + // attach to window attachToWindow(getWindowView(), manager); } @@ -46,7 +46,7 @@ protected void onViewCreated(View view) { } - protected void attachToWindow(View view, WindowManager manager){ + protected void attachToWindow(View view, WindowManager manager) { getWindowManager().addView(view, getWindowLayoutParams()); onAttachToWindow(view, manager); } @@ -59,7 +59,6 @@ protected void onAttachToWindow(View view, WindowManager manager) { protected WindowBridge onCreateWindowBridge(WindowManager.LayoutParams params) { return new WindowBridge.DefaultImpl(params, getWindowManager(), getWindowView()); - } protected abstract WindowManager.LayoutParams onCreateWindowLayoutParams(); @@ -69,7 +68,6 @@ public void updateWindowLayoutParams(WindowManager.LayoutParams params) { mWindowManager.updateViewLayout(getWindowView(), getWindowLayoutParams()); } - protected void setWindowManager(WindowManager windowManager) { mWindowManager = windowManager; } @@ -98,6 +96,7 @@ public WindowManager getWindowManager() { return mWindowManager; } + @Nullable public WindowBridge getWindowBridge() { return mWindowBridge; } @@ -110,7 +109,6 @@ public void onServiceDestroy(FloatyService service) { close(); } - public void close() { try { getWindowManager().removeView(getWindowView()); diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloaty.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloaty.java index bf4b1e215..6a31bf872 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloaty.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloaty.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; /** - * Created by Stardust on 2017/4/19. + * Created by Stardust on Apr 19, 2017. */ public interface ResizableExpandableFloaty { diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloatyWindow.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloatyWindow.java deleted file mode 100644 index 405a83c0e..000000000 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloatyWindow.java +++ /dev/null @@ -1,300 +0,0 @@ -package org.autojs.autojs.ui.enhancedfloaty; - -import android.graphics.PixelFormat; -import android.view.Gravity; -import android.view.KeyEvent; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; - -import org.autojs.autojs.ui.enhancedfloaty.gesture.DragGesture; -import org.autojs.autojs.ui.enhancedfloaty.gesture.ResizeGesture; -import org.autojs.autojs.ui.enhancedfloaty.util.WindowTypeCompat; -import org.autojs.autojs.ui.widget.ViewSwitcher; - -import org.autojs.autojs6.R; - -/** - * Created by Stardust on 2017/4/18. - */ -public class ResizableExpandableFloatyWindow extends FloatyWindow { - - private static final int INITIAL_WINDOW_PARAM_FLAG = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; - private static final String TAG = "ExpandableFloatyService"; - - - private ResizableExpandableFloaty mFloaty; - private ViewSwitcher mCollapseExpandViewSwitcher; - private View mCollapsedView; - private View mExpandedView; - private View mResizer; - private View mMoveCursor; - private DragGesture mDragGesture; - private int mCollapsedViewX, mCollapsedViewY; - private int mExpandedViewX, mExpandedViewY; - - private ViewStack mViewStack = new ViewStack(new ViewStack.CurrentViewSetter() { - @Override - public void setCurrentView(View v) { - mCollapseExpandViewSwitcher.setSecondView(v); - } - }); - - - public ResizableExpandableFloatyWindow(ResizableExpandableFloaty floaty) { - if (floaty == null) { - throw new NullPointerException("floaty == null"); - } - mFloaty = floaty; - } - - - @Override - protected View onCreateView(FloatyService service) { - inflateWindowViews(service); - View windowView = View.inflate(service, R.layout.ef_expandable_floaty_container, null); - windowView.setFocusableInTouchMode(true); - mCollapseExpandViewSwitcher = windowView.findViewById(R.id.container); - mCollapseExpandViewSwitcher.setMeasureAllChildren(false); - ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); - mCollapseExpandViewSwitcher.addView(mCollapsedView, params); - mCollapseExpandViewSwitcher.addView(mExpandedView, params); - mViewStack.setRootView(mExpandedView); - return windowView; - } - - @Override - protected void onAttachToWindow(View view, WindowManager manager) { - super.onAttachToWindow(view, manager); - initGesture(); - setKeyListener(); - setInitialState(); - } - - public View getCollapsedView() { - return mCollapsedView; - } - - public View getExpandedView() { - return mExpandedView; - } - - public View getResizer() { - return mResizer; - } - - public View getMoveCursor() { - return mMoveCursor; - } - - protected ViewStack getViewStack() { - return mViewStack; - } - - protected int getCollapsedViewX() { - return mCollapsedViewX; - } - - protected void setCollapsedViewX(int collapsedViewX) { - mCollapsedViewX = collapsedViewX; - } - - protected int getCollapsedViewY() { - return mCollapsedViewY; - } - - protected void setCollapsedViewY(int collapsedViewY) { - mCollapsedViewY = collapsedViewY; - } - - protected int getExpandedViewX() { - return mExpandedViewX; - } - - protected void setExpandedViewX(int expandedViewX) { - mExpandedViewX = expandedViewX; - } - - protected int getExpandedViewY() { - return mExpandedViewY; - } - - protected void setExpandedViewY(int expandedViewY) { - mExpandedViewY = expandedViewY; - } - - protected void setInitialState() { - ResizableExpandableFloaty floaty = getFloaty(); - boolean expand = floaty.isInitialExpanded(); - if (expand) { - setExpandedViewX(floaty.getInitialX()); - setExpandedViewY(floaty.getInitialY()); - expand(); - } else { - setCollapsedViewX(floaty.getInitialX()); - setCollapsedViewX(floaty.getInitialY()); - getWindowBridge().updatePosition(getCollapsedViewX(), getCollapsedViewY()); - } - } - - @Override - protected WindowBridge onCreateWindowBridge(WindowManager.LayoutParams params) { - return new WindowBridge.DefaultImpl(params, getWindowManager(), getWindowView()) { - @Override - public void updatePosition(int x, int y) { - super.updatePosition(x, y); - if (getViewSwitcher().getCurrentView() == getExpandedView()) { - setExpandedViewX(x); - setExpandedViewY(y); - } else { - setCollapsedViewX(x); - setCollapsedViewY(y); - } - } - - }; - } - - protected void inflateWindowViews(FloatyService service) { - ResizableExpandableFloaty floaty = getFloaty(); - mExpandedView = floaty.inflateExpandedView(service, this); - mCollapsedView = floaty.inflateCollapsedView(service, this); - mResizer = floaty.getResizerView(getExpandedView()); - mMoveCursor = floaty.getMoveCursorView(getExpandedView()); - } - - protected WindowManager.LayoutParams onCreateWindowLayoutParams() { - WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams( - WindowManager.LayoutParams.WRAP_CONTENT, - WindowManager.LayoutParams.WRAP_CONTENT, - WindowTypeCompat.getPhoneWindowType(), - INITIAL_WINDOW_PARAM_FLAG, - PixelFormat.TRANSLUCENT); - layoutParams.gravity = Gravity.TOP | Gravity.START; - return layoutParams; - } - - protected void initGesture() { - enableResize(); - enableMove(); - } - - protected void enableResize() { - if (getResizer() != null) { - ResizeGesture.enableResize(getResizer(), getExpandedView(), getWindowBridge()); - } - } - - public ResizableExpandableFloaty getFloaty() { - return mFloaty; - } - - protected void enableMove() { - if (getMoveCursor() != null) { - DragGesture gesture = new DragGesture(getWindowBridge(), getMoveCursor()); - gesture.setPressedAlpha(1.0f); - } - DragGesture dragGesture = new DragGesture(getWindowBridge(), getCollapsedView()); - dragGesture.setUnpressedAlpha(getFloaty().getCollapsedViewUnpressedAlpha()); - dragGesture.setPressedAlpha(getFloaty().getCollapsedViewPressedAlpha()); - dragGesture.setKeepToSide(true); - dragGesture.setKeepToSideHiddenWidthRadio(getFloaty().getCollapsedHiddenWidthRadio()); - dragGesture.setOnDraggedViewClickListener(v -> expand()); - setDragGesture(dragGesture); - } - - protected void setDragGesture(DragGesture dragGesture) { - mDragGesture = dragGesture; - } - - protected DragGesture getDragGesture() { - return mDragGesture; - } - - public void expand() { - getViewSwitcher().showSecond(); - //enableWindowLimit(); - if (getFloaty().shouldRequestFocusWhenExpand()) { - requestWindowFocus(); - } - getDragGesture().setKeepToSide(false); - getWindowBridge().updatePosition(getExpandedViewX(), getExpandedViewY()); - } - - protected ViewSwitcher getViewSwitcher() { - return mCollapseExpandViewSwitcher; - } - - public void collapse() { - getViewSwitcher().showFirst(); - disableWindowFocus(); - setWindowLayoutNoLimit(); - getDragGesture().setKeepToSide(true); - getWindowBridge().updatePosition(getCollapsedViewX(), getCollapsedViewY()); - } - - protected void setKeyListener() { - getWindowView().setOnKeyListener((v, keyCode, event) -> { - if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { - onBackPressed(); - return true; - } - if (keyCode == KeyEvent.KEYCODE_HOME) { - onHomePressed(); - return true; - } - return false; - }); - } - - private void onBackPressed() { - ViewStack viewStack = getViewStack(); - if (viewStack.canGoBack()) { - viewStack.goBack(); - } else { - collapse(); - } - } - - private void onHomePressed() { - getViewStack().goBackToFirst(); - collapse(); - } - - - public void disableWindowFocus() { - WindowManager.LayoutParams windowLayoutParams = getWindowLayoutParams(); - windowLayoutParams.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; - updateWindowLayoutParams(windowLayoutParams); - } - - public void setWindowLayoutInScreen() { - WindowManager.LayoutParams windowLayoutParams = getWindowLayoutParams(); - windowLayoutParams.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; - updateWindowLayoutParams(windowLayoutParams); - } - - public void requestWindowFocus() { - WindowManager.LayoutParams windowLayoutParams = getWindowLayoutParams(); - windowLayoutParams.flags &= ~WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; - updateWindowLayoutParams(windowLayoutParams); - getWindowView().requestFocus(); - } - - public void setWindowLayoutNoLimit() { - WindowManager.LayoutParams windowLayoutParams = getWindowLayoutParams(); - windowLayoutParams.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; - updateWindowLayoutParams(windowLayoutParams); - } - - public void setTouchable(boolean touchable) { - WindowManager.LayoutParams windowLayoutParams = getWindowLayoutParams(); - if (touchable) { - windowLayoutParams.flags &= ~WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; - } else { - windowLayoutParams.flags |= WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; - } - updateWindowLayoutParams(windowLayoutParams); - } -} - diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloatyWindow.kt b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloatyWindow.kt new file mode 100644 index 000000000..360911f90 --- /dev/null +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableExpandableFloatyWindow.kt @@ -0,0 +1,210 @@ +package org.autojs.autojs.ui.enhancedfloaty + +import android.graphics.PixelFormat +import android.view.Gravity +import android.view.KeyEvent +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN +import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS +import android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE +import android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE +import android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL +import org.autojs.autojs.ui.enhancedfloaty.WindowBridge.DefaultImpl +import org.autojs.autojs.ui.enhancedfloaty.gesture.DragGesture +import org.autojs.autojs.ui.enhancedfloaty.gesture.ResizeGesture +import org.autojs.autojs.ui.enhancedfloaty.util.WindowTypeCompat +import org.autojs.autojs.ui.widget.ViewSwitcher +import org.autojs.autojs6.R + +/** + * Created by Stardust on Apr 18, 2017. + * Modified by SuperMonster003 as of Apr 29, 2023. + * Transformed by SuperMonster003 on Dec 2, 2023. + */ +class ResizableExpandableFloatyWindow(private var floaty: ResizableExpandableFloaty) : FloatyWindow() { + + private val mViewStack = ViewStack { v -> mViewSwitcher.setSecondView(v) } + + private lateinit var mCollapsedView: View + private lateinit var mExpandedView: View + private lateinit var mViewSwitcher: ViewSwitcher + private lateinit var mDragGesture: DragGesture + + private var mResizer: View? = null + private var mMoveCursor: View? = null + + private var mCollapsedViewX = 0 + private var mCollapsedViewY = 0 + private var mExpandedViewX = 0 + private var mExpandedViewY = 0 + + override fun onCreateView(service: FloatyService): View { + inflateWindowViews(service) + val windowView = View.inflate(service, R.layout.ef_expandable_floaty_container, null).apply { + isFocusableInTouchMode = true + } + mViewSwitcher = windowView.findViewById(R.id.container).also { switcher -> + switcher.measureAllChildren = false + ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT).let { params -> + switcher.addView(mCollapsedView, params) + switcher.addView(mExpandedView, params) + } + } + mViewStack.setRootView(mExpandedView) + return windowView + } + + override fun onAttachToWindow(view: View, manager: WindowManager) { + super.onAttachToWindow(view, manager) + initGesture() + setKeyListener() + setInitialState() + } + + private fun initGesture() { + enableResize() + enableMove() + } + + private fun enableResize() { + if (mResizer != null) { + ResizeGesture.enableResize(mResizer, mExpandedView, windowBridge) + } + } + + private fun enableMove() { + if (mMoveCursor != null) { + DragGesture(windowBridge, mMoveCursor).apply { pressedAlpha = 1.0f } + } + this.mDragGesture = DragGesture(windowBridge, mCollapsedView).apply { + unpressedAlpha = floaty.collapsedViewUnpressedAlpha + pressedAlpha = floaty.collapsedViewPressedAlpha + isKeepToSide = true + keepToSideHiddenWidthRadio = floaty.collapsedHiddenWidthRadio + setOnDraggedViewClickListener { expand() } + } + } + + private fun setKeyListener() { + windowView.setOnKeyListener { _, keyCode, event -> + if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) { + onBackPressed() + return@setOnKeyListener true + } + if (keyCode == KeyEvent.KEYCODE_HOME) { + onHomePressed() + return@setOnKeyListener true + } + return@setOnKeyListener false + } + } + + private fun setInitialState() { + if (floaty.isInitialExpanded) { + mExpandedViewX = floaty.initialX + mExpandedViewY = floaty.initialY + expand() + } else { + mCollapsedViewX = floaty.initialX + mCollapsedViewX = floaty.initialY + windowBridge?.updatePosition(mCollapsedViewX, mCollapsedViewY) + } + } + + override fun onCreateWindowBridge(params: WindowManager.LayoutParams): WindowBridge { + return object : DefaultImpl(params, windowManager, windowView) { + override fun updatePosition(x: Int, y: Int) { + super.updatePosition(x, y) + if (mViewSwitcher.currentView === mExpandedView) { + mExpandedViewX = x + mExpandedViewY = y + } else { + mCollapsedViewX = x + mCollapsedViewY = y + } + } + } + } + + private fun inflateWindowViews(service: FloatyService?) { + mExpandedView = floaty.inflateExpandedView(service, this) + mCollapsedView = floaty.inflateCollapsedView(service, this) + mResizer = floaty.getResizerView(mExpandedView) + mMoveCursor = floaty.getMoveCursorView(mExpandedView) + } + + override fun onCreateWindowLayoutParams(): WindowManager.LayoutParams { + return WindowManager.LayoutParams( + WindowManager.LayoutParams.WRAP_CONTENT, + WindowManager.LayoutParams.WRAP_CONTENT, + WindowTypeCompat.getPhoneWindowType(), + INITIAL_WINDOW_PARAM_FLAG, + PixelFormat.TRANSLUCENT + ).apply { gravity = Gravity.TOP or Gravity.START } + } + + fun expand() { + mViewSwitcher.showSecond() + // enableWindowLimit(); + if (floaty.shouldRequestFocusWhenExpand()) { + requestWindowFocus() + } + mDragGesture.isKeepToSide = false + windowBridge?.updatePosition(mExpandedViewX, mExpandedViewY) + } + + fun collapse() { + mViewSwitcher.showFirst() + disableWindowFocus() + setWindowLayoutNoLimit() + mDragGesture.isKeepToSide = true + windowBridge?.updatePosition(mCollapsedViewX, mCollapsedViewY) + } + + private fun onBackPressed() { + if (mViewStack.canGoBack()) { + mViewStack.goBack() + } else { + collapse() + } + } + + private fun onHomePressed() { + mViewStack.goBackToFirst() + collapse() + } + + private fun disableWindowFocus() { + updateWindowLayoutParams(windowLayoutParams.apply { flags = flags or FLAG_NOT_FOCUSABLE }) + } + + fun setWindowLayoutInScreen() { + updateWindowLayoutParams(windowLayoutParams.apply { flags = flags or FLAG_LAYOUT_IN_SCREEN }) + } + + fun requestWindowFocus() { + updateWindowLayoutParams(windowLayoutParams.apply { flags = flags and FLAG_NOT_FOCUSABLE.inv() }) + windowView.requestFocus() + } + + private fun setWindowLayoutNoLimit() { + updateWindowLayoutParams(windowLayoutParams.apply { flags = flags or FLAG_LAYOUT_NO_LIMITS }) + } + + fun setTouchable(touchable: Boolean) { + updateWindowLayoutParams(windowLayoutParams.apply { + flags = when (touchable) { + true -> flags and FLAG_NOT_TOUCHABLE.inv() + else -> flags or FLAG_NOT_TOUCHABLE + } + }) + } + + companion object { + + private const val INITIAL_WINDOW_PARAM_FLAG = FLAG_NOT_FOCUSABLE or FLAG_NOT_TOUCH_MODAL or FLAG_LAYOUT_NO_LIMITS + + } +} diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableFloaty.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableFloaty.java index 90fd65502..7cf708396 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableFloaty.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableFloaty.java @@ -4,7 +4,7 @@ import android.widget.ImageView; /** - * Created by Stardust on 2017/4/30. + * Created by Stardust on Apr 30, 2017. */ public interface ResizableFloaty { diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableFloatyWindow.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableFloatyWindow.java index 53a8a936a..c68a671b2 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableFloatyWindow.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ResizableFloatyWindow.java @@ -15,7 +15,8 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/4/30. + * Created by Stardust on Apr 30, 2017. + * Modified by SuperMonster003 as of Apr 29, 2023. */ public class ResizableFloatyWindow extends FloatyWindow { diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ViewStack.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ViewStack.java index 8e1bfbdd0..804b42e6f 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ViewStack.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/ViewStack.java @@ -5,7 +5,7 @@ import java.util.Stack; /** - * Created by Stardust on 2017/3/11. + * Created by Stardust on Mar 11, 2017. */ public class ViewStack { diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/WindowBridge.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/WindowBridge.java index 14228d21c..a43daed9b 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/WindowBridge.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/WindowBridge.java @@ -5,7 +5,7 @@ import android.view.WindowManager; /** - * Created by Stardust on 2017/4/18. + * Created by Stardust on Apr 18, 2017. */ public interface WindowBridge { int getX(); diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/gesture/DragGesture.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/gesture/DragGesture.java index ce08a1fc3..ffdd8c018 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/gesture/DragGesture.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/gesture/DragGesture.java @@ -8,7 +8,7 @@ import org.autojs.autojs.ui.enhancedfloaty.WindowBridge; /** - * Created by Stardust on 2017/4/18. + * Created by Stardust on Apr 18, 2017. */ public class DragGesture extends GestureDetector.SimpleOnGestureListener { diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/gesture/ResizeGesture.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/gesture/ResizeGesture.java index d72d6fbf7..2358aacd6 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/gesture/ResizeGesture.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/gesture/ResizeGesture.java @@ -11,7 +11,7 @@ import org.autojs.autojs.ui.enhancedfloaty.WindowBridge; /** - * Created by Stardust on 2017/4/18. + * Created by Stardust on Apr 18, 2017. */ public class ResizeGesture extends GestureDetector.SimpleOnGestureListener { diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/util/FloatingWindowPermissionUtil.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/util/FloatingWindowPermissionUtil.java index 50e7157e7..32eaf205f 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/util/FloatingWindowPermissionUtil.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/util/FloatingWindowPermissionUtil.java @@ -9,7 +9,7 @@ import android.view.WindowManager; /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. */ public class FloatingWindowPermissionUtil { diff --git a/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.java b/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.java index 7ffcca646..d5c5e3b90 100644 --- a/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.java +++ b/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.java @@ -21,7 +21,7 @@ import java.util.TimerTask; /** - * Created by Stardust on 2017/2/2. + * Created by Stardust on Feb 2, 2017. */ public class ErrorReportActivity extends BaseActivity { diff --git a/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerItemViewHolder.java b/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerItemViewHolder.java index 53e9c71a5..a33d93b35 100644 --- a/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerItemViewHolder.java +++ b/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerItemViewHolder.java @@ -120,8 +120,9 @@ private void showOptionsMenu() { popupMenu.inflate(R.menu.menu_script_options); Menu menu = popupMenu.getMenu(); if (!mExplorerItem.isExecutable()) { + menu.removeItem(R.id.create_shortcut); + menu.removeItem(R.id.timed_task); menu.removeItem(R.id.run_repeatedly); - menu.removeItem(R.id.more); } if (!mExplorerItem.canDelete()) { menu.removeItem(R.id.delete); @@ -129,6 +130,12 @@ private void showOptionsMenu() { if (!mExplorerItem.canRename()) { menu.removeItem(R.id.rename); } + if (!mExplorerItem.canBuildApk()) { + menu.removeItem(R.id.action_build_apk); + } + if (!mExplorerItem.canSetAsWorkingDir()) { + menu.removeItem(R.id.action_set_as_working_dir); + } String samplePath = new PFile(explorerView.getContext().getFilesDir(), SAMPLE_PATH).getPath(); if (!(mExplorerItem.getPath().startsWith(samplePath))) { menu.removeItem(R.id.reset); diff --git a/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerPageViewHolder.java b/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerPageViewHolder.java index 4ec2283f6..b54059ebb 100644 --- a/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerPageViewHolder.java +++ b/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerPageViewHolder.java @@ -1,5 +1,6 @@ package org.autojs.autojs.ui.explorer; +import android.view.Menu; import android.view.View; import android.widget.ImageView; import android.widget.PopupMenu; @@ -10,6 +11,7 @@ import org.autojs.autojs.model.explorer.ExplorerSamplePage; import org.autojs.autojs.pio.PFile; import org.autojs.autojs.ui.common.ScriptOperations; +import org.autojs.autojs.ui.project.BuildActivity; import org.autojs.autojs.ui.widget.BindableViewHolder; import org.autojs.autojs.util.Observers; import org.autojs.autojs6.R; @@ -58,19 +60,34 @@ private void onItemClick() { private void showOptionsMenu() { explorerView.selectedItem = mExplorerPage; PopupMenu popupMenu = new PopupMenu(explorerView.getContext(), mOptions); + Menu menu = popupMenu.getMenu(); popupMenu.inflate(R.menu.menu_dir_options); + if (!mExplorerPage.canRename()) { + menu.removeItem(R.id.action_rename); + } + if (!mExplorerPage.canDelete()) { + menu.removeItem(R.id.action_delete); + } + if (!mExplorerPage.canSetAsWorkingDir()) { + menu.removeItem(R.id.action_set_as_working_dir); + } + if (!mExplorerPage.canBuildApk()) { + menu.removeItem(R.id.action_build_apk); + } popupMenu.setOnMenuItemClickListener(item -> { int itemId = item.getItemId(); - if (itemId == R.id.rename) { + if (itemId == R.id.action_rename) { new ScriptOperations(explorerView.getContext(), explorerView, explorerView.getCurrentPage()) .rename((ExplorerFileItem) explorerView.selectedItem) .subscribe(Observers.emptyObserver()); - } else if (itemId == R.id.delete) { + } else if (itemId == R.id.action_delete) { new ScriptOperations(explorerView.getContext(), explorerView, explorerView.getCurrentPage()) .delete(explorerView.selectedItem.toScriptFile()); - } else if (itemId == R.id.set_as_working_dir) { + } else if (itemId == R.id.action_set_as_working_dir) { new ScriptOperations(explorerView.getContext(), explorerView, explorerView.getCurrentPage()) .setAsWorkingDir(explorerView.selectedItem.toScriptFile()); + } else if (itemId == R.id.action_build_apk) { + BuildActivity.launch(explorerView.getContext(), explorerView.selectedItem.getPath()); } else { return false; } diff --git a/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerView.java b/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerView.java index a07041ad5..d0c71b0d0 100644 --- a/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerView.java +++ b/app/src/main/java/org/autojs/autojs/ui/explorer/ExplorerView.java @@ -20,10 +20,12 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; +import org.autojs.autojs.groundwork.WrapContentGridLayoutManger; import org.autojs.autojs.model.explorer.Explorer; import org.autojs.autojs.model.explorer.ExplorerChangeEvent; import org.autojs.autojs.model.explorer.ExplorerItem; import org.autojs.autojs.model.explorer.ExplorerPage; +import org.autojs.autojs.model.explorer.Explorers; import org.autojs.autojs.model.script.ScriptFile; import org.autojs.autojs.pref.Pref; import org.autojs.autojs.project.ProjectConfig; @@ -33,7 +35,6 @@ import org.autojs.autojs.util.EnvironmentUtils; import org.autojs.autojs.util.ViewUtils; import org.autojs.autojs.util.WorkingDirectoryUtils; -import org.autojs.autojs.groundwork.WrapContentGridLayoutManger; import org.autojs.autojs6.R; import org.greenrobot.eventbus.Subscribe; import org.jetbrains.annotations.NotNull; @@ -50,7 +51,7 @@ import io.reactivex.schedulers.Schedulers; /** - * Created by Stardust on 2017/8/21. + * Created by Stardust on Aug 21, 2017. * Modified by SuperMonster003 as of Apr 1, 2023. */ @SuppressWarnings("ResultOfMethodCallIgnored") @@ -313,7 +314,14 @@ public boolean canGoUp() { public void goUp() { mPageStateHistories.push(currentPageState); - setCurrentPageState(new ExplorerPageState(createRoot(new File(getCurrentPage().getPath()).getParent()))); + String currentPagePath = getCurrentPage().getPath(); + String nextPagePath; + if (Explorers.Providers.workspace().isCurrentSampleDir(getCurrentDirectory())) { + nextPagePath = WorkingDirectoryUtils.getPath(); + } else { + nextPagePath = new File(currentPagePath).getParent(); + } + setCurrentPageState(new ExplorerPageState(createRoot(nextPagePath))); loadItemList(); } diff --git a/app/src/main/java/org/autojs/autojs/ui/filechooser/FileChooseListView.java b/app/src/main/java/org/autojs/autojs/ui/filechooser/FileChooseListView.java index 9f870a808..4d5e93857 100644 --- a/app/src/main/java/org/autojs/autojs/ui/filechooser/FileChooseListView.java +++ b/app/src/main/java/org/autojs/autojs/ui/filechooser/FileChooseListView.java @@ -21,7 +21,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/10/19. + * Created by Stardust on Oct 19, 2017. */ public class FileChooseListView extends ExplorerView { diff --git a/app/src/main/java/org/autojs/autojs/ui/filechooser/FileChooserDialogBuilder.java b/app/src/main/java/org/autojs/autojs/ui/filechooser/FileChooserDialogBuilder.java index 9edf4fea6..ae8e6820f 100644 --- a/app/src/main/java/org/autojs/autojs/ui/filechooser/FileChooserDialogBuilder.java +++ b/app/src/main/java/org/autojs/autojs/ui/filechooser/FileChooserDialogBuilder.java @@ -25,7 +25,7 @@ import io.reactivex.subjects.PublishSubject; /** - * Created by Stardust on 2017/10/19. + * Created by Stardust on Oct 19, 2017. */ public class FileChooserDialogBuilder extends MaterialDialog.Builder { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/CircularActionMenu.java b/app/src/main/java/org/autojs/autojs/ui/floating/CircularActionMenu.java index ced1ff7d5..2e341026f 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/CircularActionMenu.java +++ b/app/src/main/java/org/autojs/autojs/ui/floating/CircularActionMenu.java @@ -24,7 +24,7 @@ import java.util.concurrent.CopyOnWriteArrayList; /** - * Created by Stardust on 2017/9/25. + * Created by Stardust on Sep 25, 2017. */ public class CircularActionMenu extends FrameLayout { @@ -112,7 +112,8 @@ private void init(AttributeSet attrs) { View v = getItemAt(i); LayoutParams params = (LayoutParams) v.getLayoutParams(); params.gravity = Gravity.START | Gravity.CENTER_VERTICAL; - // FIXME: 2017/10/17 Not working + // FIXME by Stardust on Oct 17, 2017. + // ! Not working. updateViewLayout(v, params); } requestLayout(); @@ -249,7 +250,8 @@ private void calcExpandedSize() { View item = getItemAt(i); maxWidth = Math.max(item.getMeasuredWidth(), maxWidth); maxX = Math.max((int) (mItemExpandedPositionOffsets[i].x + item.getMeasuredWidth()), maxX); - // FIXME: 2017/9/26 这样算出来的高度略大 + // FIXME by Stardust on Sep 26, 2017. + // ! 这样算出来的高度略大. maxY = Math.max((int) (mItemExpandedPositionOffsets[i].y + item.getMeasuredHeight()), maxY); minY = Math.min((int) (mItemExpandedPositionOffsets[i].y - item.getMeasuredHeight()), minY); } diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenu.java b/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenu.java index 3b436bee2..4cef091ed 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenu.java +++ b/app/src/main/java/org/autojs/autojs/ui/floating/CircularMenu.java @@ -48,7 +48,7 @@ import java.text.MessageFormat; /** - * Created by Stardust on 2017/10/18. + * Created by Stardust on Oct 18, 2017. */ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInspector.CaptureAvailableListener { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/FloatyWindowManger.java b/app/src/main/java/org/autojs/autojs/ui/floating/FloatyWindowManger.java index b9e4be404..fc3f72dac 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/FloatyWindowManger.java +++ b/app/src/main/java/org/autojs/autojs/ui/floating/FloatyWindowManger.java @@ -18,7 +18,7 @@ import java.lang.ref.WeakReference; /** - * Created by Stardust on 2017/9/30. + * Created by Stardust on Sep 30, 2017. * Modified by SuperMonster003 as of Jun 21, 2022. */ public class FloatyWindowManger { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/FullScreenFloatyWindow.java b/app/src/main/java/org/autojs/autojs/ui/floating/FullScreenFloatyWindow.java index bfc9b838f..258e9df85 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/FullScreenFloatyWindow.java +++ b/app/src/main/java/org/autojs/autojs/ui/floating/FullScreenFloatyWindow.java @@ -6,7 +6,7 @@ import org.autojs.autojs.ui.enhancedfloaty.FloatyWindow; /** - * Created by Stardust on 2017/10/18. + * Created by Stardust on Oct 18, 2017. */ public abstract class FullScreenFloatyWindow extends FloatyWindow { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/gesture/BounceDragGesture.java b/app/src/main/java/org/autojs/autojs/ui/floating/gesture/BounceDragGesture.java index 16d9af467..358667572 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/gesture/BounceDragGesture.java +++ b/app/src/main/java/org/autojs/autojs/ui/floating/gesture/BounceDragGesture.java @@ -11,7 +11,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/9/26. + * Created by Stardust on Sep 26, 2017. */ public class BounceDragGesture extends DragGesture { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/gesture/DragGesture.java b/app/src/main/java/org/autojs/autojs/ui/floating/gesture/DragGesture.java index b9fd7d4ca..877279aa7 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/gesture/DragGesture.java +++ b/app/src/main/java/org/autojs/autojs/ui/floating/gesture/DragGesture.java @@ -11,7 +11,7 @@ import org.autojs.autojs.ui.enhancedfloaty.WindowBridge; /** - * Created by Stardust on 2017/4/18. + * Created by Stardust on Apr 18, 2017. */ public class DragGesture extends GestureDetector.SimpleOnGestureListener { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsFloatyWindow.kt b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsFloatyWindow.kt index 670f799c7..10f822ada 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsFloatyWindow.kt +++ b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsFloatyWindow.kt @@ -10,7 +10,7 @@ import org.autojs.autojs.util.EventUtils.isKeyBackAndActionUp import org.autojs.autojs6.R /** - * Created by Stardust on 2017/3/12. + * Created by Stardust on Mar 12, 2017. * Modified by SuperMonster003 as of Aug 31, 2022. */ open class LayoutBoundsFloatyWindow @JvmOverloads constructor( diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsView.kt b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsView.kt index fc048105f..2a8be3a10 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsView.kt +++ b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutBoundsView.kt @@ -16,7 +16,7 @@ import org.autojs.autojs6.R import java.util.Collections /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. * Modified by SuperMonster003 as of Sep 25, 2022. */ open class LayoutBoundsView : View { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyFloatyWindow.kt b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyFloatyWindow.kt index 6466e8b55..6aa224618 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyFloatyWindow.kt +++ b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyFloatyWindow.kt @@ -10,7 +10,7 @@ import org.autojs.autojs.util.EventUtils import org.autojs.autojs6.R /** - * Created by Stardust on 2017/3/12. + * Created by Stardust on Mar 12, 2017. * Modified by SuperMonster003 as of Aug 31, 2022. */ open class LayoutHierarchyFloatyWindow @JvmOverloads constructor(private val rootNode: NodeInfo?, private val context: Context, isServiceRelied: Boolean = false) : LayoutFloatyWindow(rootNode, context, isServiceRelied) { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyView.java b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyView.java index b51e97e90..a2c8340e3 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyView.java +++ b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/LayoutHierarchyView.java @@ -28,7 +28,7 @@ import pl.openrnd.multilevellistview.OnItemClickListener; /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. * Modified by SuperMonster003 as of May 26, 2022. */ public class LayoutHierarchyView extends MultiLevelListView { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/NodeInfoView.kt b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/NodeInfoView.kt index aa0c039ad..401024c6d 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/NodeInfoView.kt +++ b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/NodeInfoView.kt @@ -22,7 +22,7 @@ import kotlin.math.ceil import kotlin.math.floor /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. */ class NodeInfoView : RecyclerView { diff --git a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/OnNodeInfoSelectListener.kt b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/OnNodeInfoSelectListener.kt index bec291c98..0d74162d3 100644 --- a/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/OnNodeInfoSelectListener.kt +++ b/app/src/main/java/org/autojs/autojs/ui/floating/layoutinspector/OnNodeInfoSelectListener.kt @@ -3,7 +3,7 @@ package org.autojs.autojs.ui.floating.layoutinspector import org.autojs.autojs.core.accessibility.NodeInfo /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. * Transformed by 抠脚本人 on Jul 10, 2023. */ fun interface OnNodeInfoSelectListener { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/FloatingActionMenu.java b/app/src/main/java/org/autojs/autojs/ui/main/FloatingActionMenu.java index 7c73668a1..4bf768f11 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/FloatingActionMenu.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/FloatingActionMenu.java @@ -22,7 +22,7 @@ import io.reactivex.subjects.PublishSubject; /** - * Created by Stardust on 2017/9/24. + * Created by Stardust on Sep 24, 2017. */ public class FloatingActionMenu extends FrameLayout implements View.OnClickListener { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/QueryEvent.java b/app/src/main/java/org/autojs/autojs/ui/main/QueryEvent.java index 8fc7b425b..8fc2f8aaa 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/QueryEvent.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/QueryEvent.java @@ -1,7 +1,7 @@ package org.autojs.autojs.ui.main; /** - * Created by Stardust on 2017/10/25. + * Created by Stardust on Oct 25, 2017. */ public class QueryEvent { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/ViewPagerFragment.java b/app/src/main/java/org/autojs/autojs/ui/main/ViewPagerFragment.java index 304190822..0dfe90f8b 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/ViewPagerFragment.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/ViewPagerFragment.java @@ -11,7 +11,7 @@ import org.autojs.autojs.event.BackPressedHandler; /** - * Created by Stardust on 2017/8/22. + * Created by Stardust on Aug 22, 2017. */ public abstract class ViewPagerFragment extends Fragment implements BackPressedHandler { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerFragment.kt b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerFragment.kt index e4453b5a1..b4028d99e 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerFragment.kt +++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerFragment.kt @@ -13,6 +13,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers import org.autojs.autojs.app.tool.FloatingButtonTool import org.autojs.autojs.app.tool.JsonSocketClientTool import org.autojs.autojs.app.tool.JsonSocketServerTool +import org.autojs.autojs.core.accessibility.AccessibilityTool import org.autojs.autojs.permission.DisplayOverOtherAppsPermission import org.autojs.autojs.permission.IgnoreBatteryOptimizationsPermission import org.autojs.autojs.permission.MediaProjectionPermission @@ -76,6 +77,8 @@ open class DrawerFragment : Fragment() { private lateinit var mThemeColorItem: DrawerMenuShortcutItem private lateinit var mAboutAppAndDevItem: DrawerMenuShortcutItem + private lateinit var mA11yService: AccessibilityTool.Service + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -85,8 +88,30 @@ open class DrawerFragment : Fragment() { mActivity = (requireActivity() as MainActivity) + mA11yService = AccessibilityTool(mContext).service + mAccessibilityServiceItem = DrawerMenuToggleableItem( - AccessibilityService(mContext), + object : AccessibilityService(mContext) { + + override fun refreshSubtitle(aimState: Boolean) { + val oldSubtitle = mAccessibilityServiceItem.subtitle + if (aimState) { + if (mA11yService.exists() && !mA11yService.isRunning()) { + mAccessibilityServiceItem.subtitle = mContext.getString(R.string.text_malfunctioning) + } else { + mAccessibilityServiceItem.subtitle = null + } + } else { + mAccessibilityServiceItem.subtitle = null + } + if (mAccessibilityServiceItem.subtitle != oldSubtitle) { + /* To refresh subtitle view. */ + mAccessibilityServiceItem.isChecked = mAccessibilityServiceItem.isChecked + } + super.refreshSubtitle(aimState) + } + + }, R.drawable.ic_accessibility_black_48dp, R.string.text_a11y_service, DrawerMenuItem.DEFAULT_DIALOG_CONTENT, @@ -116,11 +141,11 @@ open class DrawerFragment : Fragment() { super.toggle(aimState) // @AfterSuper - if (aimState /* is to switch on */) { - if (!mAccessibilityServiceItem.isChecked) { - mAccessibilityServiceItem.syncDelay() - } - } + // if (aimState /* is to switch on */) { + // if (!mAccessibilityServiceItem.isChecked) { + // mAccessibilityServiceItem.syncDelay() + // } + // } true } catch (_: Exception) { false @@ -305,21 +330,26 @@ open class DrawerFragment : Fragment() { true -> ViewUtils.setKeepScreenOnWhenInForegroundFromLastEnabledState() else -> ViewUtils.setKeepScreenOnWhenInForegroundDisabled() } - refreshSubtitle() + refreshSubtitle(!isActive) true } catch (_: Exception) { false } - override fun refreshSubtitle() { + override fun refreshSubtitle(aimState: Boolean) { + val oldSubtitle = mKeepScreenOnWhenInForegroundItem.subtitle val aimSubtitle = if (ViewUtils.isKeepScreenOnWhenInForegroundDisabled) null else { val i = resources.getStringArray(R.array.keys_keep_screen_on_when_in_foreground).indexOf(Pref.keyKeepScreenOnWhenInForeground!!) resources.getStringArray(R.array.values_keep_screen_on_when_in_foreground)[i] } if (mKeepScreenOnWhenInForegroundItem.subtitle != aimSubtitle) { mKeepScreenOnWhenInForegroundItem.subtitle = aimSubtitle - mKeepScreenOnWhenInForegroundItem.isChecked = mKeepScreenOnWhenInForegroundItem.isChecked + if (mKeepScreenOnWhenInForegroundItem.subtitle != oldSubtitle) { + /* To refresh subtitle view. */ + mKeepScreenOnWhenInForegroundItem.isChecked = mKeepScreenOnWhenInForegroundItem.isChecked + } } + super.refreshSubtitle(aimState) } }, R.drawable.ic_lightbulb_outline_black_48dp, @@ -344,7 +374,6 @@ open class DrawerFragment : Fragment() { mDrawerMenu = binding.drawerMenu initMenuItems() initMenuItemStates() - syncMenuItemStates() setupListeners() } @@ -426,9 +455,8 @@ open class DrawerFragment : Fragment() { } private fun initMenuItemStates() = listOf( - mAccessibilityServiceItem, - mForegroundServiceItem, mFloatingWindowItem, + mForegroundServiceItem, ).forEach { it.selfActive() } private fun syncMenuItemStates() = listOf( diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuAdapter.java b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuAdapter.java index 71b460c2e..43c3938ae 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuAdapter.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuAdapter.java @@ -11,7 +11,7 @@ import java.util.List; /** - * Created by Stardust on 2017/12/10. + * Created by Stardust on Dec 10, 2017. */ public class DrawerMenuAdapter extends RecyclerView.Adapter> { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroup.java b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroup.java index 2e1510231..17c4ae991 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroup.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroup.java @@ -1,7 +1,7 @@ package org.autojs.autojs.ui.main.drawer; /** - * Created by Stardust on 2017/8/25. + * Created by Stardust on Aug 25, 2017. */ public class DrawerMenuGroup extends DrawerMenuItem { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroupViewHolder.java b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroupViewHolder.java index ae6559557..2718a88b3 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroupViewHolder.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuGroupViewHolder.java @@ -7,7 +7,7 @@ import org.autojs.autojs.ui.widget.BindableViewHolder; /** - * Created by Stardust on 2017/12/10. + * Created by Stardust on Dec 10, 2017. */ public class DrawerMenuGroupViewHolder extends BindableViewHolder { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItem.java b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItem.java index ba0481e53..02d371b62 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItem.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItem.java @@ -5,7 +5,7 @@ import java.io.IOException; /** - * Created by Stardust on 2017/8/25. + * Created by Stardust on Aug 25, 2017. */ public class DrawerMenuItem { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemHelper.kt b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemHelper.kt index 2f88b6b15..baf1f4ebe 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemHelper.kt +++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemHelper.kt @@ -26,7 +26,23 @@ interface DrawerMenuItemHelper { return toggle() } - fun refreshSubtitle() { - // Nothing to do by default. + fun refreshSubtitle(aimState: Boolean) { + /* Nothing to do by default. */ } + + fun callback(aimState: Boolean) { + when (aimState == isActive) { + true -> onToggleSuccess() + else -> onToggleFailure() + } + } + + fun onToggleSuccess() { + /* Nothing to do by default. */ + } + + fun onToggleFailure() { + /* Nothing to do by default. */ + } + } \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemViewHolder.kt b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemViewHolder.kt index 97ec5a79d..f471176aa 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemViewHolder.kt +++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuItemViewHolder.kt @@ -10,7 +10,7 @@ import org.autojs.autojs6.databinding.DrawerMenuItemBinding import java.io.IOException /** - * Created by Stardust on 2017/12/10. + * Created by Stardust on Dec 10, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. * Transformed by SuperMonster003 on May 13, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuToggleableItem.kt b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuToggleableItem.kt index cd4f992af..21625a114 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuToggleableItem.kt +++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/DrawerMenuToggleableItem.kt @@ -47,7 +47,7 @@ open class DrawerMenuToggleableItem : DrawerMenuItem, IToggleableItem { } else { setCheckedIfNeeded(aimState) } - mItemHelper.refreshSubtitle() + mItemHelper.refreshSubtitle(aimState) } } @@ -64,14 +64,18 @@ open class DrawerMenuToggleableItem : DrawerMenuItem, IToggleableItem { fun getPrompt(aimState: Boolean): MaterialDialog? { return content?.let { + var isPositiveButtonPressed = false val key = "${DrawerMenuToggleableItem::class.simpleName}\$${mContext.getString(title)}" NotAskAgainDialog.Builder(mContext, key) .title(title) .content(it) .negativeText(R.string.dialog_button_cancel) .positiveText(R.string.dialog_button_continue) - .onPositive { _, _ -> toggle(aimState) } - .dismissListener { sync() } + .onPositive { _, _ -> + isPositiveButtonPressed = true + toggle(aimState) + } + .dismissListener { if (!isPositiveButtonPressed) sync() } .show() } } @@ -85,22 +89,24 @@ open class DrawerMenuToggleableItem : DrawerMenuItem, IToggleableItem { DrawerFragment.drawerMenuAdapter.notifyItemChanged(this) } - override fun toggle() = toggle { mItemHelper.toggle() } - - override fun toggle(aimState: Boolean) = toggle { mItemHelper.toggle(aimState) } - @SuppressLint("CheckResult") - private fun toggle(runnable: Runnable) { + override fun toggle(aimState: Boolean) { if (!isHidden) { when (mItemHelper.isInMainThread) { - true -> runnable.run() + true -> { + val tryToggleResult = mItemHelper.toggle(aimState) + syncDelay { if (tryToggleResult) mItemHelper.callback(aimState) } + } else -> { isProgress = true Observable - .fromCallable { runnable.run() } + .fromCallable { mItemHelper.toggle(aimState) } .subscribeOn(Schedulers.single()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe { isProgress = false; syncDelay() } + .subscribe { tryToggleResult -> + isProgress = false + syncDelay { if (tryToggleResult) mItemHelper.callback(aimState) } + } } } } diff --git a/app/src/main/java/org/autojs/autojs/ui/main/drawer/IToggleableItem.kt b/app/src/main/java/org/autojs/autojs/ui/main/drawer/IToggleableItem.kt index 618940579..18a714a50 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/drawer/IToggleableItem.kt +++ b/app/src/main/java/org/autojs/autojs/ui/main/drawer/IToggleableItem.kt @@ -5,14 +5,17 @@ import android.os.Looper interface IToggleableItem { - fun toggle() - fun toggle(aimState: Boolean) fun sync() - fun syncDelay() { - Handler(Looper.getMainLooper()).postDelayed({ sync() }, DrawerMenuItemViewHolder.CLICK_TIMEOUT) + fun sync(callback: Runnable) { + sync() + callback.run() + } + + fun syncDelay(callback: Runnable) { + Handler(Looper.getMainLooper()).postDelayed({ sync(callback) }, DrawerMenuItemViewHolder.CLICK_TIMEOUT) } } diff --git a/app/src/main/java/org/autojs/autojs/ui/main/scripts/ExplorerFragment.kt b/app/src/main/java/org/autojs/autojs/ui/main/scripts/ExplorerFragment.kt index f5f9fd9e6..38fa3adfa 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/scripts/ExplorerFragment.kt +++ b/app/src/main/java/org/autojs/autojs/ui/main/scripts/ExplorerFragment.kt @@ -28,7 +28,7 @@ import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe /** - * Created by Stardust on 2017/3/13. + * Created by Stardust on Mar 13, 2017. * Modified by SuperMonster003 as of Mar 20, 2022. * Transformed by SuperMonster003 on Mar 31, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/ui/main/task/Task.java b/app/src/main/java/org/autojs/autojs/ui/main/task/Task.java index e56302e4b..f5d929bd8 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/task/Task.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/task/Task.java @@ -16,7 +16,7 @@ import org.joda.time.format.DateTimeFormat; /** - * Created by Stardust on 2017/11/28. + * Created by Stardust on Nov 28, 2017. */ public abstract class Task { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/task/TaskGroup.java b/app/src/main/java/org/autojs/autojs/ui/main/task/TaskGroup.java index 745e93d96..827caf308 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/task/TaskGroup.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/task/TaskGroup.java @@ -17,7 +17,7 @@ import java.util.List; /** - * Created by Stardust on 2017/11/28. + * Created by Stardust on Nov 28, 2017. */ public abstract class TaskGroup implements Parent { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/task/TaskListRecyclerView.java b/app/src/main/java/org/autojs/autojs/ui/main/task/TaskListRecyclerView.java index 4a3a0a86a..383e22ce6 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/task/TaskListRecyclerView.java +++ b/app/src/main/java/org/autojs/autojs/ui/main/task/TaskListRecyclerView.java @@ -40,7 +40,7 @@ import io.reactivex.disposables.Disposable; /** - * Created by Stardust on 2017/3/24. + * Created by Stardust on Mar 24, 2017. * Modified by SuperMonster003 as of May 26, 2022. */ public class TaskListRecyclerView extends ThemeColorRecyclerView { diff --git a/app/src/main/java/org/autojs/autojs/ui/main/task/TaskManagerFragment.kt b/app/src/main/java/org/autojs/autojs/ui/main/task/TaskManagerFragment.kt index d2b6e3ac2..88f3c6b06 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/task/TaskManagerFragment.kt +++ b/app/src/main/java/org/autojs/autojs/ui/main/task/TaskManagerFragment.kt @@ -14,7 +14,7 @@ import org.autojs.autojs.ui.widget.SimpleAdapterDataObserver import org.autojs.autojs6.databinding.FragmentTaskManagerBinding /** - * Created by Stardust on 2017/3/24. + * Created by Stardust on Mar 24, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. * Transformed by SuperMonster003 on Mar 31, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java index b00617669..9bcbfc8b5 100644 --- a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java +++ b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java @@ -1,36 +1,44 @@ package org.autojs.autojs.ui.project; -import static org.autojs.autojs.apkbuilder.ApkBuilderPluginHelper.TEMPLATE_APK_PATH; +import static org.autojs.autojs.apkbuilder.ApkBuilder.TEMPLATE_APK_NAME; +import static org.autojs.autojs.util.StringUtils.key; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.os.Environment; import android.text.Editable; import android.text.TextUtils; +import android.text.util.Linkify; import android.util.Log; +import android.view.KeyEvent; +import android.view.MotionEvent; import android.view.View; import android.widget.EditText; import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.cardview.widget.CardView; import com.afollestad.materialdialogs.MaterialDialog; +import com.google.android.flexbox.FlexboxLayout; import com.google.android.material.textfield.TextInputLayout; import org.autojs.autojs.apkbuilder.ApkBuilder; -import org.autojs.autojs.apkbuilder.ApkBuilderPluginHelper; import org.autojs.autojs.external.fileprovider.AppFileProvider; import org.autojs.autojs.model.script.ScriptFile; import org.autojs.autojs.pref.Language; import org.autojs.autojs.project.ProjectConfig; import org.autojs.autojs.runtime.ScriptRuntime; import org.autojs.autojs.ui.BaseActivity; +import org.autojs.autojs.ui.common.NotAskAgainDialog; import org.autojs.autojs.ui.filechooser.FileChooserDialogBuilder; import org.autojs.autojs.ui.shortcut.AppsIconSelectActivity; +import org.autojs.autojs.ui.widget.RoundCheckboxWithText; +import org.autojs.autojs.util.AndroidUtils; +import org.autojs.autojs.util.AndroidUtils.Abi; import org.autojs.autojs.util.BitmapUtils; import org.autojs.autojs.util.EnvironmentUtils; import org.autojs.autojs.util.IntentUtils; @@ -40,9 +48,11 @@ import org.autojs.autojs6.databinding.ActivityBuildBinding; import java.io.File; -import java.io.IOException; import java.io.InputStream; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; import java.util.Objects; import java.util.regex.Pattern; @@ -51,20 +61,33 @@ import io.reactivex.schedulers.Schedulers; /** - * Created by Stardust on 2017/10/22. + * Created by Stardust on Oct 22, 2017. * Modified by SuperMonster003 as of Dec 1, 2023. */ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCallback { private static final int REQUEST_CODE = 44401; - public static final String EXTRA_SOURCE = BuildActivity.class.getName() + ".extra_source_file"; - private static final String LOG_TAG = "BuildActivity"; private static final Pattern REGEX_PACKAGE_NAME = Pattern.compile("^([A-Za-z][A-Za-z\\d_]*\\.)+([A-Za-z][A-Za-z\\d_]*)$"); + + private static final LinkedList SUPPORTED_ABIS = new LinkedList<>() {{ + add(Abi.ARM64_V8A); + add(Abi.X86_64); + add(Abi.ARMEABI_V7A); + add(Abi.X86); + add(Abi.ARMEABI); + }}; + + private static final LinkedList SUPPORTED_LIBS = new LinkedList<>() {{ + add(ApkBuilder.Constants.OPENCV); + add(ApkBuilder.Constants.MLKIT_GOOGLE_OCR); + add(ApkBuilder.Constants.PADDLE_LITE); + add(ApkBuilder.Constants.MLKIT_BARCODE); + add(ApkBuilder.Constants.OPENCC); + }}; + EditText mSourcePath; - EditText mTemplatePath; - View mTemplatePathContainer; View mSourcePathContainer; EditText mOutputPath; EditText mAppName; @@ -72,13 +95,15 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa EditText mVersionName; EditText mVersionCode; ImageView mIcon; - CardView mAppConfig; + LinearLayout mAppConfig; private ProjectConfig mProjectConfig; private MaterialDialog mProgressDialog; private String mSource; private boolean mIsDefaultIcon = true; private boolean mIsProjectLevelBuilding; + private FlexboxLayout mFlexboxAbis; + private FlexboxLayout mFlexboxLibs; @SuppressLint("SetTextI18n") @Override @@ -89,72 +114,170 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { setContentView(binding.getRoot()); mSourcePath = binding.sourcePath; + mSourcePath.setOnKeyListener((v, keyCode, event) -> { + if (keyCode == KeyEvent.KEYCODE_ENTER) { + if (event.getAction() == KeyEvent.ACTION_UP) { + mOutputPath.requestFocus(); + } + return true; + } + return false; + }); + mSourcePathContainer = binding.sourcePathContainer; - mTemplatePathContainer = binding.templatePathContainer; - mTemplatePath = binding.templatePath; + mOutputPath = binding.outputPath; + mOutputPath.setOnKeyListener((v, keyCode, event) -> { + if (keyCode == KeyEvent.KEYCODE_ENTER) { + if (event.getAction() == KeyEvent.ACTION_UP) { + TextView nextField = (TextView) mOutputPath.focusSearch(View.FOCUS_DOWN); + if (nextField != null) { + nextField.requestFocus(); + } + } + return true; + } + return false; + }); + mAppName = binding.appName; + mPackageName = binding.packageName; + mPackageName.setOnKeyListener((v, keyCode, event) -> { + if (keyCode == KeyEvent.KEYCODE_ENTER) { + if (event.getAction() == KeyEvent.ACTION_UP) { + mVersionName.requestFocus(); + } + return true; + } + return false; + }); + mVersionName = binding.versionName; mVersionCode = binding.versionCode; - mIcon = binding.icon; + + mIcon = binding.appIcon; + mIcon.setOnClickListener(v -> selectIcon()); + mAppConfig = binding.appConfig; + mFlexboxAbis = binding.flexboxAbis; + initAbisChildren(); + syncAbisWithApp(); + + mFlexboxLibs = binding.flexboxLibraries; + initLibsChildren(); + binding.fab.setOnClickListener(v -> buildApk()); binding.selectSource.setOnClickListener(v -> selectSourceFilePath()); binding.selectOutput.setOnClickListener(v -> selectOutputDirPath()); - binding.selectTemplate.setOnClickListener(v -> selectTemplateFilePath()); - mIcon.setOnClickListener(v -> selectIcon()); + binding.textAbis.setOnClickListener(v -> toggleAllFlexboxChildren(mFlexboxAbis)); + binding.textAbis.setOnLongClickListener(v -> { + syncAbisWithApp(); + return true; + }); + binding.textLibs.setOnClickListener(v -> toggleAllFlexboxChildren(mFlexboxLibs)); setToolbarAsBack(R.string.text_build_apk); mSource = getIntent().getStringExtra(EXTRA_SOURCE); if (mSource != null) { setupWithSourceFile(new ScriptFile(mSource)); } - if (checkApkTemplateInAssets()) { - mTemplatePath.setText(R.string.path_android_asset_template); - } } - private boolean checkApkTemplateInAssets() { - try { - String[] files = getAssets().list(""); - if (files != null && Arrays.asList(files).contains(TEMPLATE_APK_PATH)) { - return true; + private void toggleAllFlexboxChildren(FlexboxLayout mFlexboxLibs) { + boolean isAllChecked = true; + for (int i = 0; i < mFlexboxLibs.getChildCount(); i += 1) { + View child = mFlexboxLibs.getChildAt(i); + if (child instanceof RoundCheckboxWithText) { + if (!((RoundCheckboxWithText) child).isEnabled()) { + continue; + } + if (!((RoundCheckboxWithText) child).isChecked()) { + isAllChecked = false; + break; + } } - } catch (IOException e) { - String msg = e.getMessage(); - if (msg != null) { - Log.e(LOG_TAG, msg); + } + for (int i = 0; i < mFlexboxLibs.getChildCount(); i += 1) { + View child = mFlexboxLibs.getChildAt(i); + if (child instanceof RoundCheckboxWithText) { + if (!((RoundCheckboxWithText) child).isEnabled()) { + continue; + } + ((RoundCheckboxWithText) child).setChecked(!isAllChecked); } } - return false; } - private void checkApkBuilderPlugin() { - if (!ApkBuilderPluginHelper.isPluginAvailable(this) || ApkBuilderPluginHelper.getPluginVersion(this) < 0) { - showPluginDownloadDialog(); - } + private void initAbisChildren() { + SUPPORTED_ABIS.forEach((abiText) -> { + RoundCheckboxWithText child = new RoundCheckboxWithText(this, null) { + @Override + public boolean onInterceptTouchEvent(@Nullable MotionEvent ev) { + if (!isEnabled()) { + promptForUnavailability(); + } + return super.onInterceptTouchEvent(ev); + } + + private void promptForUnavailability() { + Context context = getContext(); + String key = key(R.string.key_dialog_selected_abi_is_unavailable); + NotAskAgainDialog.Builder builder = new NotAskAgainDialog.Builder(context, key); + builder.title(R.string.text_prompt); + builder.content(getString(R.string.text_unable_to_build_apk_as_autojs6_does_not_include_selected_abi, abiText) + "\n\n" + + getString(R.string.text_the_following_solutions_can_be_referred_to) + ":\n\n" + + "- " + getString(R.string.text_download_and_install_autojs6_including_above_abi, abiText) + "\n" + + "- " + getString(R.string.text_download_and_install_autojs6_including_all_abis) + " [" + getString(R.string.text_recommended) + "]\n\n" + + getString(R.string.text_download_link_for_autojs6) + ":\n" + + getString(R.string.uri_autojs6_download_link)); + builder.positiveText(R.string.dialog_button_dismiss); + MaterialDialog dialog = builder.show(); + if (dialog != null) { + TextView contentView = dialog.getContentView(); + if (contentView != null) { + Linkify.addLinks(contentView, Pattern.compile("https?://.*"), null); + } + } else { + ViewUtils.showToast(context, getString(R.string.text_unavailable_abi_for, abiText)); + } + } + }; + child.setText(abiText); + child.setChecked(false); + child.setEnabled(false); + mFlexboxAbis.addView(child); + }); } - private void showPluginDownloadDialog() { - new MaterialDialog.Builder(this) - .title(R.string.text_prompt) - .content(R.string.no_apk_builder_plugin) - .positiveText(R.string.text_download) - .negativeText(R.string.text_cancel) - .onPositive((dialog, which) -> downloadPlugin()) - .dismissListener(dialog -> finish()) - .show(); - + private void syncAbisWithApp() { + List appSupportedAbiList = AndroidUtils.getAppSupportedAbiList(); + List deviceFilteredAbiList = AndroidUtils.getDeviceFilteredAbiList(); + if (appSupportedAbiList.isEmpty()) /* Just in case. */ { + appSupportedAbiList = Collections.singletonList(AndroidUtils.appMainAbi); + } + for (int i = 0; i < mFlexboxAbis.getChildCount(); i += 1) { + View child = mFlexboxAbis.getChildAt(i); + if (child instanceof RoundCheckboxWithText) { + CharSequence charSequence = ((RoundCheckboxWithText) child).getText(); + if (charSequence != null) { + boolean isAppContains = appSupportedAbiList.contains(charSequence.toString()); + boolean isDeviceContains = deviceFilteredAbiList.contains(charSequence.toString()); + ((RoundCheckboxWithText) child).setChecked(isAppContains && isDeviceContains); + ((RoundCheckboxWithText) child).setEnabled(isAppContains); + } + } + } } - private void downloadPlugin() { - IntentUtils.browse(this, "https://raw.githubusercontent.com/SuperMonster002/Hello-Sockpuppet/master/" + - "%5B" + "auto.js" + "%5D" + - "%5B" + "apk_builder_plugin_4.1.1_alpha2" + "%5D" + - "%5B" + "arm-v7a" + "%5D" + - "%5B" + "9b150ec3" + "%5D" + ".apk"); + private void initLibsChildren() { + SUPPORTED_LIBS.forEach((text) -> { + RoundCheckboxWithText child = new RoundCheckboxWithText(this, null); + child.setText(text); + child.setChecked(false); + mFlexboxLibs.addView(child); + }); } private void setupWithSourceFile(ScriptFile file) { @@ -182,21 +305,6 @@ protected void onNewIntent(Intent intent) { super.onNewIntent(intent); } - void selectTemplateFilePath() { - new FileChooserDialogBuilder(this) - .title(R.string.text_template_apk_path) - .dir(Environment.getExternalStorageDirectory().getPath(), Environment.getExternalStorageDirectory().getPath()) - .singleChoice(this::setTemplate) - .show(); - - } - - private void setTemplate(File file) { - if (file.getName().toLowerCase().startsWith("inrt") && file.getName().toLowerCase().endsWith(".apk") && file.isFile()) { - mTemplatePath.setText(file.getPath()); - } - } - void selectSourceFilePath() { String initialDir = new File(mSourcePath.getText().toString()).getParent(); new FileChooserDialogBuilder(this) @@ -239,15 +347,14 @@ void selectIcon() { } void buildApk() { - if (mTemplatePath.getText() == null && !ApkBuilderPluginHelper.isPluginAvailable(this)) { - ViewUtils.showToast(this, R.string.text_apk_builder_plugin_unavailable); - showPluginDownloadDialog(); - return; - } if (!checkInputs()) { ViewUtils.showToast(this, getString(R.string.error_input_fields_check_failed)); return; } + if (!checkAbis()) { + ViewUtils.showToast(this, getString(R.string.error_at_least_one_abi_needs_to_be_selected)); + return; + } doBuildingApk(); } @@ -256,11 +363,23 @@ private boolean checkInputs() { return checkNotEmpty(mOutputPath); } return checkNotEmpty(mSourcePath) - & checkNotEmpty(mOutputPath) - & checkNotEmpty(mAppName) - & checkNotEmpty(mVersionCode) - & checkNotEmpty(mVersionName) - & checkPackageNameValid(mPackageName); + & checkNotEmpty(mOutputPath) + & checkNotEmpty(mAppName) + & checkNotEmpty(mVersionCode) + & checkNotEmpty(mVersionName) + & checkPackageNameValid(mPackageName); + } + + private boolean checkAbis() { + for (int i = 0; i < mFlexboxAbis.getChildCount(); i += 1) { + View child = mFlexboxAbis.getChildAt(i); + if (child instanceof RoundCheckboxWithText) { + if (((RoundCheckboxWithText) child).isChecked() && ((RoundCheckboxWithText) child).isEnabled()) { + return true; + } + } + } + return false; } private boolean checkPackageNameValid(EditText editText) { @@ -280,7 +399,8 @@ private boolean checkPackageNameValid(EditText editText) { private boolean checkNotEmpty(EditText editText) { if (!TextUtils.isEmpty(editText.getText()) || !editText.isShown()) return true; - // TODO: 2017/12/8 more beautiful ways? + // TODO by Stardust on Dec 8, 2017. + // ! More beautiful ways? String hint = Objects.requireNonNull(((TextInputLayout) editText.getParent().getParent()).getHint()).toString(); editText.setError(hint + getString(R.string.text_should_not_be_empty)); return false; @@ -310,21 +430,48 @@ private ApkBuilder.AppConfig createAppConfig() { int versionCode = Integer.parseInt(mVersionCode.getText().toString()); String appName = mAppName.getText().toString(); String packageName = mPackageName.getText().toString(); + + ArrayList abis = new ArrayList<>(); + + for (int i = 0; i < mFlexboxAbis.getChildCount(); i += 1) { + View child = mFlexboxAbis.getChildAt(i); + if (child instanceof RoundCheckboxWithText) { + if (((RoundCheckboxWithText) child).isChecked()) { + CharSequence charSequence = ((RoundCheckboxWithText) child).getText(); + if (charSequence != null) { + abis.add(charSequence.toString()); + } + } + } + } + + ArrayList libs = new ArrayList<>(); + + for (int i = 0; i < mFlexboxLibs.getChildCount(); i += 1) { + View child = mFlexboxLibs.getChildAt(i); + if (child instanceof RoundCheckboxWithText) { + if (((RoundCheckboxWithText) child).isChecked()) { + CharSequence charSequence = ((RoundCheckboxWithText) child).getText(); + if (charSequence != null) { + libs.add(charSequence.toString()); + } + } + } + } + return new ApkBuilder.AppConfig() .setAppName(appName) .setSourcePath(jsPath) .setPackageName(packageName) - .setVersionCode(versionCode) .setVersionName(versionName) + .setVersionCode(versionCode) + .setAbis(abis) + .setLibs(libs) .setIcon(mIsDefaultIcon ? null : () -> BitmapUtils.drawableToBitmap(mIcon.getDrawable())); } private ApkBuilder callApkBuilder(File tmpDir, File outApk, ApkBuilder.AppConfig appConfig) throws Exception { - InputStream templateApk = mTemplatePath.getText() != null - ? mTemplatePath.getText().toString().equals(getString(R.string.path_android_asset_template)) - ? getAssets().open(TEMPLATE_APK_PATH) - : new java.io.FileInputStream(mTemplatePath.getText().toString()) - : ApkBuilderPluginHelper.openTemplateApk(BuildActivity.this); + InputStream templateApk = getAssets().open(TEMPLATE_APK_NAME); return new ApkBuilder(templateApk, outApk, tmpDir.getPath()) .setProgressCallback(BuildActivity.this) .prepare() @@ -378,7 +525,6 @@ public void onBuild(@NonNull ApkBuilder builder) { @Override public void onSign(@NonNull ApkBuilder builder) { mProgressDialog.setContent(R.string.apk_builder_package); - } @Override @@ -391,11 +537,11 @@ public void onClean(@NonNull ApkBuilder builder) { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { - AppsIconSelectActivity.getBitmapFromIntent(getApplicationContext(), data) + AppsIconSelectActivity.getDrawableFromIntent(getApplicationContext(), data) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(bitmap -> { - mIcon.setImageBitmap(bitmap); + .subscribe(drawable -> { + mIcon.setImageDrawable(drawable); mIsDefaultIcon = false; }, Throwable::printStackTrace); } diff --git a/app/src/main/java/org/autojs/autojs/ui/project/ProjectConfigActivity.kt b/app/src/main/java/org/autojs/autojs/ui/project/ProjectConfigActivity.kt index 99cdffc8a..466dc65c6 100644 --- a/app/src/main/java/org/autojs/autojs/ui/project/ProjectConfigActivity.kt +++ b/app/src/main/java/org/autojs/autojs/ui/project/ProjectConfigActivity.kt @@ -3,11 +3,15 @@ package org.autojs.autojs.ui.project import android.annotation.SuppressLint import android.content.Intent import android.graphics.Bitmap +import android.graphics.drawable.Drawable import android.os.Bundle import android.text.TextUtils +import android.view.KeyEvent import android.view.View import android.widget.EditText import android.widget.ImageView +import android.widget.LinearLayout +import androidx.core.graphics.drawable.toBitmapOrNull import com.afollestad.materialdialogs.MaterialDialog import com.bumptech.glide.Glide import com.google.android.material.textfield.TextInputLayout @@ -38,6 +42,7 @@ import java.util.regex.Pattern class ProjectConfigActivity : BaseActivity() { private lateinit var mProjectLocation: EditText + private lateinit var mProjectLocationWrapper: LinearLayout private lateinit var mAppName: EditText private lateinit var mPackageName: EditText private lateinit var mVersionName: EditText @@ -58,13 +63,25 @@ class ProjectConfigActivity : BaseActivity() { setContentView(binding.root) mProjectLocation = binding.projectLocation + mProjectLocationWrapper = binding.projectLocationWrapper mAppName = binding.appName + mPackageName = binding.packageName + mPackageName.setOnKeyListener { _, keyCode, event -> + if (keyCode == KeyEvent.KEYCODE_ENTER) { + if (event.action == KeyEvent.ACTION_UP) { + mVersionName.requestFocus() + } + return@setOnKeyListener true + } + false + } + mVersionName = binding.versionName mVersionCode = binding.versionCode mMainFileName = binding.mainFileName - mIcon = binding.icon.apply { + mIcon = binding.appIcon.apply { setOnClickListener { selectIcon() } } @@ -78,7 +95,9 @@ class ProjectConfigActivity : BaseActivity() { finish() return } - mParentDirectory = File(parentDirectory) + mParentDirectory = File(parentDirectory).also { + mProjectLocation.setText(it.path) + } mProjectConfig = ProjectConfig() } else { val dir = intent.getStringExtra(EXTRA_DIRECTORY) @@ -107,11 +126,12 @@ class ProjectConfigActivity : BaseActivity() { mPackageName.setText(config.packageName) mVersionName.setText(config.versionName) mMainFileName.setText(config.mainScriptFile) - mProjectLocation.visibility = View.GONE + mProjectLocationWrapper.visibility = View.GONE val icon = config.icon - if (icon != null) { + val iconFile = File(mDirectory, icon) + if (icon != null && iconFile.exists()) { Glide.with(this) - .load(File(mDirectory, icon)) + .load(iconFile) .into(mIcon) } } @@ -182,7 +202,7 @@ class ProjectConfigActivity : BaseActivity() { val location = mProjectLocation.text.toString() mDirectory = File(location) } - //mProjectConfig.getLaunchConfig().setHideLogs(true); + // mProjectConfig.getLaunchConfig().setHideLogs(true); } private fun checkInputs(): Boolean { @@ -208,7 +228,8 @@ class ProjectConfigActivity : BaseActivity() { private fun checkNotEmpty(editText: EditText?): Boolean { if (!TextUtils.isEmpty(editText!!.text)) return true - // TODO: 2017/12/8 more beautiful ways? + // TODO by Stardust on Dec 8, 2017. + // ! More beautiful ways? val hint = (editText.parent.parent as TextInputLayout).hint.toString() editText.error = hint + getString(R.string.text_should_not_be_empty) return false @@ -220,12 +241,13 @@ class ProjectConfigActivity : BaseActivity() { if (resultCode != RESULT_OK) { return } - AppsIconSelectActivity.getBitmapFromIntent(applicationContext, data) + AppsIconSelectActivity.getDrawableFromIntent(applicationContext, data) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe({ bitmap: Bitmap? -> - mIcon.setImageBitmap(bitmap) - mIconBitmap = bitmap + .subscribe({ drawable: Drawable? -> + drawable ?: return@subscribe + mIcon.setImageDrawable(drawable) + mIconBitmap = drawable.toBitmapOrNull() }) { obj: Throwable -> obj.printStackTrace() } } diff --git a/app/src/main/java/org/autojs/autojs/ui/settings/AboutActivity.kt b/app/src/main/java/org/autojs/autojs/ui/settings/AboutActivity.kt index 6b78f7740..cfd6fbd11 100644 --- a/app/src/main/java/org/autojs/autojs/ui/settings/AboutActivity.kt +++ b/app/src/main/java/org/autojs/autojs/ui/settings/AboutActivity.kt @@ -24,7 +24,7 @@ import org.autojs.autojs6.databinding.ActivityAboutFunctionButtonsBinding import org.autojs.autojs6.databinding.ActivityAboutItemsBinding /** - * Created by Stardust on 2017/2/2. + * Created by Stardust on Feb 2, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. */ open class AboutActivity : BaseActivity() { diff --git a/app/src/main/java/org/autojs/autojs/ui/settings/AppLanguagePreference.kt b/app/src/main/java/org/autojs/autojs/ui/settings/AppLanguagePreference.kt index 0c76fffdc..a5dcbcfe5 100644 --- a/app/src/main/java/org/autojs/autojs/ui/settings/AppLanguagePreference.kt +++ b/app/src/main/java/org/autojs/autojs/ui/settings/AppLanguagePreference.kt @@ -12,12 +12,16 @@ import org.autojs.autojs.util.LocaleUtils class AppLanguagePreference : MaterialListPreference { + @Suppress("unused") constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) + @Suppress("unused") constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) + @Suppress("unused") constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + @Suppress("unused") constructor(context: Context) : super(context) override fun onNeutral() { @@ -30,7 +34,7 @@ class AppLanguagePreference : MaterialListPreference { override fun onChangeConfirmed(dialog: MaterialDialog) { super.onChangeConfirmed(dialog) - Language.entries.find { + (@Suppress("EnumValuesSoftDeprecate") Language.values()).find { it.getEntryName(prefContext) == dialog.items?.get(dialog.selectedIndex) }?.let { GlobalAppContext.post { diff --git a/app/src/main/java/org/autojs/autojs/ui/settings/PreferencesActivity.kt b/app/src/main/java/org/autojs/autojs/ui/settings/PreferencesActivity.kt index 0d5f66746..08725f779 100644 --- a/app/src/main/java/org/autojs/autojs/ui/settings/PreferencesActivity.kt +++ b/app/src/main/java/org/autojs/autojs/ui/settings/PreferencesActivity.kt @@ -9,7 +9,7 @@ import org.autojs.autojs6.R import org.autojs.autojs6.databinding.ActivityPreferencesBinding /** - * Created by Stardust on 2017/2/2. + * Created by Stardust on Feb 2, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. */ open class PreferencesActivity : BaseActivity() { diff --git a/app/src/main/java/org/autojs/autojs/ui/shortcut/AppsIconSelectActivity.java b/app/src/main/java/org/autojs/autojs/ui/shortcut/AppsIconSelectActivity.java index 3b708b6a0..da1caca45 100644 --- a/app/src/main/java/org/autojs/autojs/ui/shortcut/AppsIconSelectActivity.java +++ b/app/src/main/java/org/autojs/autojs/ui/shortcut/AppsIconSelectActivity.java @@ -6,8 +6,6 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; @@ -25,7 +23,6 @@ import org.autojs.autojs.groundwork.WrapContentGridLayoutManger; import org.autojs.autojs.ui.BaseActivity; -import org.autojs.autojs.util.BitmapUtils; import org.autojs.autojs6.R; import org.autojs.autojs6.databinding.ActivityAppsIconSelectBinding; @@ -37,7 +34,7 @@ import io.reactivex.schedulers.Schedulers; /** - * Created by Stardust on 2017/10/25. + * Created by Stardust on Oct 25, 2017. */ public class AppsIconSelectActivity extends BaseActivity { @@ -114,21 +111,16 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { } } - public static Observable getBitmapFromIntent(Context context, Intent data) { + public static Observable getDrawableFromIntent(Context context, Intent data) { String packageName = data.getStringExtra(EXTRA_PACKAGE_NAME); if (packageName != null) { - return Observable.fromCallable(() -> { - Drawable drawable = context.getPackageManager().getApplicationIcon(packageName); - return BitmapUtils.drawableToBitmap(drawable); - }); + return Observable.fromCallable(() -> context.getPackageManager().getApplicationIcon(packageName)); } Uri uri = data.getData(); if (uri == null) { return Observable.error(new IllegalArgumentException("invalid intent")); } - return Observable.fromCallable(() -> - BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri)) - ); + return Observable.fromCallable(() -> Drawable.createFromStream(context.getContentResolver().openInputStream(uri), null)); } private class AppItem { diff --git a/app/src/main/java/org/autojs/autojs/ui/shortcut/ShortcutCreateActivity.java b/app/src/main/java/org/autojs/autojs/ui/shortcut/ShortcutCreateActivity.java index 1f063314c..f714ec7f3 100644 --- a/app/src/main/java/org/autojs/autojs/ui/shortcut/ShortcutCreateActivity.java +++ b/app/src/main/java/org/autojs/autojs/ui/shortcut/ShortcutCreateActivity.java @@ -36,7 +36,7 @@ import io.reactivex.schedulers.Schedulers; /** - * Created by Stardust on 2017/10/25. + * Created by Stardust on Oct 25, 2017. */ public class ShortcutCreateActivity extends AppCompatActivity { diff --git a/app/src/main/java/org/autojs/autojs/ui/splash/SplashActivity.kt b/app/src/main/java/org/autojs/autojs/ui/splash/SplashActivity.kt index cd5161900..fd2ccd615 100644 --- a/app/src/main/java/org/autojs/autojs/ui/splash/SplashActivity.kt +++ b/app/src/main/java/org/autojs/autojs/ui/splash/SplashActivity.kt @@ -1,5 +1,6 @@ package org.autojs.autojs.ui.splash +import android.annotation.SuppressLint import android.os.Bundle import android.os.Handler import android.os.Looper @@ -9,10 +10,11 @@ import org.autojs.autojs.ui.main.MainActivity import org.autojs.autojs6.R /** - * Created by Stardust on 2017/7/7. + * Created by Stardust on Jul 7, 2017. * Modified by SuperMonster003 as of Apr 4, 2023. * Transformed by SuperMonster003 on Apr 4, 2023. */ +@SuppressLint("CustomSplashScreen") class SplashActivity : BaseActivity() { private var mAlreadyEnterNextActivity = false @@ -54,7 +56,7 @@ class SplashActivity : BaseActivity() { companion object { - private const val INIT_TIMEOUT: Long = 700 + const val INIT_TIMEOUT: Long = 1000 } diff --git a/app/src/main/java/org/autojs/autojs/ui/timing/TimedTaskSettingActivity.kt b/app/src/main/java/org/autojs/autojs/ui/timing/TimedTaskSettingActivity.kt index 2bb0c8cbb..5fe052754 100644 --- a/app/src/main/java/org/autojs/autojs/ui/timing/TimedTaskSettingActivity.kt +++ b/app/src/main/java/org/autojs/autojs/ui/timing/TimedTaskSettingActivity.kt @@ -52,7 +52,7 @@ import org.joda.time.LocalTime import org.joda.time.format.DateTimeFormat /** - * Created by Stardust on 2017/11/28. + * Created by Stardust on Nov 28, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. */ class TimedTaskSettingActivity : BaseActivity() { diff --git a/app/src/main/java/org/autojs/autojs/ui/viewmodel/ExplorerItemList.kt b/app/src/main/java/org/autojs/autojs/ui/viewmodel/ExplorerItemList.kt index 21a12c8c6..44548a744 100644 --- a/app/src/main/java/org/autojs/autojs/ui/viewmodel/ExplorerItemList.kt +++ b/app/src/main/java/org/autojs/autojs/ui/viewmodel/ExplorerItemList.kt @@ -9,7 +9,7 @@ import org.autojs.autojs.pref.Pref import org.autojs.autojs6.R /** - * Created by Stardust on 2017/9/30. + * Created by Stardust on Sep 30, 2017. * Modified by SuperMonster003 as of May 26, 2022. * Transformed by SuperMonster003 on May 14, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/AppWithStatusBarLayout.java b/app/src/main/java/org/autojs/autojs/ui/widget/AppWithStatusBarLayout.java index 2ff10b560..31f648a02 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/AppWithStatusBarLayout.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/AppWithStatusBarLayout.java @@ -15,7 +15,7 @@ import com.google.android.material.appbar.AppBarLayout; /** - * Created by Stardust on 2017/8/22. + * Created by Stardust on Aug 22, 2017. */ public class AppWithStatusBarLayout extends AppBarLayout { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/AutoAdapter.java b/app/src/main/java/org/autojs/autojs/ui/widget/AutoAdapter.java index 175ca3deb..cd95bf014 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/AutoAdapter.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/AutoAdapter.java @@ -9,7 +9,7 @@ import java.util.List; /** - * Created by Stardust on 2017/8/19. + * Created by Stardust on Aug 19, 2017. */ public class AutoAdapter

    extends RecyclerView.Adapter> { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/BindableViewHolder.java b/app/src/main/java/org/autojs/autojs/ui/widget/BindableViewHolder.java index fe3ddaeee..7b1f832e3 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/BindableViewHolder.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/BindableViewHolder.java @@ -4,7 +4,7 @@ import android.view.View; /** - * Created by Stardust on 2017/4/8. + * Created by Stardust on Apr 8, 2017. */ public abstract class BindableViewHolder extends RecyclerView.ViewHolder{ diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/BubblePopupMenu.java b/app/src/main/java/org/autojs/autojs/ui/widget/BubblePopupMenu.java index c69975b31..221c78e53 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/BubblePopupMenu.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/BubblePopupMenu.java @@ -16,7 +16,7 @@ import java.util.List; /** - * Created by Stardust on 2017/5/23. + * Created by Stardust on May 23, 2017. */ public class BubblePopupMenu extends PopupWindow { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/CommonMarkdownView.kt b/app/src/main/java/org/autojs/autojs/ui/widget/CommonMarkdownView.kt index b55b07320..b58a9313c 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/CommonMarkdownView.kt +++ b/app/src/main/java/org/autojs/autojs/ui/widget/CommonMarkdownView.kt @@ -12,7 +12,7 @@ import com.afollestad.materialdialogs.MaterialDialog import org.autojs.autojs.util.TextUtils.renderMarkdown /** - * Created by Stardust on 2017/3/5. + * Created by Stardust on Mar 5, 2017. * Transformed by SuperMonster003 on May 25, 2023. */ class CommonMarkdownView : WebView { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/DrawerAutoClose.java b/app/src/main/java/org/autojs/autojs/ui/widget/DrawerAutoClose.java index a10d2d251..a1277d808 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/DrawerAutoClose.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/DrawerAutoClose.java @@ -7,7 +7,7 @@ import org.autojs.autojs.event.BackPressedHandler; /** - * Created by Stardust on 2017/6/19. + * Created by Stardust on Jun 19, 2017. */ public class DrawerAutoClose implements BackPressedHandler { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/EWebView.java b/app/src/main/java/org/autojs/autojs/ui/widget/EWebView.java index cde3a2e64..bbc0f5617 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/EWebView.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/EWebView.java @@ -32,7 +32,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers; /** - * Created by Stardust on 2017/8/22. + * Created by Stardust on Aug 22, 2017. */ public class EWebView extends FrameLayout implements SwipeRefreshLayout.OnRefreshListener, OnActivityResultDelegate { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/ExpandableRecyclerView.java b/app/src/main/java/org/autojs/autojs/ui/widget/ExpandableRecyclerView.java index 043b8070a..dfc9d4350 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/ExpandableRecyclerView.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/ExpandableRecyclerView.java @@ -17,7 +17,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/2/4. + * Created by Stardust on Feb 4, 2017. */ public class ExpandableRecyclerView extends ThemeColorRecyclerView { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/GridDividerDecoration.java b/app/src/main/java/org/autojs/autojs/ui/widget/GridDividerDecoration.java index 8d351e8ce..35d14e794 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/GridDividerDecoration.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/GridDividerDecoration.java @@ -1,8 +1,5 @@ package org.autojs.autojs.ui.widget; -/** - * Created by Stardust on 2017/12/9. - */ import android.content.Context; import android.graphics.Canvas; import android.graphics.Rect; @@ -13,6 +10,9 @@ import android.view.View; +/** + * Created by Stardust on Dec 9, 2017. + */ /** * ItemDecoration implementation that applies and inset margin @@ -22,7 +22,6 @@ */ public class GridDividerDecoration extends RecyclerView.ItemDecoration { - private final Drawable mDivider; private final int mInsets; @@ -31,7 +30,6 @@ public GridDividerDecoration(Context context, Drawable divider) { mInsets = divider.getIntrinsicWidth(); } - @Override public void onDrawOver(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { drawVertical(c, parent); @@ -48,8 +46,7 @@ public void drawVertical(Canvas c, RecyclerView parent) { for (int i = 0; i < childCount; i++) { final View child = parent.getChildAt(i); - final RecyclerView.LayoutParams params = - (RecyclerView.LayoutParams) child.getLayoutParams(); + final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); final int left = child.getLeft() - params.leftMargin - mInsets; final int right = child.getRight() + params.rightMargin + mInsets; @@ -68,8 +65,7 @@ public void drawHorizontal(Canvas c, RecyclerView parent) { for (int i = 0; i < childCount; i++) { final View child = parent.getChildAt(i); - final RecyclerView.LayoutParams params = - (RecyclerView.LayoutParams) child.getLayoutParams(); + final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); final int left = child.getRight() + params.rightMargin + mInsets; final int right = left + mDivider.getIntrinsicWidth(); @@ -81,8 +77,9 @@ public void drawHorizontal(Canvas c, RecyclerView parent) { } @Override - public void getItemOffsets(Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { - //We can supply forced insets for each item view here in the Rect + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + // We can supply forced insets for each item view here in the Rect outRect.set(mInsets, mInsets, mInsets, mInsets); } + } \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/ItemTouchHelperSimpleCallback.java b/app/src/main/java/org/autojs/autojs/ui/widget/ItemTouchHelperSimpleCallback.java index 21a312828..e4d3bf436 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/ItemTouchHelperSimpleCallback.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/ItemTouchHelperSimpleCallback.java @@ -5,7 +5,7 @@ import androidx.recyclerview.widget.RecyclerView; /** - * Created by Stardust on 2017/4/6. + * Created by Stardust on Apr 6, 2017. */ public class ItemTouchHelperSimpleCallback extends ItemTouchHelper.SimpleCallback { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/LevelBeamView.kt b/app/src/main/java/org/autojs/autojs/ui/widget/LevelBeamView.kt index 24fd30adb..5c1473b2e 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/LevelBeamView.kt +++ b/app/src/main/java/org/autojs/autojs/ui/widget/LevelBeamView.kt @@ -9,7 +9,7 @@ import android.view.View import org.autojs.autojs6.R /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. * Modified by SuperMonster003 as of May 3, 2023. * Transformed by SuperMonster003 on May 3, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/OnItemClickListener.java b/app/src/main/java/org/autojs/autojs/ui/widget/OnItemClickListener.java index 3844b131f..4e86850d7 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/OnItemClickListener.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/OnItemClickListener.java @@ -4,9 +4,10 @@ import android.view.View; /** - * Created by Stardust on 2017/3/27. + * Created by Stardust on Mar 27, 2017. */ public interface OnItemClickListener { void onItemClick(RecyclerView parent, View item, int position); + } diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/PrefSwitch.java b/app/src/main/java/org/autojs/autojs/ui/widget/PrefSwitch.java index a63789e24..38cf27d25 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/PrefSwitch.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/PrefSwitch.java @@ -14,7 +14,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/8/6. + * Created by Stardust on Aug 6, 2017. */ public class PrefSwitch extends JsSwitch implements SharedPreferences.OnSharedPreferenceChangeListener, ThemeColorMutable { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/RoundCheckboxWithText.kt b/app/src/main/java/org/autojs/autojs/ui/widget/RoundCheckboxWithText.kt new file mode 100644 index 000000000..c532bb18a --- /dev/null +++ b/app/src/main/java/org/autojs/autojs/ui/widget/RoundCheckboxWithText.kt @@ -0,0 +1,61 @@ +package org.autojs.autojs.ui.widget + +import android.content.Context +import android.util.AttributeSet +import android.view.MotionEvent +import android.widget.CheckBox +import android.widget.LinearLayout +import android.widget.TextView +import org.autojs.autojs6.R + +/** + * Created by SuperMonster003 on Nov 24, 2023. + */ +open class RoundCheckboxWithText : LinearLayout { + + private var mTextView: TextView + private var mCheckbox: CheckBox + private var mWrapper: LinearLayout + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) { + inflate(context, R.layout.round_checkbox_with_text, this) + + val a = context.obtainStyledAttributes(attrs, R.styleable.RoundCheckboxWithText) + + val text = a.getString(R.styleable.RoundCheckboxWithText_text) + val isChecked = a.getBoolean(R.styleable.RoundCheckboxWithText_checked, false) + + a.recycle() + + mCheckbox = findViewById(R.id.checkbox).also { it.isChecked = isChecked } + mTextView = findViewById(R.id.text).also { it.text = text } + mWrapper = findViewById(R.id.wrapper).also { + it.setOnClickListener { mCheckbox.toggle() } + } + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : this(context, attrs, defStyleAttr, 0) + + constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0) + + fun setChecked(checked: Boolean) { + mCheckbox.isChecked = checked + } + + fun isChecked() = mCheckbox.isChecked + + fun setText(text: String?) { + mTextView.text = text + } + + fun getText(): CharSequence? = mTextView.text + + override fun setEnabled(enabled: Boolean) { + mCheckbox.isEnabled = enabled + mTextView.alpha = if (enabled) 1.0f else 0.7f + super.setEnabled(enabled) + } + + override fun onInterceptTouchEvent(ev: MotionEvent?) = !isEnabled + +} \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/ScrollAwareFABBehavior.java b/app/src/main/java/org/autojs/autojs/ui/widget/ScrollAwareFABBehavior.java index 4542e4078..3ae5d143f 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/ScrollAwareFABBehavior.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/ScrollAwareFABBehavior.java @@ -14,7 +14,7 @@ import android.view.View; /** - * Created by Stardust on 2017/8/20. + * Created by Stardust on Aug 20, 2017. */ public class ScrollAwareFABBehavior extends FloatingActionButton.Behavior { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/SearchViewItem.java b/app/src/main/java/org/autojs/autojs/ui/widget/SearchViewItem.java index d113a0788..1425f5c0d 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/SearchViewItem.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/SearchViewItem.java @@ -12,7 +12,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/10/25. + * Created by Stardust on Oct 25, 2017. */ public class SearchViewItem implements MenuItemCompat.OnActionExpandListener, SearchView.OnQueryTextListener { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/SimpleAdapterDataObserver.java b/app/src/main/java/org/autojs/autojs/ui/widget/SimpleAdapterDataObserver.java index 6d68471d7..f1515cd03 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/SimpleAdapterDataObserver.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/SimpleAdapterDataObserver.java @@ -3,7 +3,7 @@ import androidx.recyclerview.widget.RecyclerView; /** - * Created by Stardust on 2017/3/14. + * Created by Stardust on Mar 14, 2017. */ public class SimpleAdapterDataObserver extends RecyclerView.AdapterDataObserver { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/SimpleRecyclerViewAdapter.java b/app/src/main/java/org/autojs/autojs/ui/widget/SimpleRecyclerViewAdapter.java index 7b9c434af..fd905cbdb 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/SimpleRecyclerViewAdapter.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/SimpleRecyclerViewAdapter.java @@ -12,7 +12,7 @@ import java.util.List; /** - * Created by Stardust on 2017/5/24. + * Created by Stardust on May 24, 2017. */ public class SimpleRecyclerViewAdapter> extends RecyclerView.Adapter { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/SimpleTextWatcher.java b/app/src/main/java/org/autojs/autojs/ui/widget/SimpleTextWatcher.java index 1978b217d..8db747591 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/SimpleTextWatcher.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/SimpleTextWatcher.java @@ -4,7 +4,7 @@ import android.text.TextWatcher; /** - * Created by Stardust on 2018/2/16. + * Created by Stardust on Feb 16, 2018. */ public class SimpleTextWatcher implements TextWatcher { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/SlidingUpPanel.java b/app/src/main/java/org/autojs/autojs/ui/widget/SlidingUpPanel.java index 109feadae..81db6c3e7 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/SlidingUpPanel.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/SlidingUpPanel.java @@ -13,7 +13,7 @@ import org.autojs.autojs6.R; /** - * Created by Stardust on 2017/1/24. + * Created by Stardust on Jan 24, 2017. */ public class SlidingUpPanel extends FrameLayout { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/ToolbarMenuItem.kt b/app/src/main/java/org/autojs/autojs/ui/widget/ToolbarMenuItem.kt index db1f90d50..3a18ddfce 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/ToolbarMenuItem.kt +++ b/app/src/main/java/org/autojs/autojs/ui/widget/ToolbarMenuItem.kt @@ -12,7 +12,7 @@ import org.autojs.autojs.util.DrawableUtils import org.autojs.autojs6.R /** - * Created by Stardust on 2017/1/29. + * Created by Stardust on Jan 29, 2017. */ class ToolbarMenuItem : LinearLayout { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/ViewHolderMutableAdapter.java b/app/src/main/java/org/autojs/autojs/ui/widget/ViewHolderMutableAdapter.java index 618cda553..75d14b649 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/ViewHolderMutableAdapter.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/ViewHolderMutableAdapter.java @@ -5,7 +5,7 @@ import android.view.ViewGroup; /** - * Created by Stardust on 2017/4/8. + * Created by Stardust on Apr 8, 2017. */ public abstract class ViewHolderMutableAdapter extends RecyclerView.Adapter { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/ViewHolderSupplier.java b/app/src/main/java/org/autojs/autojs/ui/widget/ViewHolderSupplier.java index 9edc998fa..531e5b8dd 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/ViewHolderSupplier.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/ViewHolderSupplier.java @@ -8,7 +8,7 @@ import java.lang.reflect.Constructor; /** - * Created by Stardust on 2017/4/8. + * Created by Stardust on Apr 8, 2017. */ public interface ViewHolderSupplier { diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/ViewSupplier.java b/app/src/main/java/org/autojs/autojs/ui/widget/ViewSupplier.java index e3dfc3913..83042ab13 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/ViewSupplier.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/ViewSupplier.java @@ -6,7 +6,7 @@ import java.io.Serializable; /** - * Created by Stardust on 2017/4/18. + * Created by Stardust on Apr 18, 2017. *

    * The interface and its implementations must be serializable. * Only in this way it can be set to intent extra and be used as service argument. diff --git a/app/src/main/java/org/autojs/autojs/ui/widget/ViewSwitcher.java b/app/src/main/java/org/autojs/autojs/ui/widget/ViewSwitcher.java index 4568049c9..8b577e630 100644 --- a/app/src/main/java/org/autojs/autojs/ui/widget/ViewSwitcher.java +++ b/app/src/main/java/org/autojs/autojs/ui/widget/ViewSwitcher.java @@ -5,7 +5,7 @@ import android.view.View; /** - * Created by Stardust on 2017/3/11. + * Created by Stardust on Mar 11, 2017. */ public class ViewSwitcher extends android.widget.ViewSwitcher { diff --git a/app/src/main/java/org/autojs/autojs/util/AndroidUtils.kt b/app/src/main/java/org/autojs/autojs/util/AndroidUtils.kt index 6ed73def1..0fcc7ab02 100644 --- a/app/src/main/java/org/autojs/autojs/util/AndroidUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/AndroidUtils.kt @@ -1,23 +1,35 @@ package org.autojs.autojs.util import android.os.Build +import org.autojs.autojs.apkbuilder.ApkBuilder.Companion.appApkFile import java.util.stream.Collectors +import java.util.zip.ZipFile /** * Created by SuperMonster003 on Jun 1, 2022. */ object AndroidUtils { + object Abi { + const val ARM64_V8A = "arm64-v8a" + const val X86_64 = "x86_64" + const val MIPS64 = "mips64" + const val MIPS = "mips" + const val ARMEABI_V7A = "armeabi-v7a" + const val X86 = "x86" + const val ARMEABI = "armeabi" + } + // @OrderMatters by SuperMonster003 on Jun 1, 2022. private val mFullAbiList = listOf( /* 64-bit */ /* Reserved for ARMv9 :) */ - /* 64-bit */ "arm64-v8a", - /* 64-bit */ "x86_64", - /* 64-bit */ "mips64", // removed since NDK r17 - /* 32-bit */ "mips", // removed since NDK r17 - /* 32-bit */ "armeabi-v7a", - /* 32-bit */ "x86", - /* 32-bit */ "armeabi" // removed since NDK r17 + /* 64-bit */ Abi.ARM64_V8A, + /* 64-bit */ Abi.X86_64, + /* 64-bit */ Abi.MIPS64, // removed since NDK r17 + /* 32-bit */ Abi.MIPS, // removed since NDK r17 + /* 32-bit */ Abi.ARMEABI_V7A, + /* 32-bit */ Abi.X86, + /* 32-bit */ Abi.ARMEABI, // removed since NDK r17 ) private fun getFilteredAbiList(reference: List): List { @@ -28,4 +40,30 @@ object AndroidUtils { val deviceFilteredAbiList: List get() = getFilteredAbiList(listOf(*Build.SUPPORTED_ABIS)) + @JvmField + val appMainAbi: String = Build.SUPPORTED_ABIS[0] + + @JvmStatic + val appSupportedAbiList: List + get() { + val abis = mutableListOf() + + try { + val entries = ZipFile(appApkFile.path).entries() + while (entries.hasMoreElements()) { + val entry = entries.nextElement() + if (entry.name.contains("/lib")) { + val abi = entry.name.replace(Regex(".*lib/(.+?)/.+"), "$1") + if (!abis.contains(abi)) { + abis.add(abi) + } + } + } + } catch (e: Exception) { + e.printStackTrace() + } + + return abis.toList() + } + } \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/util/ArrayUtils.java b/app/src/main/java/org/autojs/autojs/util/ArrayUtils.java index 657e2083a..d34584ce9 100644 --- a/app/src/main/java/org/autojs/autojs/util/ArrayUtils.java +++ b/app/src/main/java/org/autojs/autojs/util/ArrayUtils.java @@ -11,7 +11,7 @@ import java.util.stream.IntStream; /** - * Created by Stardust on 2017/5/8. + * Created by Stardust on May 8, 2017. */ public class ArrayUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/AssetsCache.java b/app/src/main/java/org/autojs/autojs/util/AssetsCache.java index 9990150e8..6ab99ba72 100644 --- a/app/src/main/java/org/autojs/autojs/util/AssetsCache.java +++ b/app/src/main/java/org/autojs/autojs/util/AssetsCache.java @@ -7,7 +7,7 @@ import org.autojs.autojs.tool.SimpleCache; /** - * Created by Stardust on 2017/3/14. + * Created by Stardust on Mar 14, 2017. */ public class AssetsCache { diff --git a/app/src/main/java/org/autojs/autojs/util/BitmapUtils.kt b/app/src/main/java/org/autojs/autojs/util/BitmapUtils.kt index 80c764112..7f20f9762 100644 --- a/app/src/main/java/org/autojs/autojs/util/BitmapUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/BitmapUtils.kt @@ -7,7 +7,7 @@ import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable /** - * Created by Stardust on 2017/4/22. + * Created by Stardust on Apr 22, 2017. */ object BitmapUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/ClipboardUtils.kt b/app/src/main/java/org/autojs/autojs/util/ClipboardUtils.kt index e2e03a35d..1a29bac4a 100644 --- a/app/src/main/java/org/autojs/autojs/util/ClipboardUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/ClipboardUtils.kt @@ -5,7 +5,7 @@ import android.content.ClipboardManager import android.content.Context /** - * Created by Stardust on 2017/3/10. + * Created by Stardust on Mar 10, 2017. */ object ClipboardUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/DeveloperUtils.java b/app/src/main/java/org/autojs/autojs/util/DeveloperUtils.java index 130251a3c..1b27bfd3d 100644 --- a/app/src/main/java/org/autojs/autojs/util/DeveloperUtils.java +++ b/app/src/main/java/org/autojs/autojs/util/DeveloperUtils.java @@ -26,7 +26,7 @@ import kotlin.text.Regex; /** - * Created by Stardust on 2017/4/5. + * Created by Stardust on Apr 5, 2017. * Modified by SuperMonster003 as of Dec 1, 2021. */ public class DeveloperUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/DeviceUtils.kt b/app/src/main/java/org/autojs/autojs/util/DeviceUtils.kt index 03dc6d216..a7ce681ce 100644 --- a/app/src/main/java/org/autojs/autojs/util/DeviceUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/DeviceUtils.kt @@ -74,9 +74,9 @@ object DeviceUtils { ${context.getString(R.string.text_device_hardware_name)}: $hardware ${context.getString(R.string.text_device_hardware_serial_number)}: ${getSerial()} ${context.getString(R.string.text_device_imei)}: ${getIMEI(context)} - ${context.getString(R.string.text_abis)}: ${Arrays.toString(abis)} - ${context.getString(R.string.text_abis_32bit)}: ${Arrays.toString(abis32Bits)} - ${context.getString(R.string.text_abis_64bit)}: ${Arrays.toString(abis64Bits)} + ${context.getString(R.string.text_supported_abis_short)}: ${Arrays.toString(abis)} + ${context.getString(R.string.text_supported_abis_short_32bit)}: ${Arrays.toString(abis32Bits)} + ${context.getString(R.string.text_supported_abis_short_64bit)}: ${Arrays.toString(abis64Bits)} """.trimIndent() fun toStringWithSimpleAppInfo() = """ diff --git a/app/src/main/java/org/autojs/autojs/util/DrawableUtils.kt b/app/src/main/java/org/autojs/autojs/util/DrawableUtils.kt index 0a2c1fba5..11d11b061 100644 --- a/app/src/main/java/org/autojs/autojs/util/DrawableUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/DrawableUtils.kt @@ -7,7 +7,7 @@ import android.graphics.drawable.Drawable import android.os.Build /** - * Created by Stardust on 2017/2/12. + * Created by Stardust on Feb 12, 2017. */ object DrawableUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/FileUtils.kt b/app/src/main/java/org/autojs/autojs/util/FileUtils.kt index 6e0d9cf92..d058cd7b9 100644 --- a/app/src/main/java/org/autojs/autojs/util/FileUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/FileUtils.kt @@ -5,7 +5,7 @@ import java.util.Arrays import java.util.Locale /** - * Created by Stardust on 2017/3/31. + * Created by Stardust on Mar 31, 2017. */ object FileUtils { @@ -29,7 +29,7 @@ object FileUtils { enum class TYPE(val typeName: String, private val iconName: String? = null) { - DIRECTORY("/"), + DIRECTORY(File.separator), JAVASCRIPT("js"), AUTO("auto", "R"), JSON("json"), diff --git a/app/src/main/java/org/autojs/autojs/util/InputMethodUtils.kt b/app/src/main/java/org/autojs/autojs/util/InputMethodUtils.kt index 17355f4d2..508b8a4cc 100644 --- a/app/src/main/java/org/autojs/autojs/util/InputMethodUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/InputMethodUtils.kt @@ -5,7 +5,7 @@ import android.view.View import android.view.inputmethod.InputMethodManager /** - * Created by Stardust on 2017/12/9. + * Created by Stardust on Dec 9, 2017. */ object InputMethodUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/MathUtils.java b/app/src/main/java/org/autojs/autojs/util/MathUtils.java index 0b781d219..7cc06267d 100644 --- a/app/src/main/java/org/autojs/autojs/util/MathUtils.java +++ b/app/src/main/java/org/autojs/autojs/util/MathUtils.java @@ -1,7 +1,7 @@ package org.autojs.autojs.util; /** - * Created by Stardust on 2017/11/26. + * Created by Stardust on Nov 26, 2017. */ public class MathUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/MimeTypesUtils.java b/app/src/main/java/org/autojs/autojs/util/MimeTypesUtils.java index 758c7ec82..1157ab206 100644 --- a/app/src/main/java/org/autojs/autojs/util/MimeTypesUtils.java +++ b/app/src/main/java/org/autojs/autojs/util/MimeTypesUtils.java @@ -8,7 +8,7 @@ import org.autojs.autojs.pio.PFiles; /** - * Created by Stardust on 2018/2/12. + * Created by Stardust on Feb 12, 2018. */ public class MimeTypesUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/NetworkUtils.kt b/app/src/main/java/org/autojs/autojs/util/NetworkUtils.kt index c8aec9556..a1af50825 100644 --- a/app/src/main/java/org/autojs/autojs/util/NetworkUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/NetworkUtils.kt @@ -19,7 +19,7 @@ import java.util.Collections import java.util.Locale /** - * Created by Stardust on 2017/4/9. + * Created by Stardust on Apr 9, 2017. * Modified by SuperMonster003 as of Jun 3, 2022. */ @Suppress("DEPRECATION", "unused") diff --git a/app/src/main/java/org/autojs/autojs/util/Objects.java b/app/src/main/java/org/autojs/autojs/util/Objects.java index 47c33866d..b621f0ad8 100644 --- a/app/src/main/java/org/autojs/autojs/util/Objects.java +++ b/app/src/main/java/org/autojs/autojs/util/Objects.java @@ -1,7 +1,7 @@ package org.autojs.autojs.util; /** - * Created by Stardust on 2017/12/31. + * Created by Stardust on Dec 31, 2017. */ public class Objects { diff --git a/app/src/main/java/org/autojs/autojs/util/ProcessUtils.kt b/app/src/main/java/org/autojs/autojs/util/ProcessUtils.kt index a2f853cc6..66fd90402 100644 --- a/app/src/main/java/org/autojs/autojs/util/ProcessUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/ProcessUtils.kt @@ -1,7 +1,7 @@ package org.autojs.autojs.util /** - * Created by Stardust on 2017/8/3. + * Created by Stardust on Aug 3, 2017. */ object ProcessUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/ResourceMonitor.java b/app/src/main/java/org/autojs/autojs/util/ResourceMonitor.java index 3079f3641..7925dc2ff 100644 --- a/app/src/main/java/org/autojs/autojs/util/ResourceMonitor.java +++ b/app/src/main/java/org/autojs/autojs/util/ResourceMonitor.java @@ -14,7 +14,7 @@ public final class ResourceMonitor { private static final String LOG_TAG = "ResourceMonitor"; - // @Reference to TonyJiangWJ/Auto.js (https://github.com/TonyJiangWJ/Auto.js) on Nov 22, 2021 + // @Reference to TonyJiangWJ/Auto.js (https://github.com/TonyJiangWJ/Auto.js) on Nov 22, 2021. private static class LockedResource { private ReentrantLock lock; private SparseArray resource; diff --git a/app/src/main/java/org/autojs/autojs/util/RomUtils.kt b/app/src/main/java/org/autojs/autojs/util/RomUtils.kt index 62171a209..dc8e9920d 100644 --- a/app/src/main/java/org/autojs/autojs/util/RomUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/RomUtils.kt @@ -14,7 +14,6 @@ import java.io.BufferedReader import java.io.IOException import java.io.InputStreamReader - /** * Created by SuperMonster003 on Aug 17, 2023. */ diff --git a/app/src/main/java/org/autojs/autojs/util/RootUtils.java b/app/src/main/java/org/autojs/autojs/util/RootUtils.java index 218846b33..9f1eb805c 100644 --- a/app/src/main/java/org/autojs/autojs/util/RootUtils.java +++ b/app/src/main/java/org/autojs/autojs/util/RootUtils.java @@ -15,7 +15,7 @@ import java.text.MessageFormat; /** - * Created by Stardust on 2018/1/26. + * Created by Stardust on Jan 26, 2018. * Modified by SuperMonster003 as of March 10, 2022. */ public class RootUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/SdkVersionUtils.java b/app/src/main/java/org/autojs/autojs/util/SdkVersionUtils.java index 648115d93..f034d58e0 100644 --- a/app/src/main/java/org/autojs/autojs/util/SdkVersionUtils.java +++ b/app/src/main/java/org/autojs/autojs/util/SdkVersionUtils.java @@ -1,7 +1,7 @@ package org.autojs.autojs.util; /** - * Created by Stardust on 2017/4/3. + * Created by Stardust on Apr 3, 2017. * Modified by SuperMonster003 as of Feb 5, 2022. */ public class SdkVersionUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/StringUtils.kt b/app/src/main/java/org/autojs/autojs/util/StringUtils.kt index 4d25ce431..5b763beae 100644 --- a/app/src/main/java/org/autojs/autojs/util/StringUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/StringUtils.kt @@ -10,7 +10,7 @@ import kotlin.math.min import kotlin.math.pow /** - * Created by Stardust on 2017/5/3. + * Created by Stardust on May 3, 2017. * Modified by SuperMonster003 as of Jul 6, 2022. */ object StringUtils { diff --git a/app/src/main/java/org/autojs/autojs/util/ViewUtils.kt b/app/src/main/java/org/autojs/autojs/util/ViewUtils.kt index 94f6d9b10..7280ea775 100644 --- a/app/src/main/java/org/autojs/autojs/util/ViewUtils.kt +++ b/app/src/main/java/org/autojs/autojs/util/ViewUtils.kt @@ -30,7 +30,7 @@ import org.autojs.autojs.util.StringUtils.key import org.autojs.autojs6.R /** - * Created by Stardust on 2017/1/24. + * Created by Stardust on Jan 24, 2017. * Modified by SuperMonster003 as of Sep 11, 2022. */ @Suppress("unused") @@ -73,8 +73,9 @@ object ViewUtils { return view.findViewById(resId) } - // FIXME: 2018/1/23 not working in some devices - // https://github.com/hyb1996/Auto.js/issues/268 + // FIXME by Stardust on Jan 23, 2018. + // ! Not working in some devices. + // ! https://github.com/hyb1996/Auto.js/issues/268 fun getStatusBarHeightLegacy(context: Context): Int { return context.resources.getIdentifier("status_bar_height", "dimen", "android").let { resourceId -> when (resourceId > 0) { diff --git a/app/src/main/java/pxb/android/axml/DumpEditor.java b/app/src/main/java/pxb/android/axml/DumpEditor.java index fa9416d5d..b8c81a4fc 100644 --- a/app/src/main/java/pxb/android/axml/DumpEditor.java +++ b/app/src/main/java/pxb/android/axml/DumpEditor.java @@ -3,7 +3,7 @@ import java.util.Map; /** - * Created by Stardust on 2017/10/23. + * Created by Stardust on Oct 23, 2017. */ public class DumpEditor extends DumpAdapter { diff --git a/app/src/main/res/drawable-night/ic_add_48dp.png b/app/src/main/res/drawable-night/ic_add_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..eb596d95064bb87740411ace7a7827edf7e05eeb GIT binary patch literal 2367 zcmcImO>f*p7XJ%FkTj4KeRcs=9wde=kTG-OkDCA^8!l^TSom>rLI-K;&v zcH+%Os1+3waNiw14mRY_O!dOUvK zkLP{fnen@Gm6!JJ*}q2+guUfbah~5VrPuDA{D1z3<}Q944@$2@g7EOZ^coY+u01XY zJKu4u3-N;WG9t{&V4KxwrsV}3EeI2ntpJln8jCercYRa(b^W3wy0$4D&so3^GDpbKiXY>a>_-Rt9*Q&~p&P_5^TpI7uCb-qlz6IL4qh;D z>qosh@ro%e94IgYQcfM9O$NANDQtFv+eD#F>QO(AI2I1DL4(CCYOp)F9=zTXfY;Wt z1~G=_;(3D*Q9QHEY4i#*6dhGp0;W-IxAbDYPJd>;%ErB zKzYyDIL7w`+XOi*^e`vvdbm!Nz^_ZD`s z0of?%1)0*EYU?`WzO=smZ0Pc(g`4;7CtYx9OQ4b)aj{l{0Vy6obCTVw@ z5=mvHw$z(;hg4uR23@yFgL0>Lk-H0vm=h;Bq*HZXt$VhUa;M}YynOf6b6Ua1`5ch* zYR;BZspJ{}h72{L>RE?qSXcYhx2E1}KY)PVZ@>FVy;oM!z2bqyNahMK6 z*3$NoQPLf<+hNLoo3Hckw%wEq*_q;7bUGXy4*X$oyilLlDddNT`}BJ!1!2c)<>FMe zwf4)8Qzti$JTmi5y!rN7_~TC@8@0cc*H^C{-ncw*YxUNl*;5zSwzpm*5$LP++4}kX iC0KcY^8K66=ab+6b|3=hgs;<2obpVi`00zUzx5BQaM6tb literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/bg_item_module.xml b/app/src/main/res/drawable/bg_item_module.xml index 66363e493..0b9637218 100644 --- a/app/src/main/res/drawable/bg_item_module.xml +++ b/app/src/main/res/drawable/bg_item_module.xml @@ -1,15 +1,14 @@ - - + - + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_item_property.xml b/app/src/main/res/drawable/bg_item_property.xml index e57ca1f91..d08b49de5 100644 --- a/app/src/main/res/drawable/bg_item_property.xml +++ b/app/src/main/res/drawable/bg_item_property.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/btn_selector.xml b/app/src/main/res/drawable/btn_selector.xml index 4522c99d1..bae140652 100644 --- a/app/src/main/res/drawable/btn_selector.xml +++ b/app/src/main/res/drawable/btn_selector.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/drawer_header_shadow.xml b/app/src/main/res/drawable/drawer_header_shadow.xml index 29dda27be..aa27241e4 100644 --- a/app/src/main/res/drawable/drawer_header_shadow.xml +++ b/app/src/main/res/drawable/drawer_header_shadow.xml @@ -1,10 +1,8 @@ - + + android:angle="270" + android:endColor="#7d000000" + android:startColor="#27ffffff" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_48dp.png b/app/src/main/res/drawable/ic_add_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e1024a2b0c6808d97b54dac2196735863171c1e9 GIT binary patch literal 2353 zcmcguUufM_7*DIVZc-5TGUrRkKopncBsa-T4!zE6Z}naHIDu{>_S@BI!2hOJ|_^_wRtTF@<+2+ap6IQwFN~vDR&B@8{ z`@Y}r`@VBdF3!!oGI8|8QI6v#YSqd-yKiOJ<74c9{-@SByB&$DuO%G!#Ifue;V!Km z=eV(V{Q5$=V804o8b}CJhe(|uVrY(=Jl%}ZNK z{pxB=&aBSV-PJ|c!oukn_{k1r4g!)Qz7w><1a?Y7*Dqw_Y+4rhE+kzn3FRyxzhKYt zQ#2;LB>~X|0PsaiQi_VJ7QIuv3RG1FrmPsEVnU!ot-$wx0t**o56)L!?gwK}C83$7 z5tQY2yDhZ~5{(%b6m6(x4OZxE0Y!pNSG!JtK`_INmH6M=>uHnuXhDt zxwY*)#!xOnkcUXp>18IPpOB&Gq`ndnd7dP6DR#;9GNXAiQxn0dn4px#bxK=yW zVaQrKJTY>%L-smM{&(|r-`%&HvO;#J*cP1)^TUBXlTRV?k*;pUns*UnC_tB9H z+Q@s)aNj@r;w7$njPnn7a{JoNk)K0v=i@i7Zhn4m`ztCPc7*-2-oCYSb7J<}Z|?jt zb~kL(_2T4>(fuj^^3M4Svw!|_{_Xa?5AI(7;=fMX9+E!YTrX}Z|4$OPAG!S5Q;GNP SsQiu0LH&u1Q9`-DQRg-yder2m8GF(-e^STg)FR@X_VkCTvC$!Z07M&nv%^~ zc*)Egdb+5`Wi9d^ftoqWU`cecTzN8CIcMtZU)YQ1`JB(Y=hc%R#tOli*q8tSaE#Ev z@D;{>i!o}Y_2n5`SAasq*omx1gu@)e;EosZF>nn`lWpixA6!p8YJEoK@`}#Q8ZQhsMC;F4=Dq){5UjpN z^!W32L&c+DclBL=fR07B?(ux-M{6F1MfwlC?e+`FSZ>``W~wt)iVlhhhQ$n2_|s0#0=d=)f|vzr0l zO`{m|EFJGSfC#&#V&5n#Vm>W(1l&=jVS{<;V>p!S!LjzC#J4q8fJFTZ#Yp+y&akH- ztYnCt%k+v;vXY~cLCEZLMT@7sfNtp(ZBfGKQ2;uf|E76{r2BQamTfX42}d+QmG}A% z7Fy4jrSv>=sv+1J#C6Eje)aYVV%J;*k%pn!Ie%IWZ1^ezA-?0bz0!eM`XvtDaEnXc z!@;IK%NP1pX5)wy6jY$026yR-pKQ1yF}qH~Odp`s0M_%0BnuMV;99^cegjcjgPyENK9w_PCuTMAX}rJJwJ8U zW>)*hJsp=UAY?^Ul3Ee0>kG@%j8bE7ryZBLP2^Vvoz7EupN@@3EA0Wg810SOte!{WJ3ue$j|JuW^-QNdQkRG#hC#{k4K1hrIf*qKm z7t!twk`j8AG!sB@&zc(#S+eJllr&d}OrG0rKb4dA&Ab7Dn6|In)}@EN%fLj*gQy?m zcU%>>%6v~bp;PJcPINVo6)K)~0(nWIwEPP2LgCk)V$y!{&`i zmVk0VPcT8 zu}!kHK4@>$cc63eu2?2oLex@ur|U++*PmX%TzKeenJsktBvAYxIc=nyw(HWryFmCH zgP2)ALuPm{U(QNvexuRXQ`!CWrhc_gz(Cnh5o%W8Iny@ExxFckf!lJ3bKF+mTi7nE z`N2Yrn8>b@cj-PZS>6{kt1^4&1|DsHYi$ zdW-oXGb_Lp%H%8zn5Cnx?{v*I|(3(618yznL~VA3l= zqs|cV>mo5B@>*B@xOyG2+WDbm%Ww77j<&|s@Lhn2$%t+T@~OP#`3*);zGRq1P_}YG$uZK6-JIT>Py;CO+U_rV)v&G7{Z*GmFr^Fs@Ipg4 zkpIh5h(P)pA=KpnSZH5D6g<|UrsYyoAYg^~^50tl3+t6JjtIz1<1G_$zprh%l-Q^i Y1F=LUUK&i-uKXZi1hE2J17gqq2RS%QmH+?% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/round_checkbox.xml b/app/src/main/res/drawable/round_checkbox.xml new file mode 100644 index 000000000..9b311975f --- /dev/null +++ b/app/src/main/res/drawable/round_checkbox.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/res/drawable/round_checkbox_checked.xml b/app/src/main/res/drawable/round_checkbox_checked.xml new file mode 100644 index 000000000..5c9e7a564 --- /dev/null +++ b/app/src/main/res/drawable/round_checkbox_checked.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/round_checkbox_disabled.xml b/app/src/main/res/drawable/round_checkbox_disabled.xml new file mode 100644 index 000000000..3402f599c --- /dev/null +++ b/app/src/main/res/drawable/round_checkbox_disabled.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/app/src/main/res/drawable/round_checkbox_unchecked.xml b/app/src/main/res/drawable/round_checkbox_unchecked.xml new file mode 100644 index 000000000..ea5e0b6fb --- /dev/null +++ b/app/src/main/res/drawable/round_checkbox_unchecked.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/app/src/main/res/drawable/round_checkbox_with_text_divider.xml b/app/src/main/res/drawable/round_checkbox_with_text_divider.xml new file mode 100644 index 000000000..a40635c61 --- /dev/null +++ b/app/src/main/res/drawable/round_checkbox_with_text_divider.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_build.xml b/app/src/main/res/layout/activity_build.xml index ddcc0e478..6ba30d1c2 100644 --- a/app/src/main/res/layout/activity_build.xml +++ b/app/src/main/res/layout/activity_build.xml @@ -1,5 +1,6 @@ - - - + android:orientation="vertical" + android:padding="16dp"> - - - + android:layout_marginBottom="24dp" + android:text="@string/text_file" + android:textAppearance="@style/TextAppearance.AppCompat.Body2" + android:textColor="?android:textColorSecondary" /> - - + android:hint="@string/text_source_file_path"> - - - + android:layout_height="wrap_content" /> - - + - + android:paddingHorizontal="2dp" + android:paddingBottom="6dp" + android:src="@drawable/ic_folder" + android:alpha="0.8" + android:clickable="true" + android:focusable="true" + android:layout_gravity="bottom|center" /> - - - - - - - - + + - + android:layout_weight="1" + android:hint="@string/text_output_apk_path"> - + - + - + - - - + - + android:orientation="vertical" + android:paddingHorizontal="16dp" + android:paddingBottom="16dp"> - + android:layout_marginBottom="24dp" + android:text="@string/text_config" + android:textAppearance="@style/TextAppearance.AppCompat.Body2" + android:textColor="?android:textColorSecondary" /> - + - + android:layout_height="wrap_content" /> - - + - + + + android:inputType="text" + android:imeOptions="actionNext" + android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_." /> - - + + + + android:layout_weight="1" + android:orientation="vertical"> - + android:layout_marginTop="8dp" + android:hint="@string/text_version_name"> - + android:inputType="text" + android:text="1.0.0" /> - - android:text="1.0.0" /> - + - - - - android:inputType="number" - android:text="1" /> - - + - + - - - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_project_config.xml b/app/src/main/res/layout/activity_project_config.xml index cf9a5f3ab..049349798 100644 --- a/app/src/main/res/layout/activity_project_config.xml +++ b/app/src/main/res/layout/activity_project_config.xml @@ -1,15 +1,16 @@ - - `` + android:fitsSystemWindows="true"> - - + android:orientation="vertical" + android:padding="16dp"> - + android:layout_marginBottom="24dp" + android:text="@string/text_project" + android:textAppearance="@style/TextAppearance.AppCompat.Body2" + android:textColor="?android:textColorSecondary" /> - + - + android:layout_height="wrap_content" /> - - + + + - + android:inputType="text" + android:imeOptions="actionNext" + android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_." /> - - + + + + android:layout_weight="1" + android:orientation="vertical"> - + android:layout_marginTop="8dp" + android:hint="@string/text_version_name"> - + android:inputType="text" + android:text="1.0.0" /> - - android:text="1.0.0" /> - + - - - - - - - - - - - - + android:inputType="number" + android:text="1" /> + + - - - + + + + - + android:layout_marginTop="2dp" + android:layout_marginBottom="8dp" + android:text="@string/text_icon" + android:textSize="12sp" + android:gravity="center" /> + + - + + + + + + + - + android:orientation="vertical" + android:paddingHorizontal="16dp" + android:paddingBottom="16dp"> - + android:layout_marginBottom="24dp" + android:text="@string/text_launch_config" + android:textAppearance="@style/TextAppearance.AppCompat.Body2" + android:textColor="?android:textColorSecondary" /> - + - + android:text="@string/default_main_file_name" /> - - - + - + - + - + - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index d997ce5ea..bf3d557db 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,37 +1,25 @@ - + android:layout_height="128dp" + android:layout_gravity="center|bottom" + android:gravity="center" + android:orientation="horizontal"> - - + - - - - - - - + diff --git a/app/src/main/res/layout/activity_splash_inrt.xml b/app/src/main/res/layout/activity_splash_inrt.xml index 1b3de0b02..83a31cd49 100644 --- a/app/src/main/res/layout/activity_splash_inrt.xml +++ b/app/src/main/res/layout/activity_splash_inrt.xml @@ -1,22 +1,27 @@ - + + android:layout_width="72dp" + android:layout_height="72dp" + android:layout_gravity="center" + android:src="@mipmap/ic_launcher" /> - \ No newline at end of file + android:id="@+id/slug" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:layout_marginTop="20dp" + android:text="@string/text_powered_by_autojs" + android:textColor="@color/day_night_full" + android:textSize="16sp" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_menu_item.xml b/app/src/main/res/layout/drawer_menu_item.xml index 65652f6cf..78e936081 100644 --- a/app/src/main/res/layout/drawer_menu_item.xml +++ b/app/src/main/res/layout/drawer_menu_item.xml @@ -1,9 +1,11 @@ - @@ -36,7 +38,7 @@ android:layout_width="wrap_content" android:layout_toEndOf="@+id/icon_container" android:layout_toStartOf="@id/sw" - android:gravity="center_vertical" + android:layout_centerVertical="true" android:layout_marginEnd="5dp" android:orientation="vertical"> diff --git a/app/src/main/res/layout/explorer_project_toolbar.xml b/app/src/main/res/layout/explorer_project_toolbar.xml index 39a1ffcbd..f29c4dcfc 100644 --- a/app/src/main/res/layout/explorer_project_toolbar.xml +++ b/app/src/main/res/layout/explorer_project_toolbar.xml @@ -57,7 +57,7 @@ android:layout_height="40dp" android:background="?selectableItemBackgroundBorderless" android:paddingVertical="9dp" - android:src="@drawable/ic_build_apk" + android:src="@drawable/ic_packaging" app:tint="@color/project_toolbar_button" /> diff --git a/app/src/main/res/layout/fragment_drawer.xml b/app/src/main/res/layout/fragment_drawer.xml index 8dca4917c..c15cfb783 100644 --- a/app/src/main/res/layout/fragment_drawer.xml +++ b/app/src/main/res/layout/fragment_drawer.xml @@ -115,6 +115,7 @@ android:text="@string/text_exit" android:textSize="15sp" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/functions_keyboard_view.xml b/app/src/main/res/layout/functions_keyboard_view.xml index d2f8f1824..602d9dc59 100644 --- a/app/src/main/res/layout/functions_keyboard_view.xml +++ b/app/src/main/res/layout/functions_keyboard_view.xml @@ -1,30 +1,31 @@ - + + android:layout_width="match_parent" + android:layout_height="1dp" + android:background="@color/divider_functions_keyboard" /> + android:id="@+id/properties" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" + android:background="@color/window_background" /> + android:layout_width="match_parent" + android:layout_height="1dp" + android:background="@color/divider_functions_keyboard" /> + android:id="@+id/module_list" + android:layout_width="match_parent" + android:layout_height="50dp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_module.xml b/app/src/main/res/layout/item_module.xml index 3233943e3..995428939 100644 --- a/app/src/main/res/layout/item_module.xml +++ b/app/src/main/res/layout/item_module.xml @@ -1,12 +1,11 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/item_property.xml b/app/src/main/res/layout/item_property.xml index 4468021da..992c695f4 100644 --- a/app/src/main/res/layout/item_property.xml +++ b/app/src/main/res/layout/item_property.xml @@ -1,10 +1,10 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/round_checkbox_with_text.xml b/app/src/main/res/layout/round_checkbox_with_text.xml new file mode 100644 index 000000000..3a619c17e --- /dev/null +++ b/app/src/main/res/layout/round_checkbox_with_text.xml @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/app/src/main/res/menu/menu_dir_options.xml b/app/src/main/res/menu/menu_dir_options.xml index edcfb5580..818f42b21 100644 --- a/app/src/main/res/menu/menu_dir_options.xml +++ b/app/src/main/res/menu/menu_dir_options.xml @@ -2,15 +2,19 @@

    + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_script_options.xml b/app/src/main/res/menu/menu_script_options.xml index 246f88571..0568c3c15 100644 --- a/app/src/main/res/menu/menu_script_options.xml +++ b/app/src/main/res/menu/menu_script_options.xml @@ -19,20 +19,13 @@ android:id="@+id/reset" android:title="@string/text_reset_to_initial_content" /> - - - - - - - + android:id="@+id/send" + android:title="@string/text_send" /> + + \ No newline at end of file diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index f4f04dae8..ae53edbfd 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -201,9 +201,10 @@ مطلوب من خلال العملية التلقائية البرنامج النصي (انقر فوق ، اضغط لفترة طويلة ، شريحة ، إلخ). تم تمكين خدمة إمكانية الوصول ولكن لا تعمل (إعادة تمكين أو إعادة تشغيل الجهاز) قد تكون هناك حاجة إلى خدمة إمكانية الوصول - قيم ABIs - ABIs (32 بت) - ABIs (64 بت) + المكتبات + قيم ABIs + ABIs (32 بت) + ABIs (64 بت) حول حول كل الملفات وصول حول التطبيق والمطور @@ -696,7 +697,6 @@ يمكن للاختصارات تنفيذ إجراءات محددة في AutoJs6. يمكن للمستخدمين عرض هذه الاختصارات في مشغل مدعوم وبدء بعض المهام أو تشغيل نشاط بسرعة، مثل قراءة وثائق تطبيق AutoJs6، وتشغيل صفحة إعدادات AutoJs6، وما إلى ذلك. أضف اختصارات إلى المشغل تثبيت الاختصارات على المشغل غير مدعوم - قالب مسار APK يتيح Shizuku استخدام واجهة برمجة تطبيقات النظام مع امتيازات ADB وصول Shizuku منح الوصول إلى AutoJs6 في تطبيق Shizuku @@ -708,6 +708,17 @@ فشل منح Shizuku حق الوصول غير قادر على استخدام خدمة Shizuku فشل فحص حقول الإدخال + يجب تحديد ABI واحد على الأقل + خلل + الوحدة النمطية \"%s\" لا تعمل بسبب عدم توفر ملفات المكتبة الضرورية + غير متوفره + لا يمكن استخدام ABI المحدد \"%s\" لإنشاء تطبيق مجمع، لأن الإصدار الحالي من AutoJs6 لا يتضمن ABI أعلاه. + ويمكن الرجوع إلى الحلول التالية + قم بتنزيل وتثبيت إصدار AutoJs6 الذي يتضمن ABI أعلاه (يحتوي اسم الملف على \"%s\") + قم بتنزيل وتثبيت إصدار AutoJs6 الذي يتضمن كافة واجهات برمجة التطبيقات (يحتوي اسم الملف على \"universal\") + مُستَحسَن + رابط تحميل AutoJs6 + واجهة برمجة التطبيقات \"%s\" غير متوفرة المجموع: عنصر واحد diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index fddb77e93..48e8840d7 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -199,9 +199,10 @@ Required by the script automatic operation (click, long press, slide, etc.). Accessibility service enabled but not running (Re-enable or reboot the device) Accessibility service may be needed - ABIs - ABIs (32-bit) - ABIs (64-bit) + Libraries + ABIs + ABIs (32-bit) + ABIs (64-bit) About About all files access About app and developer @@ -694,7 +695,6 @@ Shortcuts can perform specific actions in AutoJs6. Users can display these shortcuts in a supported launcher and quickly start some tasks or launch an activity, such as reading AutoJs6 application documentation, launching AutoJs6 settings page, and so on. Add shortcuts to launcher Pinning shortcuts to launcher is not supported - Template APK path Shizuku makes it possible to uses system API with ADB privileges Shizuku access Grant AutoJs6 access in Shizuku app @@ -706,6 +706,17 @@ Failed to grant Shizuku access Unable to use Shizuku service Input fields check failed + At least one ABI needs to be selected + Malfunctioning + The \"%s\" module does not work due to the lack of necessary library files + Unavailable + The selected ABI \"%s\" cannot be used to create a packaged application, because the current version of AutoJs6 does not include the above ABI. + The following solutions can be referred to + Download and install the version of AutoJs6 that includes the above ABI (the file name contains \"%s\") + Download and install the version of AutoJs6 that includes all ABIs (the file name contains \"universal\") + Recommended + Download link for AutoJs6 + ABI \"%s\" is unavailable Total: %d item diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index a5f1fa97c..3caaea39f 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -201,9 +201,10 @@ Requerido por el funcionamiento automático del script (clic, pulsación larga, deslizamiento, etc.). El servicio de accesibilidad está habilitado pero no se está ejecutando (vuelva a habilitarlo o reinicie el dispositivo) El servicio de accesibilidad puede ser necesario - ABIs - ABIs (32 bits) - ABIs (64 bits) + Bibliotecas + ABIs + ABIs (32 bits) + ABIs (64 bits) Acerca de Sobre el acceso a todos los archivos Sobre la aplicación y el desarrollador @@ -696,7 +697,6 @@ Los accesos directos pueden realizar acciones específicas en AutoJs6. Los usuarios pueden mostrar estos accesos directos en un lanzador compatible e iniciar rápidamente algunas tareas o iniciar una actividad, como leer la documentación de la aplicación AutoJs6, iniciar la página de configuración de AutoJs6, etc. Añadir accesos directos al lanzador No es posible anclar accesos directos al lanzador - Ruta de acceso de APK de plantilla Shizuku te permite obtener privilegios ADB y acceso a las APIs del sistema Permisos de Shizuku Conceder privilegios AutoJs6 en una aplicación Shizuku @@ -708,6 +708,17 @@ Fallo en la concesión de permisos Shizuku No se puede utilizar el servicio Shizuku Error en la comprobación del campo de entrada + Es necesario seleccionar al menos un ABI + Mal funcionamiento + El módulo \"%s\" no funciona debido a la falta de archivos de biblioteca necesarios + No disponible + La ABI seleccionada \"%s\" no se puede utilizar para crear una aplicación empaquetada, porque la versión actual de AutoJs6 no incluye la ABI mencionada. + Puede recurrir a las siguientes soluciones + Descargue e instale la versión de AutoJs6 que incluye la ABI anterior (el nombre del archivo contiene \"%s\") + Descargar e instalar la versión de AutoJs6 que incluye todas las ABIs (el nombre del archivo contiene \"universal\") + Recomendado + Enlace de descarga de AutoJs6 + ABI \"%s\" no está disponible Total: %d artículo diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 45191ad18..cffb370c9 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -201,9 +201,10 @@ Requise par le fonctionnement automatique du script (clic, appui long, glissement, etc.). Service d\'accessibilité activé mais non exécuté (réactivation ou redémarrage du périphérique). Un service d\'accessibilité peut être nécessaire - ABIs - ABIs (32-bit) - ABIs (64-bit) + Bibliothèques + ABIs + ABIs (32-bit) + ABIs (64-bit) A propos A propos de l\'accès à tous les fichiers A propos de l\'application et du développeur @@ -696,7 +697,6 @@ Les raccourcis permettent d\'effectuer des actions spécifiques dans AutoJs6. Les utilisateurs peuvent afficher ces raccourcis dans un lanceur pris en charge et démarrer rapidement certaines tâches ou lancer une activité, comme la lecture de la documentation de l\'application AutoJs6, le lancement de la page de configuration d\'AutoJs6, etc. Ajouter des raccourcis au lanceur L\'épinglage de raccourcis dans le lanceur n\'est pas pris en charge - Chemin d\'accès APK du modèle Shizuku vous permet d\'obtenir des privilèges ADB et d\'accéder aux API du système Permissions de Shizuku Accorder des privilèges AutoJs6 dans une application Shizuku @@ -708,6 +708,17 @@ Échec de l\'octroi de la permission de Shizuku Impossible d\'utiliser le service Shizuku Échec de la vérification du champ de saisie + Au moins un ABI doit être sélectionné + Dysfonctionnement + Le module \"%s\" ne fonctionne pas en raison de l\'absence des fichiers de bibliothèque nécessaires + Indisponible + L\'ABI sélectionné \"%s\" ne peut pas être utilisé pour créer une application packagée, car la version actuelle d\'AutoJs6 n\'inclut pas l\'ABI ci-dessus. + Les solutions suivantes peuvent être utilisées + Téléchargez et installez la version d\'AutoJs6 qui inclut l\'ABI ci-dessus (le nom du fichier contient \"%s\") + Télécharger et installer la version d\'AutoJs6 qui inclut tous les ABI (le nom du fichier contient \"universal\") + Recommandé + Lien de téléchargement pour AutoJs6 + L\'ABI \"%s\" n\'est pas disponible Total: %d article diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index ddd4a9e8c..fd03e759c 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -201,9 +201,10 @@ スクリプトの自動操作 (クリック、長押し、スライドなど) で必要です アクセシビリティサービスが有効だが、実行されていない (デバイスを再有効化または再起動する) アクセシビリティサービスが必要な場合がある - ABI - ABI (32ビット) - ABI (64ビット) + ライブラリー + ABI + ABI (32ビット) + ABI (64ビット) について 全ファイルのアクセスについて アプリと開発者について @@ -696,7 +697,6 @@ ショートカットは、AutoJs6 で特定のアクションを実行することができます。ユーザーは、サポートされているランチャーにこれらのショートカットを表示し、AutoJs6アプリケーションのドキュメントを読んだり、AutoJs6の設定ページを起動したりするなど、いくつかのタスクを素早く開始したり、アクティビティを起動したりすることができます ランチャーへのショートカットの追加 ショートカットをランチャーにピン留めすることはサポートされていません - テンプレート APK パス Shizuku を使用すると、ADB 権限を取得し、システム API にアクセスできるようになります Shizuku のパーミッション Shizuku アプリケーションで AutoJs6 権限を付与する @@ -708,6 +708,17 @@ Shizuku の権限付与に失敗しました Shizuku サービスが使用できない 入力フィールドのチェックに失敗 + 少なくとも 1 つの ABI を選択する必要がある + 機能不全 + 必要なライブラリ・ファイルがないため、\"%s\" モジュールが動作しません + 使用できません + 現在のバージョンの AutoJs6 には上記の ABI が含まれていないため、選択した ABI \"%s\" を使用してパッケージ・アプリケーションを作成できません。 + 次の解決策を参照できます + 上記の ABI を含むバージョンの AutoJs6 をダウンロードしてインストールします (ファイル名に \"%s\" が含まれています) + すべての ABI を含むバージョンの AutoJs6 をダウンロードしてインストールする (ファイル名に \"universal\" が含まれている) + 推奨 + AutoJs6 のダウンロードリンク + ABI \"%s\" は使用できません 合計: %d 件 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 16f34b843..c4266764f 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -202,9 +202,10 @@ 스크립트 자동 작동에 필요합니다 (클릭, 긴 프레스, 슬라이드 등). 접근성 서비스가 활성화되었지만 실행되지 않음 (장치를 다시 활성화 또는 재부팅) 접근성 서비스가 필요할 수 있습니다 - ABI - ABI (32 비트) - ABI (64 비트) + 라이브러리 + ABI + ABI (32 비트) + ABI (64 비트) 에 대한 모든 파일 액세스에 대해 앱과 개발자에 대해 @@ -697,7 +698,6 @@ 바로가기는 AutoJs6 에서 특정 작업을 수행할 수 있습니다. 사용자는 지원되는 런처에 이러한 바로가기를 표시하고 AutoJs6 애플리케이션 문서 읽기, AutoJs6 설정 페이지 실행 등과 같은 일부 작업을 빠르게 시작하거나 활동을 실행할 수 있습니다. 런처에 바로 가기 추가 런처에 바로가기를 고정하는 것은 지원되지 않습니다 - 템플릿 APK 경로 Shizuku 를 사용하면 ADB 권한과 시스템 API 에 대한 액세스 권한을 얻을 수 있습니다 Shizuku 권한 Shizuku 애플리케이션에서 AutoJs6 권한 부여하기 @@ -709,6 +709,17 @@ Shizuku 권한을 부여하지 못했습니다 Shizuku 서비스를 사용할 수 없음 입력 필드 확인 실패 + 하나 이상의 ABI 를 선택해야 합니다. + 오작동 + 필요한 라이브러리 파일이 부족하여 \"%s\" 모듈이 작동하지 않습니다 + 사용할 수 없음 + 현재 버전의 AutoJs6에 위의 ABI가 포함되어 있지 않으므로 선택한 ABI \"%s\" 를 사용하여 패키지 응용 프로그램을 만들 수 없습니다. + 다음 해결 방법을 참조할 수 있습니다 + 위의 ABI가 포함된 AutoJs6 버전을 다운로드하여 설치합니다(파일 이름에 \"%s\" 포함) + 모든 ABI가 포함된 AutoJs6 버전을 다운로드하여 설치합니다(파일 이름에 \"universal\" 포함) + 권장 + AutoJs6 다운로드 링크 + ABI \"%s\" 를 사용할 수 없습니다 총: %d 개 항목 diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index c598b432c..212614a06 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -2,9 +2,15 @@ #DEBFBFBF + #BFBFBF + #B3BFBFBF #DE252525 + #252525 #212121 + #3B3B3B @color/day_night + @color/day_night_full + @color/day_night_alpha_70 #808080 #DFE0E0E0 @@ -28,6 +34,7 @@ #252525 #191919 + #303030 #737B8A #A9A9A9 diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 60cb45855..4294c267e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -201,9 +201,10 @@ Требуется для автоматической работы сценария (щелчок, длительное нажатие, скольжение и т.д.). Служба доступности включена, но не работает (Включите или перезагрузите устройство) Может потребоваться служба доступности - ABIs - ABIs (32-bit) - ABIs (64-bit) + Библиотеки + ABIs + ABIs (32-bit) + ABIs (64-bit) Об О доступе ко всем файлам О приложении и разработчике @@ -696,7 +697,6 @@ Ярлыки позволяют выполнять определенные действия в AutoJs6. Пользователи могут отображать эти ярлыки в поддерживаемой программе запуска и быстро запускать некоторые задачи или действия, например, читать документацию по приложению AutoJs6, запускать страницу настроек AutoJs6 и т.д. Добавление ярлыков в пусковую установку Закрепление ярлыков в пусковой установке не поддерживается - Шаблон APK путь Shizuku позволяет получить привилегии ADB и доступ к системным API. Разрешения Shizuku Предоставление привилегий AutoJs6 в приложении Shizuku @@ -708,6 +708,17 @@ Не удалось предоставить права на использование Shizuku Невозможно использовать службу Shizuku Не удалось выполнить проверку поля ввода + Необходимо выбрать хотя бы один ПВБ + Неисправность + Модуль \"%s\" не работает из-за отсутствия необходимых библиотечных файлов + Недоступно + Выбранный ABI \"%s\" не может быть использован для создания упакованного приложения, поскольку текущая версия AutoJs6 не включает указанный ABI. + Можно воспользоваться следующими решениями + Загрузите и установите версию AutoJs6, включающую вышеуказанный ABI (в имени файла содержится \"%s\") + Загрузить и установить версию AutoJs6, включающую все ABI (имя файла содержит \"universal\") + Рекомендуемый + Ссылка на скачивание AutoJs6 + ABI \"%s\" недоступен Всего: %d элемент diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 107eab2bc..f185e15bf 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -201,9 +201,10 @@ 腳本自動操作 (點擊/長按/滑動等) 所需 無障礙服務已啓用但未運行 (嘗試重新啓用或重啓設備) 可能需要啓用無障礙服務 - 支持 ABI - 支持 ABI (32 位) - 支持 ABI (64 位) + 支援庫 + 支持 ABI + 支持 ABI (32 位) + 支持 ABI (64 位) 關於 關於所有文件訪問權限 關於應用與開發者 @@ -696,7 +697,6 @@ 快捷方式可以在 AutoJs6 中執行特定操作, 用户可以在啓動器中顯示這些快捷方式, 並快速開始某些任務或啓動某個活動, 如閲讀 AutoJs6 應用文檔, 啓動 AutoJs6 設置頁面等. 添加快捷方式到啓動器 將快捷方式固定到啓動器不被支持 - 模板 APK 路徑 通過 Shizuku 可以獲得 ADB 特權並使用系統 API Shizuku 權限 在 Shizuku 應用中授予 AutoJs6 權限 @@ -708,6 +708,17 @@ Shizuku 權限授予失敗 無法使用 Shizuku 服務 輸入字段檢查未通過 + 需要至少選擇一個 ABI + 功能故障 + 由於缺少必要的庫文件, 模塊 \"%s\" 無法正常加載 + 不可用 + 選擇的 ABI 架構 \"%s\" 無法用於創建打包應用, 因當前 AutoJs6 版本未包含上述 ABI 架構. + 可參考以下解決方案 + 下載安裝包含上述 ABI 架構的 AutoJs6 版本 (文件名包含 \"%s\" 字樣) + 下載安裝包含全部 ABI 架構的 AutoJs6 版本 (文件名包含 \"universal\" 字樣) + 推薦 + AutoJs6 下載鏈接 + ABI \"%s\" 不可用 共計: %d 項 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 4300887ad..e1d07b73d 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -201,9 +201,10 @@ 指令碼自動操作 (點選/長按/滑動等) 所需 無障礙服務已啟用但未執行 (嘗試重新啟用或重啟裝置) 可能需要啟用無障礙服務 - 支援 ABI - 支援 ABI (32 位) - 支援 ABI (64 位) + 支援庫 + 支援 ABI + 支援 ABI (32 位) + 支援 ABI (64 位) 關於 關於所有檔案訪問許可權 關於應用與開發者 @@ -696,7 +697,6 @@ 快捷方式可以在 AutoJs6 中執行特定操作, 使用者可以在啟動器中顯示這些快捷方式, 並快速開始某些任務或啟動某個活動, 如閲讀 AutoJs6 應用文件, 啟動 AutoJs6 設定頁面等. 新增快捷方式到啟動器 將快捷方式固定到啟動器不被支援 - 模板 APK 路徑 透過 Shizuku 可以獲得 ADB 特權並使用系統 API Shizuku 許可權 在 Shizuku 應用中授予 AutoJs6 許可權 @@ -708,6 +708,17 @@ Shizuku 許可權授予失敗 無法使用 Shizuku 服務 輸入欄位檢查未透過 + 需要至少選擇一個 ABI + 功能故障 + 由於缺少必要的庫檔案, 模組 \"%s\" 無法正常載入 + 不可用 + 選擇的 ABI 架構 \"%s\" 無法用於建立打包應用, 因當前 AutoJs6 版本未包含上述 ABI 架構. + 可參考以下解決方案 + 下載安裝包含上述 ABI 架構的 AutoJs6 版本 (檔名包含 \"%s\" 字樣) + 下載安裝包含全部 ABI 架構的 AutoJs6 版本 (檔名包含 \"universal\" 字樣) + 推薦 + AutoJs6 下載連結 + ABI \"%s\" 不可用 共計: %d 項 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index efa8b3c70..018ad0d6f 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -197,9 +197,10 @@ 脚本自动操作 (点击/长按/滑动等) 所需 无障碍服务已启用但未运行 (尝试重新启用或重启设备) 可能需要启用无障碍服务 - 支持 ABI - 支持 ABI (32 位) - 支持 ABI (64 位) + 支持库 + 支持 ABI + 支持 ABI (32 位) + 支持 ABI (64 位) 关于 关于所有文件访问权限 关于应用与开发者 @@ -692,7 +693,6 @@ 快捷方式可以在 AutoJs6 中执行特定操作, 用户可以在启动器中显示这些快捷方式, 并快速开始某些任务或启动某个活动, 如阅读 AutoJs6 应用文档, 启动 AutoJs6 设置页面等. 添加快捷方式到启动器 将快捷方式固定到启动器不被支持 - 模板 APK 路径 通过 Shizuku 可以获得 ADB 特权并使用系统 API Shizuku 权限 在 Shizuku 应用中授予 AutoJs6 权限 @@ -704,6 +704,17 @@ Shizuku 权限授予失败 无法使用 Shizuku 服务 输入字段检查未通过 + 需要至少选择一个 ABI + 功能故障 + 由于缺少必要的库文件, 模块 \"%s\" 无法正常加载 + 不可用 + 选择的 ABI 架构 \"%s\" 无法用于创建打包应用, 因当前 AutoJs6 版本未包含上述 ABI 架构. + 可参考以下解决方案 + 下载安装包含上述 ABI 架构的 AutoJs6 版本 (文件名包含 \"%s\" 字样) + 下载安装包含全部 ABI 架构的 AutoJs6 版本 (文件名包含 \"universal\" 字样) + 推荐 + AutoJs6 下载链接 + ABI \"%s\" 不可用 共计: %d 项 diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index cf3a65ff8..a596cf53c 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -42,12 +42,18 @@ + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 5821eea02..8e0e9fef4 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,9 +2,15 @@ #DE212121 + #212121 + #B3212121 #DEFBFBFB + #FBFBFB #FFFFFF + #E5E5E5 @color/day_night + @color/day_night_full + @color/day_night_alpha_70 #9DA0A2 #03A9F4 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9a4a31c2c..92e26bb2a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -248,6 +248,7 @@ key_$_compatibility_with_classes_for_ver_4_x key_$_dialog_check_display_over_other_apps key_$_num_of_log_entries_exceeds_limit_for_sending + key_$_dialog_selected_abi_is_unavailable key_$_dialog_foreground_svc key_$_dialog_log_entries_exported key_$_dialog_manage_all_files_permission @@ -346,9 +347,11 @@ Required by the script automatic operation (click, long press, slide, etc.). Accessibility service enabled but not running (Re-enable or reboot the device) Accessibility service may be needed - ABIs - ABIs (32-bit) - ABIs (64-bit) + ABIs + Libraries + ABIs + ABIs (32-bit) + ABIs (64-bit) About About all files access About app and developer @@ -906,8 +909,6 @@ Shortcuts can perform specific actions in AutoJs6. Users can display these shortcuts in a supported launcher and quickly start some tasks or launch an activity, such as reading AutoJs6 application documentation, launching AutoJs6 settings page, and so on. Add shortcuts to launcher Pinning shortcuts to launcher is not supported - Template APK path - file:///android_asset/template.apk Shizuku makes it possible to uses system API with ADB privileges Shizuku access Grant AutoJs6 access in Shizuku app @@ -919,6 +920,18 @@ Failed to grant Shizuku access Unable to use Shizuku service Input fields check failed + At least one ABI needs to be selected + Malfunctioning + The \"%s\" module does not work due to the lack of necessary library files + http://download.autojs6.com + Unavailable + The selected ABI \"%s\" cannot be used to create a packaged application, because the current version of AutoJs6 does not include the above ABI. + The following solutions can be referred to + Download and install the version of AutoJs6 that includes the above ABI (the file name contains \"%s\") + Download and install the version of AutoJs6 that includes all ABIs (the file name contains \"universal\") + Recommended + Download link for AutoJs6 + ABI \"%s\" is unavailable Total: %d item diff --git a/app/src/main/res/xml-v30/accessibility_service_config.xml b/app/src/main/res/xml-v30/accessibility_service_config.xml index 5aae0109c..1ff7e7abe 100644 --- a/app/src/main/res/xml-v30/accessibility_service_config.xml +++ b/app/src/main/res/xml-v30/accessibility_service_config.xml @@ -4,14 +4,14 @@ --> \ No newline at end of file + android:accessibilityEventTypes="typeAllMask" + android:accessibilityFeedbackType="feedbackAllMask" + android:accessibilityFlags="flagIncludeNotImportantViews|flagReportViewIds|flagRetrieveInteractiveWindows|flagRequestEnhancedWebAccessibility|flagRequestFilterKeyEvents" + android:canPerformGestures="true" + android:canRequestEnhancedWebAccessibility="true" + android:canRequestFilterKeyEvents="true" + android:canRetrieveWindowContent="true" + android:canTakeScreenshot="true" + android:packageNames="@null" + android:description="@string/text_a11y_service_description" + android:notificationTimeout="0" /> \ No newline at end of file diff --git a/app/src/main/res/xml/accessibility_service_config.xml b/app/src/main/res/xml/accessibility_service_config.xml index 40d1cc67c..bcb55defc 100644 --- a/app/src/main/res/xml/accessibility_service_config.xml +++ b/app/src/main/res/xml/accessibility_service_config.xml @@ -4,13 +4,12 @@ --> \ No newline at end of file + android:accessibilityEventTypes="typeAllMask" + android:accessibilityFeedbackType="feedbackAllMask" + android:accessibilityFlags="flagIncludeNotImportantViews|flagReportViewIds|flagRetrieveInteractiveWindows|flagRequestEnhancedWebAccessibility|flagRequestFilterKeyEvents" + android:canPerformGestures="true" + android:canRequestEnhancedWebAccessibility="true" + android:canRequestFilterKeyEvents="true" + android:canRetrieveWindowContent="true" + android:description="@string/text_a11y_service_description" + android:notificationTimeout="0" /> \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 57c0b1a6a..c233ad98e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,13 +11,13 @@ allprojects { repositories { mavenCentral() google() - maven("https://oss.sonatype.org/content/repositories/snapshots/") + maven("https://jitpack.io") maven("https://maven.aliyun.com/repository/central") maven("https://maven.aliyun.com/repository/google") maven("https://maven.aliyun.com/repository/gradle-plugin") maven("https://maven.aliyun.com/repository/jcenter") maven("https://maven.aliyun.com/repository/public") - maven("https://jitpack.io") + gradlePluginPortal() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 84d2d422c..2baf56564 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Nov 14 23:41:01 CST 2023 +#Fri Dec 01 08:54:43 CST 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-rc-2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/libs/org.mozilla.rhino-1.7.15-snapshot.jar b/libs/org.mozilla.rhino-1.7.15-snapshot.jar index 0429e4854853e0977449b8b8fa88b18f6b74e405..0727ca07fa0318603b6bd96e72a1c2739e9a8b26 100644 GIT binary patch delta 13331 zcmZ9S2|QHa`^R&KF_>WtbL~ruZ7j)F*@a|FMX6+KA*n2tY?)M2gf>o*qD@gGAu7>E zDN98OMT(@PvbO%8>-x=C|L^N{U(@IPJm;L}JZHJ*T;J#CR<`A=+_{Hu4|a{>zEJoH z?X+hZbIOz{D#&*s#elm)B-*X%_}^2H^^eG5LR0BBw5$bwdOLl@B`h(1g&9W{OrzDj zJy^CU_My{><2DV&eMR}7E6T%4=d~7p-Vjh6$k(^?DJP++IsfzK&-t%5-Pm!x{d4o? z&n2F0rB8oNM(Ugw=&?49RkdxYKk+^D%TMm#FClyV-$V?~nj)2(Kjjg(<6G6HN=m_< z$4({Nt-QN`tmUx1ub7xi*AJ~d@_S66{rI1u?yTcW26P#N_WtLXld)0J&>+80RpqAD41qQlSHZN)}dX9w~i`T0fhkY`N z`c@ViW6@YS!%b6q%!%vna{di>RYt-H=Yn>O)A_5nEt5`jKxyix)hidu(j_qkv>Z<5U zehIb=Vg1(%Q{proR~u}t&@R7*pGl+Y%590B^P)21?Z9Cjx$Il>l>HyLHYakGdNkbz z*FG(a4$D$I)fj9fOPlKSSi~pPU&eBy9S&;1+ zg5BDBU|W}EMM&a_$kounMJ+5<>#MfP}4o4Ve=;Eo$rl}&-ZLl(!Ihj zrE#>{xV*IB^L4$Fz17KH9IDsGtQFjAp^NjTr1_SKY0_8iN(|%3f{HOx{&(`%=H#<3Vt?Qs4dn@BHmCH-qf1ZjV`#gDI^(p-?twXV_NR>zEu@ z^4HjbZCCERi%2@tbm&UIQLu^;$LV4Ew5@k7jZb~jZ@t>$6xLL+exC1L>97N_tL$GC zGak57Lgue*eXUsJedqA-D%&U8nvZQ7H{B`Grk1?jpsBiYOPQ04UL9LbBUUoqBVZzB)O_lyXX#HKj0jv|ypZ0vCVtnteh=1C)6pVc`XnXQ{OHs@)#gtf_R zbZUE`>m!w9rYW@Ts#JTJ+)K)`^TLj^ZqV*Mkf5APJ22|9cGcQe?@BW`<@eL+b$iiYi$YW zzs}mrrFK#&TrEBNp+isJ>5uLBeO^gvhL-<@mB|^wMPjAW*Ox8{vKAV1KQGZ;xAxWA zvtvgtIegtJcCLM45PmLTOR4=6@4Xg=!D{ACl(+XguB=(pE3JGWapSZf_4HqJ|IDk( zbo2`PIIPZj##K4jafZcioHe_oQ-`8-_sx~y^cSM{xUOa5aYf-DaPi>~%JwxDan%z0 zS$(vindZJ7M@EmPx)_cm7@q4sK=*6Z+ZiuynU?|M`cDTejYg6&$c#R@YXUeB#ztenq3(oB?H>;Z8^4 zqB;i^3(;1t(5+KLt1F&NQBqv8UVgi*cJ*EL(ctHmvrI$JJO2!gC`wuGPo=H8d@fM0 zDCXYb6pT z*pu>i7guG;?_JM-YPGCc+>&Azvo?D4+_KOnyaV%PXV_d+S*#i{c zbQk$eVV~$7D!*=U+ZNt=TJ`&7rOS*Y>Bix@WJdcYxsvUrUYynML?PqmcN)s%`e z#yn+=dlF{7)iQon^C7BC`0)d-%xIZt)Q@bF*P5HUX3}r&@_w4r?Ny|fzFfhjP?_!E z*R*(beOS&9vkfg*RJ!tRuYOxVzsb>Pe3NtNfGU6AU&8^pUug@uJ`x?PrW$Pe6KwbM zE0^kZx6f(r*}%dm^MRj|-$S%y-lvR&YJTrJ8arFyn9#!Q?+ny}Q zR_k8%y}#*^L;n}67qfzIx@%ac21p$~cVn49tDM&M-d%Aad*(BzjJf(52Xc(kTjW)| zWZqw%SD0C_DzowaoPxeQZclekO4tQ=cYRYe8;RCm^|KCI%>Jh zKk`D%iTMNVC%5)&S6T7f!ER`uw_$kYiK0K38f!e}t*G}Z(ew9s_*i-NW^Ql5fz>kT zlk@T$-)yqYUVFQ_T}``l&fhG0)oeA+hleZp^!?@K&RX`rbXL)_OSTXUbzGUzHP!a& z^Eb7!1_$3-7Mh4A-L8JW*UB$if1Sfz<(Z$wcev{}e|FQ(5(z!Ny>Xjc_*Dgs;*xNw z(`{msiRaAoquh6IDJ$Gfsf$2djO=CG14eHP6&i^H|%~R*y(+uHfGT*+LSg$y|CBZC^ol$d7Mzi`C zS4PtzUAxb|#UhScu19H6+_GuO2~QKfnUB%uWA_cb9$b1~ZSa1ndAITHx=rtosX7Z) zKXZ%IJ2B=^;UYckb$?|4-PdYgZ$;jVN=jc9U9I{jW6y@^H5m$aUd%T;n-?$N+2rl5_xK&h@mjiu?3u^whYCAV^QeZk zX)-xn^UdaJ3h~_Ui=W@0=G7SW@%*8Lg7XD0e5Sp+Hh8euK2O9f{c`sQ3AL7lpAnDC zOk3}_2#L;9Do)9e5dC`ehx62ty9U*ApJJy-Pb7Wo-HFNK{|rF$-xagWY*m2kfm7pXL&IX2Y1tp1w9 z95czy#tG*s&z-3vDIIryc5G4F(>iote0`8YcTI2I*Jn**cf8Ef?bbdT%=Wsz!Bg}8 z{wH@=n)k+4oG`WKsM{-x9&hySwW;t@?ud zFDy%<*ZP*Ya0jz9-)M0-r-u*MP;cKlB784By&ZpuS&huPW^m(uBRH`T(_8Z&o}(deC?^j zomHiadR;}{SP599MsfumhqlUDcvnAvu|Lu>rmUoQK>dEyjKVmh0F~!@HMPuD!U@&o+ByejxuBU!zpDkHUO266~K8-}CI-9QjGnCSyZ;;+_XCS=%jg zr&-kt4JulHQHq7(0SzAH`nF+qiWu{90?lHJ@+OlZy@5%pn%>`Owv8!kEZM= z8w8H47@qU=ypy1wof+I37jmoHyD-aWNdYQqTyuBJ*P43 zC$3;xx&2W2z2ckZPEON0f7lk%_~!0>*fe`3)h=Op?=;-9G_|q6C#Az>@2BFY-*!Lm zaCDN7U$pz~+BeqMMy$@K#%DfXn`PBHBQ7kv#NK^bqJ89yvYQ4`Y&_f5?VJ@6Eftu=aKp=bM(_ zTW*GvbbTQnooMjeNX0Z>y}~-zJVkpnfA<2Kev^aqBiU&dE><>?`E{|UB_ufL?WDEa0uI9!oA3t{}oZT-dJbGjJ{Q3RgMMk4W3QnHvwHVQY~i;Rzpq7) zij0<<-hP;Zoz(2`kd%wzufJjM8%Ns|SS2o3T2?N9)3W4d&FSx~!XJw6(Wf+HDtCRg z{`gxWE&Y`7)SL1m&pE{_bBe9v-|gOzwBgJ~i>Dj3Ywcy$-ETT4U#1>%r2K&CmcX`; zi^J0Im~k)3n-5;~e#RBhlwVO}xVX4(e(r4cg`-b!zuDVQg`u~!K1 zI#7Dj8e4n$1$Ta^%|)}MDeD$4UU$J=M{B9#rFU_v=Q+o&X&Np;D};@kRhODXxt+6H zLaQBIu>9TAGl^S^rcQrorWl#y+11swoWJAv9m%uNsi|#avRT3+v-+OXv8QhRT4U}p{U*Qqi} zc(Jnd<}%w{@8<0b&Dk_NWk*^{uPZSzP#zOVUU;K!@_?wNH>VdwWA({@P;wb-L%@0060k{lO(W8Q(K za(|TKZM`V)@WUej4;3Ckcxdnl!6OWh2t0In81RU~BL)u>9&vbB@JPTTS!(OW{u?&= zyUD^Pb|B{Ljj~>_6%p5qB91;bu{l_4AVH?1xy|gk7-JhDW}suuY-8+I94SVd*;ZK2 zeo}b9U|V33iG*;&az{xh`;u)y8U9N_u}|4DsDi>Tfp!4G4)UWzuYla5@XMk+KAef- zY5Yt&e8w67?`&+W5aFPJlo|YjsEo!hhhE-cGtm(JAFnSAo)?1%nu$tV*s|DV8v@Tj zBQ0z_%zr*9Twbv)u@ZYixMBArNccOPpN`i5fP!kRP>^pIffbNXEA*u#9%Z+(JuyZK z0cDVJGQT9!ZiCE3A0kO;8(Sa4PNBkfwj8?C24!S(NTJxyHpTSvNU^=0JqJrJAcO~Y zqLBF2K(k-7b+LnGgpfy-*ZIYeY$b&8qx_!^4&ESJI#|IkjJjU4XJKn@^N2XId;`%W z+~pA=RC$M=iqxr)(2=HpYWmtd?v)lTKt)+C;Pn0t)VAr>Ka_!vi9k`e4#-8s>wipC zl-dCWsGa|hT6FMBp#d2vCD{q3Jm39iKiI{uOq#faski$-6GR|@Zg)ZoTI|r*PIfR> zmUU4cuX z1Mi{kjQu<;Pfok<1RhBsu}(MJ3>!$|`3NGrtvHTybN*@n>;=-{MUDUqEog?Zr}jW4 zrgMAp|*$gQ`qEu9s zNmWGWKCtIdf+Q!@pAYOM6lwfFC4?e-*}9a+(M4V?n56#`f?>vlN98BB3FXqsaixVgpP??1ixakp&un|j zK>md4`OMa*yeykg7X54^NJ^#uk= zo`x0=z*KY*6qF=!CxJ6q1fGf-#03S>hB1iUZ~(BhI)PoWi?(E`HXA`Ynp*+pp=E-T zr{ouR$7kRdYSm-5EC=EmZ>V}}1hATW`gY7Be31O5x3|n$!IZ3_@ z!>X~pMGBW8wjko(g#N7@fhADZj%JO*KJd9sPy`)ofSNTv{L{bby`;nM5y*!3Z$d1k zte#CHXaAy6HWghSg(a}uWCA4`)97fU7G!GL7+aR2swMJ~T#Rx134kyU$w7X5~o+V48V{6kFD-)wX2Rs$i{VjrFpMkSQ`2Zk*s z3LW~()mV7!QO?tVX>*iuN=B^R7eb6cnWC}$G~?sBJlzY zH^&?@2qBAZoe*N60u0x~QZh;M8^g`8ynIr$To#f+K@^;WZ7C!IkU?2jAjC?7*j^nc zY1f2A(au64K_tr$^x3ulQ4Xr}f;f-!L)*?}|D&R)jUO6Fh1W4uH(t1*T!>Bj-nbz& zc@-Dm{Lg9Nh7gV_1)zo1@ZSDk(aZ`c3NL96rdjnr%0Q7+T$l1OOqdu~Xn}#AQgMAs zV8l2;%7XYj%Hm(A5uAn^K0|<`f7sF}MHt%8=>ONoBqj=nvV4$-Sx8?5+C4bTBi5ArqddVv zUkLNQpFARtoaoT%sXrun{2Lk^KV22lVN~fc{a7D*IYB4XrwNdPLrw#yON6;o9t%?CwsL#+NkA%MC?aeeIFbe>rN z8H?e@*wBm#B8Hn_Z`BAPgT&NCl+i*4q!edD<*GAD?8wBeFd;os+sOYvNq$jkVM;Pdr2RH`1;B-_GhKuqUB0d~fMWJk*!xv8cTOHkJ zL%8o6(Nrm14JkE>h$3zk46GfF%kp`nD#9fJ$BnR-=Y)$o`iMgkmoyV%9p4MoAceyj zNeZH6y+n;txHq==4e>h@`AXvkSYQ_+rlB%v$k4-&giu6G8GJ5A{Y;8e10sSbSO)UH z=_`*Y5i5{`Rek3XDzcO%vPeNz3b+DFk%cPSsXQTw`U&#}21(51V9U8CPKx7l5U~zU z3U4-D5}7MOR>b8YeaB=8tcV=tA#+=l3893}%R_<48H7+q`P1prC~6uMP*H#a?HUC3 z!Wwl@Ht}0A6Y(j+EH*MAxB~Lmr^6OVoFjzi&?gTs|6J1Hu_7#zH72CsD8be|-JBHh zglL>cig!xT!Hu@0$h4u$5J8J0KV@77^Kd}1%J?!&YZ39QjC@?^!YEK0+Fb7TPn%1Y z5)O*Uc`A&t|0+`K@S=;LqN&hDM{gbxM-}s-yv8)>V%=u4)xVpdRp>bf!@_t(0=<|9 zQPiLs(cv41)=Qyxo-zMXV7nK#-DsPy$d5{vDFSRH3TrCmuRIXVNnef=;g zdJjQxzX)?f8cA$bpasiJQk+$RX>{Z?DSoIxAQ|UK;j9XxCYKahsxbUl3P|xw6{3p2 zLW=7JbO~fm3{Qj_MD_C;`l^OcN7vP$UYi?)@W5tPlDN4Wuxu|6jvG9Pr70M&fxKm<_QnNRh>XO22fG zLb(ejk_<8LehmCGsDocg2WL&_q|h)ajEBIxOcU}p>o-X-EvWfAKWfy0S?Qw%D>z7q z6j?Ne9BR-4UwH;eoaqc{a<{Y6hTx)^B)%-hU=xn;&Lc2Qn#6OZ7!ynA7l9Yalh{xP zjxC?26G9OwP6wayRa2}3KBgK3_QY1qBz*@A88ozXCgkU~5s%1_+v3ZaP~d_IiCc^r zVn|sRVx?M=BtRFsJ=+$E>%q(qv|)&nC!TIyD79h%iIeOY3^a2Vlv?6UlBij@F`p)4 z>fuw7_aZ3dp#t3+ngxYkFCkpqu^xBQRn8rngcZ!eUaTUC$SSCA{6dB4LxDaY5-a&I zgpi#+IDTG3k|X+%<|+PUpda*cL%t`d$^hnvA$0#Ts}u7T1B;Wi;UHbN%88^DY1 z4BROQGY}SeQr}_-t$7CXFdVyQ!zmy?h(RTfPj3l_j1bb{WiUiJev7v;0&KjS#QTk4 zd0FlygdX~71Wg~D5MO4)UKc(ax5hg5k!Bz+SluB~NFHKvkf<4?>Czmi@5WIQ=N)6v z(TFSDsO0AY-hp^n62;7gJ$T)59#Kp)CiiVlfIbfi>O* z-+WB)SZw<>;#VJ46fsoEZf2T7LtUk)$_zI|L1s9dflP5rKKNu~h8q!J5oT0QSodPu z_laM7A`+Z<@5y4Rjl^)sAl+w>wJvjr=jne$1PM1XM3A`!;2F<&j!a}rgF|+K1(c^e z=VAFYOCo(uJU~Z_E#V}6z8TH3f?S>@%w6L`8~r9M+*ZQki4DIcer1u*TLwSMw*oi4 zE*_bVm=wse+B|4Y={*mNqQH5O&P~H)a}C1`VN^K}ist`En22qS&%(}(@Oct_?Vf$xXu3ZE^vnZferWDsK9+4t^;N!z{Q8?eu$Au||O{A^C4ridC=b|j)Wdql;)=8LY zhtH>6Z2y-C5+{2cW!S-CSMUqZwt&(w$P)}?xd2w(B@9_Pz>aWi0rdXkgiyr9B#@RJ z1S4n<$=xYH`dHh;dCFao5L)P>JtR5Amk`>B<^b=3PiqL_gS`$VJ?b4`V>8@F2xX-0 z2-|Abc2Xoe!b|#g1SxtQ;Rx{)UWJ6)%qTGy;$xwa2O9^?;;4H_yJ*4M-_{prk@kSWeJS4(qiK6{E#${lZ3^v zB8D0!5%UHy8v3~yii$Pyuo)HzUqanrXv&ws++O>h6f&;RuRpz{FzUYwi*A;fXeZz#%Mh}O;+u4pzVZkz(6d_imV7f5*QNc2ppgm5L zh?)~~;wtoN;Xjo;cj0-l&^~u)H+uz-@S_fQs7ZP)Ni3H`AMg6{1Ow6iAX>RK5ZjC8 z&{3@bo{f$os^HdQwgND78;PB^GR0AgHF%#Ua7h@6PlW>>Spj3UCW1$#kn>h>j9dwh zKXwpU1KnN;spE?!h51fMowf&&r~@PkPGr(iGC^`rkfbMrDMQ>yI9Nm$LG)4ODJBgW z6CchsPydq#l{2Kn#?wrRi5{K($D#2Y;jjkFxkA>R;tA8^WeF*UJR!2e3N*_LmT}NM z0;;1MUbq?DXnehK4mxoUsvZAYG2a_{j2+VBd{e(_k*s*&& z!9q%#A>OHv(BjSbX5w36)n?ou3uq=hRFF#$ge=*{69TA&AVnRMh(a*DS;pRyWOp#^ zp6h8SBn(Qw4uloqKRH^gQ3uyO^VrJ@OqwMLI@8m%7*xrMOimk zBItVa1*ldRc6gf@u`Q*qFM^ca3aGKc;cja^!(&iHm2Rg}c7$f-0*m#XV7GZ~0 z^NNb2249va>I;W93c@Dg{%tJyqt-8&VsX)|$vZxG$0V|Yg%yU zpHS!BB^`qAuqGVxqM<3qBVIW+TJ(@bCkwN7fGxUVlI?aqO9BP&fTn)Ir=Oj0!nsKZ z;}@jZ+{{uWZ*N91M71qEOh+*>ko3qdk~GA?6<75mDOUEf;FZLMdieWEvY!h_t@`hT zP)A?5P_S?cirodr_YN*DhCcsgF;J!vjAXbJ96p{=37b4Rxf9pKL0n_NKsxS0SC%BFduFwNq8LWAWfZw&?WZlSy&N#Iv~V? zy&zKFlOm50HXleK8V^G4BO!dThkeBFO!SWUp4l4@e;AR0(#9}Gj{cT&`RgUHA4 zmDl!x&zvz5kL`nLJogVNy!Jy9Rtlo31bhYx9+eP475nk|Sf&t<@FSfBT$k?%s!V_; zlM^70RCU4{igjxezuM?o9mEly2yG-UAczcN<}u*IR3g;9&Vff{P@cUc9X(8hz3soV z@G(cyK{=2uj1C+E+u;LHQ_Fvth3b;vk395)U>hWCcI$aXB#>zm>{|~KCXsA{Ogk`% zP?Leo&6`953F2Qpi8K%-@8cxW*DDDpGosZcDR7U87hxmuB-r!PQ^0erF3LKH>ma^^ z&`ITmgqVr^4}#@8{68cIaX-q-{cP0e3(H~FA-J5)O9o{iu83|Xk^SUQ_D@0zWJCOi op?h`5k@8`0D*YqKd;flRCAO4Riee0QQh)HUIzs delta 13432 zcmZ9R2{=^m7su-kGt9ya=4M|K$sSUqC?p|8i6|sXsECAQltK#?@wRA>Xdx=mqD@E( zZImTMrNx$#vi;9>{WSib=RWuOe$IK%d*1Ud_s&&+e&y?ol`%Uf?!>N9RxGCPSeK=d zCpuxmL}lc;m}0NQV zpLQ&?-)Oi(cayopr@u7+(kbkr4*NL#O;VPCaW%hEpWd>D7l5erS!R)4)FVbYJ( zf#@?y)?LDFy8<_^FsTdRU9u}n#?~C8Ic5dw9dF>;Y}HNGsO~swv4%5 zx+P{HQ|oR{z-HsLN=Bex!l74rHgne8dP#kwc|$GPxeo1~ISa#SD|MpAPGqHXETj5%K$(hwfQy(DvT9qu^d* zOH4_Au!rZ7(1u^ePO*l45sM9+7Pik^8|S>(phYj~VZr|17?}V;>5A`io0BKC7cR9D z_$F|{TjIA${N%!pJC;Fpl1e{4=4`7?u{SJ>49iGH4s01RR3I6;OJe#|fWCb~cjlPSC6#jH$at?D0g zzNu4c8(_+w8R@<9y9=V`%Gf_DT%)hTp8t#GB{zEk z({xF(bda5^_N3Wuk3{M-mE%@n9rK-@@gCn+U`U7s3(HZ%YwS7sNk%FrGy6%1I-r7__ zTj>ySj%E~R@nCL>mO)v@WdGNX zc|zt!&DwGbhx9_HDI=}54BA$f=v>;$97dq>bocXjtDPU+*lx>+(R64a}(PPh#r7x$a>uO)IesS`3_q2hem^Ax_ zby>Y?lh2!K+1!uS)0phFA+XFhGzu5Z3zELU`~B$UAI`3;p>2lKzV{dx$2^pfx0zCL z>Fm~&zHM@%Eqhf@s((-QuV{TD`E+N-r2S2z4SmT;IyS`@rMl-hx^ffb^?scVf0|gf z`De?19j|9%^PGasl^%G=wyixHU|=+P<~GZ+r6%_)j&#IZ> zX8FLZi!BjRPyDyG3w+U~Z_Q^8Jo6Hmt5;iIe(Q@}?gL(gT%*&hwJWOSY%1n{5|q>V zF#G%9KFR`6s5i1uc8jU)tK?;F11L+Rj+u5qTK*Pt})f<>zAb`_DwmLdpEa5 zr&}!c-i5Wluh9+f7M-2bry-})!u@2HwEmjqVXNrlU-gny&VK0LkRvQVa6L)Ex@=k9 z$J(4U(-++{`&@;2`)rGKd_xrueX8$${&QXavs+c0nWl61+^y+$j5@h>N*h}p@_za#qw^(poPweqgCBRkaak@$-_v#cce+fQ#9g;%KQARs2@|3yVH@7Qeb?~r&Svxe#k`1|>M+Ot>L(lN zPSHPRubVJ!%bX(`wKZ4wu2?HYDKeHh|986d{Vf3w8sDuCCOz@}l@MSkdU(sDtzpV_ z)qDCTR#$6Wo}yo_aY{2kGCQX{-|WVZHS&!$oNrpw)Lm?v;xy#v<~W_88~6A;cq&sy zeHk5Avs&Ggx@kbRTuaJ3DTT*=yp*@%dHL@QBX(fTj+Tu#3q4JxPS$w1h$Pqql)SZ* z|8{fA1*siTy>g*)sV6S&|5%-NG^FDA14?|-xA!Se-g{Epo;O;oE!EAa&q+Sdt*sX; zJ+5w%=a#%UxV_^^*6)17cm0oN1?+pD&OtM!x5sRLRhwRMKFh&1?(%9|?Q^`>*$-dK z)G9aMca%CKG2B}r@9FN~GlAjia(-W6Yf%a&p0 zHHuyPle4=R#aACSg&Pk^4X>#j)@bAnuYcQrw`b5a?#^&>=djU-!Mk0Jz5V!*-H!cU zrk~S;x_fwi1u^#b&+E^c5bUNk=pKFZb?cgeJtuD#O&E@6B(E`wY^WWGo^^=R;ZZ() z!tbiE+@sM7kFKe49G`io2^mFFHeN_Mo|V6|!PYZ5_2N0z`%6}F{vNpJ|Lcu|UttpO zfop1&(WgzWeyJ+UlC)pGrYAK%SYR`-@=4XvrkbT8lJbqM(X+Mv&rUYod zK!-}Xk;jf@Tol{LaMtsBZPgO;(mK3A!q^$e(me=w=I!Ynd7&?;cEpi zWha~awZuB@gZwf&tuidAptiRvwmP_H{yg3ZhZ`zc+hRWz?huiex;&e?r7)prp8GZq zt8D#MpQW1>A5?BO(AYDrt;8VEOwKUxeyxe^>4<`hn%rvym zJbyMge@NFa+t+zwI)^!fb?S@I=9Ji7Q-j*Qf&vDsWbOBL^%i(;Pxn+XH7}Id^s(Ho za#oTeZ3)Wk?yo}O#3Rc~!tUusseWbdkn zfue8YY2P1Gs+%|T?Tnvh^t5;PhS08Kk5nv6CSoq1Z^UPrUCUmsKkpOEFV?yG!ecAf zi~3C_I-41@Tvtu3xvI6nYHwL*_pQ78I%1x5y40`aNoAQN_Bw66C*!}ycB9{A`m*B> z&zQZDx~4GitU*WcGU|mhgIPTdtx;4tS2<>cZ;g}I5|xv&ZN{7LTK&AcE%b2nw`J9x znMbUT=EsLGI!Ni|Ojwt{MASU}5&fswu^Zy@MuAo*a;61+jDB9fU9>www8kVxR6V|- zLc%$gd&VK0cVy2}P0sSr#a!=89Am50m#l)>qVGCP))qOo%xMfgFY{ZyHQ;rIl`Z>C z=$X)9p`05{=l3>*|Cp>=X!%TKS+`??jq`=fx<3&UUug%$t{77Dzu&xW&z2uWQwlc^ zhTPY8j+WGqJ)d{`?Bg3537603DNE0#>1->|5AAhs3pBlbnYXen&}_C!(zGehrpm@# z3{H%s3U{1pFS{riStTyrk#YSu$KrR2m+1q6ezh&K4<<*|FX*x8dt@AUDOZD#Qmr5D~ZmR8XJ>NBp#L+m7ddVwHpM4a)a5ZNJO8l@q zsbty5^+p%Cs*IvX20TuTYUY!SHE~CFomp)CIk95L4~yk;F&4XD%W55U4~XpLSR5Uw zT_fD0zfgXG-K-{)#8yRzLBB&G?HNVA^M3w(*m-M}Bbzmgc5r51Hs{!*psa+!W)IF5 z5%YB#!NO5#bE6Z&2W6*y?fKa{scPrLYd?gXnms4~*;`Wg@Z8V%AO=tV>@oSN4*jW9 zog6-|^W*C8)^u?+F41%{KT<1PH(U6auXx4OWZ#V{xQ=u79PaZQLI&Z7n?od}OTAyp z(ASu%N6@VPXlE46a(cb1EhQ*xL$HBuyzG66#(3MF1Jl%_llM%@?$d8s67@1%qB8lQt;zFD zq1|Qer+ccBXg9)4CdpQO>Ny-GHe2Y`{sl%)N}@gX?$EG087{DW$=h6R_bp4_zJb%ofe_aC?Or95{mi?C4H8#-yf%d=XwldA%c++1+4huI#P6diTq;$6!p zm3e#8%L1d0?d-+^?(g0CWs6#~V0B%m*o8)~?fu2=2Niu@NeWjycJ@hm5LTyL_ej>^ z!k2@J^(7zNEW>7>+nC8o*x2J7FZ0BXHxzs2@Iwur(2X-uX|>ji{Lb&T+S3=Cl$p8v zndQL2Fjo#wj1?Da-+WP|e9t*`@AYPkIdRs-UQPp-n`q|t%{$``+Leg5R!+Vor}L_H z1-n#qUFm-7VpFM7%XUM(x<_tGG6JFjk4&m#=pAlqpF&!jh9ZM!+&?|dOE}iXx%3ln z(O{>d`J24~m)h(LJZ?pot~m5sCHdx|)%jirSoCkZyfSi&&njHKo?1Nlhc6RNLe#^t^F9X8G(Qw+nTK6x2i&W4=B>_1H1(YmmFO`f__f>KZ|!hHN%5^C z+kQ{(t*gmDzxvUMzp5*{G?p*DO65gIwReo9fW44T);Q9c^$>mNCSw=3o>aWvF63r7cFPtz-@?UPh#L5s2 z1y6GiZ%$v7$?gyqFYNK2{36sM_YI?ZB`Z4N@+8LarsUfF?~-y~YfjngsXG&k7N^Hqr0jY{y~tZ@%HHF2ZQ%lsav&&zh39Mb+pFUJQAHM6`l1W2eFPE-m~Ly+@R(#&84q%&5L1Oqdyydyx6uz zTPFWc7^lJBKFd(Op!kV=!}|Sxr`pfbB$f%fo}zzq{c_}8*6otp2WMT*$vK+6uC~t2 zy!MA$TmE+3v%lBKrs(jtgieLxIL9)sN&E&Ho;gYyv=gu7t*ELWqZ*Ia4Dj-v>m zcy|g1eJ$a#(U$-Un>k_h@7(rR{$pOkNIH-rik8%H)iJ@)G0a5vn<*mb3V~nl9K%Ye zuLHtOean@`P9}_D2J(B$or`VSLy{|dDQvRe!oG3+p7~8WH1$y=kmfsx-7z#mQZ)tS z(0&3WP>^Q>S1MIQKmxVB0j#(M#P92216V6A(>$!&5pBR!D?hued3g$Q)CDz06a^gt*EnYwx)z=f{ zNg{|WvfMAgL4HBtxaXh%e_2Bh5DvE3-{UB_kt>5L8n~vISSBe{-*Zhc^$Vonz30xt z;&KQfi%N3^xaeXV)b;Os==jhT62Hz95J&2t055L@oKQ&M<=FR|WL|e43J9aGja)s< zwV02XH38Z2V2p^O^d`vt%NvqZ?G~gW(`GIewKqYryx)z-GqK=?@q~(wH-qC)BOmT; z=2~IPTlmOG#1pMhsUab#OZ*2&xcTFF2SHT!fvZb-u|NQVo zp;_4Z#YnN0tBAhY3o?+f9E1~Sg>YY164;5N;w6ag^8^*p;a09b#WQeJwYPF-Qg%g* zC|$JTBUg{|Wb3F>+y;^SIS{GlBUhS|9zDVh(eV~2uJI=buD1(a`NW-ywta%JrX&!; zdtxWb{lry6b3b!uU~T&drizYzh9RV%hX7fEx@hP#SDlidGZIc7S+{WwC^vgX)rmGp zDC_4xMMVQ`Tw_X8-zZw~1>*X$Q1^GP0=oPK7KE=jDK1D*)yS1N_bVjF=8`z#E7u4s zQ6j~wuds9z%}G&ZL6t?fzQAZStf>4elDlBcK^PtV#x=+2)?-8np%yNVWWPfnPn-y> zh(w*Kk|^jqte7AdlHC5z)yKX@5yBZ;9Z%eq(S~-&UF#?*%G-j~ z)>7HyQlVs#4vVs>3g}b^^w4&hB%K}5LscOutU6&_o>ipCdO=kpXX#ZZBuRfmVzDmp z8SW>=`Yx!m1dT>43V9TCj4FU!g=lOP*#+hJ(gpLK!WlJA>4p`r5F&G<5nZO%*LV0wWwbg5pom*sOmid+_m55BFX!4fX%x&Zd}U{X+{V{uf7-8mj7r z0hj0gQ&c3AN28PbWa)26D=L4)I2T>|4H<1J8Vxi2n>&Lt=k|zFL2iApA@b^J=-?k% z#yNdplW7}O?q6s^i1h~=uNW9XQ_!hF7~zw}F!InpFrzCC(SbkQRoD_^;ttF2FSMVs zScsfVT{j^C6ksnTjNUzm$=vZ5l4@W1&&Wa*e<8Sw&nQaw6`~`Ben7cFBS;Fh2MaM! z5P_0{N72(wLO8jo>iZ#Jf0Pg|SbREhpNgc+aU2!p2=kv>XD<^r zdGs+yn2WNXKn3CjaA``w6=8I+g)W5@x6lPqPM$Co1sFn)Zwcd^ynjX}k`{z9KDo+| zxYvc{&?!^!cP$d;FQ;W8zuW#IVF~gmrBNYl;!S>|H5E6bT)xGRe%}_JgvzP7I%Q=s zKbNL~tMWa5w1bB0Vjni6`$D(^ipdwIAEh_?d#IXV-MFBg@5UUMsXq85BtwU( zn*5%m9*xlKW<1mvU6QbYwJswM-AttQG zn7`vO6Fu*zQ_)Hm*w7$pJH^8FDFX09FtU_7S-2s^o%&Bvk(wGq6p0XT3qB&S0{j@G z#&i*IZR3op4iVglvQc_eU6z413B+DCkZ15OE_pcynmC0akB*Dtx|Fj2REH=eQ9pUa zrj6WQLBlm{=&W6N1W6-J6$Tq+vte1)sxrvE&Bhl|hoXU_vPYE*j@R*Mfk`jkJeNK^NtvDPE zKXOT-lgHqYGgBiDsh+qthJ_JV0$LT_Ac=z@)rP15*$O3{yhh=vx*z$s9Kp=Kpq4t2`lG;~4+*Tdcjj**$z z8YU?$W$`)KB{nJAIZOt+Bnw+Xl}i#|oGF3aH6UFnIoN9lq)6-_htI|W6i9JN4xfo_ zQYOXKDNLC(74X-R2md!}B=wQU=V6bvNI}y@CXqcwpQQMMAKF~yz`%dkbuh`T(xG8yXUHW@d-++D|r8D_qk6l`UvMCp1$ z$f2joxH#IT4AuV|I!3H8Rs<;)M>27gSPARcc?xt(k0i0pRwjqcrhGe-|A^0zAsxO= zfu~}1JSnVIAeFj(q)1nR!CpB?ia#p&46Hnr6n3h(88$1O6qi(ChW4H&#nUrT4(3!S zN6I-gPYs6XG!@s!?q!oAdn!CnvT{iAH5cY$H)~+6j-00tH6XRmA4oi)0k0F^yGWt+gDH-lOTlUk*94!5 zzet>?2|m*XNI}xCwB)YH#BJW|d z_~$HCl+Wuro5dyjKd%k_Png7KYtn|PTPVXv=IB7>TPO38!#a?gff^s_)q!bUs?A51 z>*D6vjTwBT&yXdBs&t{6r;Pcq)O6ek8=A{UOwCy0`!~6KGdhtiO-g- z59wCA@{x9Z=(fe3B#NFaHnKN>h#%MR`5ZHVx$E;L$;fPW8NjZ1w2mN?k@XB{Am~qs zY3KwYY)8dCLtF^;&w!0^ERZwmlvkEEObc1R+WfkVH0_rH)*m!U^&C(6~Zg zO(7kgAQlse7(-H<)5eH2`O=zh46#=o9>eg)V+?17;7O9Wo?fCa}EfE{qX-Y~xi@Y?y;D#p(*s{W&-fn^;KPP0`vSmMn6oLdeT= zap{TLXx>~LKJU&2SCta9)D(}v603;zQb^Yfr=oABFxHBH#0-;#tvzaHpfoes^!@zg zH$f6!^Z8W0VF?q@a#?h*nk9hlnc{Tp#2eBfa~{;CZd6FtKyIx0(BYO^(hNib`OF8O zj%JeN&Bt{x^$(=zpN}ubCbf-uO?X?2qM!x1HkxgT+hc_sQXFH8aL^M==#?f-5{(70 zyZdDbu^LlJLsbiK56tEyai4;mtYEQgy+$4jaaFYCjffcWlw+f6D~PX9OJFS&R42kk zQEy>I-DnWuKd4UE6Ar7e;dZjUbtm*a@=JP$}i4 zcjIGGE;{M}P1-9-0!>8FfCKzoqP-p?EadS9W^BL-)>5P+)YYqnuxX+Pj^OClN{UM# zMLFb*&tC>Uy=^4kvkc0V_=6M;JuvX1ScsF>J1(P`Uxb4XrZ7z0wNiuFqrZ(lE{9mY zR5Z~Ecf|s_cd?AY-2+!-Q1T}+Z_XQ=xTXHtB0f%YRsP+dE&J==?PxZ;Ad&~g{3$t~|O zVvSAlBSp|UwixkG6E?D334;;}MV>2hFDz#>Y3^7FJKHsUOmI-3D{TB9QOMH`9!{pw z(7P}Nvj6M~t^e>ytmy{3Lt`%?+_5vqh`T!KN@q)segru+F4N$XWUG6ta0Xht3Nn>D zGe)ei$LGcb9VuqAsp!TcoP!FkutoX)6Ld0{^!k2<%|VyeKt_eDA)~76BpzH1n=Jbd zISx;EcvtX!NQ#HJgqpW+#9~XNGknjf{&0sFx$6P2@r%is1bKFB%;X?LdDbIYxKz1 znaRFHf9j+y+81_~wich`)p+AFhpE8x=C^pq@Xh zNlQ~O{IJ=&4xfh2STshc$jljfe@Qt0b{dbx(BD>=AxD4cu-19JjfqbA!_4e;c+|crUy4|M<#n7-0E&=n^mff1Bn8XhOR`9&3?@YG%o}X+H39yq5|ZD&bI( z)v!$%c^aY2+@4MiE*`{6-QYi8Ye2L|$}hhKKn%ptcSuvU;{mrAcO@P3W18Pl_bPw?6(Z*VJ9ahN&Yr_t0>05 zF&`)p4%6X3$B>fLG_-v)?uRvM5l{>1>WFbr$74vzC=9x5)+4Yw;)TJpR&NHG_K7X< z8rc*EUo+GV`H1NjSg*3iW5f^(f&Y6&!Z`c4K$Qwc#ju4K6FG+yb+aMO+2OFzk{1&~ z14Tr@F)14Xslk5||0AZ@ZckFYT_Yw!eu||;LVo8rlXy`iJT$hzf4_(jrQ4unZjo>* zydiv^#S+*XOWs4=wNczw_;uiNkQD7(q1MHSY`7!}iW-(aCg`a0xEP)6t|baW`QIXK z>f0b=;|HYJ{SZnv(w$7jxIzm)CLR86gVQ;*k`xcC#3qs6BX1Hx*6=3r6INdgyxx>V zLsj&uNx|mf3o*gBV}gm|cut1D=bbWS4<&&oa-53KG)nG@Fn%5$QUuE*oln@MYJjwKG5wWl@7YJ8|LkCEPOuv zrabDPt0F%7l|gAIa2rE$bo!dOGVvsh=b3^&zi)MXPdYVYLA0`cJTvJjK@7G z@vWm2o&eJ+CZ9)?A(Bgg(I|WwwM8U=?f%yhrH$$mAYtqF5v7I+sz+Ru z7`!?~x9=YkM)W-pVfx@GiXQr}6n-=b{!Q&bMVtfhQhcvRoDDDg60+oT^rG-MuT-Hi zFHvN;7najr)iJ_A?R(+S3c*j|hwyr}g z4l3OTKloQ!j}a-PlL#B_z#@Vuqdkex;Khj0K#H~!4D_8KroMz(6YcktU=f6kUhf%~ zfAMb8L1gcL4y8%3-lg}B;{C9*r(YmN2qD}{Ns(LjUxT8r<078@LO6I)cyun>uFKUx zl?*Nm= Build.VERSION_CODES.O) { labelInputStream = Files.newInputStream(Paths.get(labelPath)); } else { diff --git a/settings.gradle.kts b/settings.gradle.kts index af36e856a..348210db7 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -54,8 +54,8 @@ pluginManagement { "2022.1" to "E", /* May 3, 2023. */ ), "android" to mapOf( - "Preview2023.2" to "8.3.0-alpha13", /* Nov 13, 2023. */ - "2023.1" to "8.2.0-rc03", /* Nov 11, 2023. */ + "Preview2023.2" to "8.3.0-alpha16", /* Dec 2, 2023. */ + "2023.1" to "8.2.0", /* Dec 2, 2023. */ "Preview2023.1" to "8.2.0-beta06", /* Oct 11, 2023. */ "2022.3" to "8.1.3", /* Nov 13, 2023. */ "Preview2022.3" to "8.1.0-beta05", /* Jun 14 2023. */ @@ -85,8 +85,8 @@ pluginManagement { fallbackIdentifier to "7.4.0", /* May 3, 2023. */ ), "kotlin" to mapOf( - "Eap2023.3" to "1.9.20", /* Nov 11, 2023. */ - "2023.2" to "1.9.20", /* Nov 9, 2023. */ + "Eap2023.3" to "1.9.21", /* Dec 2, 2023. */ + "2023.2" to "1.9.21", /* Dec 2, 2023. */ "2023.1" to "1.8.21", /* Apr 25, 2023. */ "2022.3" to "1.8.21", /* Apr 25, 2023. */ fallbackIdentifier to "1.8.21", /* May 3, 2023. */ @@ -113,6 +113,7 @@ pluginManagement { ) val kspPluginVersionMap = mapOf( + "1.9.21" to "1.0.15", /* Dec 2, 2023. */ "1.9.20" to "1.0.14", /* Nov 9, 2023. */ "1.9.20-RC2" to "1.0.13", /* Oct 26, 2023. */ "1.9.20-RC" to "1.0.13", /* Oct 12, 2023. */ diff --git a/version.properties b/version.properties index 16cb90b7a..195be7749 100644 --- a/version.properties +++ b/version.properties @@ -1,5 +1,5 @@ -#Wed Nov 15 01:48:33 CST 2023 -BUILD_TIME=1699984113908 +#Sat Dec 02 13:50:55 CST 2023 +BUILD_TIME=1701496255635 CMAKE_VERSION=3.10.2 COMPILE_SDK_VERSION=34 JAVA_VERSION=22 @@ -11,6 +11,6 @@ NDK_VERSION=21.1.6352462 OPENCV_VERSION=4.8.0 TARGET_SDK_VERSION=34 TARGET_SDK_VERSION_INRT=29 -VERSION_BUILD=2180 -VERSION_NAME=6.4.2 +VERSION_BUILD=2222 +VERSION_NAME=6.5.0 VSCODE_EXT_REQUIRED_VERSION=1.0.8