mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-14 18:12:09 +08:00
36 lines
978 B
TypeScript
36 lines
978 B
TypeScript
import { Observable } from '../data/observable';
|
|
|
|
export class SharedA11YObservable extends Observable {
|
|
accessibilityServiceEnabled?: boolean;
|
|
}
|
|
|
|
export const AccessibilityServiceEnabledPropName = 'accessibilityServiceEnabled';
|
|
|
|
export class CommonA11YServiceEnabledObservable extends SharedA11YObservable {
|
|
constructor(sharedA11YObservable: SharedA11YObservable) {
|
|
super();
|
|
|
|
const ref = new WeakRef(this);
|
|
let lastValue: boolean;
|
|
|
|
function callback() {
|
|
const self = ref?.get();
|
|
if (!self) {
|
|
sharedA11YObservable.off(Observable.propertyChangeEvent, callback);
|
|
|
|
return;
|
|
}
|
|
|
|
const newValue = !!sharedA11YObservable.accessibilityServiceEnabled;
|
|
if (newValue !== lastValue) {
|
|
self.set(AccessibilityServiceEnabledPropName, newValue);
|
|
lastValue = newValue;
|
|
}
|
|
}
|
|
|
|
sharedA11YObservable.on(Observable.propertyChangeEvent, callback);
|
|
|
|
this.set(AccessibilityServiceEnabledPropName, !!sharedA11YObservable.accessibilityServiceEnabled);
|
|
}
|
|
}
|