diff --git a/application-settings/application-settings.android.ts b/application-settings/application-settings.android.ts index eb11ba117..3df5dd516 100644 --- a/application-settings/application-settings.android.ts +++ b/application-settings/application-settings.android.ts @@ -74,3 +74,8 @@ export var remove = function (key: string): void { editor.remove(key); editor.commit(); } + +export var clear = function (): void { + ensureSharedPreferences(); + sharedPreferences.edit().clear().commit(); +} diff --git a/application-settings/application-settings.d.ts b/application-settings/application-settings.d.ts index 6d05c86e6..4eefd2952 100644 --- a/application-settings/application-settings.d.ts +++ b/application-settings/application-settings.d.ts @@ -55,4 +55,9 @@ declare module "application-settings" { * @param key The key to check for. */ export function remove(key: string): void; + + /** + * Removes all values. + */ + export function clear(): void; } \ No newline at end of file diff --git a/application-settings/application-settings.ios.ts b/application-settings/application-settings.ios.ts index 5f07064fe..182bf980e 100644 --- a/application-settings/application-settings.ios.ts +++ b/application-settings/application-settings.ios.ts @@ -59,3 +59,7 @@ export var remove = function (key: string): void { userDefaults.removeObjectForKey(key); userDefaults.synchronize(); } + +export var clear = function (): void { + userDefaults.removePersistentDomainForName(NSBundle.mainBundle().bundleIdentifier); +} diff --git a/apps/tests/application-settings-tests.ts b/apps/tests/application-settings-tests.ts index de41e0cd1..b7cb005b7 100644 --- a/apps/tests/application-settings-tests.ts +++ b/apps/tests/application-settings-tests.ts @@ -123,6 +123,18 @@ export var testRemove = function () { TKUnit.assert(!appSettings.hasKey(numberKey), "Failed to remove key: " + numberKey); }; +export var testClear = function () { + // + // ### Removing all values + // ``` JavaScript + appSettings.clear(); + // ``` + // + TKUnit.assert(!appSettings.hasKey(boolKey), "Failed to remove key: " + boolKey); + TKUnit.assert(!appSettings.hasKey(stringKey), "Failed to remove key: " + stringKey); + TKUnit.assert(!appSettings.hasKey(numberKey), "Failed to remove key: " + numberKey); +}; + export var testInvalidKey = function () { try { appSettings.hasKey(undefined);