Merge "Set the shortcut size to large when user enabled Magnification" into main
This commit is contained in:
@@ -52,11 +52,12 @@ public class FloatingMenuSizePreferenceController extends BasePreferenceControll
|
|||||||
|
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef({
|
@IntDef({
|
||||||
|
Size.UNKNOWN,
|
||||||
Size.SMALL,
|
Size.SMALL,
|
||||||
Size.LARGE,
|
Size.LARGE,
|
||||||
})
|
})
|
||||||
@VisibleForTesting
|
public @interface Size {
|
||||||
@interface Size {
|
int UNKNOWN = -1;
|
||||||
int SMALL = 0;
|
int SMALL = 0;
|
||||||
int LARGE = 1;
|
int LARGE = 1;
|
||||||
}
|
}
|
||||||
|
@@ -643,6 +643,17 @@ public class ToggleScreenMagnificationPreferenceFragment extends
|
|||||||
joiner.add(MAGNIFICATION_CONTROLLER_NAME);
|
joiner.add(MAGNIFICATION_CONTROLLER_NAME);
|
||||||
|
|
||||||
Settings.Secure.putString(context.getContentResolver(), targetKey, joiner.toString());
|
Settings.Secure.putString(context.getContentResolver(), targetKey, joiner.toString());
|
||||||
|
// The size setting defaults to unknown. If the user has ever manually changed the size
|
||||||
|
// before, we do not automatically change it.
|
||||||
|
if (shortcutType == UserShortcutType.SOFTWARE
|
||||||
|
&& Settings.Secure.getInt(context.getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
|
||||||
|
FloatingMenuSizePreferenceController.Size.UNKNOWN)
|
||||||
|
== FloatingMenuSizePreferenceController.Size.UNKNOWN) {
|
||||||
|
Settings.Secure.putInt(context.getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
|
||||||
|
FloatingMenuSizePreferenceController.Size.LARGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
@@ -64,6 +64,7 @@ import org.robolectric.Shadows;
|
|||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
import org.robolectric.shadows.ShadowContentResolver;
|
import org.robolectric.shadows.ShadowContentResolver;
|
||||||
import org.robolectric.shadows.ShadowPackageManager;
|
import org.robolectric.shadows.ShadowPackageManager;
|
||||||
|
import org.robolectric.shadows.ShadowSettings;
|
||||||
import org.robolectric.shadows.androidx.fragment.FragmentController;
|
import org.robolectric.shadows.androidx.fragment.FragmentController;
|
||||||
import org.robolectric.util.ReflectionHelpers;
|
import org.robolectric.util.ReflectionHelpers;
|
||||||
|
|
||||||
@@ -71,7 +72,8 @@ import java.util.Collection;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/** Tests for {@link ToggleScreenMagnificationPreferenceFragment}. */
|
/** Tests for {@link ToggleScreenMagnificationPreferenceFragment}. */
|
||||||
@Config(shadows = {ShadowUserManager.class, ShadowStorageManager.class})
|
@Config(shadows = {ShadowUserManager.class, ShadowStorageManager.class,
|
||||||
|
ShadowSettings.ShadowSecure.class})
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
public class ToggleScreenMagnificationPreferenceFragmentTest {
|
public class ToggleScreenMagnificationPreferenceFragmentTest {
|
||||||
|
|
||||||
@@ -208,6 +210,73 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
|
|||||||
PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
|
PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void optInAllValuesToSettings_software_sizeValueIsNull_putLargeSizeValue() {
|
||||||
|
ShadowSettings.ShadowSecure.reset();
|
||||||
|
|
||||||
|
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
|
||||||
|
UserShortcutType.SOFTWARE);
|
||||||
|
|
||||||
|
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
|
||||||
|
FloatingMenuSizePreferenceController.Size.UNKNOWN)).isEqualTo(
|
||||||
|
FloatingMenuSizePreferenceController.Size.LARGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void optInAllValuesToSettings_software_sizeValueIsNotNull_sizeValueIsNotChanged() {
|
||||||
|
for (int size : new int[] {FloatingMenuSizePreferenceController.Size.LARGE,
|
||||||
|
FloatingMenuSizePreferenceController.Size.SMALL}) {
|
||||||
|
Settings.Secure.putInt(mContext.getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size);
|
||||||
|
|
||||||
|
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
|
||||||
|
mContext,
|
||||||
|
UserShortcutType.SOFTWARE);
|
||||||
|
|
||||||
|
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
|
||||||
|
FloatingMenuSizePreferenceController.Size.UNKNOWN)).isEqualTo(
|
||||||
|
size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void optInAllValuesToSettings_hardware_sizeValueIsNotChanged() {
|
||||||
|
for (int size : new int[] {FloatingMenuSizePreferenceController.Size.UNKNOWN,
|
||||||
|
FloatingMenuSizePreferenceController.Size.LARGE,
|
||||||
|
FloatingMenuSizePreferenceController.Size.SMALL}) {
|
||||||
|
Settings.Secure.putInt(mContext.getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size);
|
||||||
|
|
||||||
|
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
|
||||||
|
mContext,
|
||||||
|
UserShortcutType.HARDWARE);
|
||||||
|
|
||||||
|
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size + 1)).isEqualTo(
|
||||||
|
size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void optInAllValuesToSettings_tripletap_sizeValueIsNotChanged() {
|
||||||
|
for (int size : new int[] {FloatingMenuSizePreferenceController.Size.UNKNOWN,
|
||||||
|
FloatingMenuSizePreferenceController.Size.LARGE,
|
||||||
|
FloatingMenuSizePreferenceController.Size.SMALL}) {
|
||||||
|
Settings.Secure.putInt(mContext.getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size);
|
||||||
|
|
||||||
|
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
|
||||||
|
mContext,
|
||||||
|
UserShortcutType.TRIPLETAP);
|
||||||
|
|
||||||
|
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
|
||||||
|
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size + 1)).isEqualTo(
|
||||||
|
size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void optOutAllValuesToSettings_optOutValue_emptyString() {
|
public void optOutAllValuesToSettings_optOutValue_emptyString() {
|
||||||
putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
|
putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
|
||||||
|
Reference in New Issue
Block a user