83 lines
3.2 KiB
TypeScript
83 lines
3.2 KiB
TypeScript
// Metro module 13499 (f13500).
|
|
import { AccessibilityInfo, Appearance } from "react-native";
|
|
import AccessibilityStore from "../AccessibilityStore";
|
|
import { AnalyticEvents } from "../../../Constants";
|
|
import { SystemTheme } from "../../user_settings/ThemeConstants";
|
|
import AccessibilitySystemFeatures from "./AccessibilitySystemFeatures";
|
|
import Dispatcher from "../../../Dispatcher";
|
|
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
|
|
import { updateSaturation } from "../../themes/native/updateSaturation";
|
|
import updateSharedValueIfChanged_native from "../../reanimated/utils/updateSharedValueIfChanged.native";
|
|
import { accessibilityPreferencesSharedValue } from "./AccessibilityPreferencesSharedValue";
|
|
import { setSystemTheme } from "../../user_settings/ThemeActionCreators";
|
|
import { AccessibilityAnnouncer } from "../../../design/shared";
|
|
const r27 = {
|
|
init: function init() {
|
|
AccessibilitySystemFeatures.init();
|
|
this.updateNativeColors();
|
|
this.updateMotionSettings();
|
|
AccessibilityStore.addChangeListener(this.updateNativeColors);
|
|
AccessibilityStore.addChangeListener(this.updateMotionSettings);
|
|
Dispatcher.subscribe("CONNECTION_OPEN", this.updateMotionSettings);
|
|
Appearance.addChangeListener(this.updateSystemAppearance);
|
|
AccessibilityInfo.addEventListener("screenReaderChanged", (a0) => {
|
|
this.updateScreenReaderEnabled(a0);
|
|
});
|
|
Dispatcher.subscribe("ACCESSIBILITY_COLORBLIND_TOGGLE", () => {
|
|
AnalyticsUtils.track(AnalyticEvents.LOCAL_SETTINGS_UPDATED, {
|
|
colorblind_enabled: AccessibilityStore.colorblindMode
|
|
});
|
|
});
|
|
this.startAnnouncementQueue();
|
|
},
|
|
updateNativeColors: () => {
|
|
updateSaturation(AccessibilityStore.saturation);
|
|
},
|
|
updateMotionSettings: () => {
|
|
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, {
|
|
reduceMotion: AccessibilityStore.useReducedMotion,
|
|
prefersCrossfades: AccessibilityStore.systemPrefersCrossfades
|
|
});
|
|
},
|
|
checkScreenreaderEnabled: async function checkScreenreaderEnabled() {
|
|
const _this = this;
|
|
let c27478_1;
|
|
c27478_1 = void 0;
|
|
let c30632_0 = await AccessibilityInfo.isScreenReaderEnabled();
|
|
_this.updateScreenReaderEnabled(c30632_0);
|
|
},
|
|
updateScreenReaderEnabled: (a0) => {
|
|
updateSharedValueIfChanged_native(accessibilityPreferencesSharedValue, {
|
|
screenReaderEnabled: a0
|
|
});
|
|
},
|
|
updateSystemAppearance: (a0) => {
|
|
let NO_PREFERENCE = SystemTheme.NO_PREFERENCE;
|
|
const colorScheme = a0.colorScheme;
|
|
if (colorScheme === "light") {
|
|
NO_PREFERENCE = SystemTheme.LIGHT;
|
|
} else if (colorScheme === "dark") {
|
|
NO_PREFERENCE = SystemTheme.DARK;
|
|
}
|
|
setSystemTheme(NO_PREFERENCE);
|
|
},
|
|
startAnnouncementQueue: () => {
|
|
let c20500_0 = new Set();
|
|
AccessibilityInfo.addEventListener("announcementFinished", (a0) => {
|
|
if (!a0.success) {
|
|
if (!c20500_0.has(a0.announcement)) {
|
|
c20500_0.add(a0.announcement);
|
|
setTimeout(() => {
|
|
AccessibilityAnnouncer.announce(a0.announcement);
|
|
}, 150);
|
|
} else {
|
|
c20500_0.delete(a0.announcement);
|
|
}
|
|
} else {
|
|
c20500_0.delete(a0.announcement);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
export default r27;
|