6.6.2 - Alpha6 - 打包应用设置页面增加访问所有文件和发送通知等特殊权限开关 (#354)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$data": {
|
||||
"v6.6.2": {
|
||||
"released_date": "2025/04/12",
|
||||
"released_date": "2025/04/13",
|
||||
"feature": [
|
||||
"ui.statusBarAppearanceLight/statusBarAppearanceLightBy/navigationBarColor 等方法",
|
||||
"images.flip 方法, 用于图像翻转 _[`issue #349`](http://issues.autojs6.com/349)_",
|
||||
@@ -30,6 +30,7 @@
|
||||
"精简打包应用模板 APK 文件大小",
|
||||
"打包页面支持 Pinyin 库选项",
|
||||
"打包应用主活动页面优化状态栏背景及文字颜色",
|
||||
"打包应用设置页面增加访问所有文件和发送通知等特殊权限开关 _[`issue #354`](http://issues.autojs6.com/354)_",
|
||||
"控件的文字及图标根据主题色亮度值自动切换合适的颜色",
|
||||
"部分控件主题色与背景色对比度过低时的视觉体验",
|
||||
"应用内页面导航栏设置为透明或半透明以增强视觉体验",
|
||||
|
||||
@@ -376,7 +376,7 @@ SDK Tools (أدوات SDK) (في النافذة اليمنى)
|
||||
|
||||
يعتمد مشروع AutoJs6 على إصدار `JDK (مجموعة تطوير جافا)` بإصدار لا يقل عن `17`، ولكن يفضل الإصدار الذي لا يقل عن `19`.
|
||||
|
||||
اعتبارًا من 12 April 2025، الإصدار الأقصى المدعوم من JDK لمشروع AutoJs6 هو `24`.
|
||||
اعتبارًا من 13 April 2025، الإصدار الأقصى المدعوم من JDK لمشروع AutoJs6 هو `24`.
|
||||
|
||||
> ملاحظة: إذا كان نظام الكمبيوتر يحتوي على JDK والإصدار يفي بالمتطلبات المذكورة أعلاه، فيمكنك تخطي هذا القسم.
|
||||
|
||||
|
||||
@@ -376,7 +376,7 @@ Check `Show Package Details`, click NDK and CMake respectively to ensure the cor
|
||||
|
||||
The `JDK (Java Development Kit)` version required for the AutoJs6 project should be at least `17`, but `19` or higher is recommended.
|
||||
|
||||
As of Apr 12 , 2025, AutoJs6 supports up to version `24` of the JDK.
|
||||
As of Apr 13 , 2025, AutoJs6 supports up to version `24` of the JDK.
|
||||
|
||||
> Note: If the JDK is already installed on the computer system and the version meets the above requirements, this section can be skipped.
|
||||
|
||||
|
||||
@@ -376,7 +376,7 @@ Marca `Show Package Details (Mostrar detalles del paquete)`, haz clic en NDK y C
|
||||
|
||||
La versión mínima requerida del `JDK (Kit de Desarrollo de Java)` para el proyecto AutoJs6 es `17`, pero se recomienda usar una versión no inferior a `19`.
|
||||
|
||||
Hasta el 12 de April de 2025, AutoJs6 soporta hasta la versión `24` de JDK.
|
||||
Hasta el 13 de April de 2025, AutoJs6 soporta hasta la versión `24` de JDK.
|
||||
|
||||
> Nota: Si el sistema ya tiene instalado JDK y cumple con los requisitos anteriores, puedes omitir esta sección.
|
||||
|
||||
|
||||
@@ -376,7 +376,7 @@ Cochez `Show Package Details (afficher les détails du package)`, puis cliquez r
|
||||
|
||||
La version de JDK (Kit de développement Java) requise pour le projet AutoJs6 doit être au moins `17`, mais il est recommandé d'avoir au moins `19`.
|
||||
|
||||
À partir du 12 April 2025, AutoJs6 prend en charge la version maximale de JDK `24`.
|
||||
À partir du 13 April 2025, AutoJs6 prend en charge la version maximale de JDK `24`.
|
||||
|
||||
> Note : Si le JDK est déjà installé sur le système informatique et que la version répond aux exigences ci-dessus, vous pouvez ignorer cette section.
|
||||
|
||||
|
||||
@@ -376,7 +376,7 @@ SDK Tools (SDK ツール) (右側のウィンドウにあります)
|
||||
|
||||
AutoJs6プロジェクトが依存する `JDK (Java開発キット)` のリリースバージョンは少なくとも `17` で, それ以下のバージョンは推奨されませんが, 最低でも `19` の使用を推奨します.
|
||||
|
||||
2025 年 4 月 12 日 現在, AutoJs6がサポートする最大のJDKバージョンは `24` です.
|
||||
2025 年 4 月 13 日 現在, AutoJs6がサポートする最大のJDKバージョンは `24` です.
|
||||
|
||||
> 注: コンピュータシステムに適切なバージョンのJDKがインストールされている場合, この節の内容をスキップできます.
|
||||
|
||||
|
||||
@@ -376,7 +376,7 @@ SDK Tools (SDK 도구) (오른쪽 창에 위치)
|
||||
|
||||
AutoJs6 프로젝트는 `JDK (Java 개발 도구 키트)` 버전이 `17` 이상이어야 하지만, `19` 이상을 권장합니다.
|
||||
|
||||
2025 년 4 월 12 일 기준으로, AutoJs6이 지원하는 최대 JDK 버전은 `24`입니다.
|
||||
2025 년 4 월 13 일 기준으로, AutoJs6이 지원하는 최대 JDK 버전은 `24`입니다.
|
||||
|
||||
> 메모: 시스템에 JDK가 설치되어 있고, 버전이 위의 요구 사항을 충족하는 경우, 이 섹션을 건너뛸 수 있습니다.
|
||||
|
||||
|
||||
@@ -376,7 +376,7 @@ SDK Tools (SDK Инструменты) (находится в правом ок
|
||||
|
||||
Для проекта AutoJs6 требуется версия `JDK (Java Development Kit)` не ниже `17`, но рекомендуется не ниже `19`.
|
||||
|
||||
По состоянию на 12 April 2025 г. AutoJs6 поддерживает JDK максимальной версии `24`.
|
||||
По состоянию на 13 April 2025 г. AutoJs6 поддерживает JDK максимальной версии `24`.
|
||||
|
||||
> Примечание: Если на компьютере уже установлен JDK и версия соответствует указанным требованиям, этот раздел можно пропустить.
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开
|
||||
|
||||
# v6.6.2
|
||||
|
||||
###### 2025/04/12
|
||||
###### 2025/04/13
|
||||
|
||||
* `新增` ui.statusBarAppearanceLight/statusBarAppearanceLightBy/navigationBarColor 等方法
|
||||
* `新增` images.flip 方法, 用于图像翻转 _[`issue #349`](http://issues.autojs6.com/349)_
|
||||
@@ -182,6 +182,7 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开
|
||||
* `优化` 精简打包应用模板 APK 文件大小
|
||||
* `优化` 打包页面支持 Pinyin 库选项
|
||||
* `优化` 打包应用主活动页面优化状态栏背景及文字颜色
|
||||
* `优化` 打包应用设置页面增加访问所有文件和发送通知等特殊权限开关 _[`issue #354`](http://issues.autojs6.com/354)_
|
||||
* `优化` 控件的文字及图标根据主题色亮度值自动切换合适的颜色
|
||||
* `优化` 部分控件主题色与背景色对比度过低时的视觉体验
|
||||
* `优化` 应用内页面导航栏设置为透明或半透明以增强视觉体验
|
||||
@@ -382,7 +383,7 @@ SDK Tools (SDK 工具) (位于右侧窗口)
|
||||
|
||||
AutoJs6 项目依赖的 `JDK (Java 开发工具包)` 发行版本不低于 `17`, 但建议不低于 `19`.
|
||||
|
||||
截至 2025 年 4 月 12 日, AutoJs6 可支持 JDK 最高版本为 `24`.
|
||||
截至 2025 年 4 月 13 日, AutoJs6 可支持 JDK 最高版本为 `24`.
|
||||
|
||||
> 注: 如果计算机系统已安装 JDK 且版本满足上述要求, 则可跳过此小节内容.
|
||||
|
||||
|
||||
@@ -376,7 +376,7 @@ SDK Tools (SDK 工具) (位於右側窗口)
|
||||
|
||||
AutoJs6 項目依賴的 `JDK (Java 開發工具包)` 發行版本不低於 `17`, 但建議不低於 `19`.
|
||||
|
||||
截至 2025 年 4 月 12 日, AutoJs6 可支持 JDK 最高版本為 `24`.
|
||||
截至 2025 年 4 月 13 日, AutoJs6 可支持 JDK 最高版本為 `24`.
|
||||
|
||||
> 注: 如果計算機系統已安裝 JDK 且版本滿足上述要求, 則可跳過此小節內容.
|
||||
|
||||
|
||||
@@ -376,7 +376,7 @@ SDK Tools (SDK 工具) (位於右側視窗)
|
||||
|
||||
AutoJs6 專案依賴的 `JDK (Java 開發工具包)` 發行版本不低於 `17`, 但建議不低於 `19`.
|
||||
|
||||
截至 2025 年 4 月 12 日, AutoJs6 可支援 JDK 最高版本為 `24`.
|
||||
截至 2025 年 4 月 13 日, AutoJs6 可支援 JDK 最高版本為 `24`.
|
||||
|
||||
> 注: 如果計算機系統已安裝 JDK 且版本滿足上述要求, 則可跳過此小節內容.
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开
|
||||
|
||||
# v6.6.2
|
||||
|
||||
###### 2025/04/12
|
||||
###### 2025/04/13
|
||||
|
||||
* `新增` ui.statusBarAppearanceLight/statusBarAppearanceLightBy/navigationBarColor 等方法
|
||||
* `新增` images.flip 方法, 用于图像翻转 _[`issue #349`](http://issues.autojs6.com/349)_
|
||||
@@ -182,6 +182,7 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开
|
||||
* `优化` 精简打包应用模板 APK 文件大小
|
||||
* `优化` 打包页面支持 Pinyin 库选项
|
||||
* `优化` 打包应用主活动页面优化状态栏背景及文字颜色
|
||||
* `优化` 打包应用设置页面增加访问所有文件和发送通知等特殊权限开关 _[`issue #354`](http://issues.autojs6.com/354)_
|
||||
* `优化` 控件的文字及图标根据主题色亮度值自动切换合适的颜色
|
||||
* `优化` 部分控件主题色与背景色对比度过低时的视觉体验
|
||||
* `优化` 应用内页面导航栏设置为透明或半透明以增强视觉体验
|
||||
@@ -382,7 +383,7 @@ SDK Tools (SDK 工具) (位于右侧窗口)
|
||||
|
||||
AutoJs6 项目依赖的 `JDK (Java 开发工具包)` 发行版本不低于 `17`, 但建议不低于 `19`.
|
||||
|
||||
截至 2025 年 4 月 12 日, AutoJs6 可支持 JDK 最高版本为 `24`.
|
||||
截至 2025 年 4 月 13 日, AutoJs6 可支持 JDK 最高版本为 `24`.
|
||||
|
||||
> 注: 如果计算机系统已安装 JDK 且版本满足上述要求, 则可跳过此小节内容.
|
||||
|
||||
|
||||
@@ -649,11 +649,11 @@
|
||||
|
||||
<activity
|
||||
android:name="org.autojs.autojs.inrt.LogActivity"
|
||||
android:theme="@style/AppTheme.LogActivityInrt" />
|
||||
android:theme="@style/AppTheme.NoActionBarInrt" />
|
||||
|
||||
<activity
|
||||
android:name="org.autojs.autojs.inrt.SettingsActivity"
|
||||
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
|
||||
android:theme="@style/AppTheme.NoActionBarInrt" />
|
||||
|
||||
<!-- This provider is required by Shizuku, remove this if your app only supports Sui -->
|
||||
<provider
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
# v6.6.2
|
||||
|
||||
###### 2025/04/12
|
||||
###### 2025/04/13
|
||||
|
||||
* `新增` ui.statusBarAppearanceLight/statusBarAppearanceLightBy/navigationBarColor 等方法
|
||||
* `新增` images.flip 方法, 用于图像翻转 _[`issue #349`](http://issues.autojs6.com/349)_
|
||||
@@ -31,6 +31,7 @@
|
||||
* `优化` 精简打包应用模板 APK 文件大小
|
||||
* `优化` 打包页面支持 Pinyin 库选项
|
||||
* `优化` 打包应用主活动页面优化状态栏背景及文字颜色
|
||||
* `优化` 打包应用设置页面增加访问所有文件和发送通知等特殊权限开关 _[`issue #354`](http://issues.autojs6.com/354)_
|
||||
* `优化` 控件的文字及图标根据主题色亮度值自动切换合适的颜色
|
||||
* `优化` 部分控件主题色与背景色对比度过低时的视觉体验
|
||||
* `优化` 应用内页面导航栏设置为透明或半透明以增强视觉体验
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
# v6.6.2
|
||||
|
||||
###### 2025/04/12
|
||||
###### 2025/04/13
|
||||
|
||||
* `新增` ui.statusBarAppearanceLight/statusBarAppearanceLightBy/navigationBarColor 等方法
|
||||
* `新增` images.flip 方法, 用于图像翻转 _[`issue #349`](http://issues.autojs6.com/349)_
|
||||
@@ -31,6 +31,7 @@
|
||||
* `优化` 精简打包应用模板 APK 文件大小
|
||||
* `优化` 打包页面支持 Pinyin 库选项
|
||||
* `优化` 打包应用主活动页面优化状态栏背景及文字颜色
|
||||
* `优化` 打包应用设置页面增加访问所有文件和发送通知等特殊权限开关 _[`issue #354`](http://issues.autojs6.com/354)_
|
||||
* `优化` 控件的文字及图标根据主题色亮度值自动切换合适的颜色
|
||||
* `优化` 部分控件主题色与背景色对比度过低时的视觉体验
|
||||
* `优化` 应用内页面导航栏设置为透明或半透明以增强视觉体验
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.autojs.autojs
|
||||
import android.app.Activity
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import com.benjaminwan.ocrlibrary.OcrEngine
|
||||
@@ -59,7 +58,7 @@ abstract class AbstractAutoJs protected constructor(val application: Application
|
||||
val scriptEngineManager = ScriptEngineManager(applicationContext)
|
||||
scriptEngineManager.registerEngine(JavaScriptSource.ENGINE) {
|
||||
val rt = createRuntime()
|
||||
when (BuildConfig.isInrt) {
|
||||
when (isInrt) {
|
||||
true -> LoopBasedJavaScriptEngineWithDecryption(rt, applicationContext)
|
||||
else -> LoopBasedJavaScriptEngine(rt, applicationContext)
|
||||
}.also { it.runtime = rt }
|
||||
@@ -110,11 +109,11 @@ abstract class AbstractAutoJs protected constructor(val application: Application
|
||||
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
|
||||
ScreenMetrics.init(activity)
|
||||
appUtils.setCurrentActivity(activity)
|
||||
registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener { _, key ->
|
||||
registerOnSharedPreferenceChangeListener { _, key ->
|
||||
if (key == StringUtils.key(R.string.key_keep_screen_on_when_in_foreground)) {
|
||||
configKeepScreenOnWhenInForeground(activity)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
override fun onActivityPaused(activity: Activity) = appUtils.setCurrentActivity(null)
|
||||
@@ -138,4 +137,12 @@ abstract class AbstractAutoJs protected constructor(val application: Application
|
||||
|
||||
open fun createGlobalConsole() = GlobalConsole(uiHandler)
|
||||
|
||||
companion object {
|
||||
|
||||
@JvmStatic
|
||||
@Suppress("KotlinConstantConditions")
|
||||
val isInrt get() = BuildConfig.isInrt
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,7 +23,6 @@ import org.autojs.autojs.ui.floating.FullScreenFloatyWindow
|
||||
import org.autojs.autojs.ui.floating.layoutinspector.LayoutBoundsFloatyWindow
|
||||
import org.autojs.autojs.ui.floating.layoutinspector.LayoutHierarchyFloatyWindow
|
||||
import org.autojs.autojs.util.RhinoUtils.isBackgroundThread
|
||||
import org.autojs.autojs6.BuildConfig
|
||||
import java.util.concurrent.Executors
|
||||
import org.autojs.autojs.inrt.autojs.AutoJs as AutoJsInrt
|
||||
|
||||
@@ -146,7 +145,7 @@ open class AutoJs(appContext: Application) : AbstractAutoJs(appContext) {
|
||||
fun initInstance(application: Application) {
|
||||
Log.d(TAG, "AutoJs isInitialized: $isInitialized")
|
||||
if (!isInitialized) {
|
||||
instance = when (BuildConfig.isInrt) {
|
||||
instance = when (isInrt) {
|
||||
true -> AutoJsInrt(application)
|
||||
else -> AutoJs(application)
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import android.util.Log
|
||||
import com.mcal.apksigner.ApkSigner
|
||||
import com.reandroid.arsc.chunk.TableBlock
|
||||
import org.apache.commons.io.FileUtils
|
||||
import org.autojs.autojs.AbstractAutoJs.Companion.isInrt
|
||||
import org.autojs.autojs.apkbuilder.keystore.AESUtils
|
||||
import org.autojs.autojs.app.GlobalAppContext
|
||||
import org.autojs.autojs.engine.encryption.AdvancedEncryptionStandard
|
||||
@@ -22,7 +23,6 @@ import org.autojs.autojs.script.EncryptedScriptFileHeader.writeHeader
|
||||
import org.autojs.autojs.script.JavaScriptFileSource
|
||||
import org.autojs.autojs.util.FileUtils.TYPE.JAVASCRIPT
|
||||
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
|
||||
@@ -552,7 +552,7 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File
|
||||
);
|
||||
|
||||
fun ensureLibFiles(moduleName: String = label) {
|
||||
if (!BuildConfig.isInrt) return
|
||||
if (!isInrt) return
|
||||
val nativeLibraryDir = File(globalContext.applicationInfo.nativeLibraryDir)
|
||||
val primaryNativeLibraries = nativeLibraryDir.list()?.toList() ?: emptyList()
|
||||
if (!primaryNativeLibraries.containsAll(libsToInclude)) {
|
||||
|
||||
@@ -5,11 +5,11 @@ import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
import org.autojs.autojs.AbstractAutoJs;
|
||||
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.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.mozilla.javascript.ContinuationPending;
|
||||
@@ -74,7 +74,7 @@ public class LoopBasedJavaScriptEngine extends RhinoJavaScriptEngine {
|
||||
continue;
|
||||
} catch (Throwable t) {
|
||||
mLooping = false;
|
||||
if (BuildConfig.isInrt && t.getMessage() != null) {
|
||||
if (AbstractAutoJs.isInrt() && t.getMessage() != null) {
|
||||
ScriptRuntime.popException(t.getMessage());
|
||||
}
|
||||
throw t;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.autojs.autojs.execution;
|
||||
|
||||
import org.autojs.autojs.AbstractAutoJs;
|
||||
import org.autojs.autojs.core.looper.Loopers;
|
||||
import org.autojs.autojs.engine.LoopBasedJavaScriptEngine;
|
||||
import org.autojs.autojs.engine.ScriptEngine;
|
||||
@@ -7,7 +8,6 @@ import org.autojs.autojs.engine.ScriptEngineManager;
|
||||
import org.autojs.autojs.inrt.autojs.LoopBasedJavaScriptEngineWithDecryption;
|
||||
import org.autojs.autojs.script.JavaScriptSource;
|
||||
import org.autojs.autojs.script.ScriptSource;
|
||||
import org.autojs.autojs6.BuildConfig;
|
||||
|
||||
/**
|
||||
* Created by Stardust on Oct 27, 2017.
|
||||
@@ -25,7 +25,7 @@ public class LoopedBasedJavaScriptExecution extends RunnableScriptExecution {
|
||||
sleep(delay);
|
||||
long interval = getConfig().getInterval();
|
||||
|
||||
var javaScriptEngine = BuildConfig.isInrt
|
||||
var javaScriptEngine = AbstractAutoJs.isInrt()
|
||||
? (LoopBasedJavaScriptEngineWithDecryption) engine
|
||||
: (LoopBasedJavaScriptEngine) engine;
|
||||
javaScriptEngine.getRuntime().loopers.setMainLooperQuitHandler(new Loopers.LooperQuitHandler() {
|
||||
|
||||
@@ -14,6 +14,7 @@ import android.view.MenuItem
|
||||
import android.view.MotionEvent
|
||||
import android.view.WindowManager
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import org.autojs.autojs.AbstractAutoJs.Companion.isInrt
|
||||
import org.autojs.autojs.annotation.ScriptInterface
|
||||
import org.autojs.autojs.core.eventloop.EventEmitter
|
||||
import org.autojs.autojs.core.eventloop.SimpleEvent
|
||||
@@ -28,7 +29,6 @@ import org.autojs.autojs.inrt.autojs.LoopBasedJavaScriptEngineWithDecryption
|
||||
import org.autojs.autojs.runtime.ScriptRuntime
|
||||
import org.autojs.autojs.script.ScriptSource
|
||||
import org.autojs.autojs.util.ViewUtils
|
||||
import org.autojs.autojs6.BuildConfig
|
||||
import org.autojs.autojs6.R
|
||||
import org.mozilla.javascript.ContinuationPending
|
||||
|
||||
@@ -138,7 +138,7 @@ class ScriptExecuteActivity : AppCompatActivity() {
|
||||
mScriptEngine.setTag(ScriptEngine.TAG_SOURCE, mScriptSource)
|
||||
mExecutionListener!!.onStart(mScriptExecution)
|
||||
|
||||
if (BuildConfig.isInrt) {
|
||||
if (isInrt) {
|
||||
(mScriptEngine as LoopBasedJavaScriptEngineWithDecryption).execute(mScriptSource, executeCallback)
|
||||
} else {
|
||||
(mScriptEngine as LoopBasedJavaScriptEngine).execute(mScriptSource, executeCallback)
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.autojs.autojs.inrt
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import org.autojs.autojs.theme.preference.ThemeColorPermissionSwitchPreference
|
||||
import org.autojs.autojs6.R
|
||||
import org.autojs.autojs6.databinding.ActivitySettingsInrtBinding
|
||||
|
||||
@@ -11,12 +12,14 @@ import org.autojs.autojs6.databinding.ActivitySettingsInrtBinding
|
||||
*/
|
||||
class SettingsActivity : AppCompatActivity() {
|
||||
|
||||
private val preferenceFragment by lazy { PreferenceFragment() }
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
val binding = ActivitySettingsInrtBinding.inflate(layoutInflater).also { setContentView(it.root) }
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
.replace(R.id.fragment_setting, PreferenceFragment())
|
||||
.replace(R.id.fragment_setting, preferenceFragment)
|
||||
.commit()
|
||||
binding.toolbar.apply {
|
||||
setTitle(R.string.text_settings)
|
||||
@@ -26,6 +29,17 @@ class SettingsActivity : AppCompatActivity() {
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
findPreference(R.string.key_all_files_access)?.sync()
|
||||
findPreference(R.string.key_display_over_other_apps)?.sync()
|
||||
findPreference(R.string.key_post_notifications_permission)?.sync()
|
||||
}
|
||||
|
||||
private fun findPreference(keyRes: Int): ThemeColorPermissionSwitchPreference? {
|
||||
return preferenceFragment.findPreference(getString(keyRes))
|
||||
}
|
||||
|
||||
class PreferenceFragment : androidx.preference.PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
addPreferencesFromResource(R.xml.preference_inrt)
|
||||
|
||||
@@ -1,22 +1,24 @@
|
||||
package org.autojs.autojs.inrt
|
||||
|
||||
import android.Manifest
|
||||
import android.Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager.PERMISSION_DENIED
|
||||
import android.graphics.Typeface
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.isVisible
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.autojs.autojs.inrt.autojs.AutoJs
|
||||
import org.autojs.autojs.inrt.launch.GlobalProjectLauncher
|
||||
import org.autojs.autojs.project.ProjectConfig
|
||||
import org.autojs.autojs.ui.splash.SplashActivity.Companion.INIT_TIMEOUT
|
||||
import org.autojs.autojs6.databinding.ActivitySplashInrtBinding
|
||||
import kotlin.concurrent.thread
|
||||
|
||||
/**
|
||||
* Created by Stardust on Feb 2, 2018.
|
||||
@@ -28,42 +30,40 @@ class SplashActivity : AppCompatActivity() {
|
||||
val binding = ActivitySplashInrtBinding.inflate(layoutInflater).apply {
|
||||
setContentView(root)
|
||||
}
|
||||
val handler = Handler(Looper.myLooper()!!)
|
||||
val projectConfig = ProjectConfig.fromAssets(this, ProjectConfig.configFileOfDir("project"))
|
||||
var timeout = INIT_TIMEOUT
|
||||
|
||||
if (!projectConfig.launchConfig.isSplashVisible) {
|
||||
timeout = 0L
|
||||
} else {
|
||||
handler.post {
|
||||
binding.slug.typeface = Typeface.createFromAsset(assets, "roboto_medium.ttf")
|
||||
binding.slug.isVisible = true
|
||||
binding.icon.isVisible = true
|
||||
when {
|
||||
!projectConfig.launchConfig.isSplashVisible -> {
|
||||
timeout = 0L
|
||||
}
|
||||
else -> {
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
binding.slug.typeface = Typeface.createFromAsset(assets, "roboto_medium.ttf")
|
||||
binding.slug.isVisible = true
|
||||
binding.icon.isVisible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!Pref.isFirstUsing) {
|
||||
main()
|
||||
} else {
|
||||
handler.postDelayed({ this@SplashActivity.main() }, timeout)
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
if (timeout > 0 && Pref.isFirstUsing) {
|
||||
delay(timeout)
|
||||
}
|
||||
checkPermission(WRITE_EXTERNAL_STORAGE)
|
||||
}
|
||||
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
private fun main() {
|
||||
checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
}
|
||||
|
||||
private fun runScript() {
|
||||
thread(true) {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
val context = this@SplashActivity
|
||||
try {
|
||||
GlobalProjectLauncher.launch(this)
|
||||
GlobalProjectLauncher.launch(context)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
runOnUiThread {
|
||||
Toast.makeText(this@SplashActivity, e.message, Toast.LENGTH_LONG).show()
|
||||
startActivity(Intent(this@SplashActivity, LogActivity::class.java))
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(context, e.message, Toast.LENGTH_LONG).show()
|
||||
startActivity(Intent(context, LogActivity::class.java))
|
||||
AutoJs.instance.globalConsole.printAllStackTrace(e)
|
||||
}
|
||||
}
|
||||
@@ -84,11 +84,10 @@ class SplashActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun getRequestPermissions(permissions: Array<out String>) = ArrayList<String>()
|
||||
.let { list ->
|
||||
permissions.filterTo(list) { checkSelfPermission(it) == PERMISSION_DENIED }
|
||||
list.toTypedArray()
|
||||
}
|
||||
private fun getRequestPermissions(permissions: Array<out String>) = ArrayList<String>().let { list ->
|
||||
permissions.filterTo(list) { checkSelfPermission(it) == PERMISSION_DENIED }
|
||||
list.toTypedArray()
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.autojs.autojs.inrt.theme.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import org.autojs.autojs.permission.DisplayOverOtherAppsPermission
|
||||
import org.autojs.autojs.theme.preference.ThemeColorPermissionSwitchPreference
|
||||
|
||||
class DisplayOverOtherAppsPermissionSwitchPreference : ThemeColorPermissionSwitchPreference {
|
||||
|
||||
val perm by lazy { DisplayOverOtherAppsPermission(context) }
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
|
||||
|
||||
constructor(context: Context) : super(context)
|
||||
|
||||
override fun has() = perm.has()
|
||||
|
||||
override fun request() = perm.request()
|
||||
|
||||
override fun revoke() = perm.revoke()
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.autojs.autojs.inrt.theme.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import org.autojs.autojs.permission.ManageAllFilesPermission
|
||||
import org.autojs.autojs.theme.preference.ThemeColorPermissionSwitchPreference
|
||||
|
||||
class ManageAllFilesPermissionSwitchPreference : ThemeColorPermissionSwitchPreference {
|
||||
|
||||
val perm by lazy { ManageAllFilesPermission(context) }
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
|
||||
|
||||
constructor(context: Context) : super(context)
|
||||
|
||||
override fun has() = perm.has()
|
||||
|
||||
override fun request() = perm.request()
|
||||
|
||||
override fun revoke() = perm.revoke()
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.autojs.autojs.inrt.theme.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import org.autojs.autojs.permission.PostNotificationsPermission
|
||||
import org.autojs.autojs.theme.preference.ThemeColorPermissionSwitchPreference
|
||||
|
||||
class PostNotificationsPermissionSwitchPreference : ThemeColorPermissionSwitchPreference {
|
||||
|
||||
val perm by lazy { PostNotificationsPermission(context) }
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
|
||||
|
||||
constructor(context: Context) : super(context)
|
||||
|
||||
override fun has() = perm.has()
|
||||
|
||||
override fun request() = perm.request()
|
||||
|
||||
override fun revoke() = perm.revoke()
|
||||
|
||||
}
|
||||
@@ -2,8 +2,9 @@ package org.autojs.autojs.permission
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import org.autojs.autojs.core.pref.Pref
|
||||
import org.autojs.autojs.ui.main.MainActivity
|
||||
import org.autojs.autojs.runtime.api.Permissions
|
||||
import org.autojs.autojs.ui.main.drawer.PermissionItemHelper
|
||||
import org.autojs.autojs.util.NotificationUtils
|
||||
import org.autojs.autojs6.R
|
||||
@@ -11,7 +12,7 @@ import org.autojs.autojs6.R
|
||||
/**
|
||||
* Created by SuperMonster003 on May 4, 2023.
|
||||
*/
|
||||
class PostNotificationPermission(override val context: Context) : PermissionItemHelper, AbleToUrge {
|
||||
class PostNotificationsPermission(override val context: Context) : PermissionItemHelper, AbleToUrge {
|
||||
|
||||
override fun has() = NotificationUtils.isEnabled()
|
||||
|
||||
@@ -23,9 +24,11 @@ class PostNotificationPermission(override val context: Context) : PermissionItem
|
||||
|
||||
override fun urge() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
(context as? MainActivity)
|
||||
?.requestMultiplePermissionsLauncher
|
||||
?.let { NotificationUtils.requestPermission(it) }
|
||||
when (val ctx = context) {
|
||||
is FragmentActivity -> Permissions.getRequestMultiplePermissionsLauncher(ctx).let {
|
||||
NotificationUtils.requestPermission(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
package org.autojs.autojs.runtime.api
|
||||
|
||||
import android.Manifest
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.Log
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts.RequestMultiplePermissions
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import org.autojs.autojs.core.pref.Pref
|
||||
import org.autojs.autojs.util.RomUtils
|
||||
import org.autojs.autojs6.R
|
||||
|
||||
class Permissions(private val context: Context) {
|
||||
|
||||
@@ -46,4 +53,20 @@ class Permissions(private val context: Context) {
|
||||
/* permissions.writeSecuritySettings */
|
||||
/* permissions.projectMediaAccess */
|
||||
|
||||
companion object {
|
||||
|
||||
private val TAG = Permissions::class.java.simpleName
|
||||
|
||||
@JvmStatic
|
||||
fun getRequestMultiplePermissionsLauncher(activity: FragmentActivity): ActivityResultLauncher<Array<String>> = activity.registerForActivityResult(RequestMultiplePermissions()) {
|
||||
it.forEach { (key: String, isGranted: Boolean) ->
|
||||
Log.d(TAG, "$key: $isGranted")
|
||||
if (key == Manifest.permission.POST_NOTIFICATIONS) {
|
||||
Pref.putBoolean(R.string.key_post_notification_permission_requested, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import android.content.ServiceConnection
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.IBinder
|
||||
import android.util.Log
|
||||
import org.autojs.autojs.AbstractAutoJs.Companion.isInrt
|
||||
import org.autojs.autojs.App
|
||||
import org.autojs.autojs.annotation.ScriptInterface
|
||||
import org.autojs.autojs.app.GlobalAppContext
|
||||
@@ -14,7 +15,6 @@ import org.autojs.autojs.core.shizuku.IUserService
|
||||
import org.autojs.autojs.core.shizuku.UserService
|
||||
import org.autojs.autojs.util.App.SHIZUKU
|
||||
import org.autojs.autojs.util.ViewUtils
|
||||
import org.autojs.autojs6.BuildConfig
|
||||
import org.autojs.autojs6.R
|
||||
import rikka.shizuku.Shizuku
|
||||
import java.util.concurrent.CountDownLatch
|
||||
@@ -32,7 +32,7 @@ object WrappedShizuku {
|
||||
private val TAG: String = WrappedShizuku::class.java.simpleName
|
||||
|
||||
private val mRequestCode = when {
|
||||
BuildConfig.isInrt -> "shizuku-request-code-inrt".hashCode()
|
||||
isInrt -> "shizuku-request-code-inrt".hashCode()
|
||||
else -> "shizuku-request-code".hashCode()
|
||||
}
|
||||
private var mHasBinder = false
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.graphics.Paint
|
||||
import android.view.View
|
||||
import org.autojs.autojs.AbstractAutoJs.Companion.isInrt
|
||||
import org.autojs.autojs.util.ColorUtils
|
||||
import org.autojs.autojs.util.ViewUtils
|
||||
import org.autojs.autojs6.R
|
||||
@@ -16,7 +17,10 @@ import java.util.*
|
||||
object ThemeColorManager {
|
||||
|
||||
@JvmField
|
||||
var defaultThemeColor = ThemeColor(ColorUtils.fromResources(R.color.theme_color_default))
|
||||
var defaultThemeColor = when {
|
||||
isInrt -> R.color.md_blue_gray_900
|
||||
else -> R.color.theme_color_default
|
||||
}.let { ThemeColor(ColorUtils.fromResources(it)) }
|
||||
|
||||
@JvmStatic
|
||||
lateinit var currentThemeColor: ThemeColor
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package org.autojs.autojs.theme.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
|
||||
abstract class ThemeColorPermissionSwitchPreference : ThemeColorSwitchPreference {
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
|
||||
|
||||
constructor(context: Context) : super(context)
|
||||
|
||||
fun sync() {
|
||||
isChecked = has()
|
||||
}
|
||||
|
||||
abstract fun has(): Boolean
|
||||
|
||||
abstract fun request(): Boolean
|
||||
|
||||
abstract fun revoke(): Boolean
|
||||
|
||||
override fun onClick() = toggle()
|
||||
|
||||
private fun toggle() {
|
||||
if (isChecked) revoke() else request()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -20,7 +20,7 @@ import org.autojs.autojs6.R
|
||||
/**
|
||||
* Created by Stardust on Mar 5, 2017.
|
||||
*/
|
||||
class ThemeColorSwitchPreference : SwitchPreference, ThemeColorMutable, LongClickablePreferenceLike {
|
||||
open class ThemeColorSwitchPreference : SwitchPreference, ThemeColorMutable, LongClickablePreferenceLike {
|
||||
|
||||
private var mCheckableView: View? = null
|
||||
private var mColor = Color.TRANSPARENT
|
||||
@@ -81,10 +81,10 @@ class ThemeColorSwitchPreference : SwitchPreference, ThemeColorMutable, LongClic
|
||||
}
|
||||
}
|
||||
|
||||
private fun obtainStyledAttrs(context: Context, set: AttributeSet?, styleableRes: IntArray, defStyleAttr: Int, defStyleRes: Int): TypedArray {
|
||||
protected fun obtainStyledAttrs(context: Context, set: AttributeSet?, styleableRes: IntArray, defStyleAttr: Int, defStyleRes: Int): TypedArray {
|
||||
return context.obtainStyledAttributes(set, styleableRes, defStyleAttr, defStyleRes)
|
||||
}
|
||||
|
||||
private fun getAttrString(a: TypedArray, index: Int): String? = a.getString(index)
|
||||
protected fun getAttrString(a: TypedArray, index: Int): String? = a.getString(index)
|
||||
|
||||
}
|
||||
@@ -9,12 +9,10 @@ import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.os.Process
|
||||
import android.util.Log
|
||||
import android.view.Gravity
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import androidx.activity.result.contract.ActivityResultContracts.RequestMultiplePermissions
|
||||
import androidx.appcompat.app.ActionBarDrawerToggle
|
||||
import androidx.appcompat.widget.SearchView
|
||||
import androidx.drawerlayout.widget.DrawerLayout
|
||||
@@ -40,7 +38,7 @@ import org.autojs.autojs.event.BackPressedHandler.HostActivity
|
||||
import org.autojs.autojs.model.explorer.Explorers
|
||||
import org.autojs.autojs.permission.DisplayOverOtherAppsPermission
|
||||
import org.autojs.autojs.permission.ManageAllFilesPermission
|
||||
import org.autojs.autojs.permission.PostNotificationPermission
|
||||
import org.autojs.autojs.permission.PostNotificationsPermission
|
||||
import org.autojs.autojs.runtime.api.WrappedShizuku
|
||||
import org.autojs.autojs.service.ForegroundService
|
||||
import org.autojs.autojs.theme.ThemeColorManager
|
||||
@@ -120,15 +118,6 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity {
|
||||
return -1
|
||||
}
|
||||
|
||||
val requestMultiplePermissionsLauncher = registerForActivityResult(RequestMultiplePermissions()) {
|
||||
it.forEach { (key: String, isGranted: Boolean) ->
|
||||
Log.d(TAG, "$key: $isGranted")
|
||||
if (key == Manifest.permission.POST_NOTIFICATIONS) {
|
||||
Pref.putBoolean(R.string.key_post_notification_permission_requested, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
@@ -156,7 +145,7 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity {
|
||||
|
||||
FloatyWindowManger.refreshCircularMenuIfNeeded(this)
|
||||
|
||||
PostNotificationPermission(this).urgeIfNeeded()
|
||||
PostNotificationsPermission(this).urgeIfNeeded()
|
||||
ManageAllFilesPermission(this).urgeIfNeeded()
|
||||
DisplayOverOtherAppsPermission(this).urgeIfNeeded()
|
||||
}
|
||||
@@ -453,7 +442,6 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity {
|
||||
|
||||
companion object {
|
||||
|
||||
private val TAG = MainActivity::class.java.simpleName
|
||||
private var sIsActionBarDrawerOpened = false
|
||||
|
||||
var shouldRecreateMainActivity = false
|
||||
|
||||
@@ -19,7 +19,7 @@ import org.autojs.autojs.core.pref.Pref
|
||||
import org.autojs.autojs.permission.DisplayOverOtherAppsPermission
|
||||
import org.autojs.autojs.permission.IgnoreBatteryOptimizationsPermission
|
||||
import org.autojs.autojs.permission.MediaProjectionPermission
|
||||
import org.autojs.autojs.permission.PostNotificationPermission
|
||||
import org.autojs.autojs.permission.PostNotificationsPermission
|
||||
import org.autojs.autojs.permission.ShizukuPermission
|
||||
import org.autojs.autojs.permission.UsageStatsPermission
|
||||
import org.autojs.autojs.permission.WriteSecureSettingsPermission
|
||||
@@ -221,7 +221,7 @@ open class DrawerFragment : Fragment() {
|
||||
}
|
||||
|
||||
mNotificationPostItem = DrawerMenuToggleableItem(
|
||||
PostNotificationPermission(mContext),
|
||||
PostNotificationsPermission(mContext),
|
||||
R.drawable.ic_ali_notification,
|
||||
R.string.text_post_notifications_permission,
|
||||
)
|
||||
|
||||
@@ -956,5 +956,12 @@
|
||||
<string name="text_write_secure_settings">اكتب إعدادات الأمان</string>
|
||||
<string name="text_write_secure_settings_description">إعدادات النظام الآمنة ، التي تحتوي على تفضيلات النظام التي يمكن أن تقرأها التطبيقات ولكن لا يُسمح لها بالكتابة.\nهذه هي لتفضيلات يجب على المستخدم تعديلها بشكل صريح من خلال واجهة المستخدم لتطبيق النظام.\nمع إذن إعدادات النظام الآمن ، يمكن للتطبيقات العادية تعديل الإعدادات الآمنة مباشرة (مثل خدمة إمكانية الوصول).</string>
|
||||
<string name="text_write_system_settings">كتابة إعدادات النظام</string>
|
||||
<string name="text_special_permissions">أذونات خاصة</string>
|
||||
<string name="summary_all_files_access">يسمح لـ AutoJs6 بالوصول إلى جميع الملفات، بما في ذلك الملفات الموجودة على التخزين الخارجي</string>
|
||||
<string name="summary_display_over_other_apps">يسمح لـ AutoJs6 بعرض المحتوى فوق التطبيقات الأخرى</string>
|
||||
<string name="summary_post_notifications_permission">يسمح لـ AutoJs6 بإنشاء وإرسال الإشعارات</string>
|
||||
<string name="summary_all_files_access_inrt">السماح للتطبيق بالوصول إلى جميع الملفات، بما في ذلك التخزين الخارجي</string>
|
||||
<string name="summary_display_over_other_apps_inrt">السماح للتطبيق بعرض المحتوى فوق التطبيقات الأخرى</string>
|
||||
<string name="summary_post_notifications_permission_inrt">السماح للتطبيق بإنشاء وإرسال الإشعارات</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -952,5 +952,12 @@
|
||||
<string name="text_confirm_to_clear_histories_of">All histories below will be cleared\n\n[ %1$s ]\n\nAre you sure to clear them all?</string>
|
||||
<string name="text_confirm_to_clear_histories_of_all_color_libraries">All histories below will be cleared\n\n[ All color libraries ]\n\nAre you sure to clear them all?</string>
|
||||
<string name="text_all_histories">All histories</string>
|
||||
<string name="text_special_permissions">Special permissions</string>
|
||||
<string name="summary_all_files_access">Allows AutoJs6 to access all files, including those in external storage</string>
|
||||
<string name="summary_display_over_other_apps">Allows AutoJs6 to display content over other apps</string>
|
||||
<string name="summary_post_notifications_permission">Allows AutoJs6 to create and post notifications</string>
|
||||
<string name="summary_all_files_access_inrt">Allow the application to access all files, including external storage</string>
|
||||
<string name="summary_display_over_other_apps_inrt">Allow the application to display content over other apps</string>
|
||||
<string name="summary_post_notifications_permission_inrt">Allow the application to create and send notifications</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -955,5 +955,12 @@
|
||||
<string name="text_write_secure_settings">Escribir la configuración de seguridad</string>
|
||||
<string name="text_write_secure_settings_description">Ajustes de seguridad del sistema, que contienen preferencias del sistema que las aplicaciones pueden leer pero no pueden escribir.\nSe trata de preferencias que el usuario debe modificar explícitamente a través de la interfaz de usuario de una aplicación del sistema.\nCon el permiso de configuración segura del sistema, las aplicaciones normales pueden modificar directamente la configuración segura (como el servicio de accesibilidad).</string>
|
||||
<string name="text_write_system_settings">Escribir la configuración del sistema</string>
|
||||
<string name="text_special_permissions">Permisos especiales</string>
|
||||
<string name="summary_all_files_access">Permite que AutoJs6 acceda a todos los archivos, incluidos los del almacenamiento externo</string>
|
||||
<string name="summary_display_over_other_apps">Permite que AutoJs6 muestre contenido encima de otras aplicaciones</string>
|
||||
<string name="summary_post_notifications_permission">Permite que AutoJs6 cree y envíe notificaciones</string>
|
||||
<string name="summary_all_files_access_inrt">Permitir que la aplicación acceda a todos los archivos, incluido el almacenamiento externo</string>
|
||||
<string name="summary_display_over_other_apps_inrt">Permitir que la aplicación muestre contenido sobre otras aplicaciones</string>
|
||||
<string name="summary_post_notifications_permission_inrt">Permitir que la aplicación cree y envíe notificaciones</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -955,5 +955,12 @@
|
||||
<string name="text_write_secure_settings">Écrire les paramètres de sécurité</string>.
|
||||
<string name="text_write_secure_settings_description">Paramètres de sécurité du système, contenant les préférences du système que les applications peuvent lire mais ne sont pas autorisées à écrire.\nIl s\'agit des préférences que l\'utilisateur doit explicitement modifier par le biais de l\'interface utilisateur d\'une application système.\nAvec l\'autorisation de paramètres de sécurité du système, les applications normales peuvent directement modifier les paramètres de sécurité (comme le service d\'accessibilité).</string>
|
||||
<string name="text_write_system_settings">Écrire les paramètres système</string>
|
||||
<string name="text_special_permissions">Autorisations spéciales</string>
|
||||
<string name="summary_all_files_access">Permet à AutoJs6 d\'accéder à tous les fichiers, y compris ceux du stockage externe</string>
|
||||
<string name="summary_display_over_other_apps">Permet à AutoJs6 d\'afficher du contenu au-dessus d\'autres applications</string>
|
||||
<string name="summary_post_notifications_permission">Permet à AutoJs6 de créer et d\'envoyer des notifications</string>
|
||||
<string name="summary_all_files_access_inrt">Autoriser l\'application à accéder à tous les fichiers, y compris le stockage externe</string>
|
||||
<string name="summary_display_over_other_apps_inrt">Autoriser l\'application à afficher du contenu par-dessus d\'autres applications</string>
|
||||
<string name="summary_post_notifications_permission_inrt">Autoriser l\'application à créer et envoyer des notifications</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -955,5 +955,12 @@
|
||||
<string name="text_write_secure_settings">セキュリティ設定の書き込み</string>
|
||||
<string name="text_write_secure_settings_description">アプリケーションが読み取ることはできるが, 書き込むことはできないシステム環境設定を含む, 安全なシステム設定です.\nこれは, ユーザーがシステムアプリの UI を通じて明示的に変更する必要がある環境設定のためのものです.\nセキュアなシステム設定を許可すると, 通常のアプリケーションはセキュアな設定 (アクセシビリティサービスなど) を直接変更できるようになります</string>
|
||||
<string name="text_write_system_settings">システム設定の書き込み</string>
|
||||
<string name="text_special_permissions">特殊な権限</string>
|
||||
<string name="summary_all_files_access">AutoJs6 が外部ストレージを含むすべてのファイルにアクセスすることを許可します</string>
|
||||
<string name="summary_display_over_other_apps">AutoJs6 が他のアプリの上にコンテンツを表示することを許可します</string>
|
||||
<string name="summary_post_notifications_permission">AutoJs6 が通知を作成して送信することを許可します</string>
|
||||
<string name="summary_all_files_access_inrt">アプリが外部ストレージを含むすべてのファイルにアクセスすることを許可する</string>
|
||||
<string name="summary_display_over_other_apps_inrt">アプリが他のアプリの上にコンテンツを表示することを許可する</string>
|
||||
<string name="summary_post_notifications_permission_inrt">アプリが通知を作成して送信することを許可する</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -956,5 +956,12 @@
|
||||
<string name="text_write_secure_settings">보안 설정을 작성하십시오</string>
|
||||
<string name="text_write_secure_settings_description">애플리케이션이 읽을 수 있지만 쓸 수없는 시스템 환경 설정을 포함하는 보안 시스템 설정.\n이들은 사용자가 시스템 앱의 UI 를 통해 명시 적으로 수정 해야하는 선호도입니다.\n보안 시스템 설정 권한을 사용하면 일반 애플리케이션이 보안 설정 (예: 접근성 서비스)을 직접 수정할 수 있습니다.</string>
|
||||
<string name="text_write_system_settings">시스템 설정을 작성하십시오</string>
|
||||
<string name="text_special_permissions">특수 권한</string>
|
||||
<string name="summary_all_files_access">AutoJs6 가 외부 저장소를 포함한 모든 파일에 접근할 수 있도록 허용합니다</string>
|
||||
<string name="summary_display_over_other_apps">AutoJs6 가 다른 애플리케이션 위에 콘텐츠를 표시할 수 있도록 허용합니다</string>
|
||||
<string name="summary_post_notifications_permission">AutoJs6 가 알림을 생성하고 보낼 수 있도록 허용합니다</string>
|
||||
<string name="summary_all_files_access_inrt">앱이 외부 저장소를 포함한 모든 파일에 접근할 수 있도록 허용합니다</string>
|
||||
<string name="summary_display_over_other_apps_inrt">앱이 다른 애플리케이션 위에 콘텐츠를 표시할 수 있도록 허용합니다</string>
|
||||
<string name="summary_post_notifications_permission_inrt">앱이 알림을 생성하고 보낼 수 있도록 허용합니다</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -955,5 +955,12 @@
|
||||
<string name="text_write_secure_settings">Параметры безопасности записи</string>
|
||||
<string name="text_write_secure_settings_description">Настройки безопасности системы, содержащие системные предпочтения, которые приложения могут читать, но не имеют права записывать.\nОни предназначены для параметров, которые пользователь должен явно изменить через пользовательский интерфейс системного приложения.\nПри наличии разрешения на безопасные системные настройки обычные приложения могут напрямую изменять безопасные настройки (например, служба доступности).</string>
|
||||
<string name="text_write_system_settings">Запись системных настроек</string>
|
||||
<string name="text_special_permissions">Специальные разрешения</string>
|
||||
<string name="summary_all_files_access">Позволяет AutoJs6 получать доступ ко всем файлам, включая файлы на внешнем хранилище</string>
|
||||
<string name="summary_display_over_other_apps">Позволяет AutoJs6 отображать контент поверх других приложений</string>
|
||||
<string name="summary_post_notifications_permission">Позволяет AutoJs6 создавать и отправлять уведомления</string>
|
||||
<string name="summary_all_files_access_inrt">Разрешить приложению доступ ко всем файлам, включая внешнее хранилище</string>
|
||||
<string name="summary_display_over_other_apps_inrt">Разрешить приложению отображать контент поверх других приложений</string>
|
||||
<string name="summary_post_notifications_permission_inrt">Разрешить приложению создавать и отправлять уведомления</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -953,5 +953,12 @@
|
||||
<string name="text_write_secure_settings">修改安全設置</string>
|
||||
<string name="text_write_secure_settings_description">安全設置包含應用程序可讀但不可寫入的設置選項, 這些選項只能由 UI 或系統級別應用修改.\n被授予 \"修改安全設置權限\" 後, 普通應用可直接修改上述安全設置 (例如無障礙服務).</string>
|
||||
<string name="text_write_system_settings">修改系統設置</string>
|
||||
<string name="text_special_permissions">特殊權限</string>
|
||||
<string name="summary_all_files_access">允許 AutoJs6 訪問所有文件, 包括外部存儲</string>
|
||||
<string name="summary_display_over_other_apps">允許 AutoJs6 在其他應用之上顯示內容</string>
|
||||
<string name="summary_post_notifications_permission">允許 AutoJs6 創建併發送通知</string>
|
||||
<string name="summary_all_files_access_inrt">允許應用訪問所有文件, 包括外部存儲</string>
|
||||
<string name="summary_display_over_other_apps_inrt">允許應用在其他應用之上顯示內容</string>
|
||||
<string name="summary_post_notifications_permission_inrt">允許應用創建併發送通知</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -953,5 +953,12 @@
|
||||
<string name="text_write_secure_settings">修改安全設定</string>
|
||||
<string name="text_write_secure_settings_description">安全設定包含應用程式可讀但不可寫入的設定選項, 這些選項只能由 UI 或系統級別應用修改.\n被授予 \"修改安全設定許可權\" 後, 普通應用可直接修改上述安全設定 (例如無障礙服務).</string>
|
||||
<string name="text_write_system_settings">修改系統設定</string>
|
||||
<string name="text_special_permissions">特殊許可權</string>
|
||||
<string name="summary_all_files_access">允許 AutoJs6 訪問所有檔案, 包括外部儲存</string>
|
||||
<string name="summary_display_over_other_apps">允許 AutoJs6 在其他應用之上顯示內容</string>
|
||||
<string name="summary_post_notifications_permission">允許 AutoJs6 建立併發送通知</string>
|
||||
<string name="summary_all_files_access_inrt">允許應用訪問所有檔案, 包括外部儲存</string>
|
||||
<string name="summary_display_over_other_apps_inrt">允許應用在其他應用之上顯示內容</string>
|
||||
<string name="summary_post_notifications_permission_inrt">允許應用建立併發送通知</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -950,5 +950,12 @@
|
||||
<string name="text_write_secure_settings">修改安全设置</string>
|
||||
<string name="text_write_secure_settings_description">安全设置包含应用程序可读但不可写入的设置选项, 这些选项只能由 UI 或系统级别应用修改.\n被授予 \"修改安全设置权限\" 后, 普通应用可直接修改上述安全设置 (例如无障碍服务).</string>
|
||||
<string name="text_write_system_settings">修改系统设置</string>
|
||||
<string name="text_special_permissions">特殊权限</string>
|
||||
<string name="summary_all_files_access">允许 AutoJs6 访问所有文件, 包括外部存储</string>
|
||||
<string name="summary_display_over_other_apps">允许 AutoJs6 在其他应用之上显示内容</string>
|
||||
<string name="summary_post_notifications_permission">允许 AutoJs6 创建并发送通知</string>
|
||||
<string name="summary_all_files_access_inrt">允许应用访问所有文件, 包括外部存储</string>
|
||||
<string name="summary_display_over_other_apps_inrt">允许应用在其他应用之上显示内容</string>
|
||||
<string name="summary_post_notifications_permission_inrt">允许应用创建并发送通知</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -1197,5 +1197,15 @@
|
||||
<string name="text_confirm_to_clear_histories_of">All histories below will be cleared\n\n[ %1$s ]\n\nAre you sure to clear them all?</string>
|
||||
<string name="text_confirm_to_clear_histories_of_all_color_libraries">All histories below will be cleared\n\n[ All color libraries ]\n\nAre you sure to clear them all?</string>
|
||||
<string name="text_all_histories">All histories</string>
|
||||
<string name="text_special_permissions">Special permissions</string>
|
||||
<string name="key_post_notifications_permission" translatable="false">key_$_post_notifications_permission</string>
|
||||
<string name="key_display_over_other_apps" translatable="false">key_$_display_over_other_apps</string>
|
||||
<string name="key_all_files_access" translatable="false">key_$_all_files_access</string>
|
||||
<string name="summary_all_files_access">Allows AutoJs6 to access all files, including those in external storage</string>
|
||||
<string name="summary_display_over_other_apps">Allows AutoJs6 to display content over other apps</string>
|
||||
<string name="summary_post_notifications_permission">Allows AutoJs6 to create and post notifications</string>
|
||||
<string name="summary_all_files_access_inrt">Allow the application to access all files, including external storage</string>
|
||||
<string name="summary_display_over_other_apps_inrt">Allow the application to display content over other apps</string>
|
||||
<string name="summary_post_notifications_permission_inrt">Allow the application to create and send notifications</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
<item name="colorControlNormal">@color/md_black_1000</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.LogActivityInrt" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="android:statusBarColor">@color/md_blue_gray_600</item>
|
||||
<item name="android:windowLightStatusBar">false</item>
|
||||
<style name="AppTheme.NoActionBarInrt" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="android:statusBarColor">@color/md_blue_gray_50</item>
|
||||
<item name="android:windowLightStatusBar">true</item>
|
||||
<item name="colorPrimary">@color/md_blue_gray_50</item>
|
||||
<item name="colorPrimaryDark">@color/md_blue_gray_50</item>
|
||||
<item name="colorAccent">@color/md_black_1000</item>
|
||||
|
||||
@@ -1,38 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<PreferenceCategory android:title="@string/text_script_running">
|
||||
<org.autojs.autojs.theme.preference.ThemeColorPreferenceCategory android:title="@string/text_script_running">
|
||||
|
||||
<SwitchPreference
|
||||
android:defaultValue="true"
|
||||
android:key="@string/key_use_volume_control_running"
|
||||
android:title="@string/text_use_volume_key_to_control_script_running" />
|
||||
<org.autojs.autojs.theme.preference.ThemeColorSwitchPreference
|
||||
android:defaultValue="true"
|
||||
android:key="@string/key_use_volume_control_running"
|
||||
android:title="@string/text_use_volume_key_to_control_script_running" />
|
||||
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="@string/key_not_showing_main_activity"
|
||||
android:summary="@string/summary_not_showing_main_activity"
|
||||
android:title="@string/text_not_showing_main_activity" />
|
||||
<org.autojs.autojs.theme.preference.ThemeColorSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="@string/key_not_showing_main_activity"
|
||||
android:summary="@string/summary_not_showing_main_activity"
|
||||
android:title="@string/text_not_showing_main_activity" />
|
||||
|
||||
</PreferenceCategory>
|
||||
</org.autojs.autojs.theme.preference.ThemeColorPreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/text_a11y_service">
|
||||
<org.autojs.autojs.theme.preference.ThemeColorPreferenceCategory android:title="@string/text_a11y_service">
|
||||
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="@string/key_enable_a11y_service_with_root_access"
|
||||
android:summary="@string/summary_enable_a11y_service_with_root_access"
|
||||
android:title="@string/text_enable_a11y_service_with_root_access_automatically" />
|
||||
<org.autojs.autojs.theme.preference.ThemeColorSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="@string/key_enable_a11y_service_with_root_access"
|
||||
android:summary="@string/summary_enable_a11y_service_with_root_access"
|
||||
android:title="@string/text_enable_a11y_service_with_root_access_automatically" />
|
||||
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="@string/key_stable_mode"
|
||||
android:summary="@string/summary_stable_mode"
|
||||
android:title="@string/text_stable_mode" />
|
||||
<org.autojs.autojs.theme.preference.ThemeColorSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="@string/key_stable_mode"
|
||||
android:summary="@string/summary_stable_mode"
|
||||
android:title="@string/text_stable_mode" />
|
||||
|
||||
</PreferenceCategory>
|
||||
</org.autojs.autojs.theme.preference.ThemeColorPreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/text_others" />
|
||||
<org.autojs.autojs.theme.preference.ThemeColorPreferenceCategory android:title="@string/text_special_permissions">
|
||||
|
||||
<org.autojs.autojs.inrt.theme.preference.ManageAllFilesPermissionSwitchPreference
|
||||
android:key="@string/key_all_files_access"
|
||||
android:summary="@string/summary_all_files_access_inrt"
|
||||
android:title="@string/text_all_files_access" />
|
||||
|
||||
<org.autojs.autojs.inrt.theme.preference.DisplayOverOtherAppsPermissionSwitchPreference
|
||||
android:key="@string/key_display_over_other_apps"
|
||||
android:summary="@string/summary_display_over_other_apps_inrt"
|
||||
android:title="@string/text_display_over_other_app" />
|
||||
|
||||
<org.autojs.autojs.inrt.theme.preference.PostNotificationsPermissionSwitchPreference
|
||||
android:key="@string/key_post_notifications_permission"
|
||||
android:summary="@string/summary_post_notifications_permission_inrt"
|
||||
android:title="@string/text_post_notifications_permission" />
|
||||
|
||||
</org.autojs.autojs.theme.preference.ThemeColorPreferenceCategory>
|
||||
|
||||
</PreferenceScreen>
|
||||
@@ -1,5 +1,5 @@
|
||||
#Sat Apr 12 23:02:49 CST 2025
|
||||
BUILD_TIME=1744470169558
|
||||
#Sun Apr 13 14:00:19 CST 2025
|
||||
BUILD_TIME=1744524019186
|
||||
COMPILE_SDK_VERSION=35
|
||||
JAVA_VERSION=23
|
||||
JAVA_VERSION_MIN_RADICAL=0
|
||||
@@ -17,6 +17,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=3131
|
||||
VERSION_BUILD=3133
|
||||
VERSION_NAME=6.6.2 Alpha6
|
||||
VSCODE_EXT_REQUIRED_VERSION=1.0.8
|
||||
|
||||
Reference in New Issue
Block a user