Fix: Fixed the Accessibility settings if required.
This commit is contained in:
@@ -2,10 +2,14 @@ package com.github.droidworksstudio.launcher.accessibility
|
|||||||
|
|
||||||
import android.accessibilityservice.AccessibilityService
|
import android.accessibilityservice.AccessibilityService
|
||||||
import android.accessibilityservice.AccessibilityServiceInfo
|
import android.accessibilityservice.AccessibilityServiceInfo
|
||||||
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.provider.Settings
|
||||||
import android.view.accessibility.AccessibilityEvent
|
import android.view.accessibility.AccessibilityEvent
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
|
import com.github.droidworksstudio.launcher.R
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
|
|
||||||
class MyAccessibilityService : AccessibilityService() {
|
class MyAccessibilityService : AccessibilityService() {
|
||||||
@@ -65,7 +69,32 @@ class MyAccessibilityService : AccessibilityService() {
|
|||||||
return performGlobalAction(GLOBAL_ACTION_TAKE_SCREENSHOT)
|
return performGlobalAction(GLOBAL_ACTION_TAKE_SCREENSHOT)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.P)
|
||||||
|
fun toggleSplitScreen(): Boolean {
|
||||||
|
return performGlobalAction(GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN)
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
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)
|
private var mInstance: WeakReference<MyAccessibilityService> = WeakReference(null)
|
||||||
fun instance(): MyAccessibilityService? {
|
fun instance(): MyAccessibilityService? {
|
||||||
return mInstance.get()
|
return mInstance.get()
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import android.view.WindowInsets
|
|||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AppCompatDelegate
|
|
||||||
import androidx.appcompat.widget.LinearLayoutCompat
|
import androidx.appcompat.widget.LinearLayoutCompat
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.github.droidworksstudio.launcher.Constants
|
import com.github.droidworksstudio.launcher.Constants
|
||||||
@@ -67,6 +66,7 @@ class AppHelper @Inject constructor() {
|
|||||||
method.invoke(statusBarService)
|
method.invoke(statusBarService)
|
||||||
} catch (exception: Exception) {
|
} catch (exception: Exception) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
|
MyAccessibilityService.runAccessibilityMode(context)
|
||||||
MyAccessibilityService.instance()?.openNotifications()
|
MyAccessibilityService.instance()?.openNotifications()
|
||||||
}
|
}
|
||||||
exception.printStackTrace()
|
exception.printStackTrace()
|
||||||
@@ -82,6 +82,7 @@ class AppHelper @Inject constructor() {
|
|||||||
method.invoke(statusBarService)
|
method.invoke(statusBarService)
|
||||||
} catch (exception: Exception) {
|
} catch (exception: Exception) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
|
MyAccessibilityService.runAccessibilityMode(context)
|
||||||
MyAccessibilityService.instance()?.openQuickSettings()
|
MyAccessibilityService.instance()?.openQuickSettings()
|
||||||
}
|
}
|
||||||
exception.printStackTrace()
|
exception.printStackTrace()
|
||||||
@@ -299,27 +300,31 @@ class AppHelper @Inject constructor() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun enableAppAsAccessibilityService(context: Context, accessibilityState: Boolean) {
|
fun enableAppAsAccessibilityService(context: Context, accessibilityState: Boolean) {
|
||||||
|
val state: String = if (accessibilityState) {
|
||||||
val myAccessibilityService = MyAccessibilityService.instance()
|
|
||||||
|
|
||||||
val state: String = if (myAccessibilityService != null) {
|
|
||||||
context.getString(R.string.accessibility_settings_disable)
|
context.getString(R.string.accessibility_settings_disable)
|
||||||
} else {
|
} else {
|
||||||
context.getString(R.string.accessibility_settings_enable)
|
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.setTitle(R.string.accessibility_settings_title)
|
||||||
builder.setMessage(R.string.accessibility_service_desc)
|
builder.setMessage(R.string.accessibility_service_desc)
|
||||||
builder.setPositiveButton(state) { _, _ ->
|
builder.setPositiveButton(state) { _, _ ->
|
||||||
val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
|
val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
|
||||||
context.startActivity(intent)
|
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()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -233,6 +233,7 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
|
|||||||
override fun onDoubleClick() {
|
override fun onDoubleClick() {
|
||||||
super.onDoubleClick()
|
super.onDoubleClick()
|
||||||
if(preferenceHelper.tapLockScreen) {
|
if(preferenceHelper.tapLockScreen) {
|
||||||
|
MyAccessibilityService.runAccessibilityMode(context)
|
||||||
MyAccessibilityService.instance()?.lockScreen()
|
MyAccessibilityService.instance()?.lockScreen()
|
||||||
} else {
|
} else {
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user