Skip to content

Commit f635f30

Browse files
committed
perf: add lastScreenOnTime
1 parent 1f14df0 commit f635f30

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

app/src/main/kotlin/li/songe/gkd/a11y/A11yRuleEngine.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ private val actionDispatcher = Executors.newSingleThreadExecutor().asCoroutineDi
3030

3131
class A11yRuleEngine(val service: A11yService) {
3232
init {
33+
service.outStartQueryJob = { startQueryJob(byForced = true) }
3334
service.onA11yConnected {
3435
if (storeFlow.value.enableBlockA11yAppList && !a11yPartDisabledFlow.value) {
3536
startQueryJob(byForced = true)
@@ -153,7 +154,7 @@ class A11yRuleEngine(val service: A11yService) {
153154

154155
fun checkFutureStartJob() {
155156
val t = System.currentTimeMillis()
156-
if (t - lastTriggerTime < 3000L || t - appChangeTime < 5000L) {
157+
if (t - lastTriggerTime < 3000L || t - appChangeTime < 5000L || t - service.lastScreenOnTime < 3000L) {
157158
scope.launch(actionDispatcher) {
158159
delay(300)
159160
startQueryJob()

app/src/main/kotlin/li/songe/gkd/service/A11yService.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ abstract class A11yService : AccessibilityService(), OnA11yLife {
5858
val scope = useScope()
5959
val powerManager by lazy { getSystemService(POWER_SERVICE) as PowerManager }
6060
var isInteractive = true
61+
private set
62+
var outStartQueryJob = {}
63+
var lastScreenOnTime = 0L
64+
private set
6165
private val screenStateReceiver = object : BroadcastReceiver() {
6266
override fun onReceive(
6367
context: Context?,
@@ -70,6 +74,10 @@ abstract class A11yService : AccessibilityService(), OnA11yLife {
7074
Intent.ACTION_SCREEN_OFF -> false
7175
else -> isInteractive
7276
}
77+
if (isInteractive) {
78+
lastScreenOnTime = System.currentTimeMillis()
79+
outStartQueryJob()
80+
}
7381
}
7482
}
7583

0 commit comments

Comments
 (0)