summaryrefslogtreecommitdiff
path: root/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility')
-rw-r--r--StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h82
-rw-r--r--StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m511
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