6.7.0 - Alpha13 - Fine tuning

This commit is contained in:
SuperMonster003
2025-12-25 17:54:30 +08:00
parent adc27e2c34
commit 4ed77a3085
10 changed files with 63 additions and 91 deletions

View File

@@ -62,7 +62,7 @@
"打包应用无法正常使用 Paddle OCR 与 Rapid OCR 功能的问题", "打包应用无法正常使用 Paddle OCR 与 Rapid OCR 功能的问题",
"版本历史页面部分系统因字体差别导致统计数据显示不完整的问题", "版本历史页面部分系统因字体差别导致统计数据显示不完整的问题",
"部分设备无法正常初始化 MLKit Google OCR 的问题 (试修) _[`issue #8`](http://issues.autojs6.com/8#issuecomment-3117061768)_", "部分设备无法正常初始化 MLKit Google OCR 的问题 (试修) _[`issue #8`](http://issues.autojs6.com/8#issuecomment-3117061768)_",
"ErrorDialogActivity 可能无法正常启动或短时间自动消失的问题 _[`issue #414`](http://issues.autojs6.com/414)_ _[`issue #340`](http://issues.autojs6.com/340#issuecomment-2973485826)_", "ErrorDialogActivity 可能无法正常启动或短时间自动消失的问题 _[`issue #471`](http://issues.autojs6.com/471)_ _[`issue #414`](http://issues.autojs6.com/414)_ _[`issue #340`](http://issues.autojs6.com/340#issuecomment-2973485826)_",
"崩溃报告页面复制详细信息功能失效的问题", "崩溃报告页面复制详细信息功能失效的问题",
"文件管理器删除项目文件夹后 UI 未能自动刷新的问题", "文件管理器删除项目文件夹后 UI 未能自动刷新的问题",
"APK 文件类型信息对话框可能无法获取应用名称及 SDK 信息的问题", "APK 文件类型信息对话框可能无法获取应用名称及 SDK 信息的问题",

View File

