diff --git a/.changelog/lang_zh-Hans.json b/.changelog/lang_zh-Hans.json
index eeda7924..86f36165 100644
--- a/.changelog/lang_zh-Hans.json
+++ b/.changelog/lang_zh-Hans.json
@@ -1,7 +1,7 @@
{
"$data": {
"v6.7.0": {
- "released_date": "2025/06/23",
+ "released_date": "2025/06/28",
"feature": [
"zip 模块, 用于文件压缩与解压缩操作 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) (参阅 项目文档 > [Zip](https://docs.autojs6.com/#/zip))",
"mediainfo 模块, 用于查看媒体文件的详细信息 (参阅 项目文档 > [媒体信息](https://docs.autojs6.com/#/mediainfo))",
@@ -13,12 +13,15 @@
"images 部分相关方法出现异常时 oneShot 标记功能失效的问题 _[`issue #372`](http://issues.autojs6.com/372)_",
"Android 10 UiObject#child 方法可能出现 ArrayIndexOutOfBoundsException 异常的问题 _[`issue #416`](http://issues.autojs6.com/416)_",
"打包应用无法正常使用 Paddle OCR 与 Rapid OCR 功能的问题",
- "版本历史页面部分系统因字体差别导致统计数据显示不完整的问题"
+ "版本历史页面部分系统因字体差别导致统计数据显示不完整的问题",
+ "ErrorDialogActivity 可能无法正常启动的问题 _[`issue #414`](http://issues.autojs6.com/414)_ _[`issue #340`](http://issues.autojs6.com/340#issuecomment-2973485826)_",
+ "错误报告页面复制详细信息功能失效的问题"
],
"improvement": [
"http 模块相关方法支持不安全选项参数 (isInsecure/insecure), 用于忽略证书相关异常 _[`issue #417`](http://issues.autojs6.com/417)_",
"android.graphics.Paint#setColor 支持正常解析 ColorInt/ColorHex/ColorName 等颜色参数",
- "内置模块相关方法实参类型的异常消息增加类型摘要信息"
+ "内置模块相关方法实参类型的异常消息增加类型摘要信息",
+ "错误报告页面支持双指缩放调整字体大小并添加常用功能按钮"
],
"dependency": [
"附加 Androidx Core (KTX) 版本 1.16.0",
diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/augment/ocr/Ocr.kt b/app/src/main/java/org/autojs/autojs/runtime/api/augment/ocr/Ocr.kt
index 5c9ac3b4..c8d8bd9d 100644
--- a/app/src/main/java/org/autojs/autojs/runtime/api/augment/ocr/Ocr.kt
+++ b/app/src/main/java/org/autojs/autojs/runtime/api/augment/ocr/Ocr.kt
@@ -3,6 +3,7 @@ package org.autojs.autojs.runtime.api.augment.ocr
import org.autojs.autojs.annotation.RhinoRuntimeFunctionInterface
import org.autojs.autojs.core.image.ImageWrapper
import org.autojs.autojs.extension.AnyExtensions.isJsNullish
+import org.autojs.autojs.extension.AnyExtensions.isJsString
import org.autojs.autojs.extension.AnyExtensions.jsBrief
import org.autojs.autojs.extension.AnyExtensions.jsSpecies
import org.autojs.autojs.extension.ArrayExtensions.toNativeArray
@@ -14,6 +15,7 @@ import org.autojs.autojs.runtime.api.augment.Invokable
import org.autojs.autojs.runtime.api.augment.images.Images
import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
import org.autojs.autojs.runtime.exception.ShouldNeverHappenException
+import org.autojs.autojs.util.RhinoUtils
import org.autojs.autojs.util.RhinoUtils.UNDEFINED
import org.autojs.autojs.util.RhinoUtils.newNativeArray
import org.autojs.autojs.util.RhinoUtils.newNativeObject
@@ -58,13 +60,12 @@ class Ocr(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime)
scriptRuntime.augmentedOcrMLKit -> OcrMode.MLKIT
scriptRuntime.augmentedOcrPaddle -> OcrMode.PADDLE
scriptRuntime.augmentedOcrRapid -> OcrMode.RAPID
- is String -> when (mode.lowercase()) {
+ else -> when (RhinoUtils.coerceStringLowercase(mode, "")) {
OcrMode.MLKIT.value -> OcrMode.MLKIT
OcrMode.PADDLE.value -> OcrMode.PADDLE
OcrMode.RAPID.value -> OcrMode.RAPID
else -> null
}
- else -> null
} ?: OcrMode.MLKIT.also { throw WrappedIllegalArgumentException("Unknown mode ${mode.jsSpecies()} for ocr.tap") }
return@ensureArgumentsOnlyOne UNDEFINED
}
@@ -75,7 +76,7 @@ class Ocr(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime)
val (arg0, arg1, arg2) = argList
when {
- arg0 is String -> {
+ arg0.isJsString() -> {
// @Signature
// recognizeText(imgPath: string, options?: DetectOptionsMLKit | DetectOptionsPaddle): string[];
@@ -153,7 +154,7 @@ class Ocr(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime)
val (arg0, arg1, arg2) = argList
when {
- arg0 is String -> {
+ arg0.isJsString() -> {
// @Signature
// detect(imgPath: string, options?: DetectOptionsMLKit | DetectOptionsPaddle): org.autojs.autojs.runtime.api.OcrResult[];
diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/augment/util/VersionCodesList.kt b/app/src/main/java/org/autojs/autojs/runtime/api/augment/util/VersionCodesList.kt
index 9f4661f8..6e7038bd 100644
--- a/app/src/main/java/org/autojs/autojs/runtime/api/augment/util/VersionCodesList.kt
+++ b/app/src/main/java/org/autojs/autojs/runtime/api/augment/util/VersionCodesList.kt
@@ -1,12 +1,15 @@
package org.autojs.autojs.runtime.api.augment.util
+import android.os.Build
+import org.autojs.autojs.runtime.exception.WrappedIllegalArgumentException
import org.autojs.autojs.util.RhinoUtils.newNativeObject
object VersionCodesInfo {
- // @UpTo Jan 2, 2025.
+ // @Updated by SuperMonster003 on Jun 26, 2025.
+ // @Reference https://en.wikipedia.org/wiki/Android_version_history
private val raw = mutableMapOf(
- "BAKLAVA" to listOf("Android 16", "Baklava", "16", "36", "Q2, 2025"),
+ "BAKLAVA" to listOf("Android 16", "Baklava", "16", "36", "Jun 10, 2025"),
"VANILLA_ICE_CREAM" to listOf("Android 15", "Vanilla Ice Cream", "15", "35", "September 3, 2024"),
"UPSIDE_DOWN_CAKE" to listOf("Android 14", "Upside Down Cake", "14", "34", "October 4, 2023"),
"TIRAMISU" to listOf("Android 13", "Tiramisu", "13", "33", "August 15, 2022"),
@@ -57,4 +60,19 @@ object VersionCodesInfo {
}
}
+ @JvmStatic
+ @JvmOverloads
+ fun briefOfVersionInt(versionInt: Int, isCompat: Boolean = false): String {
+ return list.find { runCatching { it.apiLevel.toInt() }.getOrNull() == versionInt }?.let { info ->
+ var result = "${if (isCompat) "API Lv." else "Android API Level "}${info.apiLevel}"
+ info.releaseName.takeIf { it.isNotBlank() }?.let { result += " ($it)" }
+ info.internalCodename.takeIf { it.isNotBlank() }?.let { result += " [$it]" }
+ result
+ } ?: throw WrappedIllegalArgumentException("$versionInt is an invalid or unknown version int")
+ }
+
+ @JvmStatic
+ @JvmOverloads
+ fun briefOfCurrentVersionInt(isCompat: Boolean = false) = briefOfVersionInt(Build.VERSION.SDK_INT, isCompat)
+
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/error/ErrorDialogActivity.java b/app/src/main/java/org/autojs/autojs/ui/error/ErrorDialogActivity.java
index 13a68b5b..a8afee22 100644
--- a/app/src/main/java/org/autojs/autojs/ui/error/ErrorDialogActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/error/ErrorDialogActivity.java
@@ -2,7 +2,6 @@ package org.autojs.autojs.ui.error;
import android.content.Intent;
import android.os.Bundle;
-import android.view.Window;
import com.afollestad.materialdialogs.MaterialDialog;
import org.autojs.autojs.extension.MaterialDialogExtensions;
import org.autojs.autojs.ui.BaseActivity;
@@ -21,7 +20,6 @@ public class ErrorDialogActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
// Get extras from intent
Intent intent = getIntent();
diff --git a/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.kt b/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.kt
index 15429455..e9ec7080 100644
--- a/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.kt
+++ b/app/src/main/java/org/autojs/autojs/ui/error/ErrorReportActivity.kt
@@ -1,21 +1,16 @@
package org.autojs.autojs.ui.error
import android.annotation.SuppressLint
-import android.content.ClipData
-import android.content.ClipboardManager
-import android.content.Context
import android.content.Intent
-import android.os.Build
import android.os.Bundle
-import android.util.Log
-import com.afollestad.materialdialogs.MaterialDialog
-import org.autojs.autojs.app.GlobalAppContext
+import org.autojs.autojs.runtime.api.augment.util.VersionCodesInfo.briefOfCurrentVersionInt
import org.autojs.autojs.ui.BaseActivity
+import org.autojs.autojs.ui.main.MainActivity
+import org.autojs.autojs.util.ClipboardUtils
import org.autojs.autojs.util.ViewUtils
import org.autojs.autojs6.BuildConfig
import org.autojs.autojs6.R
import org.autojs.autojs6.databinding.ActivityErrorReportBinding
-import java.util.*
/**
* Created by Stardust on Feb 2, 2017.
@@ -23,88 +18,62 @@ import java.util.*
*/
class ErrorReportActivity : BaseActivity() {
+ private lateinit var errorMessage: String
+
+ @SuppressLint("ClickableViewAccessibility")
override fun onCreate(savedInstanceState: Bundle?) {
- try {
- super.onCreate(savedInstanceState)
- ActivityErrorReportBinding.inflate(layoutInflater).also { binding ->
- setContentView(binding.root)
- binding.toolbar.apply {
- title = getString(R.string.text_error_report)
- setSupportActionBar(this)
- }
- supportActionBar?.setHomeButtonEnabled(false)
+ super.onCreate(savedInstanceState)
+
+ val msg = buildString {
+ appendLine("${getString(R.string.app_name)} ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})")
+ appendLine(briefOfCurrentVersionInt(true))
+ intent.getStringExtra("message")?.let { appendLine().appendLine(it.trimEnd()) }
+ intent.getStringExtra("error")?.let { appendLine().appendLine(it.trimEnd()) }
+ }.also { errorMessage = it }
+
+ val binding = ActivityErrorReportBinding.inflate(layoutInflater).also {
+ setContentView(it.root)
+ it.toolbar.apply {
+ title = getString(R.string.text_app_crashed)
+ setSupportActionBar(this)
}
- } catch (t: Throwable) {
- t.message?.let { msg ->
- copyToClip(msg)
- ViewUtils.showToast(this, msg)
- }
- Log.e(TAG, t.message ?: "", t)
- exitAfter(3000)
- }
- }
-
- override fun onResume() {
- super.onResume()
-
- val message = intent.getStringExtra("message")
- val errorDetail = intent.getStringExtra("error")
-
- val errorMessage = buildString {
- appendLine("Version: ${BuildConfig.VERSION_CODE}")
- appendLine("Android: ${Build.VERSION.SDK_INT}")
- message?.let { appendLine().appendLine(it) }
- errorDetail?.let { appendLine().appendLine(it) }
+ supportActionBar?.setHomeButtonEnabled(false)
}
- MaterialDialog.Builder(this)
- .title(R.string.text_app_crashed)
- .content(R.string.crash_feedback)
- .neutralText(R.string.text_copy_debug_info)
- .neutralColorRes(R.color.dialog_button_hint)
- .onNegative { _, _ ->
- copyToClip(errorMessage)
- exitAfter(1500)
+ val textView = binding.errorMessage.apply { text = msg }
+
+ val textSizeScaleDetector = ViewUtils.TextSizeScaleDetector(this, textView)
+
+ binding.errorMessageContainer.setOnTouchListener { _, event ->
+ when (event.pointerCount) {
+ 2 -> false.also { textSizeScaleDetector.onTouchEvent(event) }
+ else -> super.onTouchEvent(event)
}
- .positiveText(R.string.text_exit)
- .positiveColorRes(R.color.dialog_button_failure)
- .onPositive { _, _ -> exit() }
- .cancelable(false)
- .show()
- }
+ }
- private fun exitAfter(delay: Int) {
- Timer().schedule(object : TimerTask() {
- override fun run() = exit()
- }, delay.toLong())
- }
+ binding.copy.setOnClickListener { copy() }
+ binding.restart.setOnClickListener { restart() }
+ binding.exit.setOnClickListener { exit() }
- private fun copyToClip(text: String) {
- val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
- clipboardManager.setPrimaryClip(ClipData.newPlainText("Debug", text))
- ViewUtils.showToast(this, R.string.text_already_copied_to_clip)
+ savedInstanceState ?: copy()
}
@Deprecated("Deprecated in Java")
@SuppressLint("MissingSuperCall")
override fun onBackPressed() = exit()
+ private fun copy() = ClipboardUtils.setClip(this, errorMessage)
+
private fun exit() = finishAffinity()
- companion object {
-
- private val TAG: String = ErrorReportActivity::class.java.simpleName
-
- @JvmStatic
- @JvmOverloads
- fun test(context: Context = GlobalAppContext.get()) {
- Intent(context, ErrorReportActivity::class.java)
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
- .putExtra("message", "Test message\nSecond line")
- .putExtra("error", "Test error\nSecond line")
- .let { context.startActivity(it) }
+ private fun restart() {
+ val intent = packageManager.getLaunchIntentForPackage(packageName)?.apply {
+ addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
+ } ?: Intent(this, MainActivity::class.java).apply {
+ addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
}
-
+ startActivity(intent)
+ exit()
}
}
diff --git a/app/src/main/java/org/autojs/autojs/ui/main/scripts/BaseDisplayContentActivity.kt b/app/src/main/java/org/autojs/autojs/ui/main/scripts/BaseDisplayContentActivity.kt
index d59922e4..fe2ffce3 100644
--- a/app/src/main/java/org/autojs/autojs/ui/main/scripts/BaseDisplayContentActivity.kt
+++ b/app/src/main/java/org/autojs/autojs/ui/main/scripts/BaseDisplayContentActivity.kt
@@ -6,9 +6,7 @@ import android.content.ClipboardManager
import android.content.res.ColorStateList
import android.os.Bundle
import android.text.SpannableStringBuilder
-import android.util.TypedValue
import android.view.KeyEvent
-import android.view.ScaleGestureDetector
import android.view.View
import android.widget.TextView
import com.google.android.material.floatingactionbutton.FloatingActionButton
@@ -24,11 +22,9 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import org.autojs.autojs.ui.BaseActivity
-import org.autojs.autojs.util.DisplayUtils
import org.autojs.autojs.util.ViewUtils
import org.autojs.autojs6.R
import org.autojs.autojs6.databinding.ActivityDisplayScrollableContentBinding
-import kotlin.math.floor
abstract class BaseDisplayContentActivity : BaseActivity() {
@@ -49,12 +45,6 @@ abstract class BaseDisplayContentActivity : BaseActivity() {
private var mIsContentLoaded = false
private val mTextUpdateMutex = Mutex()
- protected val minTextSize = 4.0f
- protected val maxTextSize = 72.0f
-
- private var mLastScaleFactor = 1.0f
- private var mLastTextSize = 0.0f
-
@SuppressLint("ClickableViewAccessibility")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -73,7 +63,7 @@ abstract class BaseDisplayContentActivity : BaseActivity() {
}
}
- val scaleGestureDetector = ScaleGestureDetector(this, ScaleListener(internalTextView))
+ val scaleGestureDetector = ViewUtils.TextSizeScaleDetector(this, internalTextView)
val innerScrollView = binding.innerScrollView.also {
ViewUtils.excludePaddingClippableViewFromBottomNavigationBar(it)
@@ -264,35 +254,4 @@ abstract class BaseDisplayContentActivity : BaseActivity() {
ViewUtils.showSnack(internalTextView, R.string.text_already_copied_to_clip, true)
}
- // Scaling & Text Size Handling
- protected inner class ScaleListener(private val textView: TextView) : ScaleGestureDetector.SimpleOnScaleGestureListener() {
-
- override fun onScale(detector: ScaleGestureDetector): Boolean {
- val currentFactor = (floor((detector.scaleFactor * 10).toDouble()) / 10).toFloat()
- if (mLastTextSize <= 0) {
- mLastTextSize = getTextSize()
- }
- if (currentFactor > 0 && mLastScaleFactor != currentFactor) {
- val currentTextSize: Float = mLastTextSize + (if (currentFactor > mLastScaleFactor) 1 else -1)
- mLastTextSize = currentTextSize.coerceIn(minTextSize, maxTextSize)
- setTextSize(mLastTextSize)
- mLastScaleFactor = currentFactor
- }
- return super.onScale(detector)
- }
-
- override fun onScaleEnd(detector: ScaleGestureDetector) {
- mLastScaleFactor = 1.0f
- super.onScaleEnd(detector)
- }
-
- fun setTextSize(size: Float) {
- mLastTextSize = size
- textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, size)
- }
-
- fun getTextSize(): Float = DisplayUtils.pxToSp(textView.textSize)
-
- }
-
}
\ No newline at end of file
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 b907a2db..fb8715f9 100644
--- a/app/src/main/java/org/autojs/autojs/util/ViewUtils.kt
+++ b/app/src/main/java/org/autojs/autojs/util/ViewUtils.kt
@@ -21,6 +21,7 @@ import android.util.DisplayMetrics
import android.util.TypedValue
import android.view.Gravity
import android.view.Menu
+import android.view.ScaleGestureDetector
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
@@ -32,6 +33,7 @@ import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import android.widget.FrameLayout
import android.widget.ImageView
+import android.widget.TextView
import android.widget.Toast
import androidx.annotation.ColorInt
import androidx.annotation.IdRes
@@ -52,6 +54,7 @@ import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.theme.ThemeColorManager
import org.autojs.autojs.util.StringUtils.key
import org.autojs.autojs6.R
+import kotlin.math.floor
import kotlin.math.roundToInt
/**
@@ -700,4 +703,64 @@ object ViewUtils {
}
+ @SuppressLint("ClickableViewAccessibility")
+ class TextSizeScaleDetector(context: Context, textView: TextView) :ScaleGestureDetector(context, TextSizeScaleListener(textView)) {
+
+ init {
+ textView.apply {
+ setTextIsSelectable(true)
+ isLongClickable = true
+ isFocusableInTouchMode = true
+ setOnTouchListener { v, event ->
+ this@TextSizeScaleDetector.onTouchEvent(event)
+ when {
+ event.pointerCount > 1 -> {
+ v.parent?.requestDisallowInterceptTouchEvent(true)
+ true
+ }
+ else -> false
+ }
+ }
+ }
+ }
+
+ }
+
+ // Scaling & Text Size Handling
+ private class TextSizeScaleListener(private val textView: TextView) : ScaleGestureDetector.SimpleOnScaleGestureListener() {
+
+ private val mMinTextSize = 4.0f
+ private val mMaxTextSize = 72.0f
+
+ private var mLastScaleFactor = 1.0f
+ private var mLastTextSize = 0.0f
+
+ override fun onScale(detector: ScaleGestureDetector): Boolean {
+ val currentFactor = (floor((detector.scaleFactor * 10).toDouble()) / 10).toFloat()
+ if (mLastTextSize <= 0) {
+ mLastTextSize = getTextSize()
+ }
+ if (currentFactor > 0 && mLastScaleFactor != currentFactor) {
+ val currentTextSize: Float = mLastTextSize + (if (currentFactor > mLastScaleFactor) 1 else -1)
+ mLastTextSize = currentTextSize.coerceIn(mMinTextSize, mMaxTextSize)
+ setTextSize(mLastTextSize)
+ mLastScaleFactor = currentFactor
+ }
+ return super.onScale(detector)
+ }
+
+ override fun onScaleEnd(detector: ScaleGestureDetector) {
+ mLastScaleFactor = 1.0f
+ super.onScaleEnd(detector)
+ }
+
+ fun setTextSize(size: Float) {
+ mLastTextSize = size
+ textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, size)
+ }
+
+ fun getTextSize(): Float = DisplayUtils.pxToSp(textView.textSize)
+
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_error_report.xml b/app/src/main/res/layout/activity_error_report.xml
index 7850924d..be26a252 100644
--- a/app/src/main/res/layout/activity_error_report.xml
+++ b/app/src/main/res/layout/activity_error_report.xml
@@ -1,15 +1,16 @@
-
-
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_drawer.xml b/app/src/main/res/layout/fragment_drawer.xml
index b58bcb56..12e144c1 100644
--- a/app/src/main/res/layout/fragment_drawer.xml
+++ b/app/src/main/res/layout/fragment_drawer.xml
@@ -83,7 +83,7 @@
android:layout_gravity="center_vertical"
android:layout_marginEnd="4dp"
android:gravity="center"
- android:text="@string/text_restart_app"
+ android:text="@string/text_restart"
android:textColor="?android:textColorPrimary"
android:textSize="15sp" />
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index d49e68be..186dd783 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -910,7 +910,7 @@
نجحت إعادة تعيين
إعادة تعيين في البداية
إعادة التعيين هي فقط للعينات
- إعادة بدء
+ إعادة بدء
نتيجة
قم بإلغاء الوصول إلى AutoJs6 في تطبيق Shizuku
فحص الجذر مجموعة القوة
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index 934ec7f5..deb50eb3 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -905,7 +905,7 @@
Reset succeeded
Reset initially
Reset is only for samples
- Restart
+ Restart
Result
Revoke AutoJs6 access in Shizuku app
Force set root check
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 224d5efe..76e98182 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -908,7 +908,7 @@
Restablecer con éxito
Restablecer inicialmente
El restablecimiento es sólo para las muestras
- Reiniciar
+ Reiniciar
Resultado
Revocar privilegios de AutoJs6 en una aplicación Shizuku
Forzar la comprobación de root
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 5965e13a..ed4d253b 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -908,7 +908,7 @@
Réinitialisation réussie
Réinitialisation initiale
Reset n\'est que pour les échantillons
- Redémarrer
+ Redémarrer
Résultat
Révoquer les privilèges AutoJs6 dans une application Shizuku
Force set root check
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 7ecb83aa..e1aa655a 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -909,7 +909,7 @@
リセット成功
初期リセット
リセットはサンプルのみ
- 再起動
+ 再起動
結果
Shizuku アプリケーションで AutoJs6 権限を取り消す
強制的に root にするチェック
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index d20ea9c9..80386838 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -910,7 +910,7 @@
재설정이 성공했습니다
처음에 재설정하십시오
재설정은 샘플에만 해당됩니다
- 재시작
+ 재시작
결과
Shizuku 애플리케이션에서 AutoJs6 권한 취소하기
강제 설정 루트 검사
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index e86ef6d3..c680345f 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -908,7 +908,7 @@
Сброс выполнен успешно
Сброс первоначально
Сброс выполняется только для образцов
- Перезапустить
+ Перезапустить
Результат
Отмена привилегий AutoJs6 в приложении Shizuku
Проверка принудительной установки root
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 6a6e0846..f4b5b5a2 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -906,7 +906,7 @@
重置成功
重置為初始內容
只能重置示例代碼文件
- 重啓
+ 重啓
結果
在 Shizuku 應用中撤銷 AutoJs6 權限
強制 Root 權限檢查
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 0ea4a6c7..1bf93a9a 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -906,7 +906,7 @@
重置成功
重置為初始內容
只能重置示例程式碼檔案
- 重啟
+ 重啟
結果
在 Shizuku 應用中撤銷 AutoJs6 許可權
強制 Root 許可權檢查
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 1564de5c..246ac175 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -906,7 +906,7 @@
重置成功
重置为初始内容
只能重置示例代码文件
- 重启
+ 重启
结果
在 Shizuku 应用中撤销 AutoJs6 权限
强制 Root 权限检查
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9e986c5e..cc0e96cd 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1136,7 +1136,7 @@
Reset succeeded
Reset initially
Reset is only for samples
- Restart
+ Restart
Result
Revoke AutoJs6 access in Shizuku app
Force set root check
diff --git a/version.properties b/version.properties
index 231254c2..a48d3bda 100644
--- a/version.properties
+++ b/version.properties
@@ -1,5 +1,5 @@
-#Mon Jun 23 16:34:06 CST 2025
-BUILD_TIME=1750667646268
+#Sat Jun 28 19:48:58 CST 2025
+BUILD_TIME=1751111338507
COMPILE_SDK_VERSION=35
IMAGE_QUANT_CMAKE_VERSION=3.22.1
IMAGE_QUANT_NDK_VERSION=26.1.10909125
@@ -19,6 +19,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
TARGET_SDK_VERSION=35
TARGET_SDK_VERSION_INRT=29
-VERSION_BUILD=3302
+VERSION_BUILD=3308
VERSION_NAME=6.7.0 Alpha2
VSCODE_EXT_REQUIRED_VERSION=1.0.8