Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 11x 11x 11x 4x 4x 2x 2x 1x 1x 1x 1x 9x 9x 9x | import AsyncStorage from "@react-native-async-storage/async-storage";
import cacheService from "./cacheService";
const STORAGE_KEY = "accessibilitySettings.v1";
const CACHE_NAMESPACE = "accessibility_settings";
const CACHE_KEY = "prefs";
export interface CachedAccessibilityPrefs {
colorBlindMode: boolean;
wheelchairUser: boolean;
fontSize: "small" | "medium" | "large";
fontWeight: "light" | "regular" | "bold";
}
export async function getCachedAccessibilityPrefs(): Promise<CachedAccessibilityPrefs | null> {
const fromMemory = cacheService.getMemory<CachedAccessibilityPrefs>(
CACHE_NAMESPACE,
CACHE_KEY,
);
if (fromMemory) return fromMemory;
const raw = await AsyncStorage.getItem(STORAGE_KEY);
if (!raw) return null;
try {
const parsed = JSON.parse(raw) as CachedAccessibilityPrefs;
cacheService.setMemory(CACHE_NAMESPACE, CACHE_KEY, parsed);
return parsed;
} catch {
return null;
}
}
export async function setCachedAccessibilityPrefs(
prefs: CachedAccessibilityPrefs,
): Promise<void> {
cacheService.setMemory(CACHE_NAMESPACE, CACHE_KEY, prefs);
try {
await AsyncStorage.setItem(STORAGE_KEY, JSON.stringify(prefs));
} catch {}
}
|