@@ -1,14 +1,14 @@
{ {
"android_studio_latest_recommended_version_name": "Android Studio Otter 2 Feature Drop | 2025.2.2", "android_studio_latest_recommended_version_name": "Android Studio Otter 2 Feature Drop | 2025.2.2 Patch 1",
"var_date_android_studio_latest_recommended_version_name": "2025/12/04", "var_date_android_studio_latest_recommended_version_name": "2025/12/23",
"android_studio_latest_recommended_file_name_of_exe": "android-studio-2025.2.2.7-windows.exe", "android_studio_latest_recommended_file_name_of_exe": "android-studio-2025.2.2.8-windows.exe",
"android_studio_latest_recommended_download_address_of_exe": "https://edgedl.me.gvt1.com/edgedl/android/studio/install/2025.2.2.7/android-studio-2025.2.2.7-windows.exe", "android_studio_latest_recommended_download_address_of_exe": "https://redirector.gvt1.com/edgedl/android/studio/install/2025.2.2.8/android-studio-2025.2.2.8-windows.exe",
"android_studio_latest_recommended_file_size_of_exe": "1.34 GiB", "android_studio_latest_recommended_file_size_of_exe": "1.34 GiB",
"android_studio_latest_recommended_file_name_of_zip": "android-studio-2025.2.2.7-windows.zip", "android_studio_latest_recommended_file_name_of_zip": "android-studio-2025.2.2.8-windows.zip",
"android_studio_latest_recommended_download_address_of_zip": "https://edgedl.me.gvt1.com/edgedl/android/studio/ide-zips/2025.2.2.7/android-studio-2025.2.2.7-windows.zip", "android_studio_latest_recommended_download_address_of_zip": "https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2025.2.2.8/android-studio-2025.2.2.8-windows.zip",
"android_studio_latest_recommended_file_size_of_zip": "1.35 GiB", "android_studio_latest_recommended_file_size_of_zip": "1.35 GiB",
"android_studio_latest_recommended_file_name_of_tar": "android-studio-2025.2.2.7-linux.tar.gz", "android_studio_latest_recommended_file_name_of_tar": "android-studio-2025.2.2.8-linux.tar.gz",
"android_studio_latest_recommended_download_address_of_tar": "https://edgedl.me.gvt1.com/edgedl/android/studio/ide-zips/2025.2.2.7/android-studio-2025.2.2.7-linux.tar.gz", "android_studio_latest_recommended_download_address_of_tar": "https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2025.2.2.8/android-studio-2025.2.2.8-linux.tar.gz",
"android_studio_latest_recommended_file_size_of_tar": "1.38 GiB", "android_studio_latest_recommended_file_size_of_tar": "1.38 GiB",
"var_date_contribution_table_data_updated": "2025/09/06", "var_date_contribution_table_data_updated": "2025/09/06",
"latest_rhino_engine_name_with_github_lineno_address": "[v2.0.0-SNAPSHOT](http://rhino.autojs6.com/blob/master/gradle.properties#L3)", "latest_rhino_engine_name_with_github_lineno_address": "[v2.0.0-SNAPSHOT](http://rhino.autojs6.com/blob/master/gradle.properties#L3)",

View File

@@ -29,7 +29,6 @@ import org.autojs.autojs.runtime.api.Shell
import org.autojs.autojs.runtime.api.WrappedShizuku import org.autojs.autojs.runtime.api.WrappedShizuku
import org.autojs.autojs.script.AutoFileSource import org.autojs.autojs.script.AutoFileSource
import org.autojs.autojs.script.JavaScriptSource import org.autojs.autojs.script.JavaScriptSource
import org.autojs.autojs.theme.ThemeColorManager
import org.autojs.autojs.tool.UiHandler import org.autojs.autojs.tool.UiHandler
import org.autojs.autojs.util.StringUtils import org.autojs.autojs.util.StringUtils
import org.autojs.autojs.util.ViewUtils import org.autojs.autojs.util.ViewUtils

View File

@@ -57,10 +57,9 @@ public class GlobalActionRecorder implements Recorder.OnStateChangedListener {
return new TouchRecorder(mContext) { return new TouchRecorder(mContext) {
@Override @Override
protected InputEventRecorder createInputEventRecorder() { protected InputEventRecorder createInputEventRecorder() {
if (Pref.rootRecordGeneratesBinary()) return Pref.rootRecordGeneratesBinary()
return new InputEventToAutoFileRecorder(mContext); ? new InputEventToAutoFileRecorder(mContext)
else : new InputEventToRootAutomatorRecorder();
return new InputEventToRootAutomatorRecorder();
} }
}; };
} }
@@ -86,8 +85,9 @@ public class GlobalActionRecorder implements Recorder.OnStateChangedListener {
} }
public int getState() { public int getState() {
if (mTouchRecorder == null) if (mTouchRecorder == null) {
return Recorder.STATE_NOT_START; return Recorder.STATE_NOT_START;
}
return mTouchRecorder.getState(); return mTouchRecorder.getState();
} }
@@ -116,10 +116,11 @@ public class GlobalActionRecorder implements Recorder.OnStateChangedListener {
} }
if (!mDiscard) { if (!mDiscard) {
String code = getCode(); String code = getCode();
if (code != null) if (code != null) {
handleRecordedScript(code); handleRecordedScript(code);
else } else {
handleRecordedFile(getPath()); handleRecordedFile(getPath());
}
} }
for (Recorder.OnStateChangedListener listener : mOnStateChangedListeners) { for (Recorder.OnStateChangedListener listener : mOnStateChangedListeners) {
listener.onStop(); listener.onStop();
@@ -154,14 +155,13 @@ public class GlobalActionRecorder implements Recorder.OnStateChangedListener {
} }
private void handleRecordedFile(final String path) { private void handleRecordedFile(final String path) {
if (isBackgroundThread()) { if (isMainThread()) {
new ScriptOperations(mContext, null)
.importFile(path)
.subscribe();
} else {
GlobalAppContext.post(() -> handleRecordedFile(path)); GlobalAppContext.post(() -> handleRecordedFile(path));
return;
} }
new ScriptOperations(mContext, null)
.importFile(path)
.subscribe();
} }
private void showRecordHandleDialog(final String script) { private void showRecordHandleDialog(final String script) {

View File

@@ -13,7 +13,7 @@ import kotlin.math.roundToLong
*/ */
class VersionInfo : ExtendedVersionInfo { class VersionInfo : ExtendedVersionInfo {
var versionName: String = "" var versionName = ""
private set private set
var versionCode = 0L var versionCode = 0L
@@ -43,7 +43,7 @@ class VersionInfo : ExtendedVersionInfo {
Log.d(TAG, "versionName: $versionName") Log.d(TAG, "versionName: $versionName")
} }
if (versionCode <= 0 && line.contains(regexVersionCode)) { if (versionCode <= 0 && line.contains(regexVersionCode)) {
versionCode = regexVersionCode.find(line)?.groupValues?.get(1)?.toDouble()?.roundToLong() ?: -1L versionCode = regexVersionCode.find(line)?.groupValues?.get(1)?.toDoubleOrNull()?.roundToLong() ?: -1L
Log.d(TAG, "versionCode: $versionCode") Log.d(TAG, "versionCode: $versionCode")
} }
if (versionName.isNotBlank() && versionCode > 0) { if (versionName.isNotBlank() && versionCode > 0) {

View File

@@ -66,13 +66,13 @@ class DocumentationActivity : BaseActivity() {
(function() { (function() {
let mainElements = document.querySelectorAll('main > *'); let mainElements = document.querySelectorAll('main > *');
if (mainElements.length > 0) { if (mainElements.length > 0) {
// Online docs (zh-CN: 在线文档) // Online docs. (zh-CN: 在线文档.)
mainElements.forEach(ele => { mainElements.forEach(ele => {
let basePaddingBottom = ele.className === 'sidebar-toggle' ? 10 : 0; let basePaddingBottom = ele.className === 'sidebar-toggle' ? 10 : 0;
ele.style.paddingBottom = (basePaddingBottom + ${systemBarInsetsBottom}) / window.devicePixelRatio + 'px'; ele.style.paddingBottom = (basePaddingBottom + ${systemBarInsetsBottom}) / window.devicePixelRatio + 'px';
}); });
} else { } else {
// Local docs (zh-CN: 本地文档) // Local docs. (zh-CN: 本地文档.)
document.body.style.paddingBottom = '${systemBarInsetsBottom}px'; document.body.style.paddingBottom = '${systemBarInsetsBottom}px';
} }
})(); })();

View File

@@ -51,7 +51,7 @@ import java.text.MessageFormat;
/** /**
* Created by Stardust on Oct 18, 2017. * Created by Stardust on Oct 18, 2017.
*/ */
public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInspector.CaptureAvailableListener { public class CircularMenu implements LayoutInspector.CaptureAvailableListener {
public record StateChangeEvent(int currentState, int previousState) { public record StateChangeEvent(int currentState, int previousState) {
/* Empty record body. */ /* Empty record body. */
@@ -67,6 +67,7 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp
private RoundedImageView mActionViewIcon; private RoundedImageView mActionViewIcon;
private Context mContext; private Context mContext;
private final GlobalActionRecorder mRecorder; private final GlobalActionRecorder mRecorder;
private final Recorder.OnStateChangedListener mRecorderStateListener;
private CircularActionMenuBinding binding; private CircularActionMenuBinding binding;
private MaterialDialog mSettingsDialog; private MaterialDialog mSettingsDialog;
private MaterialDialog mLayoutInspectDialog; private MaterialDialog mLayoutInspectDialog;
@@ -90,7 +91,28 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp
initFloaty(); initFloaty();
setupWindowListeners(); setupWindowListeners();
mRecorder = GlobalActionRecorder.getSingleton(context); mRecorder = GlobalActionRecorder.getSingleton(context);
mRecorder.addOnStateChangedListener(this); mRecorderStateListener = new Recorder.OnStateChangedListener() {
@Override
public void onStart() {
setState(STATE_RECORDING);
}
@Override
public void onStop() {
setState(STATE_NORMAL);
}
@Override
public void onPause() {
/* Empty body. */
}
@Override
public void onResume() {
/* Empty body. */
}
};
mRecorder.addOnStateChangedListener(mRecorderStateListener);
AutoJs.getInstance().getLayoutInspector().addCaptureAvailableListener(this); AutoJs.getInstance().getLayoutInspector().addCaptureAvailableListener(this);
mA11yTool = new AccessibilityTool(mContext); mA11yTool = new AccessibilityTool(mContext);
} }
@@ -373,28 +395,8 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp
EventBus.getDefault().post(new StateChangeEvent(STATE_CLOSED, mState)); EventBus.getDefault().post(new StateChangeEvent(STATE_CLOSED, mState));
mState = STATE_CLOSED; mState = STATE_CLOSED;
} }
mRecorder.removeOnStateChangedListener(this); mRecorder.removeOnStateChangedListener(mRecorderStateListener);
AutoJs.getInstance().getLayoutInspector().removeCaptureAvailableListener(this); AutoJs.getInstance().getLayoutInspector().removeCaptureAvailableListener(this);
} }
@Override
public void onStart() {
setState(STATE_RECORDING);
}
@Override
public void onStop() {
setState(STATE_NORMAL);
}
@Override
public void onPause() {
/* Empty body. */
}
@Override
public void onResume() {
/* Empty body. */
}
} }

View File

@@ -1,51 +1,21 @@
package org.autojs.autojs.util; package org.autojs.autojs.util;
import org.autojs.autojs.runtime.api.augment.util.VersionCodesInfoGenerated;
/** /**
* Created by Stardust on Apr 3, 2017. * Created by Stardust on Apr 3, 2017.
* Modified by SuperMonster003 as of Feb 5, 2022. * Modified by SuperMonster003 as of Feb 5, 2022.
*/ */
public class SdkVersionUtils { public class SdkVersionUtils {
private static final String[] SDK_VERSIONS = {
/* placeholder */ null,
/* api: 1 */ "1.0",
/* api: 2 */ "1.1",
/* api: 3 */ "1.5",
/* api: 4 */ "1.6",
/* api: 5 */ "2.0",
/* api: 6 */ "2.0.1",
/* api: 7 */ "2.1.x",
/* api: 8 */ "2.2.x",
/* api: 9 */ "2.3",
/* api: 10 */ "2.3.3",
/* api: 11 */ "3.0.x",
/* api: 12 */ "3.1.x",
/* api: 13 */ "3.2",
/* api: 14 */ "4.0",
/* api: 15 */ "4.0.3",
/* api: 16 */ "4.1",
/* api: 17 */ "4.2",
/* api: 18 */ "4.3",
/* api: 19 */ "4.4.2",
/* api: 20 */ "4.4W",
/* api: 21 */ "5.0",
/* api: 22 */ "5.1",
/* api: 23 */ "6.0",
/* api: 24 */ "7.0",
/* api: 25 */ "7.1",
/* api: 26 */ "8.0",
/* api: 27 */ "8.1",
/* api: 28 */ "9",
/* api: 29 */ "10",
/* api: 30 */ "11",
/* api: 31 */ "12",
/* api: 32 */ "12.1",
/* api: 33 */ "13",
/* api: 34 */ "14"
};
public static String sdkIntToString(int i) { public static String sdkIntToString(int i) {
return i >= 1 && i <= SDK_VERSIONS.length ? SDK_VERSIONS[i] : "Unknown"; for (int j = 0; j < VersionCodesInfoGenerated.list.size(); j++) {
var versionCodesInfo = VersionCodesInfoGenerated.list.get(j);
if (versionCodesInfo.getApiLevel().equals(String.valueOf(i))) {
return versionCodesInfo.getPlatformVersion();
}
}
return "Unknown";
} }
} }

View File

@@ -1,4 +1,4 @@
#Sun Dec 21 20:52:44 GMT+8 2025 #Wed Dec 24 13:29:17 GMT+8 2025
253.28294.334.2531.14612490=2025.3.1.1 253.28294.334.2531.14612490=2025.3.1.1
252.28238.7.2523.14608894=2025.2.3.6 252.28238.7.2523.14608894=2025.2.3.6
252.28238.7.2523.14575018=2025.2.3.5 252.28238.7.2523.14575018=2025.2.3.5
@@ -6,6 +6,7 @@
252.28238.7.2523.14499447=2025.2.3.3 252.28238.7.2523.14499447=2025.2.3.3
252.27397.103.2523.14473358=2025.2.3.2 252.27397.103.2523.14473358=2025.2.3.2
252.27397.103.2523.14431943=2025.2.3.1 252.27397.103.2523.14431943=2025.2.3.1
252.27397.103.2522.14617522=2025.2.2.8
252.27397.103.2522.14514259=2025.2.2.7 252.27397.103.2522.14514259=2025.2.2.7
252.27397.103.2522.14468004=2025.2.2.6 252.27397.103.2522.14468004=2025.2.2.6
252.27397.103.2522.14425743=2025.2.2.5 252.27397.103.2522.14425743=2025.2.2.5

View File

@@ -55,7 +55,7 @@ public class Type {
if (lang != null) { if (lang != null) {
// At least keep valid language. // At least keep valid language.
// zh-CN: 至少保留合法 language. // zh-CN: 至少保留合法 language.
tmpLocale = new Locale(lang); tmpLocale = Locale.forLanguageTag(lang);
} else { } else {
tmpLocale = Locale.ROOT; tmpLocale = Locale.ROOT;
} }