diff options
Diffstat (limited to 'StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility')
2 files changed, 0 insertions, 593 deletions
diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h deleted file mode 100644 index 662abbea..00000000 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h +++ /dev/null @@ -1,82 +0,0 @@ -/** - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -#import <Cordova/CDVPlugin.h> - -static const int BASE_UI_FONT_TEXT_STYLE_BODY_POINT_SIZE = 16; - -@interface CDVMobileAccessibility : CDVPlugin { - NSString* callbackId; - NSString* commandCallbackId; - BOOL boldTextEnabled; - BOOL closedCaptioningEnabled; - BOOL darkerSystemColorsEnabled; - BOOL grayscaleEnabled; - BOOL guidedAccessEnabled; - BOOL invertColorsEnabled; - BOOL monoAudioEnabled; - BOOL reduceMotionEnabled; - BOOL reduceTransparencyEnabled; - BOOL speakScreenEnabled; - BOOL speakSelectionEnabled; - BOOL switchControlRunning; - BOOL voiceOverRunning; -} - -@property (strong) NSString* callbackId; -@property (strong) NSString* commandCallbackId; -@property BOOL boldTextEnabled; -@property BOOL closedCaptioningEnabled; -@property BOOL darkerSystemColorsEnabled; -@property BOOL grayscaleEnabled; -@property BOOL guidedAccessEnabled; -@property BOOL invertColorsEnabled; -@property BOOL monoAudioEnabled; -@property BOOL reduceMotionEnabled; -@property BOOL reduceTransparencyEnabled; -@property BOOL speakScreenEnabled; -@property BOOL speakSelectionEnabled; -@property BOOL switchControlRunning; -@property BOOL voiceOverRunning; -@property double mFontScale; - - -- (void) isBoldTextEnabled:(CDVInvokedUrlCommand*)command; -- (void) isClosedCaptioningEnabled:(CDVInvokedUrlCommand*)command; -- (void) isDarkerSystemColorsEnabled:(CDVInvokedUrlCommand*)command; -- (void) isGrayscaleEnabled:(CDVInvokedUrlCommand*)command; -- (void) isGuidedAccessEnabled:(CDVInvokedUrlCommand*)command; -- (void) isInvertColorsEnabled:(CDVInvokedUrlCommand*)command; -- (void) isMonoAudioEnabled:(CDVInvokedUrlCommand*)command; -- (void) isReduceMotionEnabled:(CDVInvokedUrlCommand*)command; -- (void) isReduceTransparencyEnabled:(CDVInvokedUrlCommand*)command; -- (void) isScreenReaderRunning:(CDVInvokedUrlCommand*)command; -- (void) isSpeakScreenEnabled:(CDVInvokedUrlCommand*)command; -- (void) isSpeakSelectionEnabled:(CDVInvokedUrlCommand*)command; -- (void) isSwitchControlRunning:(CDVInvokedUrlCommand*)command; -- (void) getTextZoom:(CDVInvokedUrlCommand*)command; -- (void) setTextZoom:(CDVInvokedUrlCommand*)command; -- (void) updateTextZoom:(CDVInvokedUrlCommand*)command; -- (void) postNotification:(CDVInvokedUrlCommand*)command; -- (void) start:(CDVInvokedUrlCommand*)command; -- (void) stop:(CDVInvokedUrlCommand*)command; - -@end
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m deleted file mode 100644 index ad8da029..00000000 --- a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m +++ /dev/null @@ -1,511 +0,0 @@ -/** - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -#import "CDVMobileAccessibility.h" -#import <Cordova/CDVAvailability.h> -#import <MediaAccessibility/MediaAccessibility.h> - -@interface CDVMobileAccessibility () - // add any property overrides - -(double) mGetTextZoom; - -(void) mSetTextZoom:(double)zoom; -@end - -@implementation CDVMobileAccessibility - -@synthesize callbackId; -@synthesize commandCallbackId; -@synthesize boldTextEnabled; -@synthesize closedCaptioningEnabled; -@synthesize darkerSystemColorsEnabled; -@synthesize grayscaleEnabled; -@synthesize guidedAccessEnabled; -@synthesize invertColorsEnabled; -@synthesize monoAudioEnabled; -@synthesize reduceMotionEnabled; -@synthesize reduceTransparencyEnabled; -@synthesize speakScreenEnabled; -@synthesize speakSelectionEnabled; -@synthesize switchControlRunning; -@synthesize voiceOverRunning; -@synthesize mFontScale; - -#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 ) ? 20 : 0 ) -#define iOS8Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 ) ? 30 : 0 ) - -// ////////////////////////////////////////////////// - -- (id)settingForKey:(NSString*)key -{ - return [self.commandDelegate.settings objectForKey:[key lowercaseString]]; -} - -- (void)pluginInitialize -{ - // SETTINGS //////////////////////// - - NSString* setting = nil; - - setting = @"YourConfigXmlSettingHere"; - if ([self settingForKey:setting]) { - // set your setting, other init here - } - - mFontScale = 1; - - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPause) name:UIApplicationDidEnterBackgroundNotification object:nil]; - -} - -// ////////////////////////////////////////////////// - -- (void)dealloc -{ - [self stop:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; -} - -- (void)onReset -{ - [self stop:nil]; -} - -- (void) onPause { - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onResume) name:UIApplicationWillEnterForegroundNotification object:nil]; -} - -- (void)onResume -{ - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPause) name:UIApplicationDidEnterBackgroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onApplicationDidBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil]; -} - -- (void)onApplicationDidBecomeActive -{ - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; - [self performSelector:@selector(sendMobileAccessibilityStatusChangedCallback) withObject:nil afterDelay:0.1 ]; -} - -// ////////////////////////////////////////////////// - -#pragma Plugin interface - -- (void)isBoldTextEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - if (iOS8Delta) { - self.boldTextEnabled = UIAccessibilityIsBoldTextEnabled(); - } else { - self.boldTextEnabled = false; - } - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.boldTextEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isClosedCaptioningEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - self.closedCaptioningEnabled = [self getClosedCaptioningEnabledStatus]; - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.closedCaptioningEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isDarkerSystemColorsEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - if (iOS8Delta) { - self.darkerSystemColorsEnabled = UIAccessibilityDarkerSystemColorsEnabled(); - } else { - self.darkerSystemColorsEnabled = false; - } - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.darkerSystemColorsEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isGrayscaleEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - if (iOS8Delta) { - self.grayscaleEnabled = UIAccessibilityIsGrayscaleEnabled(); - } else { - self.grayscaleEnabled = false; - } - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.grayscaleEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isGuidedAccessEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - self.guidedAccessEnabled = UIAccessibilityIsGuidedAccessEnabled(); - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.guidedAccessEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isInvertColorsEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - self.invertColorsEnabled = UIAccessibilityIsInvertColorsEnabled(); - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.invertColorsEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isMonoAudioEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - self.monoAudioEnabled = UIAccessibilityIsMonoAudioEnabled(); - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.monoAudioEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isReduceMotionEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - if (iOS8Delta) { - self.reduceMotionEnabled = UIAccessibilityIsReduceMotionEnabled(); - } else { - self.reduceMotionEnabled = false; - } - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.reduceMotionEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isReduceTransparencyEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - if (iOS8Delta) { - self.reduceTransparencyEnabled = UIAccessibilityIsReduceTransparencyEnabled(); - } else { - self.reduceTransparencyEnabled = false; - } - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.reduceTransparencyEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isScreenReaderRunning:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - self.voiceOverRunning = UIAccessibilityIsVoiceOverRunning(); - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.voiceOverRunning]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isSpeakScreenEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - if (iOS8Delta) { - self.speakScreenEnabled = UIAccessibilityIsSpeakScreenEnabled(); - } else { - self.speakScreenEnabled = false; - } - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.speakScreenEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isSpeakSelectionEnabled:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - if (iOS8Delta) { - self.speakSelectionEnabled = UIAccessibilityIsSpeakSelectionEnabled(); - } else { - self.speakSelectionEnabled = false; - } - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.speakSelectionEnabled]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - -- (void)isSwitchControlRunning:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - if (iOS8Delta) { - self.switchControlRunning = UIAccessibilityIsSwitchControlRunning(); - } else { - self.switchControlRunning = false; - } - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.switchControlRunning]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - --(double) mGetFontScale -{ - double fontScale = 1; - if (iOS7Delta) { - fontScale = [[UIFont preferredFontForTextStyle:UIFontTextStyleBody] pointSize] / BASE_UI_FONT_TEXT_STYLE_BODY_POINT_SIZE; - } - return fontScale; -} - --(double) mGetTextZoom -{ - double zoom = round(mFontScale * 100); - // NSLog(@"mGetTextZoom %f%%", zoom); - return zoom; -} - -- (void) getTextZoom:(CDVInvokedUrlCommand *)command -{ - double zoom = [self mGetTextZoom]; - [self.commandDelegate runInBackground:^{ - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble: zoom]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; -} - --(void) mSetTextZoom:(double)zoom -{ - // NSLog(@"mSetTextZoom %f%%'", zoom); - mFontScale = zoom/100; - if (iOS7Delta) { - NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%f%%'", zoom]; - [self.commandDelegate evalJs:jsString]; - } -} - -- (void) setTextZoom:(CDVInvokedUrlCommand *)command -{ - if (command != nil && [command.arguments count] > 0) { - double zoom = [[command.arguments objectAtIndex:0] doubleValue]; - [self mSetTextZoom:zoom]; - - [self.commandDelegate runInBackground:^{ - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble:zoom]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; - } -} - -- (void)updateTextZoom:(CDVInvokedUrlCommand *)command -{ - float fontScale = [self mGetFontScale]; - if (fontScale != mFontScale) { - mFontScale = fontScale; - } - double zoom = [self mGetTextZoom]; - // NSLog(@"updateTextZoom %d%%'", zoom); - [self mSetTextZoom:zoom]; - - if (command != nil && command.callbackId != nil) { - [self.commandDelegate runInBackground:^{ - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble:zoom]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - }]; - } -} - -- (void)postNotification:(CDVInvokedUrlCommand *)command -{ - CDVPluginResult* result = nil; - uint32_t notificationType = [[command.arguments objectAtIndex:0] intValue]; - NSString* notificationString = [command.arguments count] > 1 ? [command.arguments objectAtIndex:1] : @""; - - if (notificationString == nil) { - notificationString = @""; - } - if (UIAccessibilityIsVoiceOverRunning() && - [self isValidNotificationType:notificationType]) { - [self.commandDelegate runInBackground:^{ - if (notificationType == UIAccessibilityAnnouncementNotification) { - self.commandCallbackId = command.callbackId; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityAnnouncementDidFinish:) name:UIAccessibilityAnnouncementDidFinishNotification object:nil]; - } - - UIAccessibilityPostNotification(notificationType, notificationString); - - if (notificationType != UIAccessibilityAnnouncementNotification) { - NSMutableDictionary* data = [NSMutableDictionary dictionaryWithCapacity:2]; - [data setObject:notificationString forKey:@"stringValue"]; - [data setObject:@"true" forKey:@"wasSuccessful"]; - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:data]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - } - }]; - } else { - result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR]; - [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; - } -} - -- (BOOL)isValidNotificationType:(uint32_t)notificationType -{ - return (notificationType == UIAccessibilityScreenChangedNotification - || notificationType == UIAccessibilityLayoutChangedNotification - || notificationType == UIAccessibilityAnnouncementNotification - || notificationType == UIAccessibilityPageScrolledNotification); -} - -- (void)mobileAccessibilityAnnouncementDidFinish:(NSNotification *)dict -{ - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityAnnouncementDidFinishNotification object:nil]; - - NSString* valueSpoken = [[dict userInfo] objectForKey:UIAccessibilityAnnouncementKeyStringValue]; - NSString* wasSuccessful = [[dict userInfo] objectForKey:UIAccessibilityAnnouncementKeyWasSuccessful]; - - NSMutableDictionary* data = [NSMutableDictionary dictionaryWithCapacity:2]; - [data setObject:valueSpoken forKey:@"stringValue"]; - [data setObject:wasSuccessful forKey:@"wasSuccessful"]; - - if (self.commandCallbackId) { - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:data]; - [self.commandDelegate sendPluginResult:result callbackId:self.commandCallbackId]; - self.commandCallbackId = nil; - } -} - -- (BOOL)getClosedCaptioningEnabledStatus -{ - BOOL status = false; - if (&MACaptionAppearanceGetDisplayType) { - status = (MACaptionAppearanceGetDisplayType(kMACaptionAppearanceDomainUser) > kMACaptionAppearanceDisplayTypeAutomatic); - } else { - status = UIAccessibilityIsClosedCaptioningEnabled(); - } - return status; -} - -- (void)mobileAccessibilityStatusChanged:(NSNotification *)notification -{ - [self sendMobileAccessibilityStatusChangedCallback]; -} - -- (void)sendMobileAccessibilityStatusChangedCallback -{ - if (self.callbackId) { - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getMobileAccessibilityStatus]]; - [result setKeepCallbackAsBool:YES]; - [self.commandDelegate sendPluginResult:result callbackId:self.callbackId]; - } -} - -/* Get the current mobile accessibility status. */ -- (NSDictionary*)getMobileAccessibilityStatus -{ - self.boldTextEnabled = UIAccessibilityIsBoldTextEnabled(); - self.closedCaptioningEnabled = [self getClosedCaptioningEnabledStatus]; - self.darkerSystemColorsEnabled = UIAccessibilityDarkerSystemColorsEnabled(); - self.grayscaleEnabled = UIAccessibilityIsGrayscaleEnabled(); - self.guidedAccessEnabled = UIAccessibilityIsGuidedAccessEnabled(); - self.invertColorsEnabled = UIAccessibilityIsInvertColorsEnabled(); - self.monoAudioEnabled = UIAccessibilityIsMonoAudioEnabled(); - self.reduceMotionEnabled = UIAccessibilityIsReduceMotionEnabled(); - self.reduceTransparencyEnabled = UIAccessibilityIsReduceTransparencyEnabled(); - self.speakScreenEnabled = UIAccessibilityIsSpeakScreenEnabled(); - self.speakSelectionEnabled = UIAccessibilityIsSpeakSelectionEnabled(); - self.switchControlRunning = UIAccessibilityIsSwitchControlRunning(); - self.voiceOverRunning = UIAccessibilityIsVoiceOverRunning(); - - NSMutableDictionary* mobileAccessibilityData = [NSMutableDictionary dictionaryWithCapacity:5]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.boldTextEnabled] forKey:@"isBoldTextEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.closedCaptioningEnabled] forKey:@"isClosedCaptioningEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.darkerSystemColorsEnabled] forKey:@"isDarkerSystemColorsEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.grayscaleEnabled] forKey:@"isGrayscaleEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.guidedAccessEnabled] forKey:@"isGuidedAccessEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.invertColorsEnabled] forKey:@"isInvertColorsEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.monoAudioEnabled] forKey:@"isMonoAudioEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.reduceMotionEnabled] forKey:@"isReduceMotionEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.reduceTransparencyEnabled] forKey:@"isReduceTransparencyEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.speakScreenEnabled] forKey:@"isSpeakScreenEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.speakSelectionEnabled] forKey:@"isSpeakSelectionEnabled"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.switchControlRunning] forKey:@"isSwitchControlRunning"]; - [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.voiceOverRunning] forKey:@"isScreenReaderRunning"]; - return mobileAccessibilityData; -} - - -/* start MobileAccessibility monitoring */ -- (void)start:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - self.callbackId = command.callbackId; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityClosedCaptioningStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityInvertColorsStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityMonoAudioStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityVoiceOverStatusChanged object:nil]; - - if (iOS8Delta) { - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityBoldTextStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityDarkerSystemColorsStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityGrayscaleStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityReduceMotionStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityReduceTransparencyStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilitySpeakScreenStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilitySpeakSelectionStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilitySwitchControlStatusDidChangeNotification object:nil]; - } - - // Update the callback on start - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getMobileAccessibilityStatus]]; - [result setKeepCallbackAsBool:YES]; - [self.commandDelegate sendPluginResult:result callbackId:self.callbackId]; - }]; -} - -/* stop MobileAccessibility monitoring */ -- (void)stop:(CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - // callback one last time to clear the callback function on JS side - if (self.callbackId) - { - CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getMobileAccessibilityStatus]]; - [result setKeepCallbackAsBool:NO]; - [self.commandDelegate sendPluginResult:result callbackId:self.callbackId]; - } - self.callbackId = nil; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityClosedCaptioningStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityInvertColorsStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityAnnouncementDidFinishNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityMonoAudioStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityVoiceOverStatusChanged object:nil]; - - if (iOS8Delta) { - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityBoldTextStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityDarkerSystemColorsStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityGrayscaleStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityReduceMotionStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityReduceTransparencyStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilitySpeakScreenStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilitySpeakSelectionStatusDidChangeNotification object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilitySwitchControlStatusDidChangeNotification object:nil]; - } - }]; -} - -@end |
