Merge "Make QS shortcut type as default preferred shortcut for A11yService that associate with a TileService" into main
This commit is contained in:
@@ -42,7 +42,8 @@ public final class PreferredShortcuts {
|
||||
|
||||
/**
|
||||
* Retrieves the user preferred shortcut types for the given {@code componentName} from
|
||||
* SharedPreferences.
|
||||
* SharedPreferences. If the user doesn't have a preferred shortcut,
|
||||
* {@link ShortcutConstants.UserShortcutType.SOFTWARE} is returned.
|
||||
*
|
||||
* @param context {@link Context} to access the {@link SharedPreferences}
|
||||
* @param componentName Name of the service or activity, should be the format of {@link
|
||||
@@ -52,7 +53,26 @@ public final class PreferredShortcuts {
|
||||
@ShortcutConstants.UserShortcutType
|
||||
public static int retrieveUserShortcutType(
|
||||
@NonNull Context context, @NonNull String componentName) {
|
||||
final int defaultTypes = getDefaultPreferredShortcutTypesForTarget(componentName);
|
||||
return retrieveUserShortcutType(
|
||||
context, componentName, ShortcutConstants.UserShortcutType.SOFTWARE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the user preferred shortcut types for the given {@code componentName} from
|
||||
* SharedPreferences.
|
||||
*
|
||||
* @param context {@link Context} to access the {@link SharedPreferences}
|
||||
* @param componentName Name of the service or activity, should be the format of {@link
|
||||
* ComponentName#flattenToString()}.
|
||||
* @param defaultTypes The default shortcut types to use if the user doesn't have a
|
||||
* preferred shortcut.
|
||||
* @return {@link ShortcutConstants.UserShortcutType}
|
||||
*/
|
||||
@ShortcutConstants.UserShortcutType
|
||||
public static int retrieveUserShortcutType(
|
||||
@NonNull Context context,
|
||||
@NonNull String componentName,
|
||||
@ShortcutConstants.UserShortcutType int defaultTypes) {
|
||||
|
||||
// Create a mutable set to modify
|
||||
final Set<String> info = new HashSet<>(getFromSharedPreferences(context));
|
||||
@@ -150,14 +170,5 @@ public final class PreferredShortcuts {
|
||||
getSharedPreferences(context).edit().clear().apply();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default shortcut types for the given accessibility feature.
|
||||
*/
|
||||
@ShortcutConstants.UserShortcutType
|
||||
private static int getDefaultPreferredShortcutTypesForTarget(@NonNull String componentName) {
|
||||
// TODO (b/322712028): return different default shortcut types for the given component
|
||||
return ShortcutConstants.UserShortcutType.SOFTWARE;
|
||||
}
|
||||
|
||||
private PreferredShortcuts() {}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@ import android.widget.CompoundButton;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.internal.accessibility.common.ShortcutConstants;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
|
||||
import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
|
||||
@@ -330,7 +331,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
||||
@Override
|
||||
public void onToggleClicked(ShortcutPreference preference) {
|
||||
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
|
||||
mComponentName.flattenToString());
|
||||
mComponentName.flattenToString(), getDefaultShortcutTypes());
|
||||
if (preference.isChecked()) {
|
||||
final boolean isWarningRequired;
|
||||
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
|
||||
@@ -476,6 +477,16 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDefaultShortcutTypes() {
|
||||
if (android.view.accessibility.Flags.a11yQsShortcut()) {
|
||||
return getTileComponentName() == null ? super.getDefaultShortcutTypes()
|
||||
: ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
|
||||
}
|
||||
|
||||
return super.getDefaultShortcutTypes();
|
||||
}
|
||||
|
||||
private void onAllowButtonFromEnableToggleClicked() {
|
||||
handleConfirmServiceEnabled(/* confirmed= */ true);
|
||||
if (serviceSupportsAccessibilityButton()) {
|
||||
@@ -507,7 +518,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
||||
mShortcutPreference.setChecked(true);
|
||||
|
||||
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
|
||||
mComponentName.flattenToString());
|
||||
mComponentName.flattenToString(), getDefaultShortcutTypes());
|
||||
AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes, mComponentName);
|
||||
|
||||
mIsDialogShown.set(false);
|
||||
|
||||
@@ -54,6 +54,7 @@ import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.internal.accessibility.common.ShortcutConstants;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
|
||||
@@ -661,7 +662,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
|
||||
int value = restoreOnConfigChangedValue();
|
||||
if (value == NOT_SET) {
|
||||
final int lastNonEmptyUserShortcutType = PreferredShortcuts.retrieveUserShortcutType(
|
||||
getPrefContext(), mComponentName.flattenToString());
|
||||
getPrefContext(), mComponentName.flattenToString(), getDefaultShortcutTypes());
|
||||
value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
|
||||
: UserShortcutType.EMPTY;
|
||||
}
|
||||
@@ -710,8 +711,8 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
|
||||
return context.getText(R.string.accessibility_shortcut_state_off);
|
||||
}
|
||||
|
||||
final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(context,
|
||||
mComponentName.flattenToString());
|
||||
final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(
|
||||
context, mComponentName.flattenToString(), getDefaultShortcutTypes());
|
||||
|
||||
final List<CharSequence> list = new ArrayList<>();
|
||||
if (android.view.accessibility.Flags.a11yQsShortcut()) {
|
||||
@@ -811,7 +812,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
|
||||
}
|
||||
|
||||
final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(getPrefContext(),
|
||||
mComponentName.flattenToString());
|
||||
mComponentName.flattenToString(), getDefaultShortcutTypes());
|
||||
mShortcutPreference.setChecked(
|
||||
AccessibilityUtil.hasValuesInSettings(getPrefContext(), shortcutTypes,
|
||||
mComponentName));
|
||||
@@ -829,7 +830,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
|
||||
}
|
||||
|
||||
final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(getPrefContext(),
|
||||
mComponentName.flattenToString());
|
||||
mComponentName.flattenToString(), getDefaultShortcutTypes());
|
||||
if (preference.isChecked()) {
|
||||
AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes,
|
||||
mComponentName);
|
||||
@@ -977,4 +978,13 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
|
||||
boolean isAnySetupWizard() {
|
||||
return WizardManagerHelper.isAnySetupWizard(getIntent());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default preferred shortcut types when the user doesn't have a preferred shortcut
|
||||
* types
|
||||
*/
|
||||
@ShortcutConstants.UserShortcutType
|
||||
protected int getDefaultShortcutTypes() {
|
||||
return ShortcutConstants.UserShortcutType.SOFTWARE;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user