From 17e18a2a7aa5f25affa4ce59acbcbf8262c34c4e Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 26 Dec 2016 10:49:34 -0500 Subject: [PATCH] Added contains and clear implementations for iOS Settings --- src/iOS.Core/Services/Settings.cs | 49 +++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/src/iOS.Core/Services/Settings.cs b/src/iOS.Core/Services/Settings.cs index a08825723..6bb7b3cde 100644 --- a/src/iOS.Core/Services/Settings.cs +++ b/src/iOS.Core/Services/Settings.cs @@ -1,5 +1,4 @@ - -using System; +using System; #if __UNIFIED__ using Foundation; #else @@ -230,6 +229,50 @@ namespace Bit.iOS.Core.Services } } } - } + /// + /// Clear all keys from settings + /// + public void Clear() + { + lock(locker) + { + var defaults = _defaults; + try + { + defaults.RemovePersistentDomain(NSBundle.MainBundle.BundleIdentifier); + defaults.Synchronize(); + } + catch(Exception ex) + { + Console.WriteLine("Unable to clear all defaults. Message: " + ex.Message); + } + } + } + + /// + /// Checks to see if the key has been added. + /// + /// Key to check + /// True if contains key, else false + public bool Contains(string key) + { + lock(locker) + { + var defaults = _defaults; + try + { + var nsString = new NSString(key); + var setting = defaults.ValueForKey(nsString); + return setting != null; + } + catch(Exception ex) + { + Console.WriteLine("Unable to clear all defaults. Message: " + ex.Message); + } + + return false; + } + } + } }