diff --git a/.gitignore b/.gitignore index d13fc270..f70f46ef 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 4efdd996..ce4d6114 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 a4b89880..0fc23c64 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 89674fd7..0be380bf 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.Context; 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 8302770c..f3809e14 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 006fc8ba..35d9856e 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 65dc3388..ee4c18a8 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 644838fa..92bf09a4 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 d767f4db..d5266146 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 @@ setTimeout(console.reset, 2e3); /* 2 秒钟后重置. */ titleBackgroundAlpha: 0.8, /* 窗口标题区域背景透明度, 90%. */ contentBackgroundAlpha: 0.5, /* 窗口日志区域背景透明度, 50%. */ exitOnClose: 6e3, /* 脚本运行结束时 6 秒钟后自动关闭窗口. */ + touchable: true, /* true: 窗口正常响应点击事件; false: 点击将穿透窗口. */ }).show(); /* 使用 show 方法显示浮动窗口. */

    更多构建参数及使用方法, 参阅 ConsoleBuildOptions 类型章节.

    @@ -10221,6 +10359,42 @@ console.build({ exitOnClose: false }).show(); /* 效果同上. */
    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 @@ let copiedKeyPairC = new crypto.KeyPair( console.log(copiedKeyPairC); + +

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

    国际化 (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 638973fd..9e003afc 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 a45d21ba..6127c53c 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 4221e811..5c7925d3 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 ec56e221..ab4354df 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 e92ae7c2..22a30ff7 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 51f54bcb..d9786149 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 952934d3..dcc7a5c7 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 22e85448..82b9fbd8 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 6030b91e..5389638a 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 be040303..cc363169 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 5c74d443..6185aafa 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 dbc183f0..df963dba 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 @@

    目录

    @@ -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 c4513b7e..780dcf99 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 @@ setTimeout(console.reset, 2e3); /* 2 秒钟后重置. */ titleBackgroundAlpha: 0.8, /* 窗口标题区域背景透明度, 90%. */ contentBackgroundAlpha: 0.5, /* 窗口日志区域背景透明度, 50%. */ exitOnClose: 6e3, /* 脚本运行结束时 6 秒钟后自动关闭窗口. */ + touchable: true, /* true: 窗口正常响应点击事件; false: 点击将穿透窗口. */ }).show(); /* 使用 show 方法显示浮动窗口. */

    更多构建参数及使用方法, 参阅 ConsoleBuildOptions 类型章节.

    @@ -624,6 +631,42 @@ console.build({ exitOnClose: false }).show(); /* 效果同上. */
    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 52f637d8..4b7861c4 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 @@ console.build({ position: [ 0.2, 0.1 ] }).show();

    [p?] exitOnClose#

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

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

    /* 脚本结束时 6 秒后自动关闭浮动窗口. */
    @@ -245,6 +248,16 @@ console.build({ exitOnClose: 0 }).show();
     console.build({ exitOnClose: false }).show();
     

    exitOnClose 设置为 true 时, 相当于 exitOnClose(5e3), 即脚本结束时浮动窗口在 5 秒钟后自动关闭.

    +

    [p?] touchable#

    +
      +
    • [ 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 081e6cbf..62dae8dd 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 6fc83b5b..98bf7f74 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 7ddda358..10ad1890 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 25ee6694..d7ebc189 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 3a34a17a..34783b01 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 3a58b583..6a097252 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 b3e463a3..f2fe88d2 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

    索引 | @@ -315,9 +317,10 @@

  • Okhttp3HttpUrl
  • OcrOptions
  • Okhttp3Request
  • -
  • OpencvPoint
  • -
  • OpencvRect
  • -
  • OpencvSize
  • +
  • OpenCVPoint
  • +
  • OpenCVRect
  • +
  • OpenCVSize
  • +
  • OpenCCConversion
  • @@ -1600,16 +1603,18 @@ app.startActivity('home'); /* 同上. */

    这些简称全部对应于 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 @@ let cipherB = Cipher.getInstance("DES/CBC/PKCS5Padding");

    参阅 OcrOptions 类型章节.

    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 0bee939c..2926aac9 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 225fb924..d009d785 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 9c09b907..8f4ecf14 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 645a9ca9..a3acf742 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 799f33ed..2d826d1a 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 53258e11..2f0b2d52 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 d3db0c65..f5ee8fe9 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 87c812aa..47a5203c 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 219431c1..723ab6bd 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 f45b5ca4..13ec6158 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 94013931..a5147ed2 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 5ae2ff59..fdae4a15 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 8edf4bff..b1d2feb5 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 d528d86d..283ca7a6 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 2fa5676c..b0487bfb 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 fb8dd1a1..e8bd3642 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 5fd44f56..16cfd83a 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 f2622215..165b8e6d 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 @@

    -

    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 80d90b19..7e9d8fe8 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 003210cf..957bbd6f 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 c8d9bf67..1f523f88 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 19c90e53..6146b601 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 293d24a9..430560eb 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 f8713dda..adbb9bd2 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 54eb5209..ddf1928f 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 9f5a2f97..94ed546c 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 9b861f09..3e6d76c4 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 314e5e13..98369ea1 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 d5fea32d..3cd7dec6 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 8b177836..98c548b6 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 @@ console.log(Mathx.min([])); // Infinity

    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 d7f907ee..c240d322 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 0d7fb269..a4f62f73 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 29c9cd2a..897402a5 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 0a80e80f..8bd689d0 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 85a4f226..f244acd1 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 9c0553a9..53dd563b 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 267506ed..adfad7a0 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 6dc9097f..08745bdc 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 eee107e4..bba07506 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 9734ead7..d1ef0c93 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 be1930e4..75b38a41 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 6706a025..3b25e9f7 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 db888690..2925186a 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 @@

    -

    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 55d9bdbd..57090915 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 8ddd9510..62a436c9 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 @@ device.vibrate('SOS'); /* 效果同上. */ [ 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 @@ let clipY = (imgHeight - clipHeight) / 2; images.clip(img, [ clipX, clipY, clipWidth, clipHeight ]); -/* 使用 OpencvRect 作为区域. */ +/* 使用 OpenCVRect 作为区域. */ images.clip(img, new org.opencv.core.Rect(clipX, clipY, clipWidth, clipHeight)); diff --git a/app/src/main/assets-app/docs/openCCConversionType.html b/app/src/main/assets-app/docs/openCCConversionType.html new file mode 100644 index 00000000..589b8ad7 --- /dev/null +++ b/app/src/main/assets-app/docs/openCCConversionType.html @@ -0,0 +1,423 @@ + + + + + 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 00000000..4bc2e0aa --- /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 6b0e5535..c2f3f98f 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 @@

    -

    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 0260c2f5..594a1d1a 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 @@

    -

    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 26ec81d3..376defcf 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 @@

    -

    OpencvSize#

    +

    OpenCVSize#

    org.opencv.core.Size 别名.

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

    let size = pickup(/.+/, 'size');
    @@ -233,7 +235,7 @@ console.log(new org.opencv.core.Size(1.8, 3.2).height); // 3.2
     

    [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 ea001330..faace9d5 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 6d135d12..8b0d4ee7 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 65bdceee..d0056099 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 d2cf59cf..7421027f 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 @@ √ +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 44ed91b6..7a6fde0d 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 c2198303..40ba2520 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 bf9cb9ba..83c0953e 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 dfa3d4a3..fae32eb1 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 d7de2599..e05aa550 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 93deab3d..0e2e51d5 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 7781eff6..439b4855 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 80e7d153..9b9f2330 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 0cfe0e2b..9b3137a3 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('pm grant org.autojs.autojs6 android.permission.WRITE_SECURE_SETTING /* 授予 AutoJs6 "投影媒体" 权限. */ shizuku('appops set org.autojs.autojs6 PROJECT_MEDIA allow'); +/* 启用 AutoJs6 "无障碍服务". */ +shizuku('settings put secure enabled_accessibility_services org.autojs.autojs6/org.autojs.autojs.core.accessibility.AccessibilityServiceUsher'); + /* 获取当前时间. */ console.log(shizuku('date').result.trim());
  • +

    shizuku(cmdList)#

    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 d7deffb7..f818172f 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 07b56a17..f9d6d369 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 b9c997a6..80cf3296 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 b8eaf607..bacbd32b 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 d6fedb62..35007360 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 d0091612..08e83fb6 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 12eef0a6..b1c4c815 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 9043276b..52d066d8 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 1ff7c249..080a8e32 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 a3581937..86ad42e2 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 @@ console.log(wC.boundsExactCenterY()); // e.g. -16.5

    point()#

    6.2.0 A11Y

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

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

    @@ -1315,7 +1317,7 @@ console.log(wB.point().y); // e.g. 6.5

    center()#

    6.4.2 A11Y

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

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

    @@ -1334,7 +1336,7 @@ console.log(wB.center().y); // e.g. 6.5

    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 2a80d9f7..284cc66c 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

    @@ -963,7 +974,7 @@

    构建式选择器调用后会返回自身类型, 因此可使用 链式调用 构建出用于多条件筛选的选择器:

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

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

    +

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

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

    选择器构建方法:

      @@ -4993,6 +5004,48 @@ pickup({

    根据选择器条件, 使用 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 @@ descMatch('.+'); /* 可匹配 w, 与 descMatch('') 效果相同. /* 相当于 descMatch(/spl\.?.+$/) . */ descMatch('spl\\.?.+$'); /* 可匹配 w. */
    +

    链式特性#

    +

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

    +
    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 5c669a59..fe125346 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 e5e68fd1..667325d6 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 7c9c6c1a..21d24d52 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 f81f5d2e..31740019 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/基本信息 [v6.1.0+].js b/app/src/main/assets-app/sample/AutoJs6/基本信息 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/AutoJs6/基本信息 [v6.1.0+].js rename to app/src/main/assets-app/sample/AutoJs6/基本信息 [v6.1.0+].js diff --git a/app/src/main/assets/sample/AutoJs6/强制 Root 检查 [v6.1.0+].js b/app/src/main/assets-app/sample/AutoJs6/强制 Root 检查 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/AutoJs6/强制 Root 检查 [v6.1.0+].js rename to app/src/main/assets-app/sample/AutoJs6/强制 Root 检查 [v6.1.0+].js diff --git a/app/src/main/assets/sample/HTTP网络请求/文件上传.js b/app/src/main/assets-app/sample/HTTP网络请求/文件上传.js similarity index 100% rename from app/src/main/assets/sample/HTTP网络请求/文件上传.js rename to app/src/main/assets-app/sample/HTTP网络请求/文件上传.js diff --git a/app/src/main/assets/sample/HTTP网络请求/文件下载.js b/app/src/main/assets-app/sample/HTTP网络请求/文件下载.js similarity index 100% rename from app/src/main/assets/sample/HTTP网络请求/文件下载.js rename to app/src/main/assets-app/sample/HTTP网络请求/文件下载.js diff --git a/app/src/main/assets/sample/HTTP网络请求/获取网页.js b/app/src/main/assets-app/sample/HTTP网络请求/获取网页.js similarity index 100% rename from app/src/main/assets/sample/HTTP网络请求/获取网页.js rename to app/src/main/assets-app/sample/HTTP网络请求/获取网页.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/数字.js b/app/src/main/assets-app/sample/JavaScript/数字.js similarity index 100% rename from app/src/main/assets/sample/JavaScript/数字.js rename to app/src/main/assets-app/sample/JavaScript/数字.js diff --git a/app/src/main/assets/sample/OCR/PaddleOCR (内置API).js b/app/src/main/assets-app/sample/OCR/PaddleOCR (内置API).js similarity index 100% rename from app/src/main/assets/sample/OCR/PaddleOCR (内置API).js rename to app/src/main/assets-app/sample/OCR/PaddleOCR (内置API).js diff --git a/app/src/main/assets/sample/OCR/PaddleOCR (原始类).js b/app/src/main/assets-app/sample/OCR/PaddleOCR (原始类).js similarity index 100% rename from app/src/main/assets/sample/OCR/PaddleOCR (原始类).js rename to app/src/main/assets-app/sample/OCR/PaddleOCR (原始类).js diff --git a/app/src/main/assets/sample/OCR/PaddleOCR (截图识别).js b/app/src/main/assets-app/sample/OCR/PaddleOCR (截图识别).js similarity index 100% rename from app/src/main/assets/sample/OCR/PaddleOCR (截图识别).js rename to app/src/main/assets-app/sample/OCR/PaddleOCR (截图识别).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/冻结网易云音乐.js b/app/src/main/assets-app/sample/Shell/冻结网易云音乐.js similarity index 100% rename from app/src/main/assets/sample/Shell/冻结网易云音乐.js rename to app/src/main/assets-app/sample/Shell/冻结网易云音乐.js diff --git a/app/src/main/assets/sample/Shell/结束所有后台进程.js b/app/src/main/assets-app/sample/Shell/结束所有后台进程.js similarity index 100% rename from app/src/main/assets/sample/Shell/结束所有后台进程.js rename to app/src/main/assets-app/sample/Shell/结束所有后台进程.js diff --git a/app/src/main/assets/sample/Shell/解冻并打开网易云音乐.js b/app/src/main/assets-app/sample/Shell/解冻并打开网易云音乐.js similarity index 100% rename from app/src/main/assets/sample/Shell/解冻并打开网易云音乐.js rename to app/src/main/assets-app/sample/Shell/解冻并打开网易云音乐.js diff --git a/app/src/main/assets/sample/Shell/锁屏.js b/app/src/main/assets-app/sample/Shell/锁屏.js similarity index 100% rename from app/src/main/assets/sample/Shell/锁屏.js rename to app/src/main/assets-app/sample/Shell/锁屏.js diff --git a/app/src/main/assets/sample/事件与监听/Toast监听.js b/app/src/main/assets-app/sample/事件与监听/Toast监听.js similarity index 100% rename from app/src/main/assets/sample/事件与监听/Toast监听.js rename to app/src/main/assets-app/sample/事件与监听/Toast监听.js diff --git a/app/src/main/assets/sample/事件与监听/按键监听.js b/app/src/main/assets-app/sample/事件与监听/按键监听.js similarity index 100% rename from app/src/main/assets/sample/事件与监听/按键监听.js rename to app/src/main/assets-app/sample/事件与监听/按键监听.js diff --git a/app/src/main/assets/sample/事件与监听/触摸监听.js b/app/src/main/assets-app/sample/事件与监听/触摸监听.js similarity index 100% rename from app/src/main/assets/sample/事件与监听/触摸监听.js rename to app/src/main/assets-app/sample/事件与监听/触摸监听.js diff --git a/app/src/main/assets/sample/事件与监听/通知监听.js b/app/src/main/assets-app/sample/事件与监听/通知监听.js similarity index 100% rename from app/src/main/assets/sample/事件与监听/通知监听.js rename to app/src/main/assets-app/sample/事件与监听/通知监听.js diff --git a/app/src/main/assets/sample/事件与监听/长按返回退出当前程序.js b/app/src/main/assets-app/sample/事件与监听/长按返回退出当前程序.js similarity index 100% rename from app/src/main/assets/sample/事件与监听/长按返回退出当前程序.js rename to app/src/main/assets-app/sample/事件与监听/长按返回退出当前程序.js diff --git a/app/src/main/assets/sample/事件与监听/音量减键分析布局.js b/app/src/main/assets-app/sample/事件与监听/音量减键分析布局.js similarity index 100% rename from app/src/main/assets/sample/事件与监听/音量减键分析布局.js rename to app/src/main/assets-app/sample/事件与监听/音量减键分析布局.js diff --git a/app/src/main/assets/sample/事件与监听/音量键控制程序.js b/app/src/main/assets-app/sample/事件与监听/音量键控制程序.js similarity index 100% rename from app/src/main/assets/sample/事件与监听/音量键控制程序.js rename to app/src/main/assets-app/sample/事件与监听/音量键控制程序.js diff --git a/app/src/main/assets/sample/任务/一次性任务 [v6.1.0+].js b/app/src/main/assets-app/sample/任务/一次性任务 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/任务/一次性任务 [v6.1.0+].js rename to app/src/main/assets-app/sample/任务/一次性任务 [v6.1.0+].js diff --git a/app/src/main/assets/sample/任务/意图 (Intent) 任务 [v6.1.0+].js b/app/src/main/assets-app/sample/任务/意图 (Intent) 任务 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/任务/意图 (Intent) 任务 [v6.1.0+].js rename to app/src/main/assets-app/sample/任务/意图 (Intent) 任务 [v6.1.0+].js diff --git a/app/src/main/assets/sample/任务/每周任务 [v6.1.0+].js b/app/src/main/assets-app/sample/任务/每周任务 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/任务/每周任务 [v6.1.0+].js rename to app/src/main/assets-app/sample/任务/每周任务 [v6.1.0+].js diff --git a/app/src/main/assets/sample/任务/每日任务 [v6.1.0+].js b/app/src/main/assets-app/sample/任务/每日任务 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/任务/每日任务 [v6.1.0+].js rename to app/src/main/assets-app/sample/任务/每日任务 [v6.1.0+].js diff --git a/app/src/main/assets/sample/传感器/打印常用传感器信息.js b/app/src/main/assets-app/sample/传感器/打印常用传感器信息.js similarity index 100% rename from app/src/main/assets/sample/传感器/打印常用传感器信息.js rename to app/src/main/assets-app/sample/传感器/打印常用传感器信息.js diff --git a/app/src/main/assets/sample/传感器/显示常用传感器信息.js b/app/src/main/assets-app/sample/传感器/显示常用传感器信息.js similarity index 100% rename from app/src/main/assets/sample/传感器/显示常用传感器信息.js rename to app/src/main/assets-app/sample/传感器/显示常用传感器信息.js diff --git a/app/src/main/assets/sample/协程/ui中使用协程/main.js b/app/src/main/assets-app/sample/协程/UI中使用协程/main.js similarity index 100% rename from app/src/main/assets/sample/协程/ui中使用协程/main.js rename to app/src/main/assets-app/sample/协程/UI中使用协程/main.js diff --git a/app/src/main/assets/sample/协程/ui中使用协程/project.json b/app/src/main/assets-app/sample/协程/UI中使用协程/project.json similarity index 100% rename from app/src/main/assets/sample/协程/ui中使用协程/project.json rename to app/src/main/assets-app/sample/协程/UI中使用协程/project.json diff --git a/app/src/main/assets/sample/协程/协程HelloWorld/hello.txt b/app/src/main/assets-app/sample/协程/协程HelloWorld/hello.txt similarity index 100% rename from app/src/main/assets/sample/协程/协程HelloWorld/hello.txt rename to app/src/main/assets-app/sample/协程/协程HelloWorld/hello.txt diff --git a/app/src/main/assets/sample/协程/协程HelloWorld/main.js b/app/src/main/assets-app/sample/协程/协程HelloWorld/main.js similarity index 100% rename from app/src/main/assets/sample/协程/协程HelloWorld/main.js rename to app/src/main/assets-app/sample/协程/协程HelloWorld/main.js diff --git a/app/src/main/assets/sample/协程/协程HelloWorld/project.json b/app/src/main/assets-app/sample/协程/协程HelloWorld/project.json similarity index 100% rename from app/src/main/assets/sample/协程/协程HelloWorld/project.json rename to app/src/main/assets-app/sample/协程/协程HelloWorld/project.json diff --git a/app/src/main/assets/sample/图像与颜色/区域找色1.js b/app/src/main/assets-app/sample/图像与颜色/区域找色1.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/区域找色1.js rename to app/src/main/assets-app/sample/图像与颜色/区域找色1.js diff --git a/app/src/main/assets/sample/图像与颜色/区域找色2.js b/app/src/main/assets-app/sample/图像与颜色/区域找色2.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/区域找色2.js rename to app/src/main/assets-app/sample/图像与颜色/区域找色2.js diff --git a/app/src/main/assets/sample/图像与颜色/图片处理.js b/app/src/main/assets-app/sample/图像与颜色/图片处理.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/图片处理.js rename to app/src/main/assets-app/sample/图像与颜色/图片处理.js diff --git a/app/src/main/assets/sample/图像与颜色/基本颜色转换 [v6.1.0+].js b/app/src/main/assets-app/sample/图像与颜色/基本颜色转换 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/基本颜色转换 [v6.1.0+].js rename to app/src/main/assets-app/sample/图像与颜色/基本颜色转换 [v6.1.0+].js diff --git a/app/src/main/assets/sample/图像与颜色/实时显示触摸点颜色.js b/app/src/main/assets-app/sample/图像与颜色/实时显示触摸点颜色.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/实时显示触摸点颜色.js rename to app/src/main/assets-app/sample/图像与颜色/实时显示触摸点颜色.js diff --git a/app/src/main/assets/sample/图像与颜色/截图并保存.js b/app/src/main/assets-app/sample/图像与颜色/截图并保存.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/截图并保存.js rename to app/src/main/assets-app/sample/图像与颜色/截图并保存.js diff --git a/app/src/main/assets/sample/图像与颜色/找到QQ红点位置.js b/app/src/main/assets-app/sample/图像与颜色/找到QQ红点位置.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/找到QQ红点位置.js rename to app/src/main/assets-app/sample/图像与颜色/找到QQ红点位置.js diff --git a/app/src/main/assets/sample/图像与颜色/找图/block.png b/app/src/main/assets-app/sample/图像与颜色/找图/block.png similarity index 100% rename from app/src/main/assets/sample/图像与颜色/找图/block.png rename to app/src/main/assets-app/sample/图像与颜色/找图/block.png diff --git a/app/src/main/assets/sample/图像与颜色/找图/mario.png b/app/src/main/assets-app/sample/图像与颜色/找图/mario.png similarity index 100% rename from app/src/main/assets/sample/图像与颜色/找图/mario.png rename to app/src/main/assets-app/sample/图像与颜色/找图/mario.png diff --git a/app/src/main/assets/sample/图像与颜色/找图/super_mario.jpg b/app/src/main/assets-app/sample/图像与颜色/找图/super_mario.jpg similarity index 100% rename from app/src/main/assets/sample/图像与颜色/找图/super_mario.jpg rename to app/src/main/assets-app/sample/图像与颜色/找图/super_mario.jpg diff --git a/app/src/main/assets/sample/图像与颜色/找图/找出所有问号方块.js b/app/src/main/assets-app/sample/图像与颜色/找图/找出所有问号方块.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/找图/找出所有问号方块.js rename to app/src/main/assets-app/sample/图像与颜色/找图/找出所有问号方块.js diff --git a/app/src/main/assets/sample/图像与颜色/找图/找出问号方块并画出位置 [v6.2.0+].js b/app/src/main/assets-app/sample/图像与颜色/找图/找出问号方块并画出位置 [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/找图/找出问号方块并画出位置 [v6.2.0+].js rename to app/src/main/assets-app/sample/图像与颜色/找图/找出问号方块并画出位置 [v6.2.0+].js diff --git a/app/src/main/assets/sample/图像与颜色/找图/找出马里奥.js b/app/src/main/assets-app/sample/图像与颜色/找图/找出马里奥.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/找图/找出马里奥.js rename to app/src/main/assets-app/sample/图像与颜色/找图/找出马里奥.js diff --git a/app/src/main/assets/sample/图像与颜色/模糊找色.js b/app/src/main/assets-app/sample/图像与颜色/模糊找色.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/模糊找色.js rename to app/src/main/assets-app/sample/图像与颜色/模糊找色.js diff --git a/app/src/main/assets/sample/图像与颜色/精确找色.js b/app/src/main/assets-app/sample/图像与颜色/精确找色.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/精确找色.js rename to app/src/main/assets-app/sample/图像与颜色/精确找色.js diff --git a/app/src/main/assets/sample/图像与颜色/获取网络图片并保存.js b/app/src/main/assets-app/sample/图像与颜色/获取网络图片并保存.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/获取网络图片并保存.js rename to app/src/main/assets-app/sample/图像与颜色/获取网络图片并保存.js diff --git a/app/src/main/assets/sample/图像与颜色/颜色获取和检测.js b/app/src/main/assets-app/sample/图像与颜色/颜色获取和检测.js similarity index 100% rename from app/src/main/assets/sample/图像与颜色/颜色获取和检测.js rename to app/src/main/assets-app/sample/图像与颜色/颜色获取和检测.js diff --git a/app/src/main/assets/sample/多线程/原子变量.js b/app/src/main/assets-app/sample/多线程/原子变量.js similarity index 100% rename from app/src/main/assets/sample/多线程/原子变量.js rename to app/src/main/assets-app/sample/多线程/原子变量.js diff --git a/app/src/main/assets/sample/多线程/变量可见性实验.js b/app/src/main/assets-app/sample/多线程/变量可见性实验.js similarity index 100% rename from app/src/main/assets/sample/多线程/变量可见性实验.js rename to app/src/main/assets-app/sample/多线程/变量可见性实验.js diff --git a/app/src/main/assets/sample/多线程/多线程按键监听.js b/app/src/main/assets-app/sample/多线程/多线程按键监听.js similarity index 100% rename from app/src/main/assets/sample/多线程/多线程按键监听.js rename to app/src/main/assets-app/sample/多线程/多线程按键监听.js diff --git a/app/src/main/assets/sample/多线程/多线程简单示例.js b/app/src/main/assets-app/sample/多线程/多线程简单示例.js similarity index 100% rename from app/src/main/assets/sample/多线程/多线程简单示例.js rename to app/src/main/assets-app/sample/多线程/多线程简单示例.js diff --git a/app/src/main/assets/sample/多线程/线程启动与关闭.js b/app/src/main/assets-app/sample/多线程/线程启动与关闭.js similarity index 100% rename from app/src/main/assets/sample/多线程/线程启动与关闭.js rename to app/src/main/assets-app/sample/多线程/线程启动与关闭.js diff --git a/app/src/main/assets/sample/定时器/定时执行.js b/app/src/main/assets-app/sample/定时器/定时执行.js similarity index 100% rename from app/src/main/assets/sample/定时器/定时执行.js rename to app/src/main/assets-app/sample/定时器/定时执行.js diff --git a/app/src/main/assets/sample/定时器/循环执行.js b/app/src/main/assets-app/sample/定时器/循环执行.js similarity index 100% rename from app/src/main/assets/sample/定时器/循环执行.js rename to app/src/main/assets-app/sample/定时器/循环执行.js diff --git a/app/src/main/assets/sample/定时器/条件周期执行 [v6.1.0+].js b/app/src/main/assets-app/sample/定时器/条件周期执行 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/定时器/条件周期执行 [v6.1.0+].js rename to app/src/main/assets-app/sample/定时器/条件周期执行 [v6.1.0+].js diff --git a/app/src/main/assets/sample/对话框/UI模式下使用对话框.js b/app/src/main/assets-app/sample/对话框/UI模式下使用对话框.js similarity index 100% rename from app/src/main/assets/sample/对话框/UI模式下使用对话框.js rename to app/src/main/assets-app/sample/对话框/UI模式下使用对话框.js diff --git a/app/src/main/assets/sample/对话框/个性化对话框 [v6.1.0+].js b/app/src/main/assets-app/sample/对话框/个性化对话框 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/对话框/个性化对话框 [v6.1.0+].js rename to app/src/main/assets-app/sample/对话框/个性化对话框 [v6.1.0+].js diff --git a/app/src/main/assets/sample/对话框/单选框.js b/app/src/main/assets-app/sample/对话框/单选框.js similarity index 100% rename from app/src/main/assets/sample/对话框/单选框.js rename to app/src/main/assets-app/sample/对话框/单选框.js diff --git a/app/src/main/assets/sample/对话框/多选框.js b/app/src/main/assets-app/sample/对话框/多选框.js similarity index 100% rename from app/src/main/assets/sample/对话框/多选框.js rename to app/src/main/assets-app/sample/对话框/多选框.js diff --git a/app/src/main/assets/sample/对话框/模拟更新下载对话框.js b/app/src/main/assets-app/sample/对话框/模拟更新下载对话框.js similarity index 100% rename from app/src/main/assets/sample/对话框/模拟更新下载对话框.js rename to app/src/main/assets-app/sample/对话框/模拟更新下载对话框.js diff --git a/app/src/main/assets/sample/对话框/确认框.js b/app/src/main/assets-app/sample/对话框/确认框.js similarity index 100% rename from app/src/main/assets/sample/对话框/确认框.js rename to app/src/main/assets-app/sample/对话框/确认框.js diff --git a/app/src/main/assets/sample/对话框/简单计算器.js b/app/src/main/assets-app/sample/对话框/简单计算器.js similarity index 100% rename from app/src/main/assets/sample/对话框/简单计算器.js rename to app/src/main/assets-app/sample/对话框/简单计算器.js diff --git a/app/src/main/assets/sample/对话框/菜单.js b/app/src/main/assets-app/sample/对话框/菜单.js similarity index 100% rename from app/src/main/assets/sample/对话框/菜单.js rename to app/src/main/assets-app/sample/对话框/菜单.js diff --git a/app/src/main/assets/sample/对话框/输入框.js b/app/src/main/assets-app/sample/对话框/输入框.js similarity index 100% rename from app/src/main/assets/sample/对话框/输入框.js rename to app/src/main/assets-app/sample/对话框/输入框.js diff --git a/app/src/main/assets/sample/工具/安卓版本信息查询 [v6.1.0+].js b/app/src/main/assets-app/sample/工具/安卓版本信息查询 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/工具/安卓版本信息查询 [v6.1.0+].js rename to app/src/main/assets-app/sample/工具/安卓版本信息查询 [v6.1.0+].js diff --git a/app/src/main/assets/sample/工具/摩斯电码 [v6.1.0+].js b/app/src/main/assets-app/sample/工具/摩斯电码 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/工具/摩斯电码 [v6.1.0+].js rename to app/src/main/assets-app/sample/工具/摩斯电码 [v6.1.0+].js diff --git a/app/src/main/assets/sample/工具/获取类与类名 [v6.1.0+].js b/app/src/main/assets-app/sample/工具/获取类与类名 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/工具/获取类与类名 [v6.1.0+].js rename to app/src/main/assets-app/sample/工具/获取类与类名 [v6.1.0+].js diff --git a/app/src/main/assets/sample/布局/WannaCry (仅为娱乐).js b/app/src/main/assets-app/sample/布局/WannaCry (仅为娱乐).js similarity index 100% rename from app/src/main/assets/sample/布局/WannaCry (仅为娱乐).js rename to app/src/main/assets-app/sample/布局/WannaCry (仅为娱乐).js diff --git a/app/src/main/assets/sample/布局/应用浏览器 [v6.2.0+].js b/app/src/main/assets-app/sample/布局/应用浏览器 [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/布局/应用浏览器 [v6.2.0+].js rename to app/src/main/assets-app/sample/布局/应用浏览器 [v6.2.0+].js diff --git a/app/src/main/assets/sample/布局/待办事项 [v6.2.0+].js b/app/src/main/assets-app/sample/布局/待办事项 [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/布局/待办事项 [v6.2.0+].js rename to app/src/main/assets-app/sample/布局/待办事项 [v6.2.0+].js diff --git a/app/src/main/assets/sample/布局/待办事项 [v6.3.1+].js b/app/src/main/assets-app/sample/布局/待办事项 [v6.3.1+].js similarity index 100% rename from app/src/main/assets/sample/布局/待办事项 [v6.3.1+].js rename to app/src/main/assets-app/sample/布局/待办事项 [v6.3.1+].js diff --git a/app/src/main/assets/sample/布局/控件切换显示.js b/app/src/main/assets-app/sample/布局/控件切换显示.js similarity index 100% rename from app/src/main/assets/sample/布局/控件切换显示.js rename to app/src/main/assets-app/sample/布局/控件切换显示.js diff --git a/app/src/main/assets/sample/布局/播放视频文件.js b/app/src/main/assets-app/sample/布局/播放视频文件.js similarity index 100% rename from app/src/main/assets/sample/布局/播放视频文件.js rename to app/src/main/assets-app/sample/布局/播放视频文件.js diff --git a/app/src/main/assets/sample/布局/用户调查.js b/app/src/main/assets-app/sample/布局/用户调查.js similarity index 100% rename from app/src/main/assets/sample/布局/用户调查.js rename to app/src/main/assets-app/sample/布局/用户调查.js diff --git a/app/src/main/assets/sample/布局/界面模板一.js b/app/src/main/assets-app/sample/布局/界面模板一.js similarity index 100% rename from app/src/main/assets/sample/布局/界面模板一.js rename to app/src/main/assets-app/sample/布局/界面模板一.js diff --git a/app/src/main/assets/sample/布局/登录界面.js b/app/src/main/assets-app/sample/布局/登录界面.js similarity index 100% rename from app/src/main/assets/sample/布局/登录界面.js rename to app/src/main/assets-app/sample/布局/登录界面.js diff --git a/app/src/main/assets/sample/布局/简单安卓布局.js b/app/src/main/assets-app/sample/布局/简单安卓布局.js similarity index 100% rename from app/src/main/assets/sample/布局/简单安卓布局.js rename to app/src/main/assets-app/sample/布局/简单安卓布局.js diff --git a/app/src/main/assets/sample/应用/卸载应用.js b/app/src/main/assets-app/sample/应用/卸载应用.js similarity index 100% rename from app/src/main/assets/sample/应用/卸载应用.js rename to app/src/main/assets-app/sample/应用/卸载应用.js diff --git a/app/src/main/assets/sample/应用/应用工具.js b/app/src/main/assets-app/sample/应用/应用工具.js similarity index 100% rename from app/src/main/assets/sample/应用/应用工具.js rename to app/src/main/assets-app/sample/应用/应用工具.js diff --git a/app/src/main/assets/sample/应用/强制停止应用.js b/app/src/main/assets-app/sample/应用/强制停止应用.js similarity index 100% rename from app/src/main/assets/sample/应用/强制停止应用.js rename to app/src/main/assets-app/sample/应用/强制停止应用.js diff --git a/app/src/main/assets/sample/应用/意图/分享文本消息 (QQ) [v6.2.0+].js b/app/src/main/assets-app/sample/应用/意图/分享文本消息 (QQ) [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/应用/意图/分享文本消息 (QQ) [v6.2.0+].js rename to app/src/main/assets-app/sample/应用/意图/分享文本消息 (QQ) [v6.2.0+].js diff --git a/app/src/main/assets/sample/应用/意图/分享文本消息 (微信) [v6.2.0+].js b/app/src/main/assets-app/sample/应用/意图/分享文本消息 (微信) [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/应用/意图/分享文本消息 (微信) [v6.2.0+].js rename to app/src/main/assets-app/sample/应用/意图/分享文本消息 (微信) [v6.2.0+].js diff --git a/app/src/main/assets/sample/应用/意图/启动 URL Scheme (支付宝) [v6.2.0+].js b/app/src/main/assets-app/sample/应用/意图/启动 URL Scheme (支付宝) [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/应用/意图/启动 URL Scheme (支付宝) [v6.2.0+].js rename to app/src/main/assets-app/sample/应用/意图/启动 URL Scheme (支付宝) [v6.2.0+].js diff --git a/app/src/main/assets/sample/应用/意图/转换为 Shell 语句.js b/app/src/main/assets-app/sample/应用/意图/转换为 Shell 语句.js similarity index 100% rename from app/src/main/assets/sample/应用/意图/转换为 Shell 语句.js rename to app/src/main/assets-app/sample/应用/意图/转换为 Shell 语句.js diff --git a/app/src/main/assets/sample/应用/打开应用.js b/app/src/main/assets-app/sample/应用/打开应用.js similarity index 100% rename from app/src/main/assets/sample/应用/打开应用.js rename to app/src/main/assets-app/sample/应用/打开应用.js diff --git a/app/src/main/assets/sample/控件/下拉菜单.js b/app/src/main/assets-app/sample/控件/下拉菜单.js similarity index 100% rename from app/src/main/assets/sample/控件/下拉菜单.js rename to app/src/main/assets-app/sample/控件/下拉菜单.js diff --git a/app/src/main/assets/sample/控件/列表控件.js b/app/src/main/assets-app/sample/控件/列表控件.js similarity index 100% rename from app/src/main/assets/sample/控件/列表控件.js rename to app/src/main/assets-app/sample/控件/列表控件.js diff --git a/app/src/main/assets/sample/控件/卡片布局.js b/app/src/main/assets-app/sample/控件/卡片布局.js similarity index 100% rename from app/src/main/assets/sample/控件/卡片布局.js rename to app/src/main/assets-app/sample/控件/卡片布局.js diff --git a/app/src/main/assets/sample/控件/图片控件.js b/app/src/main/assets-app/sample/控件/图片控件.js similarity index 100% rename from app/src/main/assets/sample/控件/图片控件.js rename to app/src/main/assets-app/sample/控件/图片控件.js diff --git a/app/src/main/assets/sample/控件/复选框单选框控件.js b/app/src/main/assets-app/sample/控件/复选框单选框控件.js similarity index 100% rename from app/src/main/assets/sample/控件/复选框单选框控件.js rename to app/src/main/assets-app/sample/控件/复选框单选框控件.js diff --git a/app/src/main/assets/sample/控件/开关控件 [v6.3.1+].js b/app/src/main/assets-app/sample/控件/开关控件 [v6.3.1+].js similarity index 100% rename from app/src/main/assets/sample/控件/开关控件 [v6.3.1+].js rename to app/src/main/assets-app/sample/控件/开关控件 [v6.3.1+].js diff --git a/app/src/main/assets/sample/控件/按钮控件.js b/app/src/main/assets-app/sample/控件/按钮控件.js similarity index 100% rename from app/src/main/assets/sample/控件/按钮控件.js rename to app/src/main/assets-app/sample/控件/按钮控件.js diff --git a/app/src/main/assets/sample/控件/文本控件.js b/app/src/main/assets-app/sample/控件/文本控件.js similarity index 100% rename from app/src/main/assets/sample/控件/文本控件.js rename to app/src/main/assets-app/sample/控件/文本控件.js diff --git a/app/src/main/assets/sample/控件/时间日期选择控件.js b/app/src/main/assets-app/sample/控件/时间日期选择控件.js similarity index 100% rename from app/src/main/assets/sample/控件/时间日期选择控件.js rename to app/src/main/assets-app/sample/控件/时间日期选择控件.js diff --git a/app/src/main/assets/sample/控件/自定义控件-使用配置勾选框.js b/app/src/main/assets-app/sample/控件/自定义控件-使用配置勾选框.js similarity index 100% rename from app/src/main/assets/sample/控件/自定义控件-使用配置勾选框.js rename to app/src/main/assets-app/sample/控件/自定义控件-使用配置勾选框.js diff --git a/app/src/main/assets/sample/控件/自定义控件-布局模板.js b/app/src/main/assets-app/sample/控件/自定义控件-布局模板.js similarity index 100% rename from app/src/main/assets/sample/控件/自定义控件-布局模板.js rename to app/src/main/assets-app/sample/控件/自定义控件-布局模板.js diff --git a/app/src/main/assets/sample/控件/自定义控件-带颜色按钮.js b/app/src/main/assets-app/sample/控件/自定义控件-带颜色按钮.js similarity index 100% rename from app/src/main/assets/sample/控件/自定义控件-带颜色按钮.js rename to app/src/main/assets-app/sample/控件/自定义控件-带颜色按钮.js diff --git a/app/src/main/assets/sample/控件/自定义控件-模块-配置勾选框.js b/app/src/main/assets-app/sample/控件/自定义控件-模块-配置勾选框.js similarity index 100% rename from app/src/main/assets/sample/控件/自定义控件-模块-配置勾选框.js rename to app/src/main/assets-app/sample/控件/自定义控件-模块-配置勾选框.js diff --git a/app/src/main/assets/sample/控件/表格控件-内置图标查看器.js b/app/src/main/assets-app/sample/控件/表格控件-内置图标查看器.js similarity index 100% rename from app/src/main/assets/sample/控件/表格控件-内置图标查看器.js rename to app/src/main/assets-app/sample/控件/表格控件-内置图标查看器.js diff --git a/app/src/main/assets/sample/控件/输入框控件.js b/app/src/main/assets-app/sample/控件/输入框控件.js similarity index 100% rename from app/src/main/assets/sample/控件/输入框控件.js rename to app/src/main/assets-app/sample/控件/输入框控件.js diff --git a/app/src/main/assets/sample/控件/进度条控件.js b/app/src/main/assets-app/sample/控件/进度条控件.js similarity index 100% rename from app/src/main/assets/sample/控件/进度条控件.js rename to app/src/main/assets-app/sample/控件/进度条控件.js diff --git a/app/src/main/assets/sample/控制台/产生随机数.js b/app/src/main/assets-app/sample/控制台/产生随机数.js similarity index 100% rename from app/src/main/assets/sample/控制台/产生随机数.js rename to app/src/main/assets-app/sample/控制台/产生随机数.js diff --git a/app/src/main/assets/sample/控制台/保存日志.js b/app/src/main/assets-app/sample/控制台/保存日志.js similarity index 100% rename from app/src/main/assets/sample/控制台/保存日志.js rename to app/src/main/assets-app/sample/控制台/保存日志.js diff --git a/app/src/main/assets/sample/控制台/打印不同级别.js b/app/src/main/assets-app/sample/控制台/打印不同级别.js similarity index 100% rename from app/src/main/assets/sample/控制台/打印不同级别.js rename to app/src/main/assets-app/sample/控制台/打印不同级别.js diff --git a/app/src/main/assets/sample/控制台/打印调用栈 [v6.1.0+].js b/app/src/main/assets-app/sample/控制台/打印调用栈 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/控制台/打印调用栈 [v6.1.0+].js rename to app/src/main/assets-app/sample/控制台/打印调用栈 [v6.1.0+].js diff --git a/app/src/main/assets/sample/控制台/格式化输出.js b/app/src/main/assets-app/sample/控制台/格式化输出.js similarity index 100% rename from app/src/main/assets/sample/控制台/格式化输出.js rename to app/src/main/assets-app/sample/控制台/格式化输出.js diff --git a/app/src/main/assets/sample/控制台/终端模拟器.js b/app/src/main/assets-app/sample/控制台/终端模拟器.js similarity index 100% rename from app/src/main/assets/sample/控制台/终端模拟器.js rename to app/src/main/assets-app/sample/控制台/终端模拟器.js diff --git a/app/src/main/assets/sample/控制台/调整控制台大小位置.js b/app/src/main/assets-app/sample/控制台/调整控制台大小位置.js similarity index 100% rename from app/src/main/assets/sample/控制台/调整控制台大小位置.js rename to app/src/main/assets-app/sample/控制台/调整控制台大小位置.js diff --git a/app/src/main/assets/sample/文件读写/写入文本文件.js b/app/src/main/assets-app/sample/文件读写/写入文本文件.js similarity index 100% rename from app/src/main/assets/sample/文件读写/写入文本文件.js rename to app/src/main/assets-app/sample/文件读写/写入文本文件.js diff --git a/app/src/main/assets/sample/文件读写/删除所有空文件夹.js b/app/src/main/assets-app/sample/文件读写/删除所有空文件夹.js similarity index 100% rename from app/src/main/assets/sample/文件读写/删除所有空文件夹.js rename to app/src/main/assets-app/sample/文件读写/删除所有空文件夹.js diff --git a/app/src/main/assets/sample/文件读写/文件编码转换 (高级).js b/app/src/main/assets-app/sample/文件读写/文件编码转换 (高级).js similarity index 100% rename from app/src/main/assets/sample/文件读写/文件编码转换 (高级).js rename to app/src/main/assets-app/sample/文件读写/文件编码转换 (高级).js diff --git a/app/src/main/assets/sample/文件读写/文件编码转换.js b/app/src/main/assets-app/sample/文件读写/文件编码转换.js similarity index 100% rename from app/src/main/assets/sample/文件读写/文件编码转换.js rename to app/src/main/assets-app/sample/文件读写/文件编码转换.js diff --git a/app/src/main/assets/sample/文件读写/读写文本文件.js b/app/src/main/assets-app/sample/文件读写/读写文本文件.js similarity index 100% rename from app/src/main/assets/sample/文件读写/读写文本文件.js rename to app/src/main/assets-app/sample/文件读写/读写文本文件.js diff --git a/app/src/main/assets/sample/文件读写/读取文本文件.js b/app/src/main/assets-app/sample/文件读写/读取文本文件.js similarity index 100% rename from app/src/main/assets/sample/文件读写/读取文本文件.js rename to app/src/main/assets-app/sample/文件读写/读取文本文件.js diff --git a/app/src/main/assets/sample/无障碍服务/三指下滑.js b/app/src/main/assets-app/sample/无障碍服务/三指下滑.js similarity index 100% rename from app/src/main/assets/sample/无障碍服务/三指下滑.js rename to app/src/main/assets-app/sample/无障碍服务/三指下滑.js diff --git a/app/src/main/assets/sample/无障碍服务/三指捏合.js b/app/src/main/assets-app/sample/无障碍服务/三指捏合.js similarity index 100% rename from app/src/main/assets/sample/无障碍服务/三指捏合.js rename to app/src/main/assets-app/sample/无障碍服务/三指捏合.js diff --git a/app/src/main/assets/sample/无障碍服务/双指捏合.js b/app/src/main/assets-app/sample/无障碍服务/双指捏合.js similarity index 100% rename from app/src/main/assets/sample/无障碍服务/双指捏合.js rename to app/src/main/assets-app/sample/无障碍服务/双指捏合.js diff --git a/app/src/main/assets/sample/无障碍服务/安卓 11 (R) 新增 [v6.1.0+].js b/app/src/main/assets-app/sample/无障碍服务/安卓 11 (R) 新增 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/无障碍服务/安卓 11 (R) 新增 [v6.1.0+].js rename to app/src/main/assets-app/sample/无障碍服务/安卓 11 (R) 新增 [v6.1.0+].js diff --git a/app/src/main/assets/sample/无障碍服务/安卓 9 (Pie) 新增 [v6.1.0+].js b/app/src/main/assets-app/sample/无障碍服务/安卓 9 (Pie) 新增 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/无障碍服务/安卓 9 (Pie) 新增 [v6.1.0+].js rename to app/src/main/assets-app/sample/无障碍服务/安卓 9 (Pie) 新增 [v6.1.0+].js diff --git a/app/src/main/assets/sample/无障碍服务/心形手势.js b/app/src/main/assets-app/sample/无障碍服务/心形手势.js similarity index 100% rename from app/src/main/assets/sample/无障碍服务/心形手势.js rename to app/src/main/assets-app/sample/无障碍服务/心形手势.js diff --git a/app/src/main/assets/sample/无障碍服务/拉出通知栏.js b/app/src/main/assets-app/sample/无障碍服务/拉出通知栏.js similarity index 100% rename from app/src/main/assets/sample/无障碍服务/拉出通知栏.js rename to app/src/main/assets-app/sample/无障碍服务/拉出通知栏.js diff --git a/app/src/main/assets/sample/无障碍服务/点击左上角.js b/app/src/main/assets-app/sample/无障碍服务/点击左上角.js similarity index 100% rename from app/src/main/assets/sample/无障碍服务/点击左上角.js rename to app/src/main/assets-app/sample/无障碍服务/点击左上角.js diff --git a/app/src/main/assets/sample/无障碍服务/获取屏幕截图 [v6.1.0+].js b/app/src/main/assets-app/sample/无障碍服务/获取屏幕截图 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/无障碍服务/获取屏幕截图 [v6.1.0+].js rename to app/src/main/assets-app/sample/无障碍服务/获取屏幕截图 [v6.1.0+].js diff --git a/app/src/main/assets/sample/本地存储/保存数组和复杂对象.js b/app/src/main/assets-app/sample/本地存储/保存数组和复杂对象.js similarity index 100% rename from app/src/main/assets/sample/本地存储/保存数组和复杂对象.js rename to app/src/main/assets-app/sample/本地存储/保存数组和复杂对象.js diff --git a/app/src/main/assets/sample/本地存储/保存整数等简单数据.js b/app/src/main/assets-app/sample/本地存储/保存整数等简单数据.js similarity index 100% rename from app/src/main/assets/sample/本地存储/保存整数等简单数据.js rename to app/src/main/assets-app/sample/本地存储/保存整数等简单数据.js diff --git a/app/src/main/assets/sample/本地存储/随手记.js b/app/src/main/assets-app/sample/本地存储/随手记.js similarity index 100% rename from app/src/main/assets/sample/本地存储/随手记.js rename to app/src/main/assets-app/sample/本地存储/随手记.js diff --git a/app/src/main/assets/sample/测试/基本功能测试 (main) [v6.3.1+].js b/app/src/main/assets-app/sample/测试/基本功能测试 (main) [v6.3.1+].js similarity index 100% rename from app/src/main/assets/sample/测试/基本功能测试 (main) [v6.3.1+].js rename to app/src/main/assets-app/sample/测试/基本功能测试 (main) [v6.3.1+].js diff --git a/app/src/main/assets/sample/测试/基本功能测试 (ui) [v6.3.1+].js b/app/src/main/assets-app/sample/测试/基本功能测试 (ui) [v6.3.1+].js similarity index 100% rename from app/src/main/assets/sample/测试/基本功能测试 (ui) [v6.3.1+].js rename to app/src/main/assets-app/sample/测试/基本功能测试 (ui) [v6.3.1+].js diff --git a/app/src/main/assets/sample/浮动窗口/动态悬浮文字.js b/app/src/main/assets-app/sample/浮动窗口/动态悬浮文字.js similarity index 100% rename from app/src/main/assets/sample/浮动窗口/动态悬浮文字.js rename to app/src/main/assets-app/sample/浮动窗口/动态悬浮文字.js diff --git a/app/src/main/assets/sample/浮动窗口/悬浮文字.js b/app/src/main/assets-app/sample/浮动窗口/悬浮文字.js similarity index 100% rename from app/src/main/assets/sample/浮动窗口/悬浮文字.js rename to app/src/main/assets-app/sample/浮动窗口/悬浮文字.js diff --git a/app/src/main/assets/sample/浮动窗口/悬浮运行脚本按钮.js b/app/src/main/assets-app/sample/浮动窗口/悬浮运行脚本按钮.js similarity index 100% rename from app/src/main/assets/sample/浮动窗口/悬浮运行脚本按钮.js rename to app/src/main/assets-app/sample/浮动窗口/悬浮运行脚本按钮.js diff --git a/app/src/main/assets/sample/浮动窗口/护眼模式.js b/app/src/main/assets-app/sample/浮动窗口/护眼模式.js similarity index 100% rename from app/src/main/assets/sample/浮动窗口/护眼模式.js rename to app/src/main/assets-app/sample/浮动窗口/护眼模式.js diff --git a/app/src/main/assets/sample/浮动窗口/浮动窗口输入框 [v6.3.1+].js b/app/src/main/assets-app/sample/浮动窗口/浮动窗口输入框 [v6.3.1+].js similarity index 100% rename from app/src/main/assets/sample/浮动窗口/浮动窗口输入框 [v6.3.1+].js rename to app/src/main/assets-app/sample/浮动窗口/浮动窗口输入框 [v6.3.1+].js diff --git a/app/src/main/assets/sample/浮动窗口/浮动窗口输入框.js b/app/src/main/assets-app/sample/浮动窗口/浮动窗口输入框.js similarity index 100% rename from app/src/main/assets/sample/浮动窗口/浮动窗口输入框.js rename to app/src/main/assets-app/sample/浮动窗口/浮动窗口输入框.js diff --git a/app/src/main/assets/sample/浮动窗口/浮动窗口运行脚本按钮 (简单版).js b/app/src/main/assets-app/sample/浮动窗口/浮动窗口运行脚本按钮 (简单版).js similarity index 100% rename from app/src/main/assets/sample/浮动窗口/浮动窗口运行脚本按钮 (简单版).js rename to app/src/main/assets-app/sample/浮动窗口/浮动窗口运行脚本按钮 (简单版).js diff --git a/app/src/main/assets/sample/画布/函数图像简单版 [v6.2.0+].js b/app/src/main/assets-app/sample/画布/函数图像简单版 [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/画布/函数图像简单版 [v6.2.0+].js rename to app/src/main/assets-app/sample/画布/函数图像简单版 [v6.2.0+].js diff --git a/app/src/main/assets/sample/画布/函数图像高级版 [v6.2.0+].js b/app/src/main/assets-app/sample/画布/函数图像高级版 [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/画布/函数图像高级版 [v6.2.0+].js rename to app/src/main/assets-app/sample/画布/函数图像高级版 [v6.2.0+].js diff --git a/app/src/main/assets/sample/画布/贪吃蛇 [v6.2.0+].js b/app/src/main/assets-app/sample/画布/贪吃蛇 [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/画布/贪吃蛇 [v6.2.0+].js rename to app/src/main/assets-app/sample/画布/贪吃蛇 [v6.2.0+].js diff --git a/app/src/main/assets/sample/画布/贪吃蛇重力感应版 [v6.2.0+].js b/app/src/main/assets-app/sample/画布/贪吃蛇重力感应版 [v6.2.0+].js similarity index 100% rename from app/src/main/assets/sample/画布/贪吃蛇重力感应版 [v6.2.0+].js rename to app/src/main/assets-app/sample/画布/贪吃蛇重力感应版 [v6.2.0+].js diff --git a/app/src/main/assets/sample/脚本引擎/停止所有正在运行的脚本.js b/app/src/main/assets-app/sample/脚本引擎/停止所有正在运行的脚本.js similarity index 100% rename from app/src/main/assets/sample/脚本引擎/停止所有正在运行的脚本.js rename to app/src/main/assets-app/sample/脚本引擎/停止所有正在运行的脚本.js diff --git a/app/src/main/assets/sample/脚本引擎/运行录制文件.js b/app/src/main/assets-app/sample/脚本引擎/运行录制文件.js similarity index 100% rename from app/src/main/assets/sample/脚本引擎/运行录制文件.js rename to app/src/main/assets-app/sample/脚本引擎/运行录制文件.js diff --git a/app/src/main/assets/sample/脚本引擎/运行新的脚本任务.js b/app/src/main/assets-app/sample/脚本引擎/运行新的脚本任务.js similarity index 100% rename from app/src/main/assets/sample/脚本引擎/运行新的脚本任务.js rename to app/src/main/assets-app/sample/脚本引擎/运行新的脚本任务.js diff --git a/app/src/main/assets/sample/脚本引擎/运行脚本文件.js b/app/src/main/assets-app/sample/脚本引擎/运行脚本文件.js similarity index 100% rename from app/src/main/assets/sample/脚本引擎/运行脚本文件.js rename to app/src/main/assets-app/sample/脚本引擎/运行脚本文件.js diff --git a/app/src/main/assets/sample/记录器/基本读写 [v6.0.3+].js b/app/src/main/assets-app/sample/记录器/基本读写 [v6.0.3+].js similarity index 100% rename from app/src/main/assets/sample/记录器/基本读写 [v6.0.3+].js rename to app/src/main/assets-app/sample/记录器/基本读写 [v6.0.3+].js diff --git a/app/src/main/assets/sample/记录器/循环监测 [v6.0.3+].js b/app/src/main/assets-app/sample/记录器/循环监测 [v6.0.3+].js similarity index 100% rename from app/src/main/assets/sample/记录器/循环监测 [v6.0.3+].js rename to app/src/main/assets-app/sample/记录器/循环监测 [v6.0.3+].js diff --git a/app/src/main/assets/sample/记录器/条件检测 [v6.0.3+].js b/app/src/main/assets-app/sample/记录器/条件检测 [v6.0.3+].js similarity index 100% rename from app/src/main/assets/sample/记录器/条件检测 [v6.0.3+].js rename to app/src/main/assets-app/sample/记录器/条件检测 [v6.0.3+].js diff --git a/app/src/main/assets/sample/记录器/计算函数运行时间 [v6.0.3+].js b/app/src/main/assets-app/sample/记录器/计算函数运行时间 [v6.0.3+].js similarity index 100% rename from app/src/main/assets/sample/记录器/计算函数运行时间 [v6.0.3+].js rename to app/src/main/assets-app/sample/记录器/计算函数运行时间 [v6.0.3+].js diff --git a/app/src/main/assets/sample/设备/摩斯电码震动 [v6.1.0+].js b/app/src/main/assets-app/sample/设备/摩斯电码震动 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/设备/摩斯电码震动 [v6.1.0+].js rename to app/src/main/assets-app/sample/设备/摩斯电码震动 [v6.1.0+].js diff --git a/app/src/main/assets/sample/设备/模式震动 [v6.1.0+].js b/app/src/main/assets-app/sample/设备/模式震动 [v6.1.0+].js similarity index 100% rename from app/src/main/assets/sample/设备/模式震动 [v6.1.0+].js rename to app/src/main/assets-app/sample/设备/模式震动 [v6.1.0+].js diff --git a/app/src/main/assets/sample/设备/获取设备信息 [v6.4.2+].js b/app/src/main/assets-app/sample/设备/获取设备信息 [v6.4.2+].js similarity index 100% rename from app/src/main/assets/sample/设备/获取设备信息 [v6.4.2+].js rename to app/src/main/assets-app/sample/设备/获取设备信息 [v6.4.2+].js diff --git a/app/src/main/assets/sample/设备/调整设备亮度.js b/app/src/main/assets-app/sample/设备/调整设备亮度.js similarity index 100% rename from app/src/main/assets/sample/设备/调整设备亮度.js rename to app/src/main/assets-app/sample/设备/调整设备亮度.js diff --git a/app/src/main/assets/sample/设备/调整设备音量.js b/app/src/main/assets-app/sample/设备/调整设备音量.js similarity index 100% rename from app/src/main/assets/sample/设备/调整设备音量.js rename to app/src/main/assets-app/sample/设备/调整设备音量.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 903d3803..00000000 --- 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 6a09e95f..a5e748a4 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 9f82a10d..b7b0f4a6 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 9702f554..2b7f7ce1 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 d39db412..f5bac0f2 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 c27f14b9..61d9871a 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 947cae2d..ac4ae83b 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 4e76a63b..0f6a9cfc 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 b07551d2..890d9812 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 eb27dfb3..0daffe73 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 4e33896b..62ec4f0b 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 c4134849..34da6f87 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 e92798d6..7f57037c 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 d60482ad..51f023df 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 678a4818..f615fce4 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 57963855..00d46ae4 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 892cea95..5692bfed 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 550e95c6..441b2c9a 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 00000000..eec9cabb --- /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 111c6b32..4ae9ded1 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 0e4ee458..b4e78796 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 236dd39c..40def036 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 cb9d0f3d..e40b27f6 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 a6f45877..36cdd050 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 293b973f..145627a0 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 41c3c84d..a52ce78f 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 8a373b64..f11913d6 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 3930073c..535df78f 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 336de3d5..87fb0579 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 org.autojs.autojs.theme.ThemeColorMutable; 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 daf90195..c72e726e 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 dda54d42..1bbc7474 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 2d319f4b..861643e6 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 c57dd687..553ba56e 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.RetentionPolicy; 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 d36115f9..7ac22300 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.RetentionPolicy; 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 c3ca21ce..b4e8f167 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 6f608d3d..0c1f892a 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 val mManifestFile - get() = File(mWorkspacePath, "AndroidManifest.xml") - - private val mResourcesArscFile - get() = File(mWorkspacePath, "resources.arsc") - 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(workspacePath, "AndroidManifest.xml") + + private val mResourcesArscFile + 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 b8417d95..00000000 --- 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 7945514a..cc91a7a9 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 java.util.zip.ZipInputStream; 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 64f11686..f13e745e 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.AxmlWriter; 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 d14c8d34..f926c72d 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 @@ public class TinySign { 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 @@ public class TinySign { 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 d8e65db3..5d14a954 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 c4cfc605..ae434822 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.InputStream; 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 9ca4ce40..2540fa0a 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 org.autojs.autojs6.databinding.OperationDialogItemBinding; 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 3005ad78..e43d93fc 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 059a94af..365b39a7 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 android.view.ViewGroup; 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 5525c9c0..03f00a42 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.ArrayList; 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 2463cd29..be5716e5 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.Handler; 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 5ad333ca..367ed49e 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.ArrayList; 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 f512896e..7b124eab 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.app.Application; 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 ba264a9e..a37502c6 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 84e5a57b..3b443676 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.accessibility.NodeInfo; 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 5634eadb..e31a4394 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.accessibility.NodeInfo; 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 34ae2e38..78cf80c7 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 45293a3f..c1f19b61 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.lang.reflect.Array; 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 e8e249ce..addb2530 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.ExecutorService; 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 26372d77..3b79eea3 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 e812d2bc..3f5a36e9 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 bef7e664..896287af 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 42280b41..11e5b2d0 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 android.view.accessibility.AccessibilityWindowInfo; 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.ArrayList; 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 abstract class AccessibilityBridge { 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 04ab695c..89afc676 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 b65fd553..7c33d148 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 8025caa4..a7fd533e 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 ba5cac26..a537ac27 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 dea5cfea..21ac8eac 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 00000000..d2db306c --- /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 2ef8241d..71d0d699 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 68c27712..2b994fe1 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 0ecbd4e8..f1872398 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 897a9149..6a58069d 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 d6bdc32a..fe902a87 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 02d9b184..14664bfa 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 65184213..63f0c5e3 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 a66b86c7..2f4c705b 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 061c3bf4..f81254d3 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() - } + 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 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) { + internal fun pick() = Detector(compass, object : Result(resultType) { - override fun byOne() = selector?.run { root?.let { return@run findOneOf(it) } ?: findOnce() } + 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 dcca7b84..0da2df92 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 a15d6450..9e0a6853 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 4de82c56..e6818011 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 f639254a..6baead55 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 57cc7bf8..20b8dc62 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 19f9f4d0..77d95d9c 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 d30b121f..618c13c1 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 c54ee3d6..13f0659c 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 0ffa3058..20edf012 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 98d1e3c6..8d7f7e6d 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 8010012c..f1eeb6f1 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 b6d82520..2e4ecc87 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 bf888302..5d3629d3 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 a9e48d11..cfb7ae90 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 def99951..de65c009 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 de0235c9..d0036aad 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 cc515303..cdec55fb 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 be3cfa1e..beeb3e9a 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 111dd581..758a0345 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 51917a26..94dc7a97 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 3ef84d9e..fbc131bd 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 31263159..632b64a9 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 6bf7e907..6b9eb22c 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 437339bb..102550e2 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 d8a464dc..ca4e39e3 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 0a856a44..546b2ecd 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 45469d64..4b65b747 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 18d05e73..016ba1db 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 10ecb092..de095cf6 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 688aa60e..ee3d05d9 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 959a7af5..aabffd13 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 9afb00aa..9c0f6d45 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 e839c66c..4af31b32 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 3134f994..9974ca58 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 c45dfc82..1e123515 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 @@ package org.autojs.autojs.core.broadcast; 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 311b6ae6..40d881f4 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.core.looper.Timer; 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 1adb1870..d9d60329 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 60777d0d..ecd89bad 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 ae133214..ef6f41c0 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.Map; 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 080acb66..02c13c52 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.Date; 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 40b7b7af..ec166f46 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.TooManyListenersException; 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 9d67d2cc..cff66479 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 a7520316..85fe577e 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 b2399b59..8f752256 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 androidx.annotation.Nullable; 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 df9ac63d..b342ecf3 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 70399ac4..44d05c0e 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 09ebe73b..668fcff9 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.Arrays; 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 7dc9bac4..4bce9dda 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 androidx.annotation.ColorInt; 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 81191c78..6469df97 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 553d292d..0dd1c5f7 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.Collections; 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 baf82399..3cae0fc5 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.app.OnActivityResultDelegate; 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 50272ff9..8ca50d90 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 android.media.projection.MediaProjectionManager; 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 c2acadf8..703fca16 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.List; 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 e2dc7e9d..3c93cfd5 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 @@ public class ScreenCapturerForegroundService extends Service { 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 @@ public class ScreenCapturerForegroundService extends Service { @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 55fdd846..998ca531 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 androidx.annotation.Nullable; 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 b20d36bd..acffe2d5 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 2d93f8ca..67ccde7d 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.Matcher; 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 32cbe910..4f3d77f8 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 @@ package org.autojs.autojs.core.inputevent; 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 f966de14..eb422814 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.Locale; 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 76940490..7b373c2b 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.HashMap; 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 00c67f09..6398bb44 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 androidx.annotation.NonNull; 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 f699502a..589c535c 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 static org.autojs.autojs.util.StringUtils.str; 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 8090c063..a0e88957 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 android.os.Looper; 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 024f0451..e6452c9a 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 fb7f9961..99c5d3a3 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 org.autojs.autojs.lang.ThreadCompat; 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 7a72153f..69ac956d 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 c06d7bc8..8521da35 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 f5265518..63006e05 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 7a1f8444..beb6b269 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 41035766..41d4363a 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 org.opencv.android.OpenCVLoader; 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 5f91a573..4444a4fa 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 org.autojs.autojs6.R; 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 89175052..4225b001 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 @@ package org.autojs.autojs.core.record; 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 0ec7c7c8..0617305c 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 org.greenrobot.eventbus.EventBus; 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 011b78d5..529d043b 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.Arrays; 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 3f215e3d..6730d8ec 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 00be448d..aec8d852 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.Matcher; 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 4d7ea9a3..4ccfb948 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 7c02cbb1..105a390a 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.getDeviceScreenHeight; 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 40c98651..5e4a2949 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.getDeviceScreenHeight; 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 f928a07e..663c0459 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.inputevent.InputEventObserver; 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 1cd261bf..0d6dcc35 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.Context; 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 1cac63c4..eb6ba6a5 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 4787c7d5..f74f16e2 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 046181c7..479c6252 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.util.ArrayUtils; 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 62d70023..c94d9e84 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.ArrayList; 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 b685dbc4..1445ca59 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.runtime.ScriptRuntime; 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 1b13f894..439de432 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 d319b361..3b21d6aa 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 android.widget.ImageView; 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 1a2e0e7d..4999b2e8 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 org.w3c.dom.Node; 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 3966d137..5b6e678d 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 @@ package org.autojs.autojs.core.ui.inflater; 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 74823f1d..007bcb67 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 91ddbc76..bc7a8033 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 4cf4ab7b..62d3013b 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 92204ce2..187f5daa 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 91a72bb3..f56554aa 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 8a628a9d..738c6302 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 36db878a..9a6b1652 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 2ebae08b..69b45487 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 d5f7b308..eff7f383 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 0e76a099..1b7eba9a 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 151de53b..4956ba5e 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 1fa90968..d67745b0 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 9f9abaa0..1eecea64 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 2eb5a0b3..077e11ec 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 6a9da8a8..4365cf73 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 3a747fac..971d312d 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 2eecf511..8bdd5205 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 f0c07c65..28594ce6 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 c048ca10..2fe879f9 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 68586737..22e254a2 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 8b2525f0..5655aace 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 android.view.Gravity; 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 6d1e9565..f6ebe403 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.HashMap; 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 baf084f7..23efb0ed 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.content.Context; 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 class Res { } 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 87de1e54..42a65587 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.NotNull; 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 a30862f0..59b8a98e 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 android.view.InflateException; 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 9825f658..12df3c11 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 da47d1cb..43414f83 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 f366f4dc..a73e525c 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 10971f9a..0e6b1633 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 501139cc..8dccba03 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 48ef5abe..95f93230 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.GridLayoutManager; 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 5629675a..b5c6f2d2 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 b7c35ca8..82ea06db 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 3d2a3544..0ae8d1ad 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.Node; 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 d6eab088..d7aad914 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 18496ce9..2ad53145 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 f02dc487..b5ee1128 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 96a743a5..ede2ce7b 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 b93ecb41..8d647529 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 103b712a..e66d4b9b 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.HashMap; 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 d0095bfa..4593fb0e 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.HashMap; 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 ce4f7e13..0e40fc09 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 440cb28c..4dcc0b7c 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.LinkedList; 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 d23355f9..e3e06e72 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 464e1835..53c766f2 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.autojs.script.ScriptSource; 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 5a30291b..91d97ff0 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.app.Activity; 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 class LoopBasedJavaScriptEngine extends RhinoJavaScriptEngine { 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 class LoopBasedJavaScriptEngine extends RhinoJavaScriptEngine { continue; } catch (Throwable t) { mLooping = false; + if (BuildConfig.isInrt && t.getMessage() != null) { + ScriptRuntime.popException(t.getMessage()); + } throw t; } break; @@ -101,5 +112,4 @@ public class LoopBasedJavaScriptEngine extends RhinoJavaScriptEngine { 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 aabc1121..694aba2e 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 ef4be2e5..4f69709e 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 d4441a80..6e69b146 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.ConcurrentHashMap; 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 29bf4003..d4cc2f27 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.HashMap; 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 ffcd46e8..009d2bd3 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.Map; 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 b62b0232..cd8c8702 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 @@ package org.autojs.autojs.engine; 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.LinkedHashSet; 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 class ScriptEngineService { 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 @@ public class ScriptEngineService { @Override public void onException(ScriptExecution execution, Throwable e) { + Log.d(TAG, "onException"); e.printStackTrace(); onFinish(execution); String message = null; @@ -94,7 +99,10 @@ public class ScriptEngineService { } } 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 @@ public class ScriptEngineService { } 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 37ed60bc..ffb2b158 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.runtime.api.Console; 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 02fac406..4fb1405d 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 c2b13765..b7ed31dc 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.IOException; 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 7149c9a7..9c75568f 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.Reader; 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 735eb55b..ad92d092 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.IOException; 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 ed181a66..59810070 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 org.autojs.autojs.util.ViewUtils; 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 44a7d4eb..b1b45894 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 @@ package org.autojs.autojs.event; 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 b02168ba..330d8575 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.core.inputevent.ShellKeyObserver; 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 ea419e6a..095e6520 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 7fda8c91..ccb799ad 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.core.looper.Loopers; 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 class LoopedBasedJavaScriptExecution extends RunnableScriptExecution { 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 class LoopedBasedJavaScriptExecution extends RunnableScriptExecution { } }); 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 67c77619..11342321 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.runtime.exception.ScriptInterruptedException; 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 d7c47ed2..d7fa6365 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,24 +74,10 @@ class ScriptExecuteActivity : AppCompatActivity() { } private fun onException(e: Throwable) { - mExecutionListener!!.onException(mScriptExecution, e) + mExecutionListener?.onException(mScriptExecution, e) super.finish() } - private fun doExecution() { - mScriptEngine.setTag(ScriptEngine.TAG_SOURCE, mScriptSource) - mExecutionListener!!.onStart(mScriptExecution) - (mScriptEngine as LoopBasedJavaScriptEngine?)!!.execute(mScriptSource, object : ExecuteCallback { - override fun onResult(r: Any) { - mResult = r - } - - override fun onException(e: Exception) { - this@ScriptExecuteActivity.onException(e) - } - }) - } - private fun prepare() { mScriptEngine.put("activity", this) mScriptEngine.setTag("activity", this) @@ -97,16 +86,32 @@ class ScriptExecuteActivity : AppCompatActivity() { mScriptEngine.init() } - override fun finish() { - if (mExecutionListener == null) { - super.finish() - return + private fun doExecution() { + val executeCallback = object : ExecuteCallback { + override fun onResult(r: Any) { + mResult = r + } + + override fun onException(e: Throwable) { + this@ScriptExecuteActivity.onException(e) + } } - val exception = mScriptEngine.uncaughtException - if (exception != null) { - onException(exception) + + mScriptEngine.setTag(ScriptEngine.TAG_SOURCE, mScriptSource) + mExecutionListener!!.onStart(mScriptExecution) + + if (BuildConfig.isInrt) { + (mScriptEngine as LoopBasedJavaScriptEngineWithDecryption?)!!.execute(mScriptSource, executeCallback) } else { - mExecutionListener!!.onSuccess(mScriptExecution, mResult) + (mScriptEngine as LoopBasedJavaScriptEngine?)!!.execute(mScriptSource, executeCallback) + } + } + + override fun finish() { + 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 633ceead..9c032e38 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 org.autojs.autojs.script.ScriptSource; 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 5cb988f2..149e1515 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.autojs.runtime.api.Console; 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 3757ddbc..2e99a05a 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 @@ package org.autojs.autojs.execution; 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 f7ce6682..99316428 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 @@ package org.autojs.autojs.execution; 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 b883769c..1b55c632 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 org.autojs.autojs.script.ScriptSource; 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 c6bc4ada..77349ca3 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 7437ef81..5b84d911 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 android.content.Intent; 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 75244062..a2e76a80 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 01b99f9b..73df4723 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 6c347b55..d256f932 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 org.autojs.autojs6.R; 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 fafc0c5f..2fdb8c27 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.FileNotFoundException; 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 d16c0b56..f0632fc0 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.FileNotFoundException; 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 65116fa1..6ce0a644 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.autojs.util.BitmapUtils; 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 1da1a51d..2fd560a6 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.model.script.Scripts; 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 a81156a5..cc22a346 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.Collections; 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 a312878c..57b6e821 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.autojs.autojs.external.open.RunIntentActivity; 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 ef12a915..080e705a 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 603cebd2..1d5f33ed 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 org.autojs.autojs6.databinding.ActivityTaskerScriptEditBinding; 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 73b02b2d..de43223f 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.FullScreenFloatyWindow; 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 0dc496dd..fd7e5b77 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 com.afollestad.materialdialogs.MaterialDialog; 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 abstract class LayoutInspectTileService extends TileService implements La 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 afbb0f86..ec5f7987 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.HashSet; 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 0777dea9..8a0b0ced 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.R; 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 4509cba5..73a1abdc 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.Matcher; 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 29fd471a..ff6957c3 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.LinearLayoutManager; 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 f84b26cc..426510d0 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 8152e754..af9ccb04 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 f633e592..85696505 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 c147a832..22f83590 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 b53ced32..0e8e222b 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 27ff0825..323c843f 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 9241d165..b6907857 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 dc170910..4f297ffa 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 a76cfbec..410ac4b8 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.io.File; 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 e659625c..00000000 --- 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 00000000..9639abfe --- /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 4e9e96fd..a28a468d 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.Set; 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 6967e3b0..d5aeccbc 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.ExecutorService; 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 26629a84..e7e53d47 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.android.schedulers.AndroidSchedulers; 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 c0e8aadb..acb8f8f6 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 19387b77..d22b1b1b 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 c242b49a..03af94fe 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.Map; 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 5b82d607..f616a818 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 @@ package org.autojs.autojs.model.autocomplete; 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 e5a1b960..f0376fa7 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.Collections; 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 313c491a..55093977 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.Collections; 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 b4c57ce5..b61d369a 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 @@ package org.autojs.autojs.model.editor; 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 2de51ff5..7b17769e 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 @@ -66,13 +66,23 @@ public class ExplorerFileItem implements ExplorerItem { } @Override - public boolean canDelete() { - return mFile.canWrite(); + public boolean canRename() { + return !isInSampleDir(mFile) && mFile.canWrite(); } @Override - public boolean canRename() { - return mFile.canWrite(); + public boolean canDelete() { + return !isInSampleDir(mFile) && mFile.canWrite(); + } + + @Override + 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 class ExplorerFileItem implements ExplorerItem { 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 class ExplorerFileItem implements ExplorerItem { 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 f35f3a6d..c906b817 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 396d1c83..a9331e22 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 class ExplorerSampleItem extends ExplorerFileItem { 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 fbc1e548..e791e262 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 class WorkspaceFileProvider extends ExplorerFileProvider { 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 class WorkspaceFileProvider extends ExplorerFileProvider { .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 @@ public class WorkspaceFileProvider extends ExplorerFileProvider { 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 81311758..263a13e4 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.ArrayList; 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 a2c91c68..ce608164 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.android.schedulers.AndroidSchedulers; 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 a6407e0b..7f6134ca 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 @@ package org.autojs.autojs.model.indices; 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 d7ccf239..f0503945 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.InputStreamReader; 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 cfab00f1..f490fdfb 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 org.autojs.autojs6.R; 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 ae403747..17c76b6c 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 org.autojs.autojs.script.ScriptSource; 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 77e1c56a..0dd9b458 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 33d3fb9e..d9c699e6 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.HttpURLConnection; 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 7604ad34..9084f821 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.adapter.rxjava2.RxJava2CallAdapterFactory; 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 class UpdateChecker { return; } - VersionInfo versionInfo = getVersionInfo(responseBody); + mGitHubExecutor.execute(() -> { + VersionInfo versionInfo = getVersionInfo(responseBody); - switch (mPromptMode) { - case DIALOG -> { - if (versionInfo == null) { - ViewUtils.showToast(mContext, R.string.error_parse_version_info); - return; + 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(); + } } - if (versionInfo.isNewer() && versionInfo.isNotIgnored()) { - showDialog(versionInfo); - } else { - ViewUtils.showToast(mContext, R.string.text_is_latest_version); - Pref.refreshLastNoNewerUpdatesTimestamp(); + case SNACKBAR -> { + if (versionInfo != null && versionInfo.isNewer() && versionInfo.isNotIgnored()) { + mHandler.post(() -> showSnackBar(versionInfo)); + } } } - case SNACKBAR -> { - if (versionInfo != null && versionInfo.isNewer() && versionInfo.isNotIgnored()) { - 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 1d20517f..4a85dc57 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.Streaming; 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 687c31d5..6b568b37 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.Streaming; 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 5e3e0805..3bb5828b 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 @@ package org.autojs.autojs.network.download; 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 a6dcee19..282a6498 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.Retrofit; 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 @@ public class DownloadManager { 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 e95a34c2..0928d30e 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 96f0802e..ee1ce5d9 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 8283e4b6..9d6e56ca 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.io.FilenameFilter; 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 class PFile extends File { 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 f3b6968c..42960422 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 e36ad710..1c002434 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 174ebe75..3973035d 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.IOException; 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 abb90287..565a0097 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.Closeable; 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 877aff9d..01c4a8e6 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.ArrayList; 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 c6f5bfca..b6140354 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.Arrays; 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 346ab3ba..3af8dac1 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 @@ package org.autojs.autojs.pio; 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 5232a567..ecea9d18 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.android.schedulers.AndroidSchedulers; 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 97f0e2b8..4cfd74b1 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 53502056..5ccb302c 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 @@ package org.autojs.autojs.pluginclient; 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 eaf97f0d..625912e1 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.HashMap; 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 c1d4a502..d46ee6f1 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 70557603..e3e8ead9 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 @@ package org.autojs.autojs.project; 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 a36dfdcf..ff4ae87a 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 com.google.gson.annotations.SerializedName; 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.List; 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 c105586b..4eed5f55 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 e133807a..0100dd36 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 725b0cd2..cb2f8c94 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 org.mozilla.javascript.Scriptable; 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 b3f99a37..3a5ec9f0 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.NativeJavaObject; 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 48d78480..c8b49c7a 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 org.mozilla.javascript.SecurityController; 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 2b53b7d7..b68f2747 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 7be11769..5d876884 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 0dcc3337..09268c40 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.File; 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 ef55b8f5..662ac2cf 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 6db302a2..67a1e70e 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.Map; 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 eb2207c8..0c269556 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.ArrayList; 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 46210141..59e55fc0 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 68f9049b..2f2289d7 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 com.google.gson.annotations.SerializedName; 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 2a48457c..714b678a 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 006d29ab..2c0c7a9e 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 c7e988c9..77c63a29 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 java.util.List; 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 48625b5c..2a8fd0c9 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.autojs.util.ArrayUtils; 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 74c87c2a..2908900c 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 org.autojs.autojs.script.StringScriptSource; 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 4868bcbc..73a2996b 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.Map; 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 25da6fbe..8c1939bb 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 org.autojs.autojs.util.EnvironmentUtils; 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 class Files { 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 class Files { 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 f6461985..e44fa645 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 5bf0764d..efbb1552 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.Arrays; 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 6ddd6095..137b37e4 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 org.autojs.autojs.util.MimeTypesUtils; 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 d7055600..f6b89ec1 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 class Plugins { } 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 a23d1f6c..71f1e5a3 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.InputStream; import java.io.InputStreamReader; /** - * Created by Stardust on 2017/1/20. + * Created by Stardust on Jan 20, 2017. *

    * 来自网络~~ */ @@ -228,6 +228,8 @@ public class ProcessShell extends AbstractShell { 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 b220c181..74670960 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 87239cc9..ad57c6db 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.Map; 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 41f981ef..60ec3955 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.emulatorview.TermSession; 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 79cf2392..3c91f128 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 6e1db575..188e9865 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.core.looper.TimerThread; 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 ee5b6803..14a69aee 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 cb439e69..53339289 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 9bb4a12a..c8265e0b 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 0a7c8c8b..6aa9afdf 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 906ee4b2..40cb62c6 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 org.autojs.autojs.pio.PFiles; 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 cf14cf62..cfdb29aa 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.FileReader; 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 59154f4f..474e20ff 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.io.StringReader; 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 2bdf950d..3fb8d629 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.ExecutorService; 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 37685120..e9c2575f 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 f9ad0f28..1a66855a 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.Reader; 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 bcba92e9..da469d8a 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 androidx.annotation.Nullable; 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 c16d346b..2b81cfcb 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 e1fecb66..4f9bd7a0 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 @@ package org.autojs.autojs.storage.database; 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 2d99efa2..e7f8a044 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.File; 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 6fdef7b7..6a710228 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 7485c712..acb939ce 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 androidx.core.graphics.drawable.DrawableCompat; 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 0d05aac0..c0667b0d 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 7602e003..8cca4443 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.autojs.app.GlobalAppContext; 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 1eed40d4..8ce510f7 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 d3608b76..732b2160 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 d8a80e2a..c7bc0b18 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 fcfe58f1..b1902790 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 1b767345..5aeb2b4a 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.ThemeColorManager; 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 f2fbbb3a..78628359 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.lang.reflect.Field; 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 4a0fe255..f92b01bd 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 androidx.preference.CheckBoxPreference; 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 d268d681..f651a6ca 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 930394ea..f9198190 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.ThemeColorMutable; 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 fd5fba5c..5be31dac 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 ee0da44c..98195d3f 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.ArrayList; 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 8a0362c9..3f7ad54b 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.ThemeColorManager; 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 dab4e6cb..fd561ac2 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 org.autojs.autojs.theme.ThemeColorMutable; 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 e7675329..fe2efa52 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.theme.ThemeColorMutable; 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 764e59a9..db94ea14 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 e2702dd3..1c6faee7 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 org.autojs.autojs.theme.ThemeColorMutable; 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 316bcdd6..1bde51fb 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.ThemeColorMutable; 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 2f8a8c87..13012d23 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.autojs.theme.ThemeColorMutable; 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 dc8965c4..6f50470b 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.ThemeColorManager; 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 1b8157df..1e1f6c58 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.ThemeColorManager; 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 5d23b64b..b35a0daf 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.autojs.theme.ThemeColorMutable; 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 b2eb64ef..ea6c118c 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 android.content.Intent; 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 52a43592..898e4d88 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 83669c62..d1232e01 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 9f0c66e2..bd76e0d0 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 77469c70..443e2c52 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 @@ package org.autojs.autojs.tool; 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 ac316cbc..00000000 --- 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 00000000..114aa8ba --- /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 15d517ee..d2978eb0 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 6b3b1b26..fd9f1efe 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.autojs.app.OnActivityResultDelegate; 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 610c9ed8..c340a723 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.Map; 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 6667b184..771232b9 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 @@ package org.autojs.autojs.tool; 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 12f3beab..de9df8e6 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.HashMap; 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 375c9b39..ee327e9c 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.Timer; 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 9143c74b..389df852 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.annotations.NonNull; 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 4d1bf673..64c206db 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 android.util.SparseArray; 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 5a14e53f..5e8830eb 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.Map; 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 60716cb4..e1325de0 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 d92d158d..41d6a8dc 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 0692ce38..a9e10a22 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 46a842e4..4be0f96f 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.ArrayList; 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 7ddb6d50..8e6f3549 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.autojs.util.MD5Utils; 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 59919de9..f9ffac0d 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.Observable; 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 87ec5cf7..50d9e2aa 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.R; 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 c2e183da..21efbd3b 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.internal.functions.ObjectHelper; 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 class ScriptOperations { } 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 @@ public class ScriptOperations { 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 41598455..9c7c0239 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 69b0c9d7..527dc513 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 50fecb9b..305aa1cb 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 f83e0751..415649d4 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 7bcb1c00..5399dc3a 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.Observable; 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 c6727564..14b7da64 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 5ac07921..c7a190ef 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 898dff5e..aeb15db8 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.R; 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 e773f9e5..c82e25f9 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.autojs.groundwork.WrapContentLinearLayoutManager; 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 8fab53c3..6c07d15e 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.Editable; 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 7c30f483..35127b83 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 0cea6940..f0e3a313 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 371a1d2b..17c9644d 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.graphics.Rect; 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 d37162bc..a2b956e2 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 android.widget.LinearLayout; 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 f508f1fb..440e832c 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 java.util.Map; 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 class FunctionsKeyboardView extends FrameLayout { 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 @@ public class FunctionsKeyboardView extends FrameLayout { } else { column += spanSize; } - if (column == 4) { + if (column == SPAN_COUNT) { column = 0; } } @@ -145,8 +155,9 @@ public class FunctionsKeyboardView extends FrameLayout { } 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 @@ public class FunctionsKeyboardView extends FrameLayout { 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 @@ public class FunctionsKeyboardView extends FrameLayout { mSelectedModuleView.setSelected(false); } mSelectedModuleView = moduleView; - if (mSelectedModuleView != null) + if (mSelectedModuleView != null) { mSelectedModuleView.setSelected(true); + } initSpanSizes(mSelectedModule); mPropertiesView.getAdapter().notifyDataSetChanged(); } @@ -194,8 +207,9 @@ public class FunctionsKeyboardView extends FrameLayout { @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 @@ public class FunctionsKeyboardView extends FrameLayout { 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 class FunctionsKeyboardView extends FrameLayout { public int getItemCount() { return mModules == null ? 0 : mModules.size(); } + } private class PropertiesAdapter extends RecyclerView.Adapter { @@ -298,6 +314,7 @@ public class FunctionsKeyboardView extends FrameLayout { 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 a4a5cde3..2efa8add 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.InputStreamReader; 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 b083fe53..ee5e413f 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.pio.UncheckedIOException; 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.schedulers.Schedulers; 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 @@ public class Themes { } 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 c446d5f0..b001d201 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.Collections; 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 class TokenMapping { 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 b7356dcb..82b781ca 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 org.opencv.core.Size; 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 6320f619..cd0a00a8 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.View; 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 abstract class FloatyWindow { onCreateWindow(service, manager); } - protected void onCreateWindow(FloatyService service, WindowManager manager) { setWindowLayoutParams(onCreateWindowLayoutParams()); setWindowView(onCreateView(service)); @@ -38,7 +38,7 @@ public abstract class FloatyWindow { onViewCreated(getWindowView()); - //attach to window + // attach to window attachToWindow(getWindowView(), manager); } @@ -46,7 +46,7 @@ public abstract class FloatyWindow { } - 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 @@ public abstract class FloatyWindow { protected WindowBridge onCreateWindowBridge(WindowManager.LayoutParams params) { return new WindowBridge.DefaultImpl(params, getWindowManager(), getWindowView()); - } protected abstract WindowManager.LayoutParams onCreateWindowLayoutParams(); @@ -69,7 +68,6 @@ public abstract class FloatyWindow { mWindowManager.updateViewLayout(getWindowView(), getWindowLayoutParams()); } - protected void setWindowManager(WindowManager windowManager) { mWindowManager = windowManager; } @@ -98,6 +96,7 @@ public abstract class FloatyWindow { return mWindowManager; } + @Nullable public WindowBridge getWindowBridge() { return mWindowBridge; } @@ -110,7 +109,6 @@ public abstract class FloatyWindow { 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 bf4b1e21..6a31bf87 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 android.view.View; 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 405a83c0..00000000 --- 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 00000000..360911f9 --- /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 90fd6550..7cf70839 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.view.View; 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 53a8a936..c68a671b 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.autojs.ui.enhancedfloaty.util.WindowTypeCompat; 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 8e1bfbdd..804b42e6 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 android.view.View; 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 14228d21..a43daed9 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.View; 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 ce08a1fc..ffdd8c01 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 android.view.View; 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 d72d6fbf..2358aacd 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 androidx.annotation.Nullable; 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 50e7157e..32eaf205 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.provider.Settings; 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 7ffcca64..d5c5e3b9 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.Timer; 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 53e9c71a..a33d93b3 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 @@ class ExplorerItemViewHolder extends BindableViewHolder { 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 @@ class ExplorerItemViewHolder extends BindableViewHolder { 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 4ec2283f..b54059eb 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.ExplorerPage; 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 @@ class ExplorerPageViewHolder extends BindableViewHolder { 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 a07041ad..d0c71b0d 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.LinearSmoothScroller; 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.ui.widget.BindableViewHolder; 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.functions.Function; 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 class ExplorerView extends ThemeColorSwipeRefreshLayout implements SwipeR 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 9f870a80..4d5e9385 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.List; 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 9edf4fea..ae8e6820 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.Observable; 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 ced1ff7d..2e341026 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 org.autojs.autojs6.R; 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 @@ public class CircularActionMenu extends FrameLayout { 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 @@ public class CircularActionMenu extends FrameLayout { 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 3b436bee..4cef091e 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 org.jetbrains.annotations.NotNull; 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 b9e4be40..fc3f72da 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 org.autojs.autojs6.R; 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 bfc9b838..258e9df8 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 android.view.WindowManager; 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 16d9af46..35866757 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.autojs.ui.enhancedfloaty.WindowBridge; 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 b9fd7d4c..877279aa 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 androidx.core.view.GestureDetectorCompat; 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 670f799c..10f822ad 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 fc048105..2a8be3a1 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 6466e8b5..6aa22461 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 b51e97e9..a2c8340e 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.NestType; 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 aa0c039a..401024c6 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 bec291c9..0d74162d 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 7c73668a..4bf768f1 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 org.autojs.autojs6.R; 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 8fc7b425..8fc2f8aa 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 30419082..0dfe90f8 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 com.google.android.material.floatingactionbutton.FloatingActionButton; 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 e4453b5a..b4028d99 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 71b460c2..43c3938a 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 org.autojs.autojs.ui.widget.BindableViewHolder; 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 2e151023..17c4ae99 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 ae655955..2718a88b 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.autojs6.R; 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 ba0481e5..02d371b6 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 androidx.annotation.Nullable; 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 2f88b6b1..baf1f4eb 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 97ec5a79..f471176a 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 cd4f992a..21625a11 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 61894057..18a714a5 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 f5f9fd9e..38fa3adf 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 e56302e4..f5d929bd 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.autojs.autojs6.R; 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 745e93d9..827caf30 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.ArrayList; 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 4a3a0a86..383e22ce 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.android.schedulers.AndroidSchedulers; 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 d2b6e3ac..88f3c6b0 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 b0061766..9bcbfc8b 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.R; 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.android.schedulers.AndroidSchedulers; 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 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa 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; - } - } catch (IOException e) { - String msg = e.getMessage(); - if (msg != null) { - Log.e(LOG_TAG, msg); + 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; + } } } - return false; - } - - private void checkApkBuilderPlugin() { - if (!ApkBuilderPluginHelper.isPluginAvailable(this) || ApkBuilderPluginHelper.getPluginVersion(this) < 0) { - showPluginDownloadDialog(); + 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); + } } } - 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 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 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 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 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 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa 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 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa } 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 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa 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 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa 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 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa 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 class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa @Override public void onSign(@NonNull ApkBuilder builder) { mProgressDialog.setContent(R.string.apk_builder_package); - } @Override @@ -391,11 +537,11 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa @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 99cdffc8..466dc65c 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 6b78f774..cfd6fbd1 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 0c76fffd..a5dcbcfe 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 0d5f6674..08725f77 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 3b708b6a..da1caca4 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.Context; 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 androidx.recyclerview.widget.RecyclerView; 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.android.schedulers.AndroidSchedulers; 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 @@ public class AppsIconSelectActivity extends BaseActivity { } } - 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 1f063314..f714ec7f 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.android.schedulers.AndroidSchedulers; 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 cd516190..fd2ccd61 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 2bb0c8cb..5fe05275 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 21a12c8c..44548a74 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 2ff10b56..31f648a0 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 androidx.annotation.Nullable; 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 175ca3de..cd95bf01 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.Collection; 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 fe3ddaee..7b1f832e 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 androidx.recyclerview.widget.RecyclerView; 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 c69975b3..221c78e5 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 org.autojs.autojs6.R; 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 b55b0732..b58a9313 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 a10d2d25..a1277d80 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 androidx.drawerlayout.widget.DrawerLayout; 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 cde3a2e6..bbc0f561 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.Observable; 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 043b8070..dfc9d435 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 android.widget.TextView; 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 8d351e8c..35d14e79 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 androidx.recyclerview.widget.RecyclerView; import android.view.View; +/** + * Created by Stardust on Dec 9, 2017. + */ /** * ItemDecoration implementation that applies and inset margin @@ -22,7 +22,6 @@ import android.view.View; */ public class GridDividerDecoration extends RecyclerView.ItemDecoration { - private final Drawable mDivider; private final int mInsets; @@ -31,7 +30,6 @@ public class GridDividerDecoration extends RecyclerView.ItemDecoration { 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 class GridDividerDecoration extends RecyclerView.ItemDecoration { 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 class GridDividerDecoration extends RecyclerView.ItemDecoration { 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 class GridDividerDecoration extends RecyclerView.ItemDecoration { } @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 21a31282..e4d3bf43 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.ItemTouchHelper; 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 24fd30ad..5c1473b2 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 3844b131..4e86850d 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 androidx.recyclerview.widget.RecyclerView; 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 a63789e2..38cf27d2 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.autojs.theme.ThemeColorMutable; 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 00000000..c532bb18 --- /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 4542e407..3ae5d143 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.util.AttributeSet; 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 d113a078..1425f5c0 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 androidx.core.view.MenuItemCompat; 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 6d68471d..f1515cd0 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 @@ package org.autojs.autojs.ui.widget; 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 7b9c434a..fd905cbd 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.Collections; 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 1978b217..8db74759 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.Editable; 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 109feada..81db6c3e 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 android.widget.FrameLayout; 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 db1f90d5..3a18ddfc 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 618cda55..75d14b64 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 androidx.recyclerview.widget.RecyclerView; 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 9edc998f..531e5b8d 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 android.view.ViewGroup; 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 e3dfc391..83042ab1 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 android.view.View; 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 4568049c..8b577e63 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.util.AttributeSet; 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 6ed73def..0fcc7ab0 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 657e2083..d34584ce 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.Objects; 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 9990150e..6ab99ba7 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.pio.PFiles; 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 80c76411..7f20f976 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 e2e03a35..1a29bac4 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 130251a3..1b27bfd3 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 java.util.zip.ZipFile; 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 03dc6d21..a7ce681c 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 0a2c1fba..11d11b06 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 6e0d9cf9..d058cd7b 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 17355f4d..508b8a4c 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 0b781d21..7cc06267 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 758c7ec8..1157ab20 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 androidx.annotation.Nullable; 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 c8aec955..a1af5082 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 47c33866..b621f0ad 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 a2f853cc..66fd9040 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 3079f364..7925dc2f 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 62171a20..dc8e9920 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 218846b3..9f1eb805 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 org.autojs.autojs6.R; 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 648115d9..f034d58e 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 4d25ce43..5b763bea 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 94f6d9b1..7280ea77 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 fa9416d5..b8c81a4f 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 @@ package pxb.android.axml; 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 00000000..eb596d95 Binary files /dev/null and b/app/src/main/res/drawable-night/ic_add_48dp.png differ diff --git a/app/src/main/res/drawable/bg_item_module.xml b/app/src/main/res/drawable/bg_item_module.xml index 66363e49..0b963721 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 e57ca1f9..d08b49de 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 4522c99d..bae14065 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 29dda27b..aa27241e 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 00000000..e1024a2b Binary files /dev/null and b/app/src/main/res/drawable/ic_add_48dp.png differ diff --git a/app/src/main/res/drawable/ic_packaging.png b/app/src/main/res/drawable/ic_packaging.png new file mode 100644 index 00000000..0f557f2e Binary files /dev/null and b/app/src/main/res/drawable/ic_packaging.png differ 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 00000000..9b311975 --- /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 00000000..5c9e7a56 --- /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 00000000..3402f599 --- /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 00000000..ea5e0b6f --- /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 00000000..a40635c6 --- /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 ddcc0e47..6ba30d1c 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: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_marginTop="8dp" + android:orientation="horizontal"> + android:layout_weight="1" + android:hint="@string/text_output_apk_path"> + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 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" /> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - \ 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 cf9a5f3a..04934979 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:orientation="horizontal" + android:baselineAligned="false"> + 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_gravity="bottom|center" + android:orientation="vertical"> - + + - + android:layout_marginTop="2dp" + android:layout_marginBottom="8dp" + android:text="@string/text_icon" + android:textSize="12sp" + android:gravity="center" /> + + - - - - - + android:layout_marginTop="8dp" + android:hint="@string/text_project_location"> - + - + + + + + + + + + + + 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 d997ce5e..bf3d557d 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 1b3de0b0..83a31cd4 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 65652f6c..78e93608 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 39a1ffcb..f29c4dcf 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 8dca4917..c15cfb78 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 d2f8f182..602d9dc5 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 3233943e..99542893 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 4468021d..992c695f 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 00000000..3a619c17 --- /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 edcfb558..818f42b2 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 246f8857..0568c3c1 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 f4f04dae..ae53edbf 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 fddb77e9..48e8840d 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 a5f1fa97..3caaea39 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 45191ad1..cffb370c 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 ddd4a9e8..fd03e759 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 16f34b84..c4266764 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 c598b432..212614a0 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 60cb4585..4294c267 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 107eab2b..f185e15b 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 4300887a..e1d07b73 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 efa8b3c7..018ad0d6 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 cf3a65ff..a596cf53 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 5821eea0..8e0e9fef 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 9a4a31c2..92e26bb2 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 5aae0109..1ff7e7ab 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 40d1cc67..bcb55def 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 57c0b1a6..c233ad98 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 84d2d422..2baf5656 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 0429e485..0727ca07 100644 Binary files a/libs/org.mozilla.rhino-1.7.15-snapshot.jar and b/libs/org.mozilla.rhino-1.7.15-snapshot.jar differ diff --git a/libs/paddleocr/build.gradle b/libs/paddleocr/build.gradle index 2b746a8d..7eb8a451 100644 --- a/libs/paddleocr/build.gradle +++ b/libs/paddleocr/build.gradle @@ -211,17 +211,17 @@ class Versions { void showInfo() { def title = "Version information for paddleocr library" - def infoOpencv = "OpenCV version: $opencv" + def infoOpenCV = "OpenCV version: $opencv" def infoNdk = "NDK version: $ndk" def infoCmake = "CMake version: $cmake" - def maxLength = maxOf([title, infoOpencv, infoNdk, infoCmake].collect { it.length() }) + def maxLength = maxOf([title, infoOpenCV, infoNdk, infoCmake].collect { it.length() }) [ "=".repeat(maxLength), title, "-".repeat(maxLength), - infoOpencv, + infoOpenCV, infoNdk, infoCmake, "=".repeat(maxLength), diff --git a/libs/paddleocr/src/main/java/com/baidu/paddle/lite/ocr/Predictor.java b/libs/paddleocr/src/main/java/com/baidu/paddle/lite/ocr/Predictor.java index e6aa8da3..7e8f49e5 100644 --- a/libs/paddleocr/src/main/java/com/baidu/paddle/lite/ocr/Predictor.java +++ b/libs/paddleocr/src/main/java/com/baidu/paddle/lite/ocr/Predictor.java @@ -181,7 +181,7 @@ public class Predictor { if (modelPath.charAt(0) != '/') { // Read model files from custom path if the first character of mode path is '/' // otherwise copy model to cache from assets - realPath = appCtx.getCacheDir() + "/" + modelPath; + realPath = appCtx.getCacheDir() + File.separator + modelPath; // region add by TonyJiangWJ String key = "PADDLE_MODEL_LOADED" + md5(modelPath); // 进行了模型更新 需要强制覆盖旧模型 @@ -210,7 +210,7 @@ public class Predictor { this.cpuThreadNum = cpuThreadNum; this.cpuPowerMode = cpuPowerMode; this.modelPath = realPath; - this.modelName = realPath.substring(realPath.lastIndexOf("/") + 1); + this.modelName = realPath.substring(realPath.lastIndexOf(File.separator) + 1); return true; } @@ -242,7 +242,7 @@ public class Predictor { // Load word labels from file try { InputStream labelInputStream; - if (labelPath.startsWith("/")) { + if (labelPath.startsWith(File.separator)) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { labelInputStream = Files.newInputStream(Paths.get(labelPath)); } else { diff --git a/settings.gradle.kts b/settings.gradle.kts index af36e856..348210db 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 16cb90b7..195be774 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