Accessibility shortcut secondary action - divide different fragment for different fragment type

Different accessibility service fragment type have different UI.
- AccessibilityServiceFragmentType.LEGACY will use LegacyAccessibilityServicePreferenceFragment
- AccessibilityServiceFragmentType.INVISIBLE will use InvisibleToggleAccessibilityServicePreferenceFragment
- AccessibilityServiceFragmentType.INTUITIVE will use ToggleAccessibilityServicePreferenceFragment

Bug: 142530063
Test: Manual
Change-Id: Ib32a4f97514450e5c0d29e99c22935efecf8b6df
This commit is contained in:
jasonwshsu
2019-12-25 17:44:59 +08:00
parent 4e7229c440
commit 3d94a57d97
6 changed files with 104 additions and 7 deletions

View File

@@ -48,6 +48,7 @@ import com.android.internal.accessibility.AccessibilityShortcutController;
import com.android.internal.content.PackageMonitor;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.display.DarkUIPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -402,7 +403,24 @@ public class AccessibilitySettings extends DashboardFragment {
preference.setEnabled(true);
}
preference.setFragment(ToggleAccessibilityServicePreferenceFragment.class.getName());
switch (AccessibilityUtil.getAccessibilityServiceFragmentType(info)) {
case AccessibilityServiceFragmentType.LEGACY:
preference.setFragment(
LegacyAccessibilityServicePreferenceFragment.class.getName());
break;
case AccessibilityServiceFragmentType.INVISIBLE:
preference.setFragment(
InvisibleToggleAccessibilityServicePreferenceFragment.class.getName());
break;
case AccessibilityServiceFragmentType.INTUITIVE:
preference.setFragment(
ToggleAccessibilityServicePreferenceFragment.class.getName());
break;
default:
// impossible status
throw new AssertionError();
}
preference.setPersistent(true);
final Bundle extras = preference.getExtras();