/*
* Class LocalConfigurationOps is responsible for working with our local configuration
*/
package XXXX.ops {
import com.ideas2executables.util.C;
import flash.data.EncryptedLocalStore;
import flash.utils.ByteArray;
public class LocalConfigurationOps {
public static function get():Object {
var keysBytes:ByteArray = EncryptedLocalStore.getItem("localConfig.keys");
if(keysBytes == null) {
return null;
}
var data:Object = {};
var keys:Object = JSON.parse(keysBytes.readUTFBytes(keysBytes.length));
for(var i:int = 0; i < keys.length; i++) {
var buffer:ByteArray = EncryptedLocalStore.getItem("localConfig.item." + keys[i]);
if(buffer == null) {
data[keys[i]] = null;
} else {
data[keys[i]] = JSON.parse(buffer.readUTFBytes(buffer.length));
}
}
return data;
}
public static function set(data:Object):void {
var existing:Object = LocalConfigurationOps.get();
var k:String = null;
var buffer:ByteArray = null;
if(existing != null) {
for(k in existing) {
EncryptedLocalStore.removeItem("localConfig.item." + k);
}
}
var keys:Array = [];
for(k in data) {
buffer = new ByteArray();
buffer.writeUTFBytes(JSON.stringify(data[k]));
EncryptedLocalStore.setItem("localConfig.item." + k, buffer);
keys.push(k);
}
buffer = new ByteArray();
buffer.writeUTFBytes(JSON.stringify(keys))
EncryptedLocalStore.setItem("localConfig.keys", buffer);
}
}
}