ShortcutPreference Toggle design.

- For target SDK < 30 app show as preference item to trigger shortcut on/off.
- For target SDK >= 30 app show two item: the left one can edit shortcut and the right one be a on/off trigger button.

The design is reference from WIFI setting which has similar comportment.

Bug: 148989269
Test: Test result in Buganizer.

Change-Id: I815206d9e885c01bf3e6445820176aed4a743323
This commit is contained in:
menghanli
2020-02-18 23:05:38 +08:00
parent 4d59bce21b
commit 919e555a51
9 changed files with 182 additions and 170 deletions

View File

@@ -32,7 +32,7 @@ import com.android.settingslib.accessibility.AccessibilityUtils;
* {@link AccessibilityServiceInfo#FLAG_REQUEST_ACCESSIBILITY_BUTTON} is set.
*/
public class InvisibleToggleAccessibilityServicePreferenceFragment extends
ToggleAccessibilityServicePreferenceFragment implements ShortcutPreference.OnClickListener{
ToggleAccessibilityServicePreferenceFragment implements ShortcutPreference.OnClickCallback {
@Override
protected void onInstallSwitchPreferenceToggleSwitch() {
@@ -47,10 +47,10 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
* accessibility service when shortcutPreference is unchecked.
*/
@Override
public void onCheckboxClicked(ShortcutPreference preference) {
super.onCheckboxClicked(preference);
public void onToggleClicked(ShortcutPreference preference) {
super.onToggleClicked(preference);
boolean enabled = getArguments().getBoolean(AccessibilitySettings.EXTRA_CHECKED)
&& preference.getChecked();
&& preference.isChecked();
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, enabled);
}
@@ -61,8 +61,8 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
* Enables accessibility service when user clicks permission allow button.
*/
@Override
void onDialogButtonFromShortcutClicked(View view) {
super.onDialogButtonFromShortcutClicked(view);
void onDialogButtonFromShortcutToggleClicked(View view) {
super.onDialogButtonFromShortcutToggleClicked(view);
if (view.getId() == R.id.permission_enable_allow_button) {
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName,
true);