From 411c8d3d0759a8ccc46ca1d29beaf651826829bd Mon Sep 17 00:00:00 2001 From: JinWang An <35290168+jinwangan@users.noreply.github.com> Date: Tue, 19 Feb 2019 15:04:56 +0900 Subject: [PATCH] [SystemSettings][TCSACR-215] Add properties (#684) * [SystemSettings][TCSACR-215] Add properties - AccessibilityGrayscale - AccessibilityNegativeColor Signed-off-by: jinwang.an * Fixed version - AccessibilityGrayscale - AccessibilityNegativeColor Signed-off-by: jinwang.an * Fixed API Version 6 - AccessibilityGrayscaleChangedEventArgs - AccessibilityNegativeColorChangedEventArgs Signed-off-by: jinwang.an * Fix typo grayscale and negative descriptions Signed-off-by: jinwang.an --- .../Tizen.System.SystemSettings/SystemSettings.cs | 164 +++++++++++++++++++++ .../SystemSettingsEnums.cs | 10 ++ .../SystemSettingsEventArgs.cs | 66 +++++++++ 3 files changed, 240 insertions(+) diff --git a/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettings.cs b/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettings.cs index 59c740d..9440cea 100755 --- a/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettings.cs +++ b/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettings.cs @@ -1069,6 +1069,74 @@ namespace Tizen.System } } + /// + /// Indicates whether accessibility grayscale is enabled on the device or not. + /// + /// http://tizen.org/privilege/systemsettings.admin + /// platform + /// http://tizen.org/feature/systemsetting + /// http://tizen.org/feature/accessibility.grayscale + /// Invalid Argument + /// Not Supported feature + /// Invalid operation + /// Thrown when application does not have privilege to access this method. + /// 6 + public static bool AccessibilityGrayscale + { + get + { + bool isAccessibilityGrayscale; + SystemSettingsError res = (SystemSettingsError)Interop.Settings.SystemSettingsGetValueBool(SystemSettingsKeys.AccessibilityGrayscale, out isAccessibilityGrayscale); + if (res != SystemSettingsError.None) + { + throw SystemSettingsExceptionFactory.CreateException(res, "unable to get isAccessibilityGrayscale system setting."); + } + return isAccessibilityGrayscale; + } + set + { + SystemSettingsError res = (SystemSettingsError)Interop.Settings.SystemSettingsSetValueBool(SystemSettingsKeys.AccessibilityGrayscale, value); + if (res != SystemSettingsError.None) + { + throw SystemSettingsExceptionFactory.CreateException(res, "unable to set isAccessibilityGrayscale system setting."); + } + } + } + + /// + /// Indicates whether accessibility negative color is enabled on the device or not. + /// + /// http://tizen.org/privilege/systemsettings.admin + /// platform + /// http://tizen.org/feature/systemsetting + /// http://tizen.org/feature/accessibility.negative + /// Invalid Argument + /// Not Supported feature + /// Invalid operation + /// Thrown when application does not have privilege to access this method. + /// 6 + public static bool AccessibilityNegativeColor + { + get + { + bool isAccessibilityNegativeColor; + SystemSettingsError res = (SystemSettingsError)Interop.Settings.SystemSettingsGetValueBool(SystemSettingsKeys.AccessibilityNegativeColor, out isAccessibilityNegativeColor); + if (res != SystemSettingsError.None) + { + throw SystemSettingsExceptionFactory.CreateException(res, "unable to get isAccessibilityNegativeColor system setting."); + } + return isAccessibilityNegativeColor; + } + set + { + SystemSettingsError res = (SystemSettingsError)Interop.Settings.SystemSettingsSetValueBool(SystemSettingsKeys.AccessibilityNegativeColor, value); + if (res != SystemSettingsError.None) + { + throw SystemSettingsExceptionFactory.CreateException(res, "unable to set isAccessibilityNegativeColor system setting."); + } + } + } + private static readonly Interop.Settings.SystemSettingsChangedCallback s_incomingCallRingtoneChangedCallback = (SystemSettingsKeys key, IntPtr userData) => { string path = SystemSettings.IncomingCallRingtone; @@ -2803,6 +2871,102 @@ namespace Tizen.System } } } + + private static readonly Interop.Settings.SystemSettingsChangedCallback s_accessibilityGrayscaleChangedCallback = (SystemSettingsKeys key, IntPtr userData) => + { + bool accessibilityGrayscale = SystemSettings.AccessibilityGrayscale; + AccessibilityGrayscaleChangedEventArgs eventArgs = new AccessibilityGrayscaleChangedEventArgs(accessibilityGrayscale); + s_accessibilityGrayscaleChanged?.Invoke(null, eventArgs); + }; + private static event EventHandler s_accessibilityGrayscaleChanged; + /// + /// The AccessibilityGrayscaleChanged event is triggered when the AccessibilityGrayscale value is changed. + /// + /// http://tizen.org/privilege/systemsettings.admin + /// platform + /// http://tizen.org/feature/systemsetting + /// http://tizen.org/feature/accessibility.grayscale + /// Invalid Argument + /// Not Supported feature + /// Invalid operation + /// Thrown when application does not have privilege to access this method. + /// 6 + public static event EventHandler AccessibilityGrayscaleChanged + { + add + { + if (s_accessibilityGrayscaleChanged == null) + { + SystemSettingsError ret = (SystemSettingsError)Interop.Settings.SystemSettingsSetCallback(SystemSettingsKeys.AccessibilityGrayscale, s_accessibilityGrayscaleChangedCallback, IntPtr.Zero); + if (ret != SystemSettingsError.None) + { + throw SystemSettingsExceptionFactory.CreateException(ret, "Error in callback handling"); + } + } + s_accessibilityGrayscaleChanged += value; + } + + remove + { + s_accessibilityGrayscaleChanged -= value; + if (s_accessibilityGrayscaleChanged == null) + { + SystemSettingsError ret = (SystemSettingsError)Interop.Settings.SystemSettingsRemoveCallback(SystemSettingsKeys.AccessibilityGrayscale, s_accessibilityGrayscaleChangedCallback); + if (ret != SystemSettingsError.None) + { + throw SystemSettingsExceptionFactory.CreateException(ret, "Error in callback handling"); + } + } + } + } + + private static readonly Interop.Settings.SystemSettingsChangedCallback s_accessibilityNegativeColorChangedCallback = (SystemSettingsKeys key, IntPtr userData) => + { + bool accessibilityNegativeColor = SystemSettings.AccessibilityNegativeColor; + AccessibilityNegativeColorChangedEventArgs eventArgs = new AccessibilityNegativeColorChangedEventArgs(accessibilityNegativeColor); + s_accessibilityNegativeColorChanged?.Invoke(null, eventArgs); + }; + private static event EventHandler s_accessibilityNegativeColorChanged; + /// + /// The AccessibilityNegativeColorChanged event is triggered when the AccessibilityNegativeColor value is changed. + /// + /// http://tizen.org/privilege/systemsettings.admin + /// platform + /// http://tizen.org/feature/systemsetting + /// http://tizen.org/feature/accessibility.negative + /// Invalid Argument + /// Not Supported feature + /// Invalid operation + /// Thrown when application does not have privilege to access this method. + /// 6 + public static event EventHandler AccessibilityNegativeColorChanged + { + add + { + if (s_accessibilityNegativeColorChanged == null) + { + SystemSettingsError ret = (SystemSettingsError)Interop.Settings.SystemSettingsSetCallback(SystemSettingsKeys.AccessibilityNegativeColor, s_accessibilityNegativeColorChangedCallback, IntPtr.Zero); + if (ret != SystemSettingsError.None) + { + throw SystemSettingsExceptionFactory.CreateException(ret, "Error in callback handling"); + } + } + s_accessibilityNegativeColorChanged += value; + } + + remove + { + s_accessibilityNegativeColorChanged -= value; + if (s_accessibilityNegativeColorChanged == null) + { + SystemSettingsError ret = (SystemSettingsError)Interop.Settings.SystemSettingsRemoveCallback(SystemSettingsKeys.AccessibilityNegativeColor, s_accessibilityNegativeColorChangedCallback); + if (ret != SystemSettingsError.None) + { + throw SystemSettingsExceptionFactory.CreateException(ret, "Error in callback handling"); + } + } + } + } } } diff --git a/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettingsEnums.cs b/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettingsEnums.cs index 4b4dc75..2842e84 100755 --- a/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettingsEnums.cs +++ b/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettingsEnums.cs @@ -172,6 +172,16 @@ namespace Tizen.System /// /// 5 DeveloperOptionState, + /// + /// GET (bool) Indicates whether accessibility grayscale is enabled on the device. + /// + /// 6 + AccessibilityGrayscale, + /// + /// GET (bool) Indicates whether accessibility negative color is enabled on the device. + /// + /// 6 + AccessibilityNegativeColor } /// /// Enumeration for the Idle Lock State. diff --git a/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettingsEventArgs.cs b/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettingsEventArgs.cs index 8b5e10c..e078ff9 100755 --- a/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettingsEventArgs.cs +++ b/src/Tizen.System.SystemSettings/Tizen.System.SystemSettings/SystemSettingsEventArgs.cs @@ -1120,4 +1120,70 @@ namespace Tizen.System } } } + + /// + /// EventArgs type for the AccessibilityGrayscaleChanged event. + /// + /// http://tizen.org/privilege/systemsettings.admin + /// platform + /// http://tizen.org/feature/systemsetting + /// http://tizen.org/feature/accessibility.grayscale + /// Invalid Argument + /// Not Supported feature + /// Invalid operation + /// Thrown when application does not have privilege to access this method. + /// 6 + public class AccessibilityGrayscaleChangedEventArgs : EventArgs + { + private readonly bool _accessibilityGrayscale; + internal AccessibilityGrayscaleChangedEventArgs(bool val) + { + _accessibilityGrayscale = val; + } + + /// + /// Indicates whether developer option state is enabled on the device or not. + /// + /// 6 + public bool Value + { + get + { + return _accessibilityGrayscale; + } + } + } + + /// + /// EventArgs type for the AccessibilityNegativeColorChanged event. + /// + /// http://tizen.org/privilege/systemsettings.admin + /// platform + /// http://tizen.org/feature/systemsetting + /// http://tizen.org/feature/accessibility.negative + /// Invalid Argument + /// Not Supported feature + /// Invalid operation + /// Thrown when application does not have privilege to access this method. + /// 6 + public class AccessibilityNegativeColorChangedEventArgs : EventArgs + { + private readonly bool _accessibilityNegativeColor; + internal AccessibilityNegativeColorChangedEventArgs(bool val) + { + _accessibilityNegativeColor = val; + } + + /// + /// Indicates whether developer option state is enabled on the device or not. + /// + /// 6 + public bool Value + { + get + { + return _accessibilityNegativeColor; + } + } + } } -- 2.7.4