diff --git a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java index ef658e0a96c..afcd4c66194 100644 --- a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java @@ -18,9 +18,12 @@ package com.android.settings.accessibility; import android.accessibilityservice.AccessibilityServiceInfo; import android.os.Bundle; +import android.view.View; +import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.widget.SwitchBar; +import com.android.settingslib.accessibility.AccessibilityUtils; /** * For accessibility services that target SDK > Q, and @@ -28,7 +31,7 @@ import com.android.settings.widget.SwitchBar; * is set. */ public class InvisibleToggleAccessibilityServicePreferenceFragment extends - ToggleAccessibilityServicePreferenceFragment { + ToggleAccessibilityServicePreferenceFragment implements ShortcutPreference.OnClickListener{ @Override public void onActivityCreated(Bundle savedInstanceState) { @@ -38,4 +41,30 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends final SwitchBar mSwitchBar = activity.getSwitchBar(); mSwitchBar.hide(); } + + /** + * {@inheritDoc} + * + * Enables accessibility service only when user had allowed permission. + */ + @Override + public void onCheckboxClicked(ShortcutPreference preference) { + super.onCheckboxClicked(preference); + AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, + getArguments().getBoolean(AccessibilitySettings.EXTRA_CHECKED)); + } + + /** + * {@inheritDoc} + * + * Enables accessibility service when user clicks permission allow button. + */ + @Override + void onDialogButtonFromShortcutClicked(View view) { + super.onDialogButtonFromShortcutClicked(view); + if (view.getId() == R.id.permission_enable_allow_button) { + AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, + true); + } + } } diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index e2751570fcf..46e08795da5 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -565,7 +565,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends mDialog.dismiss(); } - private void onDialogButtonFromShortcutClicked(View view) { + void onDialogButtonFromShortcutClicked(View view) { if (view.getId() == R.id.permission_enable_allow_button) { onAllowButtonFromShortcutClicked(); } else if (view.getId() == R.id.permission_enable_deny_button) {