Fix: Fixed the Accessibility settings if required.

This commit is contained in:
HeCodes2Much
2024-05-09 20:12:40 +01:00
parent f41a8c8576
commit 4c19dbbd7f
3 changed files with 50 additions and 15 deletions

View File

@@ -2,10 +2,14 @@ package com.github.droidworksstudio.launcher.accessibility
import android.accessibilityservice.AccessibilityService
import android.accessibilityservice.AccessibilityServiceInfo
import android.content.Context
import android.content.Intent
import android.os.Build
import android.provider.Settings
import android.view.accessibility.AccessibilityEvent
import androidx.annotation.RequiresApi
import com.github.droidworksstudio.launcher.R
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import java.lang.ref.WeakReference
class MyAccessibilityService : AccessibilityService() {
@@ -65,7 +69,32 @@ class MyAccessibilityService : AccessibilityService() {
return performGlobalAction(GLOBAL_ACTION_TAKE_SCREENSHOT)
}
@RequiresApi(Build.VERSION_CODES.P)
fun toggleSplitScreen(): Boolean {
return performGlobalAction(GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN)
}
companion object {
fun runAccessibilityMode(context: Context) {
if (instance() == null) {
val state: String = context.getString(R.string.accessibility_settings_enable)
val builder = MaterialAlertDialogBuilder(context)
builder.setTitle(R.string.accessibility_settings_title)
builder.setMessage(R.string.accessibility_service_desc)
builder.setPositiveButton(state) { _, _ ->
val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
context.startActivity(intent)
}
builder.setNegativeButton(android.R.string.cancel) { dialog, _ ->
dialog.dismiss()
}
builder.show()
}
return
}
private var mInstance: WeakReference<MyAccessibilityService> = WeakReference(null)
fun instance(): MyAccessibilityService? {
return mInstance.get()

View File

@@ -22,7 +22,6 @@ import android.view.WindowInsets
import android.view.inputmethod.InputMethodManager
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatDelegate
import androidx.appcompat.widget.LinearLayoutCompat
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.github.droidworksstudio.launcher.Constants
@@ -67,6 +66,7 @@ class AppHelper @Inject constructor() {
method.invoke(statusBarService)
} catch (exception: Exception) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
MyAccessibilityService.runAccessibilityMode(context)
MyAccessibilityService.instance()?.openNotifications()
}
exception.printStackTrace()
@@ -82,6 +82,7 @@ class AppHelper @Inject constructor() {
method.invoke(statusBarService)
} catch (exception: Exception) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
MyAccessibilityService.runAccessibilityMode(context)
MyAccessibilityService.instance()?.openQuickSettings()
}
exception.printStackTrace()
@@ -299,27 +300,31 @@ class AppHelper @Inject constructor() {
}
fun enableAppAsAccessibilityService(context: Context, accessibilityState: Boolean) {
val myAccessibilityService = MyAccessibilityService.instance()
val state: String = if (myAccessibilityService != null) {
val state: String = if (accessibilityState) {
context.getString(R.string.accessibility_settings_disable)
} else {
context.getString(R.string.accessibility_settings_enable)
}
val builder = MaterialAlertDialogBuilder(context)
when (state) {
"Enable" -> {
val builder = MaterialAlertDialogBuilder(context)
builder.setTitle(R.string.accessibility_settings_title)
builder.setMessage(R.string.accessibility_service_desc)
builder.setPositiveButton(state) { _, _ ->
val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
context.startActivity(intent)
builder.setTitle(R.string.accessibility_settings_title)
builder.setMessage(R.string.accessibility_service_desc)
builder.setPositiveButton(state) { _, _ ->
val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
context.startActivity(intent)
}
builder.setNegativeButton(android.R.string.cancel) { dialog, _ ->
dialog.dismiss()
}
builder.show()
}
else -> {
return
}
}
builder.setNegativeButton(android.R.string.cancel) { dialog, _ ->
dialog.dismiss()
}
builder.show()
}
}

View File

@@ -233,6 +233,7 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
override fun onDoubleClick() {
super.onDoubleClick()
if(preferenceHelper.tapLockScreen) {
MyAccessibilityService.runAccessibilityMode(context)
MyAccessibilityService.instance()?.lockScreen()
} else {
return