diff --git a/app/src/main/java/de/jrpie/android/launcher/actions/lock/LauncherAccessibilityService.kt b/app/src/main/java/de/jrpie/android/launcher/actions/lock/LauncherAccessibilityService.kt index 969b493..2a0d6b6 100644 --- a/app/src/main/java/de/jrpie/android/launcher/actions/lock/LauncherAccessibilityService.kt +++ b/app/src/main/java/de/jrpie/android/launcher/actions/lock/LauncherAccessibilityService.kt @@ -5,6 +5,8 @@ import android.accessibilityservice.AccessibilityServiceInfo import android.content.Context import android.content.Intent import android.os.Build +import android.provider.Settings +import android.util.Log import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityManager import android.widget.Toast @@ -42,15 +44,18 @@ class LauncherAccessibilityService : AccessibilityService() { } fun isEnabled(context: Context): Boolean { - val accessibilityManager = - context.getSystemService() ?: return false - val enabledServices = - accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK) - return enabledServices.any { - it.id.startsWith(BuildConfig.APPLICATION_ID) + val enabledServices = Settings.Secure.getString(context.contentResolver, Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES) + for (service in enabledServices.split(":")) { + val pkg = service.split("/")[0] + val serviceClass = service.split("/")[1] + if (pkg == context.packageName && serviceClass == LauncherAccessibilityService::class.java.name) { + Log.d("ServiceEnabled", "true") + return true + } } + Log.d("ServiceEnabled", "false") + return false } - } @@ -87,6 +92,13 @@ class LauncherAccessibilityService : AccessibilityService() { return } - performGlobalAction(GLOBAL_ACTION_LOCK_SCREEN) + val success = performGlobalAction(GLOBAL_ACTION_LOCK_SCREEN) + if (!success) { + Toast.makeText( + this, + getText(R.string.alert_lock_screen_failed), + Toast.LENGTH_LONG + ).show() + } } } \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d0e8dea..aac7246 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -247,7 +247,7 @@ Enable the lock screen action No camera with torch detected. Error: Can\'t access torch. - Error: Failed to lock screen. + Error: Failed to lock screen. (if you just upgraded/reinstalled the app, try to disable and re-enable the accessibility service in phone settings) μLauncher\'s accessibility service is not enabled. Please enable it in settings Error: Locking the screen using accessibility is not supported on this device. Please use device admin instead. µLauncher - lock screen