@amazon-devices/kepler-a11y-settings-interface-turbo 1.0.0-rn-83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +230 -0
  3. package/dist/kepler/aarch64-debug/lib/libKeplerA11ySettingsInterfaceTurbo.so +0 -0
  4. package/dist/kepler/aarch64-debug/lib/libKeplerA11ySettingsInterfaceTurbo.so.debug +0 -0
  5. package/dist/kepler/aarch64-release/lib/libKeplerA11ySettingsInterfaceTurbo.so +0 -0
  6. package/dist/kepler/aarch64-release/lib/libKeplerA11ySettingsInterfaceTurbo.so.debug +0 -0
  7. package/dist/kepler/armv7-debug/lib/libKeplerA11ySettingsInterfaceTurbo.so +0 -0
  8. package/dist/kepler/armv7-debug/lib/libKeplerA11ySettingsInterfaceTurbo.so.debug +0 -0
  9. package/dist/kepler/armv7-release/lib/libKeplerA11ySettingsInterfaceTurbo.so +0 -0
  10. package/dist/kepler/armv7-release/lib/libKeplerA11ySettingsInterfaceTurbo.so.debug +0 -0
  11. package/dist/kepler/tm-manifest.json +1 -0
  12. package/dist/kepler/x86_64-debug/lib/libKeplerA11ySettingsInterfaceTurbo.so +0 -0
  13. package/dist/kepler/x86_64-debug/lib/libKeplerA11ySettingsInterfaceTurbo.so.debug +0 -0
  14. package/dist/kepler/x86_64-release/lib/libKeplerA11ySettingsInterfaceTurbo.so +0 -0
  15. package/dist/kepler/x86_64-release/lib/libKeplerA11ySettingsInterfaceTurbo.so.debug +0 -0
  16. package/dist/src/KeplerA11ySettingsInterface.d.ts +309 -0
  17. package/dist/src/KeplerA11ySettingsInterface.js +836 -0
  18. package/dist/src/UiScaleSettingContextProvider.d.ts +53 -0
  19. package/dist/src/UiScaleSettingContextProvider.js +164 -0
  20. package/dist/src/index.d.ts +12 -0
  21. package/dist/src/index.js +31 -0
  22. package/dist/src/turbo-modules/KeplerA11ySettingsInterfaceTurbo.d.ts +214 -0
  23. package/dist/src/turbo-modules/KeplerA11ySettingsInterfaceTurbo.js +33 -0
  24. package/dist/src/turbo-modules/__mocks__/KeplerA11ySettingsInterfaceTurbo.d.ts +7 -0
  25. package/dist/src/turbo-modules/__mocks__/KeplerA11ySettingsInterfaceTurbo.js +8 -0
  26. package/dist/src/utils/constants.d.ts +18 -0
  27. package/dist/src/utils/constants.js +21 -0
  28. package/dist/src/utils/dipUtils.d.ts +30 -0
  29. package/dist/src/utils/dipUtils.js +63 -0
  30. package/dist/test/KeplerA11ySettingsInterfaceTurbo.spec.d.ts +1 -0
  31. package/dist/test/KeplerA11ySettingsInterfaceTurbo.spec.js +7 -0
  32. package/package.json +61 -0
  33. package/react-native.config.js +19 -0
