feat(application-settings): implemented allKeys method (#6371)

This commit is contained in:
Nicu
2018-10-12 13:28:48 +03:00
committed by Alexander Vakrilov
parent 56a1b120af
commit 829d18b56d
4 changed files with 33 additions and 0 deletions

View File

@@ -112,6 +112,17 @@ export var testFlush = function () {
TKUnit.assert(appSettings.hasKey(stringKey), "There is no key: " + stringKey);
};
export var testAllKeys = function () {
appSettings.setString(stringKey, "String value");
appSettings.setBoolean(boolKey, true);
appSettings.setNumber(numberKey, 22);
var allKeys = appSettings.getAllKeys();
TKUnit.assert(allKeys.indexOf(stringKey) !== -1, `${stringKey} is missing from .allKeys()`);
TKUnit.assert(allKeys.indexOf(boolKey) !== -1, `${boolKey} is missing from .allKeys()`);
TKUnit.assert(allKeys.indexOf(numberKey) !== -1, `${numberKey} is missing from .allKeys()`);
}
export var testInvalidKey = function () {
try {
appSettings.hasKey(undefined);

View File

@@ -83,3 +83,15 @@ export function clear(): void {
export var flush = function (): boolean {
return sharedPreferences.edit().commit();
}
export function getAllKeys(): Array<string> {
var mappedPreferences = sharedPreferences.getAll();
var iterator = mappedPreferences.keySet().iterator();
var result = [];
while (iterator.hasNext()) {
let key = iterator.next();
result.push(key);
}
return result;
}

View File

@@ -67,3 +67,9 @@ export function clear(): void;
* @return {boolean} flag indicating if changes were saved successfully to disk.
*/
export function flush(): boolean;
/**
* Get all stored keys
* @return Array containing all stored keys
*/
export function getAllKeys(): Array<string>;

View File

@@ -65,3 +65,7 @@ export var clear = function (): void {
export var flush = function (): boolean {
return userDefaults.synchronize();
}
export function getAllKeys(): Array<string> {
return utils.ios.collections.nsArrayToJSArray(userDefaults.dictionaryRepresentation().allKeys);
}