6.6.2 - Alpha5 - 主页抽屉无障碍服务开关支持与脚本代码同步

This commit is contained in:
SuperMonster003
2025-03-25 10:07:19 +08:00
parent 9dd763644d
commit 1b3ff3bb5a
5 changed files with 58 additions and 23 deletions

View File

@@ -27,7 +27,8 @@
"部分控件主题色与背景色对比度过低时的视觉体验",
"应用内页面导航栏设置为透明或半透明以增强视觉体验",
"UI 模式状态栏及导航栏默认为 `md_grey_50` 色值且设置为亮色模式",
"长按应用主页 \"文件\" 标签切换浮动按钮可见状态",
"应用主页 \"文件\" 标签支持通过长按切换浮动按钮可见状态",
"应用主页抽屉无障碍服务开关支持与脚本代码同步",
"代码编辑器标题文字支持字体大小自适应",
"日志页面浮动按钮可见状态与列表滚动操作联动",
"脚本项目配置文件 project.json 支持更多打包选项 _[`issue #305`](http://issues.autojs6.com/305)_ _[`issue #306`](http://issues.autojs6.com/306)_",

View File

@@ -11,6 +11,8 @@ import org.autojs.autojs.core.accessibility.SimpleActionAutomator.Companion.Acce
import org.autojs.autojs.core.automator.AccessibilityEventWrapper
import org.autojs.autojs.event.EventDispatcher
import org.autojs.autojs.core.pref.Language
import org.autojs.autojs.ui.main.drawer.DrawerFragment.Companion.Event.AccessibilityServiceStateChangedEvent
import org.greenrobot.eventbus.EventBus
import java.util.TreeMap
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
@@ -114,6 +116,7 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ
mEventExecutor?.shutdownNow()
callback?.onDisconnected()
EventBus.getDefault().post(object : AccessibilityServiceStateChangedEvent {})
super.onDestroy()
}
@@ -123,6 +126,7 @@ open class AccessibilityService : android.accessibilityservice.AccessibilityServ
Log.d(TAG, "onServiceConnected: $serviceInfo")
instance = this
callback?.onConnected()
EventBus.getDefault().post(object : AccessibilityServiceStateChangedEvent {})
LOCK.lock()
ENABLED.signalAll()
LOCK.unlock()

View File

@@ -36,6 +36,8 @@ class Auto(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime
override val selfAssignmentFunctions = listOf(
::start.name,
::stop.name,
::enable.name,
::disable.name,
::isRunning.name,
::exists.name,
::stateListener.name,
@@ -117,12 +119,24 @@ class Auto(private val scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime
accessibilityTool.startService()
}
@JvmStatic
@RhinoRuntimeFunctionInterface
fun enable(scriptRuntime: ScriptRuntime, args: Array<out Any?>) = ensureArgumentsIsEmpty(args) {
start(scriptRuntime, args)
}
@JvmStatic
@RhinoRuntimeFunctionInterface
fun stop(scriptRuntime: ScriptRuntime, args: Array<out Any?>) = ensureArgumentsIsEmpty(args) {
accessibilityTool.stopService()
}
@JvmStatic
@RhinoRuntimeFunctionInterface
fun disable(scriptRuntime: ScriptRuntime, args: Array<out Any?>) = ensureArgumentsIsEmpty(args) {
stop(scriptRuntime, args)
}
@JvmStatic
@RhinoRuntimeFunctionInterface
fun isRunning(scriptRuntime: ScriptRuntime, args: Array<out Any?>) = ensureArgumentsIsEmpty(args) {

View File

@@ -102,8 +102,6 @@ open class DrawerFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
EventBus.getDefault().register(this)
mContext = requireContext()
mActivity = requireActivity() as MainActivity
@@ -178,14 +176,15 @@ open class DrawerFragment : Fragment() {
mClientModeItem = DrawerMenuDisposableItem(this, R.drawable.ic_computer_black_48dp, R.string.text_client_mode).also {
setClientModeItem(it)
}
setStateDisposable(JsonSocketClient.cxnState
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
if (it.state == DevPluginService.State.DISCONNECTED) {
mClientModeItem.subtitle = null
}
consumeJsonSocketItemState(mClientModeItem, it)
})
setStateDisposable(
JsonSocketClient.cxnState
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
if (it.state == DevPluginService.State.DISCONNECTED) {
mClientModeItem.subtitle = null
}
consumeJsonSocketItemState(mClientModeItem, it)
})
setOnConnectionException { e: Throwable ->
mClientModeItem.setCheckedIfNeeded(false)
ViewUtils.showToast(context, getString(R.string.error_connect_to_remote, e.message), true)
@@ -195,14 +194,15 @@ open class DrawerFragment : Fragment() {
}
JsonSocketServerTool(mContext).apply {
setStateDisposable(JsonSocketServer.cxnState
.observeOn(AndroidSchedulers.mainThread())
.subscribe { state: DevPluginService.State ->
mServerModeItem.subtitle = takeIf { state.state == DevPluginService.State.CONNECTED }?.let {
NetworkUtils.getIpAddress()
}
consumeJsonSocketItemState(mServerModeItem, state)
})
setStateDisposable(
JsonSocketServer.cxnState
.observeOn(AndroidSchedulers.mainThread())
.subscribe { state: DevPluginService.State ->
mServerModeItem.subtitle = takeIf { state.state == DevPluginService.State.CONNECTED }?.let {
NetworkUtils.getIpAddress()
}
consumeJsonSocketItemState(mServerModeItem, state)
})
setOnConnectionException { e: Throwable ->
mServerModeItem.setCheckedIfNeeded(false)
ViewUtils.showToast(context, getString(R.string.error_enable_server, e.message), true)
@@ -396,16 +396,25 @@ open class DrawerFragment : Fragment() {
binding.exit.setOnClickListener { mActivity.exitCompletely() }
}
override fun onStart() {
super.onStart()
EventBus.getDefault().register(this)
}
override fun onResume() {
super.onResume()
syncMenuItemStates()
}
override fun onStop() {
super.onStop()
EventBus.getDefault().unregister(this)
}
override fun onDestroy() {
super.onDestroy()
mClientModeItem.dispose()
mServerModeItem.dispose()
EventBus.getDefault().unregister(this)
// mActivity.unregisterReceiver(mReceiver)
}
@@ -435,6 +444,12 @@ open class DrawerFragment : Fragment() {
// ViewCompat.getWindowInsetsController(mActivity.window.decorView)?.show(WindowInsets.Type.systemBars())
}
@Subscribe
@Suppress("unused", "UNUSED_PARAMETER")
fun onAccessibilityServiceStateChanged(event: Event.AccessibilityServiceStateChangedEvent) {
mAccessibilityServiceItem.sync()
}
private fun initMenuItems() {
drawerMenuAdapter = listOf(
DrawerMenuGroup(R.string.text_service),
@@ -510,6 +525,7 @@ open class DrawerFragment : Fragment() {
class Event {
interface OnDrawerOpened
interface OnDrawerClosed
interface AccessibilityServiceStateChangedEvent
}
}

View File

@@ -1,5 +1,5 @@
#Mon Mar 24 19:54:51 CST 2025
BUILD_TIME=1742817291092
#Tue Mar 25 00:54:41 CST 2025
BUILD_TIME=1742835281518
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=3052
VERSION_BUILD=3053
VERSION_NAME=6.6.2 Alpha5
VSCODE_EXT_REQUIRED_VERSION=1.0.8