@@ -0,0 +1,836 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2025 - 2026 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * PROPRIETARY/CONFIDENTIAL
6
+ *
7
+ * Use is subject to license terms.
8
+ *
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ const react_native_1 = require("react-native");
15
+ const KeplerA11ySettingsInterfaceTurbo_1 = __importDefault(require("./turbo-modules/KeplerA11ySettingsInterfaceTurbo"));
16
+ const dipUtils_1 = require("./utils/dipUtils");
17
+ const constants_1 = require("./utils/constants");
18
+ class KeplerA11ySettingsInterface {
19
+ __eventEmitter;
20
+ __uiScaleSettingListener = null;
21
+ __screenReaderStateListener = null;
22
+ __screenMagnifierStateListener = null;
23
+ __textBannerStateListener = null;
24
+ __colorInversionStateListener = null;
25
+ __colorCorrectionModeListener = null;
26
+ __highContrastTextStateListener = null;
27
+ __audioDescriptionStateListener = null;
28
+ __timeToTakeActionListener = null;
29
+ __closedCaptioningStateListener = null;
30
+ __captioningPreferencesListener = null;
31
+ constructor() {
32
+ this.__eventEmitter = new react_native_1.NativeEventEmitter();
33
+ }
34
+ /**
35
+ * Adds a listener for UI scale setting changes.
36
+ * If a listener is already registered, it will be removed and replaced with the new one.
37
+ * @param handler Callback function invoked on the main thread when UI scale setting changes
38
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
39
+ */
40
+ async addUiScaleSettingListener(handler) {
41
+ if (this.__uiScaleSettingListener) {
42
+ this.__uiScaleSettingListener.remove();
43
+ }
44
+ try {
45
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addUiScaleSettingListener();
46
+ if (!success) {
47
+ console.warn('Failed to add UI scale setting listener');
48
+ return false;
49
+ }
50
+ this.__uiScaleSettingListener = this.__eventEmitter.addListener(constants_1.UI_SCALE_SETTING_CHANGED_EVENT, (args) => {
51
+ handler(args.intValue);
52
+ });
53
+ return true;
54
+ }
55
+ catch (error) {
56
+ console.error('[KeplerA11ySettingsInterface] addUiScaleSettingListener error:', error);
57
+ return false;
58
+ }
59
+ }
60
+ /**
61
+ * Removes the UI scale setting listener.
62
+ * @returns Promise that resolves when the listener has been removed.
63
+ */
64
+ async removeUiScaleSettingListener() {
65
+ if (this.__uiScaleSettingListener) {
66
+ this.__uiScaleSettingListener.remove();
67
+ this.__uiScaleSettingListener = null;
68
+ }
69
+ try {
70
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeUiScaleSettingListener();
71
+ }
72
+ catch (error) {
73
+ console.error('[KeplerA11ySettingsInterface] removeUiScaleSettingListener error:', error);
74
+ }
75
+ }
76
+ /**
77
+ * Adds a listener for screen reader state changes.
78
+ * If a listener is already registered, it will be removed and replaced with the new one.
79
+ * @param handler Callback function invoked on the main thread when screen reader state changes
80
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
81
+ */
82
+ async addScreenReaderStateListener(handler) {
83
+ if (this.__screenReaderStateListener) {
84
+ this.__screenReaderStateListener.remove();
85
+ }
86
+ try {
87
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addScreenReaderStateListener();
88
+ if (!success) {
89
+ console.warn('Failed to add screen reader state listener');
90
+ return false;
91
+ }
92
+ this.__screenReaderStateListener = this.__eventEmitter.addListener(constants_1.SCREEN_READER_STATE_CHANGED_EVENT, (args) => {
93
+ handler(args.enabled);
94
+ });
95
+ return true;
96
+ }
97
+ catch (error) {
98
+ console.error('[KeplerA11ySettingsInterface] addScreenReaderStateListener error:', error);
99
+ return false;
100
+ }
101
+ }
102
+ /**
103
+ * Removes the screen reader state listener.
104
+ * @returns Promise that resolves when the listener has been removed.
105
+ */
106
+ async removeScreenReaderStateListener() {
107
+ if (this.__screenReaderStateListener) {
108
+ this.__screenReaderStateListener.remove();
109
+ this.__screenReaderStateListener = null;
110
+ }
111
+ try {
112
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeScreenReaderStateListener();
113
+ }
114
+ catch (error) {
115
+ console.error('[KeplerA11ySettingsInterface] removeScreenReaderStateListener error:', error);
116
+ }
117
+ }
118
+ /**
119
+ * Adds a listener for screen magnifier state changes.
120
+ * If a listener is already registered, it will be removed and replaced with the new one.
121
+ * @param handler Callback function invoked on the main thread when screen magnifier state changes
122
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
123
+ */
124
+ async addScreenMagnifierStateListener(handler) {
125
+ if (this.__screenMagnifierStateListener) {
126
+ this.__screenMagnifierStateListener.remove();
127
+ }
128
+ try {
129
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addScreenMagnifierStateListener();
130
+ if (!success) {
131
+ console.warn('Failed to add screen magnifier state listener');
132
+ return false;
133
+ }
134
+ this.__screenMagnifierStateListener = this.__eventEmitter.addListener(constants_1.SCREEN_MAGNIFIER_STATE_CHANGED_EVENT, (args) => {
135
+ handler(args.enabled);
136
+ });
137
+ return true;
138
+ }
139
+ catch (error) {
140
+ console.error('[KeplerA11ySettingsInterface] addScreenMagnifierStateListener error:', error);
141
+ return false;
142
+ }
143
+ }
144
+ /**
145
+ * Removes the screen magnifier state listener.
146
+ * @returns Promise that resolves when the listener has been removed.
147
+ */
148
+ async removeScreenMagnifierStateListener() {
149
+ if (this.__screenMagnifierStateListener) {
150
+ this.__screenMagnifierStateListener.remove();
151
+ this.__screenMagnifierStateListener = null;
152
+ }
153
+ try {
154
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeScreenMagnifierStateListener();
155
+ }
156
+ catch (error) {
157
+ console.error('[KeplerA11ySettingsInterface] removeScreenMagnifierStateListener error:', error);
158
+ }
159
+ }
160
+ /**
161
+ * Adds a listener for text banner state changes.
162
+ * If a listener is already registered, it will be removed and replaced with the new one.
163
+ * @param handler Callback function invoked on the main thread when text banner state changes
164
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
165
+ */
166
+ async addTextBannerStateListener(handler) {
167
+ if (this.__textBannerStateListener) {
168
+ this.__textBannerStateListener.remove();
169
+ }
170
+ try {
171
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addTextBannerStateListener();
172
+ if (!success) {
173
+ console.warn('Failed to add text banner state listener');
174
+ return false;
175
+ }
176
+ this.__textBannerStateListener = this.__eventEmitter.addListener(constants_1.TEXT_BANNER_STATE_CHANGED_EVENT, (args) => {
177
+ handler(args.enabled);
178
+ });
179
+ return true;
180
+ }
181
+ catch (error) {
182
+ console.error('[KeplerA11ySettingsInterface] addTextBannerStateListener error:', error);
183
+ return false;
184
+ }
185
+ }
186
+ /**
187
+ * Removes the text banner state listener.
188
+ * @returns Promise that resolves when the listener has been removed.
189
+ */
190
+ async removeTextBannerStateListener() {
191
+ if (this.__textBannerStateListener) {
192
+ this.__textBannerStateListener.remove();
193
+ this.__textBannerStateListener = null;
194
+ }
195
+ try {
196
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeTextBannerStateListener();
197
+ }
198
+ catch (error) {
199
+ console.error('[KeplerA11ySettingsInterface] removeTextBannerStateListener error:', error);
200
+ }
201
+ }
202
+ /**
203
+ * Adds a listener for color inversion state changes.
204
+ * If a listener is already registered, it will be removed and replaced with the new one.
205
+ * @param handler Callback function invoked on the main thread when color inversion state changes
206
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
207
+ */
208
+ async addColorInversionStateListener(handler) {
209
+ if (this.__colorInversionStateListener) {
210
+ this.__colorInversionStateListener.remove();
211
+ }
212
+ try {
213
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addColorInversionStateListener();
214
+ if (!success) {
215
+ console.warn('Failed to add color inversion state listener');
216
+ return false;
217
+ }
218
+ this.__colorInversionStateListener = this.__eventEmitter.addListener(constants_1.COLOR_INVERSION_STATE_CHANGED_EVENT, (args) => {
219
+ handler(args.enabled);
220
+ });
221
+ return true;
222
+ }
223
+ catch (error) {
224
+ console.error('[KeplerA11ySettingsInterface] addColorInversionStateListener error:', error);
225
+ return false;
226
+ }
227
+ }
228
+ /**
229
+ * Removes the color inversion state listener.
230
+ * @returns Promise that resolves when the listener has been removed.
231
+ */
232
+ async removeColorInversionStateListener() {
233
+ if (this.__colorInversionStateListener) {
234
+ this.__colorInversionStateListener.remove();
235
+ this.__colorInversionStateListener = null;
236
+ }
237
+ try {
238
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeColorInversionStateListener();
239
+ }
240
+ catch (error) {
241
+ console.error('[KeplerA11ySettingsInterface] removeColorInversionStateListener error:', error);
242
+ }
243
+ }
244
+ /**
245
+ * Adds a listener for color correction mode changes.
246
+ * If a listener is already registered, it will be removed and replaced with the new one.
247
+ * @param handler Callback function invoked on the main thread when color correction mode changes
248
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
249
+ */
250
+ async addColorCorrectionModeListener(handler) {
251
+ if (this.__colorCorrectionModeListener) {
252
+ this.__colorCorrectionModeListener.remove();
253
+ }
254
+ try {
255
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addColorCorrectionModeListener();
256
+ if (!success) {
257
+ console.warn('Failed to add color correction mode listener');
258
+ return false;
259
+ }
260
+ this.__colorCorrectionModeListener = this.__eventEmitter.addListener(constants_1.COLOR_CORRECTION_MODE_CHANGED_EVENT, (args) => {
261
+ handler(args.mode);
262
+ });
263
+ return true;
264
+ }
265
+ catch (error) {
266
+ console.error('[KeplerA11ySettingsInterface] addColorCorrectionModeListener error:', error);
267
+ return false;
268
+ }
269
+ }
270
+ /**
271
+ * Removes the color correction mode listener.
272
+ * @returns Promise that resolves when the listener has been removed.
273
+ */
274
+ async removeColorCorrectionModeListener() {
275
+ if (this.__colorCorrectionModeListener) {
276
+ this.__colorCorrectionModeListener.remove();
277
+ this.__colorCorrectionModeListener = null;
278
+ }
279
+ try {
280
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeColorCorrectionModeListener();
281
+ }
282
+ catch (error) {
283
+ console.error('[KeplerA11ySettingsInterface] removeColorCorrectionModeListener error:', error);
284
+ }
285
+ }
286
+ /**
287
+ * Adds a listener for high contrast text state changes.
288
+ * If a listener is already registered, it will be removed and replaced with the new one.
289
+ * @param handler Callback function invoked on the main thread when high contrast text state changes
290
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
291
+ */
292
+ async addHighContrastTextStateListener(handler) {
293
+ if (this.__highContrastTextStateListener) {
294
+ this.__highContrastTextStateListener.remove();
295
+ }
296
+ try {
297
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addHighContrastTextStateListener();
298
+ if (!success) {
299
+ console.warn('Failed to add high contrast text state listener');
300
+ return false;
301
+ }
302
+ this.__highContrastTextStateListener = this.__eventEmitter.addListener(constants_1.HIGH_CONTRAST_TEXT_STATE_CHANGED_EVENT, (args) => {
303
+ handler(args.enabled);
304
+ });
305
+ return true;
306
+ }
307
+ catch (error) {
308
+ console.error('[KeplerA11ySettingsInterface] addHighContrastTextStateListener error:', error);
309
+ return false;
310
+ }
311
+ }
312
+ /**
313
+ * Removes the high contrast text state listener.
314
+ * @returns Promise that resolves when the listener has been removed.
315
+ */
316
+ async removeHighContrastTextStateListener() {
317
+ if (this.__highContrastTextStateListener) {
318
+ this.__highContrastTextStateListener.remove();
319
+ this.__highContrastTextStateListener = null;
320
+ }
321
+ try {
322
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeHighContrastTextStateListener();
323
+ }
324
+ catch (error) {
325
+ console.error('[KeplerA11ySettingsInterface] removeHighContrastTextStateListener error:', error);
326
+ }
327
+ }
328
+ /**
329
+ * Adds a listener for audio description state changes.
330
+ * If a listener is already registered, it will be removed and replaced with the new one.
331
+ * @param handler Callback function invoked on the main thread when audio description state changes
332
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
333
+ */
334
+ async addAudioDescriptionStateListener(handler) {
335
+ if (this.__audioDescriptionStateListener) {
336
+ this.__audioDescriptionStateListener.remove();
337
+ }
338
+ try {
339
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addAudioDescriptionStateListener();
340
+ if (!success) {
341
+ console.warn('Failed to add audio description state listener');
342
+ return false;
343
+ }
344
+ this.__audioDescriptionStateListener = this.__eventEmitter.addListener(constants_1.AUDIO_DESCRIPTION_STATE_CHANGED_EVENT, (args) => {
345
+ handler(args.enabled);
346
+ });
347
+ return true;
348
+ }
349
+ catch (error) {
350
+ console.error('[KeplerA11ySettingsInterface] addAudioDescriptionStateListener error:', error);
351
+ return false;
352
+ }
353
+ }
354
+ /**
355
+ * Removes the audio description state listener.
356
+ * @returns Promise that resolves when the listener has been removed.
357
+ */
358
+ async removeAudioDescriptionStateListener() {
359
+ if (this.__audioDescriptionStateListener) {
360
+ this.__audioDescriptionStateListener.remove();
361
+ this.__audioDescriptionStateListener = null;
362
+ }
363
+ try {
364
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeAudioDescriptionStateListener();
365
+ }
366
+ catch (error) {
367
+ console.error('[KeplerA11ySettingsInterface] removeAudioDescriptionStateListener error:', error);
368
+ }
369
+ }
370
+ /**
371
+ * Adds a listener for time to take action changes.
372
+ * If a listener is already registered, it will be removed and replaced with the new one.
373
+ * @param handler Callback function invoked on the main thread when time to take action changes
374
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
375
+ */
376
+ async addTimeToTakeActionListener(handler) {
377
+ if (this.__timeToTakeActionListener) {
378
+ this.__timeToTakeActionListener.remove();
379
+ }
380
+ try {
381
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addTimeToTakeActionListener();
382
+ if (!success) {
383
+ console.warn('Failed to add time to take action listener');
384
+ return false;
385
+ }
386
+ this.__timeToTakeActionListener = this.__eventEmitter.addListener(constants_1.TIME_TO_TAKE_ACTION_CHANGED_EVENT, (args) => {
387
+ handler(args.value);
388
+ });
389
+ return true;
390
+ }
391
+ catch (error) {
392
+ console.error('[KeplerA11ySettingsInterface] addTimeToTakeActionListener error:', error);
393
+ return false;
394
+ }
395
+ }
396
+ /**
397
+ * Removes the time to take action listener.
398
+ * @returns Promise that resolves when the listener has been removed.
399
+ */
400
+ async removeTimeToTakeActionListener() {
401
+ if (this.__timeToTakeActionListener) {
402
+ this.__timeToTakeActionListener.remove();
403
+ this.__timeToTakeActionListener = null;
404
+ }
405
+ try {
406
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeTimeToTakeActionListener();
407
+ }
408
+ catch (error) {
409
+ console.error('[KeplerA11ySettingsInterface] removeTimeToTakeActionListener error:', error);
410
+ }
411
+ }
412
+ /**
413
+ * Adds a listener for closed captioning state changes.
414
+ * If a listener is already registered, it will be removed and replaced with the new one.
415
+ * @param handler Callback function invoked on the main thread when closed captioning state changes
416
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
417
+ */
418
+ async addClosedCaptioningStateListener(handler) {
419
+ if (this.__closedCaptioningStateListener) {
420
+ this.__closedCaptioningStateListener.remove();
421
+ }
422
+ try {
423
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addClosedCaptioningStateListener();
424
+ if (!success) {
425
+ console.warn('Failed to add closed captioning state listener');
426
+ return false;
427
+ }
428
+ this.__closedCaptioningStateListener = this.__eventEmitter.addListener(constants_1.CLOSED_CAPTIONING_STATE_CHANGED_EVENT, (args) => {
429
+ handler(args.enabled);
430
+ });
431
+ return true;
432
+ }
433
+ catch (error) {
434
+ console.error('[KeplerA11ySettingsInterface] addClosedCaptioningStateListener error:', error);
435
+ return false;
436
+ }
437
+ }
438
+ /**
439
+ * Removes the closed captioning state listener.
440
+ * @returns Promise that resolves when the listener has been removed.
441
+ */
442
+ async removeClosedCaptioningStateListener() {
443
+ if (this.__closedCaptioningStateListener) {
444
+ this.__closedCaptioningStateListener.remove();
445
+ this.__closedCaptioningStateListener = null;
446
+ }
447
+ try {
448
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeClosedCaptioningStateListener();
449
+ }
450
+ catch (error) {
451
+ console.error('[KeplerA11ySettingsInterface] removeClosedCaptioningStateListener error:', error);
452
+ }
453
+ }
454
+ /**
455
+ * Adds a listener for captioning preferences changes.
456
+ * If a listener is already registered, it will be removed and replaced with the new one.
457
+ * @param handler Callback function invoked on the main thread when captioning preferences change
458
+ * @returns Promise that resolves to boolean representing if listener registered successfully.
459
+ */
460
+ async addCaptioningPreferencesListener(handler) {
461
+ if (this.__captioningPreferencesListener) {
462
+ this.__captioningPreferencesListener.remove();
463
+ }
464
+ try {
465
+ const success = await KeplerA11ySettingsInterfaceTurbo_1.default.addCaptioningPreferencesListener();
466
+ if (!success) {
467
+ console.warn('Failed to add captioning preferences listener');
468
+ return false;
469
+ }
470
+ this.__captioningPreferencesListener = this.__eventEmitter.addListener(constants_1.CAPTIONING_PREFERENCES_CHANGED_EVENT, (args) => {
471
+ handler(args);
472
+ });
473
+ return true;
474
+ }
475
+ catch (error) {
476
+ console.error('[KeplerA11ySettingsInterface] addCaptioningPreferencesListener error:', error);
477
+ return false;
478
+ }
479
+ }
480
+ /**
481
+ * Removes the captioning preferences listener.
482
+ * @returns Promise that resolves when the listener has been removed.
483
+ */
484
+ async removeCaptioningPreferencesListener() {
485
+ if (this.__captioningPreferencesListener) {
486
+ this.__captioningPreferencesListener.remove();
487
+ this.__captioningPreferencesListener = null;
488
+ }
489
+ try {
490
+ await KeplerA11ySettingsInterfaceTurbo_1.default.removeCaptioningPreferencesListener();
491
+ }
492
+ catch (error) {
493
+ console.error('[KeplerA11ySettingsInterface] removeCaptioningPreferencesListener error:', error);
494
+ }
495
+ }
496
+ /**
497
+ * Gets the scaling multiplier for the given original size and scaling properties.
498
+ *
499
+ * This method should be used to retrieve a scale factor, which can be applied to related
500
+ * values that do not have the same scaling properties, like the height and width of an image.
501
+ *
502
+ * Note: Prefer using the useScalingMultiplier hook from UiScaleSettingContextProvider.
503
+ *
504
+ * @param originalSize The original size to scale (in DIP if PLATFORM_DENSITY_INDEPENDENT_PIXEL
505
+ * is enabled, or in physical pixels otherwise)
506
+ * @param scalingProps Properties that define how scaling should be applied
507
+ * @returns Promise that resolves to the scaling multiplier
508
+ */
509
+ async getScalingMultiplier(originalSize, scalingProps) {
510
+ try {
511
+ const dipFactor = (0, dipUtils_1.getDipConversionFactor)();
512
+ const result = await KeplerA11ySettingsInterfaceTurbo_1.default.getScalingMultiplier(originalSize / dipFactor, (0, dipUtils_1.convertScalingPropsToDip)(scalingProps, dipFactor));
513
+ return result;
514
+ }
515
+ catch (error) {
516
+ console.error('[KeplerA11ySettingsInterface] getScalingMultiplier error:', error);
517
+ return 1.0;
518
+ }
519
+ }
520
+ /**
521
+ * Gets the scaled size for the given original size and scaling properties.
522
+ *
523
+ * Note: Prefer using the useScaledSize hook from UiScaleSettingContextProvider.
524
+ *
525
+ * @param originalSize The original size to scale (in DIP if PLATFORM_DENSITY_INDEPENDENT_PIXEL
526
+ * is enabled, or in physical pixels otherwise)
527
+ * @param scalingProps Properties that define how scaling should be applied
528
+ * @returns Promise that resolves to the scaled size
529
+ */
530
+ async getScaledSize(originalSize, scalingProps) {
531
+ try {
532
+ const dipFactor = (0, dipUtils_1.getDipConversionFactor)();
533
+ let result = await KeplerA11ySettingsInterfaceTurbo_1.default.getScaledSize(originalSize / dipFactor, (0, dipUtils_1.convertScalingPropsToDip)(scalingProps, dipFactor)) * dipFactor;
534
+ if (scalingProps.maxSize != null)
535
+ result = Math.min(result, scalingProps.maxSize);
536
+ if (scalingProps.minSize != null)
537
+ result = Math.max(result, scalingProps.minSize);
538
+ return result;
539
+ }
540
+ catch (error) {
541
+ console.error('[KeplerA11ySettingsInterface] getScaledSize error:', error);
542
+ return originalSize;
543
+ }
544
+ }
545
+ /**
546
+ * Gets the current UI scale setting.
547
+ *
548
+ * Note: Prefer using the useUiScaleSetting hook from UiScaleSettingContextProvider.
549
+ *
550
+ * @returns Promise that resolves to the current UI scale setting
551
+ */
552
+ async getUiScaleSetting() {
553
+ try {
554
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.getUiScaleSetting();
555
+ }
556
+ catch (error) {
557
+ console.error('[KeplerA11ySettingsInterface] getUiScaleSetting error:', error);
558
+ return 1;
559
+ }
560
+ }
561
+ /**
562
+ * Checks if screen reader is enabled.
563
+ * @returns Promise that resolves to true if screen reader is enabled, false otherwise
564
+ */
565
+ async isScreenReaderEnabled() {
566
+ try {
567
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.isScreenReaderEnabled();
568
+ }
569
+ catch (error) {
570
+ console.error('[KeplerA11ySettingsInterface] isScreenReaderEnabled error:', error);
571
+ return false;
572
+ }
573
+ }
574
+ /**
575
+ * Checks if screen magnifier is enabled.
576
+ * @returns Promise that resolves to true if screen magnifier is enabled, false otherwise
577
+ */
578
+ async isScreenMagnifierEnabled() {
579
+ try {
580
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.isScreenMagnifierEnabled();
581
+ }
582
+ catch (error) {
583
+ console.error('[KeplerA11ySettingsInterface] isScreenMagnifierEnabled error:', error);
584
+ return false;
585
+ }
586
+ }
587
+ /**
588
+ * Checks if text banner is enabled.
589
+ * @returns Promise that resolves to true if text banner is enabled, false otherwise
590
+ */
591
+ async isTextBannerEnabled() {
592
+ try {
593
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.isTextBannerEnabled();
594
+ }
595
+ catch (error) {
596
+ console.error('[KeplerA11ySettingsInterface] isTextBannerEnabled error:', error);
597
+ return false;
598
+ }
599
+ }
600
+ /**
601
+ * Checks if color inversion is enabled.
602
+ * @returns Promise that resolves to true if color inversion is enabled, false otherwise
603
+ */
604
+ async isColorInversionEnabled() {
605
+ try {
606
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.isColorInversionEnabled();
607
+ }
608
+ catch (error) {
609
+ console.error('[KeplerA11ySettingsInterface] isColorInversionEnabled error:', error);
610
+ return false;
611
+ }
612
+ }
613
+ /**
614
+ * Gets the current color correction mode.
615
+ * @returns Promise that resolves to the current color correction mode
616
+ */
617
+ async getColorCorrectionMode() {
618
+ try {
619
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.getColorCorrectionMode();
620
+ }
621
+ catch (error) {
622
+ console.error('[KeplerA11ySettingsInterface] getColorCorrectionMode error:', error);
623
+ return 'off';
624
+ }
625
+ }
626
+ /**
627
+ * Checks if high contrast text is enabled.
628
+ * @returns Promise that resolves to true if high contrast text is enabled, false otherwise
629
+ */
630
+ async isHighContrastTextEnabled() {
631
+ try {
632
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.isHighContrastTextEnabled();
633
+ }
634
+ catch (error) {
635
+ console.error('[KeplerA11ySettingsInterface] isHighContrastTextEnabled error:', error);
636
+ return false;
637
+ }
638
+ }
639
+ /**
640
+ * Checks if audio description is preferred.
641
+ * @returns Promise that resolves to true if audio description is preferred, false otherwise
642
+ */
643
+ async isAudioDescriptionPreferred() {
644
+ try {
645
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.isAudioDescriptionPreferred();
646
+ }
647
+ catch (error) {
648
+ console.error('[KeplerA11ySettingsInterface] isAudioDescriptionPreferred error:', error);
649
+ return false;
650
+ }
651
+ }
652
+ /**
653
+ * Gets the current time to take action setting.
654
+ * @returns Promise that resolves to the current timeout multiplier
655
+ */
656
+ async getTimeToTakeAction() {
657
+ try {
658
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.getTimeToTakeAction();
659
+ }
660
+ catch (error) {
661
+ console.error('[KeplerA11ySettingsInterface] getTimeToTakeAction error:', error);
662
+ return 'default';
663
+ }
664
+ }
665
+ /**
666
+ * Checks if closed captioning is enabled.
667
+ * @returns Promise that resolves to true if closed captioning is enabled, false otherwise
668
+ */
669
+ async isClosedCaptioningEnabled() {
670
+ try {
671
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.isClosedCaptioningEnabled();
672
+ }
673
+ catch (error) {
674
+ console.error('[KeplerA11ySettingsInterface] isClosedCaptioningEnabled error:', error);
675
+ return false;
676
+ }
677
+ }
678
+ /**
679
+ * Gets all captioning preferences.
680
+ * @returns Promise that resolves to object containing all captioning preference settings
681
+ */
682
+ async getCaptionPreferences() {
683
+ try {
684
+ return await KeplerA11ySettingsInterfaceTurbo_1.default.getCaptionPreferences();
685
+ }
686
+ catch (error) {
687
+ console.error('[KeplerA11ySettingsInterface] getCaptionPreferences error:', error);
688
+ return {};
689
+ }
690
+ }
691
+ /**
692
+ * Sets the screen reader enabled state.
693
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
694
+ * @param enabled true to enable screen reader, false to disable
695
+ */
696
+ async setScreenReaderEnabled(enabled) {
697
+ try {
698
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setScreenReaderEnabled(enabled);
699
+ }
700
+ catch (error) {
701
+ console.error('[KeplerA11ySettingsInterface] setScreenReaderEnabled error:', error);
702
+ }
703
+ }
704
+ /**
705
+ * Sets the screen magnifier enabled state.
706
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
707
+ * @param enabled true to enable screen magnifier, false to disable
708
+ */
709
+ async setScreenMagnifierEnabled(enabled) {
710
+ try {
711
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setScreenMagnifierEnabled(enabled);
712
+ }
713
+ catch (error) {
714
+ console.error('[KeplerA11ySettingsInterface] setScreenMagnifierEnabled error:', error);
715
+ }
716
+ }
717
+ /**
718
+ * Sets the text banner enabled state.
719
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
720
+ * @param enabled true to enable text banner, false to disable
721
+ */
722
+ async setTextBannerEnabled(enabled) {
723
+ try {
724
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setTextBannerEnabled(enabled);
725
+ }
726
+ catch (error) {
727
+ console.error('[KeplerA11ySettingsInterface] setTextBannerEnabled error:', error);
728
+ }
729
+ }
730
+ /**
731
+ * Sets the color inversion enabled state.
732
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
733
+ * @param enabled true to enable color inversion, false to disable
734
+ */
735
+ async setColorInversionEnabled(enabled) {
736
+ try {
737
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setColorInversionEnabled(enabled);
738
+ }
739
+ catch (error) {
740
+ console.error('[KeplerA11ySettingsInterface] setColorInversionEnabled error:', error);
741
+ }
742
+ }
743
+ /**
744
+ * Sets the color correction mode.
745
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
746
+ * @param mode The color correction mode to set
747
+ */
748
+ async setColorCorrectionMode(mode) {
749
+ try {
750
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setColorCorrectionMode(mode);
751
+ }
752
+ catch (error) {
753
+ console.error('[KeplerA11ySettingsInterface] setColorCorrectionMode error:', error);
754
+ }
755
+ }
756
+ /**
757
+ * Sets the high contrast text enabled state.
758
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
759
+ * @param enabled true to enable high contrast text, false to disable
760
+ */
761
+ async setHighContrastTextEnabled(enabled) {
762
+ try {
763
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setHighContrastTextEnabled(enabled);
764
+ }
765
+ catch (error) {
766
+ console.error('[KeplerA11ySettingsInterface] setHighContrastTextEnabled error:', error);
767
+ }
768
+ }
769
+ /**
770
+ * Sets the audio description preference.
771
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
772
+ * @param enabled true to prefer audio description, false otherwise
773
+ */
774
+ async setAudioDescriptionPreferred(enabled) {
775
+ try {
776
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setAudioDescriptionPreferred(enabled);
777
+ }
778
+ catch (error) {
779
+ console.error('[KeplerA11ySettingsInterface] setAudioDescriptionPreferred error:', error);
780
+ }
781
+ }
782
+ /**
783
+ * Sets the time to take action multiplier.
784
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
785
+ * @param multiplier The timeout multiplier to set
786
+ */
787
+ async setTimeToTakeAction(multiplier) {
788
+ try {
789
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setTimeToTakeAction(multiplier);
790
+ }
791
+ catch (error) {
792
+ console.error('[KeplerA11ySettingsInterface] setTimeToTakeAction error:', error);
793
+ }
794
+ }
795
+ /**
796
+ * Sets the UI scale setting.
797
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
798
+ * @param setting The UI scale setting to set
799
+ */
800
+ async setUiScaleSetting(setting) {
801
+ try {
802
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setUiScaleSetting(setting);
803
+ }
804
+ catch (error) {
805
+ console.error('[KeplerA11ySettingsInterface] setUiScaleSetting error:', error);
806
+ }
807
+ }
808
+ /**
809
+ * Sets the closed captioning enabled state.
810
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
811
+ * @param enabled true to enable closed captioning, false to disable
812
+ */
813
+ async setClosedCaptioningEnabled(enabled) {
814
+ try {
815
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setClosedCaptioningEnabled(enabled);
816
+ }
817
+ catch (error) {
818
+ console.error('[KeplerA11ySettingsInterface] setClosedCaptioningEnabled error:', error);
819
+ }
820
+ }
821
+ /**
822
+ * Sets multiple captioning preferences at once.
823
+ * Requires com.amazon.devconf.privilege.accessibility.write permission.
824
+ * @param prefs Object containing captioning preference settings to update.
825
+ * Only the properties present in the object will be updated.
826
+ */
827
+ async setCaptionPreferences(prefs) {
828
+ try {
829
+ await KeplerA11ySettingsInterfaceTurbo_1.default.setCaptionPreferences(prefs);
830
+ }
831
+ catch (error) {
832
+ console.error('[KeplerA11ySettingsInterface] setCaptionPreferences error:', error);
833
+ }
834
+ }
835
+ }
836
+ exports.default = new KeplerA11ySettingsInterface();