Merge "Fix that holding volume buttons to activate Extra dim feature doesn't do anything." into tm-dev
This commit is contained in:
@@ -333,6 +333,10 @@ public abstract class AccessibilityShortcutPreferenceFragment extends DashboardF
|
|||||||
mShortcutPreference.setChecked(shortcutAssigned);
|
mShortcutPreference.setChecked(shortcutAssigned);
|
||||||
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
|
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
|
||||||
|
|
||||||
|
if (mHardwareTypeCheckBox.isChecked()) {
|
||||||
|
AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(getPrefContext());
|
||||||
|
}
|
||||||
|
|
||||||
// Show the quick setting tooltip if the shortcut assigned in the first time
|
// Show the quick setting tooltip if the shortcut assigned in the first time
|
||||||
if (shortcutAssigned) {
|
if (shortcutAssigned) {
|
||||||
showQuickSettingsTooltipIfNeeded();
|
showQuickSettingsTooltipIfNeeded();
|
||||||
|
@@ -434,4 +434,15 @@ public final class AccessibilityUtil {
|
|||||||
public static boolean isSystemApp(@NonNull AccessibilityServiceInfo info) {
|
public static boolean isSystemApp(@NonNull AccessibilityServiceInfo info) {
|
||||||
return info.getResolveInfo().serviceInfo.applicationInfo.isSystemApp();
|
return info.getResolveInfo().serviceInfo.applicationInfo.isSystemApp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bypasses the timeout restriction if volume key shortcut assigned.
|
||||||
|
*
|
||||||
|
* @param context the current context.
|
||||||
|
*/
|
||||||
|
public static void skipVolumeShortcutDialogTimeoutRestriction(Context context) {
|
||||||
|
Settings.Secure.putInt(context.getContentResolver(),
|
||||||
|
Settings.Secure.SKIP_ACCESSIBILITY_SHORTCUT_DIALOG_TIMEOUT_RESTRICTION, /*
|
||||||
|
true */ 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -725,6 +725,10 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
|
|||||||
mShortcutPreference.setChecked(shortcutAssigned);
|
mShortcutPreference.setChecked(shortcutAssigned);
|
||||||
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
|
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
|
||||||
|
|
||||||
|
if (mHardwareTypeCheckBox.isChecked()) {
|
||||||
|
AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(getPrefContext());
|
||||||
|
}
|
||||||
|
|
||||||
// Show the quick setting tooltip if the shortcut assigned in the first time
|
// Show the quick setting tooltip if the shortcut assigned in the first time
|
||||||
if (shortcutAssigned) {
|
if (shortcutAssigned) {
|
||||||
showQuickSettingsTooltipIfNeeded();
|
showQuickSettingsTooltipIfNeeded();
|
||||||
|
@@ -367,6 +367,10 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
|||||||
mShortcutPreference.setChecked(value != UserShortcutType.EMPTY);
|
mShortcutPreference.setChecked(value != UserShortcutType.EMPTY);
|
||||||
mShortcutPreference.setSummary(
|
mShortcutPreference.setSummary(
|
||||||
getShortcutTypeSummary(getPrefContext()));
|
getShortcutTypeSummary(getPrefContext()));
|
||||||
|
|
||||||
|
if (mHardwareTypeCheckBox.isChecked()) {
|
||||||
|
AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(getPrefContext());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -38,6 +38,7 @@ import android.provider.Settings;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.CheckBox;
|
||||||
import android.widget.PopupWindow;
|
import android.widget.PopupWindow;
|
||||||
|
|
||||||
import androidx.annotation.XmlRes;
|
import androidx.annotation.XmlRes;
|
||||||
@@ -183,6 +184,28 @@ public class ToggleFeaturePreferenceFragmentTest {
|
|||||||
assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE);
|
assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void dialogCheckboxClicked_hardwareType_skipTimeoutRestriction() {
|
||||||
|
mContext.setTheme(R.style.Theme_AppCompat);
|
||||||
|
final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
|
||||||
|
null);
|
||||||
|
mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
|
||||||
|
mFragment.mShortcutPreference = shortcutPreference;
|
||||||
|
final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
|
||||||
|
mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
|
||||||
|
mFragment::callOnAlertDialogCheckboxClicked);
|
||||||
|
mFragment.setupEditShortcutDialog(dialog);
|
||||||
|
|
||||||
|
final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
|
||||||
|
final CheckBox hardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
|
||||||
|
hardwareTypeCheckBox.setChecked(true);
|
||||||
|
dialog.getButton(DialogInterface.BUTTON_POSITIVE).callOnClick();
|
||||||
|
final boolean skipTimeoutRestriction = Settings.Secure.getInt(mContext.getContentResolver(),
|
||||||
|
Settings.Secure.SKIP_ACCESSIBILITY_SHORTCUT_DIALOG_TIMEOUT_RESTRICTION, 0) != 0;
|
||||||
|
|
||||||
|
assertThat(skipTimeoutRestriction).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
|
public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
|
||||||
mContext.setTheme(R.style.Theme_AppCompat);
|
mContext.setTheme(R.style.Theme_AppCompat);
|
||||||
|
Reference in New Issue
Block a user