Files
NativeScript/UserPreferences/user_preferences.ios.ts

108 lines
3.2 KiB
TypeScript

import utils_module = require("Utils/utils_ios");
export class UserPreferences {
private userDefaults: any;
constructor() {
this.userDefaults = Foundation.NSUserDefaults.standardUserDefaults();
}
public containsKey(key: string): boolean {
// FIXME: is there a better way to do this check?
return this.userDefaults.objectForKey(key) ? true : false;
}
public getBoolean(key: string, defaultValue?: boolean): boolean {
if (this.containsKey(key)) {
return this.userDefaults.boolForKey(key);
}
if ("undefined" == typeof defaultValue) {
defaultValue = false;
}
return defaultValue;
}
public getDouble(key: string, defaultValue?: number): number {
if (this.containsKey(key)) {
return this.userDefaults.doubleForKey(key);
}
if ("undefined" == typeof defaultValue) {
defaultValue = 0.0;
}
return defaultValue;
}
public getInt(key: string, defaultValue?: number): number {
if (this.containsKey(key)) {
return this.userDefaults.integerForKey(key);
}
if ("undefined" == typeof defaultValue) {
defaultValue = 0;
}
return defaultValue;
}
public getLong(key: string, defaultValue?: number): number {
if (this.containsKey(key)) {
return this.userDefaults.integerForKey(key);
}
if ("undefined" == typeof defaultValue) {
defaultValue = 0;
}
return defaultValue;
}
public getString(key: string, defaultValue?: string): string {
if (this.containsKey(key)) {
return this.userDefaults.stringForKey(key);
}
if ("undefined" == typeof defaultValue) {
defaultValue = "";
}
return defaultValue;
}
public getStrings(key: string, defaultValue?: string[]): string[] {
if (this.containsKey(key)) {
var nsArray = this.userDefaults.stringArrayForKey(key);
var jsArray = utils_module.Collections.nsArrayToJSArray(nsArray);
return jsArray;
}
if ("undefined" == typeof defaultValue) {
defaultValue = [];
}
return defaultValue;
}
public setBoolean(key: string, value: boolean) {
this.userDefaults.setBoolForKey(value, key);
this.userDefaults.synchronize();
}
public setDouble(key: string, value: number) {
this.userDefaults.setDoubleForKey(value, key);
this.userDefaults.synchronize();
}
public setInt(key: string, value: number) {
this.userDefaults.setIntegerForKey(value, key);
this.userDefaults.synchronize();
}
public setLong(key: string, value: number) {
this.userDefaults.setIntegerForKey(value, key);
this.userDefaults.synchronize();
}
public setString(key: string, value: string) {
this.userDefaults.setObjectForKey(value, key);
this.userDefaults.synchronize();
}
public setStrings(key: string, values: string[]) {
var nsArray = utils_module.Collections.jsArrayToNSArray(values);
this.userDefaults.setObjectForKey(nsArray, key);
this.userDefaults.synchronize();
}
}