port for material expressive

This commit is contained in:
minish 2025-10-03 01:31:53 -04:00
parent bf6e2f60cb
commit a017d1e27f
Signed by: min
SSH Key Fingerprint: SHA256:mf+pUTmK92Y57BuCjlkBdd82LqztTfDCQIUp0fCKABc
1 changed files with 16 additions and 13 deletions

View File

@ -2,21 +2,13 @@ package rip.min.digica.service
import android.accessibilityservice.AccessibilityService import android.accessibilityservice.AccessibilityService
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.ActivityManager
import android.content.ComponentName import android.content.ComponentName
import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Handler import android.os.Handler
import android.provider.Settings import android.provider.Settings
import android.util.Log import android.util.Log
import android.view.SurfaceControl
import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent
import androidx.core.util.forEach
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.util.Calendar import java.util.Calendar
import kotlin.toString
@SuppressLint("AccessibilityPolicy") @SuppressLint("AccessibilityPolicy")
class DigicaService : AccessibilityService() { class DigicaService : AccessibilityService() {
@ -40,8 +32,6 @@ class DigicaService : AccessibilityService() {
override fun onAccessibilityEvent(event: AccessibilityEvent?) { override fun onAccessibilityEvent(event: AccessibilityEvent?) {
if (event == null || event.packageName == null) return if (event == null || event.packageName == null) return
Log.d("DigicaService", "$event")
// Get time // Get time
val cal = Calendar.getInstance() val cal = Calendar.getInstance()
val day = cal.get(Calendar.DAY_OF_WEEK) val day = cal.get(Calendar.DAY_OF_WEEK)
@ -85,10 +75,15 @@ class DigicaService : AccessibilityService() {
// Check if the last app info page visited was this app's // Check if the last app info page visited was this app's
if (pkgName == "com.android.settings" if (pkgName == "com.android.settings"
&& className == "com.android.settings.spa.SpaActivity" && className == "com.android.settings.spa.SpaActivity"
&& commonSettingsRoot?.childCount == 1
) { ) {
val settingsText = when (commonSettingsRoot?.childCount) {
// Material Expressive
0 -> commonSettingsRoot.text
1 -> commonSettingsRoot.getChild(0).text
else -> null
}
wasLastViewingThisAppInfo = wasLastViewingThisAppInfo =
commonSettingsRoot.getChild(0)?.text.toString() == appLabel settingsText?.toString() == appLabel
} }
// Is user trying to uninstall this app? // Is user trying to uninstall this app?
@ -98,7 +93,8 @@ class DigicaService : AccessibilityService() {
// Is user trying to disable the service? // Is user trying to disable the service?
val attemptingDisableService = pkgName == "com.android.settings" val attemptingDisableService = pkgName == "com.android.settings"
&& className == "android.app.AlertDialog" && (className == "android.app.AlertDialog"
|| className == "androidx.appcompat.app.AlertDialog")
&& event.text.size == 3 && event.text.size == 3
&& event.text[0].contains(serviceLabel) && event.text[0].contains(serviceLabel)
@ -123,6 +119,13 @@ class DigicaService : AccessibilityService() {
} }
} }
// fun printTree(node: AccessibilityNodeInfo, depth: Int) {
// Log.d("DigicaService", "${"=".repeat(depth)}> text ${node.text}")
// for (i in 0 until node.childCount) {
// printTree(node.getChild(i), depth + 1)
// }
// }
fun leaveDelayed(delayMillis: Long) { fun leaveDelayed(delayMillis: Long) {
Handler(mainLooper).postDelayed({ Handler(mainLooper).postDelayed({
performGlobalAction(GLOBAL_ACTION_BACK) performGlobalAction(GLOBAL_ACTION_BACK)