Завершить инженерный кандидат Stage 5
This commit is contained in:
@@ -16,21 +16,29 @@ public final class AccessibilitySettings {
|
||||
|
||||
private final TextSize textSize;
|
||||
private final boolean highContrastEnabled;
|
||||
private final boolean reducedMotionEnabled;
|
||||
|
||||
private AccessibilitySettings(TextSize textSize, boolean highContrastEnabled) {
|
||||
private AccessibilitySettings(TextSize textSize, boolean highContrastEnabled,
|
||||
boolean reducedMotionEnabled) {
|
||||
this.textSize = textSize;
|
||||
this.highContrastEnabled = highContrastEnabled;
|
||||
this.reducedMotionEnabled = reducedMotionEnabled;
|
||||
}
|
||||
|
||||
public static AccessibilitySettings defaults() {
|
||||
return new AccessibilitySettings(TextSize.STANDARD, false);
|
||||
return new AccessibilitySettings(TextSize.STANDARD, false, false);
|
||||
}
|
||||
|
||||
static AccessibilitySettings restore(int textSizeIndex, boolean highContrastEnabled) {
|
||||
return restore(textSizeIndex, highContrastEnabled, false);
|
||||
}
|
||||
|
||||
static AccessibilitySettings restore(int textSizeIndex, boolean highContrastEnabled,
|
||||
boolean reducedMotionEnabled) {
|
||||
TextSize[] values = TextSize.values();
|
||||
TextSize restored = textSizeIndex >= 0 && textSizeIndex < values.length
|
||||
? values[textSizeIndex] : TextSize.STANDARD;
|
||||
return new AccessibilitySettings(restored, highContrastEnabled);
|
||||
return new AccessibilitySettings(restored, highContrastEnabled, reducedMotionEnabled);
|
||||
}
|
||||
|
||||
public String textSizeLabel() {
|
||||
@@ -48,7 +56,7 @@ public final class AccessibilitySettings {
|
||||
public AccessibilitySettings nextTextSize() {
|
||||
TextSize[] values = TextSize.values();
|
||||
return new AccessibilitySettings(values[(textSize.ordinal() + 1) % values.length],
|
||||
highContrastEnabled);
|
||||
highContrastEnabled, reducedMotionEnabled);
|
||||
}
|
||||
|
||||
public boolean highContrastEnabled() {
|
||||
@@ -60,7 +68,15 @@ public final class AccessibilitySettings {
|
||||
}
|
||||
|
||||
public AccessibilitySettings toggleHighContrast() {
|
||||
return new AccessibilitySettings(textSize, !highContrastEnabled);
|
||||
return new AccessibilitySettings(textSize, !highContrastEnabled, reducedMotionEnabled);
|
||||
}
|
||||
|
||||
public boolean reducedMotionEnabled() { return reducedMotionEnabled; }
|
||||
|
||||
public String reducedMotionLabel() { return reducedMotionEnabled ? "On" : "Off"; }
|
||||
|
||||
public AccessibilitySettings toggleReducedMotion() {
|
||||
return new AccessibilitySettings(textSize, highContrastEnabled, !reducedMotionEnabled);
|
||||
}
|
||||
|
||||
int textSizeIndex() {
|
||||
|
||||
Reference in New Issue
Block a user