Files
discord-decomp/modules/a11y/native/AccessibilitySystemFeatures.tsx
T
2026-11-01 12:12:55 +02:00

258 lines
10 KiB
TypeScript

// Metro module 13500 (f13501).
import { AccessibilityInfo, AppState, Appearance } from "react-native";
import AccessibilityStore from "../AccessibilityStore";
import { AccessibilityFeatureFlags } from "../AccessibilityConstants";
import { A11Y_FEATURE_MAP, accessibilityPreferencesSharedValue } from "./AccessibilityPreferencesSharedValue";
import updateSharedValueIfChanged_native from "../../reanimated/utils/updateSharedValueIfChanged.native";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
import { systemPrefersReducedMotionChanged, systemPrefersCrossfadesChanged } from "../AccessibilityActionCreators";
const NONE = AccessibilityFeatureFlags.NONE;
const r24 = {
init: function init() {
AccessibilityStore.addChangeListener(this.handleAccessibilityStoreChanged);
AccessibilityInfo.addEventListener("reduceMotionChanged", this.handleReduceMotionChanged);
AccessibilityInfo.isReduceMotionEnabled().then(this.handleReduceMotionChanged);
AccessibilityInfo.addEventListener("reduceTransparencyChanged", this.handleReduceTransparencyChanged);
AccessibilityInfo.isReduceTransparencyEnabled().then(this.handleReduceTransparencyChanged);
AccessibilityInfo.addEventListener("boldTextChanged", this.handleBoldTextChanged);
AccessibilityInfo.isBoldTextEnabled().then(this.handleBoldTextChanged);
AccessibilityInfo.addEventListener("grayscaleChanged", this.handleGrayscaleChanged);
AccessibilityInfo.isGrayscaleEnabled().then(this.handleGrayscaleChanged);
AccessibilityInfo.addEventListener("invertColorsChanged", this.handleInvertColorsChanged);
AccessibilityInfo.isInvertColorsEnabled().then(this.handleInvertColorsChanged);
this.handlePreferredColorSchemeChanged({
colorScheme: Appearance.getColorScheme()
});
Appearance.addChangeListener(this.handlePreferredColorSchemeChanged);
AppState.addEventListener("change", this.handleAppStateChange);
AnalyticsUtils.setSystemAccessibilityFeatures(this.getActiveFeatures);
},
getActiveFeatures: () => NONE,
handleReduceMotionChanged: (a0) => {
systemPrefersReducedMotionChanged(a0 ? "reduce" : "no-preference");
const REDUCED_MOTION = AccessibilityFeatureFlags.REDUCED_MOTION;
if (AccessibilityStore.useReducedMotion) {
NONE = NONE | REDUCED_MOTION;
} else {
NONE = NONE & ~REDUCED_MOTION;
}
const r22 = A11Y_FEATURE_MAP[REDUCED_MOTION];
if (r22 != null) {
const r29 = {};
r29[r22] = AccessibilityStore.useReducedMotion;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r29);
}
},
handleReduceTransparencyChanged: (a0) => {
const REDUCED_TRANSPARENCY = AccessibilityFeatureFlags.REDUCED_TRANSPARENCY;
if (a0) {
NONE = NONE | REDUCED_TRANSPARENCY;
} else {
NONE = NONE & ~REDUCED_TRANSPARENCY;
}
const r15 = A11Y_FEATURE_MAP[REDUCED_TRANSPARENCY];
if (r15 != null) {
const r22 = {};
r22[r15] = a0;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r22);
}
},
handleBoldTextChanged: (a0) => {
const BOLD_TEXT = AccessibilityFeatureFlags.BOLD_TEXT;
if (a0) {
NONE = NONE | BOLD_TEXT;
} else {
NONE = NONE & ~BOLD_TEXT;
}
const r15 = A11Y_FEATURE_MAP[BOLD_TEXT];
if (r15 != null) {
const r22 = {};
r22[r15] = a0;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r22);
}
},
handleGrayscaleChanged: (a0) => {
const GRAYSCALE = AccessibilityFeatureFlags.GRAYSCALE;
if (a0) {
NONE = NONE | GRAYSCALE;
} else {
NONE = NONE & ~GRAYSCALE;
}
const r15 = A11Y_FEATURE_MAP[GRAYSCALE];
if (r15 != null) {
const r22 = {};
r22[r15] = a0;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r22);
}
},
handleInvertColorsChanged: (a0) => {
const INVERT_COLORS = AccessibilityFeatureFlags.INVERT_COLORS;
if (a0) {
NONE = NONE | INVERT_COLORS;
} else {
NONE = NONE & ~INVERT_COLORS;
}
const r15 = A11Y_FEATURE_MAP[INVERT_COLORS];
if (r15 != null) {
const r22 = {};
r22[r15] = a0;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r22);
}
},
handlePreferredColorSchemeChanged: ({ colorScheme }) => {
if (colorScheme === "dark") {
const PREFERS_COLOR_SCHEME_LIGHT3 = AccessibilityFeatureFlags.PREFERS_COLOR_SCHEME_LIGHT;
NONE = NONE & ~PREFERS_COLOR_SCHEME_LIGHT3;
const r93 = A11Y_FEATURE_MAP[PREFERS_COLOR_SCHEME_LIGHT3];
if (r93 != null) {
const r101 = {};
r101[r93] = false;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r101);
}
const PREFERS_COLOR_SCHEME_DARK3 = AccessibilityFeatureFlags.PREFERS_COLOR_SCHEME_DARK;
NONE = NONE | PREFERS_COLOR_SCHEME_DARK3;
const r110 = A11Y_FEATURE_MAP[PREFERS_COLOR_SCHEME_DARK3];
if (r110 != null) {
const r117 = {};
r117[r110] = true;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r117);
}
} else if (colorScheme === "light") {
const PREFERS_COLOR_SCHEME_DARK2 = AccessibilityFeatureFlags.PREFERS_COLOR_SCHEME_DARK;
NONE = NONE & ~PREFERS_COLOR_SCHEME_DARK2;
const r55 = A11Y_FEATURE_MAP[PREFERS_COLOR_SCHEME_DARK2];
if (r55 != null) {
const r63 = {};
r63[r55] = false;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r63);
}
const PREFERS_COLOR_SCHEME_LIGHT2 = AccessibilityFeatureFlags.PREFERS_COLOR_SCHEME_LIGHT;
NONE = NONE | PREFERS_COLOR_SCHEME_LIGHT2;
const r72 = A11Y_FEATURE_MAP[PREFERS_COLOR_SCHEME_LIGHT2];
if (r72 != null) {
const r79 = {};
r79[r72] = true;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r79);
}
} else {
const PREFERS_COLOR_SCHEME_DARK = AccessibilityFeatureFlags.PREFERS_COLOR_SCHEME_DARK;
NONE = NONE & ~PREFERS_COLOR_SCHEME_DARK;
const r10 = A11Y_FEATURE_MAP[PREFERS_COLOR_SCHEME_DARK];
if (r10 != null) {
const r25 = {};
r25[r10] = false;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r25);
}
const PREFERS_COLOR_SCHEME_LIGHT = AccessibilityFeatureFlags.PREFERS_COLOR_SCHEME_LIGHT;
NONE = NONE & ~PREFERS_COLOR_SCHEME_LIGHT;
const r34 = A11Y_FEATURE_MAP[PREFERS_COLOR_SCHEME_LIGHT];
if (r34 != null) {
const r41 = {};
r41[r34] = false;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r41);
}
}
},
handleAccessibilityStoreChanged: () => {
const REDUCED_MOTION = AccessibilityFeatureFlags.REDUCED_MOTION;
if (AccessibilityStore.useReducedMotion) {
NONE = NONE | REDUCED_MOTION;
} else {
NONE = NONE & ~REDUCED_MOTION;
}
const r12 = A11Y_FEATURE_MAP[REDUCED_MOTION];
if (r12 != null) {
const r25 = {};
r25[r12] = AccessibilityStore.useReducedMotion;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r25);
}
const REDUCED_MOTION_FROM_USER_SETTINGS = AccessibilityFeatureFlags.REDUCED_MOTION_FROM_USER_SETTINGS;
const r2 = AccessibilityStore.rawPrefersReducedMotion !== "auto";
if (r2) {
NONE = NONE | REDUCED_MOTION_FROM_USER_SETTINGS;
} else {
NONE = NONE & ~REDUCED_MOTION_FROM_USER_SETTINGS;
}
const r37 = A11Y_FEATURE_MAP[REDUCED_MOTION_FROM_USER_SETTINGS];
if (r37 != null) {
const r44 = {};
r44[r37] = r2;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r44);
}
const SATURATION_LEVEL_DECREASED = AccessibilityFeatureFlags.SATURATION_LEVEL_DECREASED;
const r48 = AccessibilityStore.saturation < 1;
if (r48) {
NONE = NONE | SATURATION_LEVEL_DECREASED;
} else {
NONE = NONE & ~SATURATION_LEVEL_DECREASED;
}
const r56 = A11Y_FEATURE_MAP[SATURATION_LEVEL_DECREASED];
if (r56 != null) {
const r63 = {};
r63[r56] = r48;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r63);
}
const CONTRAST_LEVEL_DECREASED = AccessibilityFeatureFlags.CONTRAST_LEVEL_DECREASED;
const r67 = AccessibilityStore.contrast < 1;
if (r67) {
NONE = NONE | CONTRAST_LEVEL_DECREASED;
} else {
NONE = NONE & ~CONTRAST_LEVEL_DECREASED;
}
const r75 = A11Y_FEATURE_MAP[CONTRAST_LEVEL_DECREASED];
if (r75 != null) {
const r82 = {};
r82[r75] = r67;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r82);
}
const CONTRAST_LEVEL_INCREASED = AccessibilityFeatureFlags.CONTRAST_LEVEL_INCREASED;
const r86 = AccessibilityStore.contrast > 1;
if (r86) {
NONE = NONE | CONTRAST_LEVEL_INCREASED;
} else {
NONE = NONE & ~CONTRAST_LEVEL_INCREASED;
}
const r94 = A11Y_FEATURE_MAP[CONTRAST_LEVEL_INCREASED];
if (r94 != null) {
const r101 = {};
r101[r94] = r86;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r101);
}
},
handleAppStateChange: (a0) => {
if (a0 === "active") {
AccessibilityInfo.isReduceMotionEnabled().then((result) => {
systemPrefersReducedMotionChanged(result ? "reduce" : "no-preference");
const REDUCED_MOTION = AccessibilityFeatureFlags.REDUCED_MOTION;
if (AccessibilityStore.useReducedMotion) {
NONE = NONE | REDUCED_MOTION;
} else {
NONE = NONE & ~REDUCED_MOTION;
}
const r22 = A11Y_FEATURE_MAP[REDUCED_MOTION];
if (r22 != null) {
const r29 = {};
r29[r22] = AccessibilityStore.useReducedMotion;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r29);
}
});
AccessibilityInfo.prefersCrossFadeTransitions().then((result) => {
const REDUCED_MOTION_PREFERS_CROSSFADES = AccessibilityFeatureFlags.REDUCED_MOTION_PREFERS_CROSSFADES;
if (result) {
NONE = NONE | REDUCED_MOTION_PREFERS_CROSSFADES;
} else {
NONE = NONE & ~REDUCED_MOTION_PREFERS_CROSSFADES;
}
const r8 = A11Y_FEATURE_MAP[REDUCED_MOTION_PREFERS_CROSSFADES];
if (r8 != null) {
const r22 = {};
r22[r8] = result;
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, r22);
}
systemPrefersCrossfadesChanged(result);
});
}
}
};
export default r24;