Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*
  2.  * Class LocalConfigurationOps is responsible for working with our local configuration
  3.  */
  4. package XXXX.ops {
  5.   import com.ideas2executables.util.C;
  6.   import flash.data.EncryptedLocalStore;
  7.   import flash.utils.ByteArray;
  8.  
  9.   public class LocalConfigurationOps {
  10.    
  11.     public static function get():Object {
  12.       var keysBytes:ByteArray = EncryptedLocalStore.getItem("localConfig.keys");
  13.       if(keysBytes == null) {
  14.         return null;
  15.       }
  16.  
  17.       var data:Object = {};
  18.       var keys:Object = JSON.parse(keysBytes.readUTFBytes(keysBytes.length));
  19.       for(var i:int = 0; i < keys.length; i++) {
  20.         var buffer:ByteArray = EncryptedLocalStore.getItem("localConfig.item." + keys[i]);
  21.         if(buffer == null) {
  22.           data[keys[i]] = null;
  23.         } else {
  24.           data[keys[i]] = JSON.parse(buffer.readUTFBytes(buffer.length));
  25.         }
  26.       }
  27.  
  28.       return data;
  29.  
  30.     }
  31.  
  32.     public static function set(data:Object):void {
  33.       var existing:Object = LocalConfigurationOps.get();
  34.       var k:String = null;
  35.       var buffer:ByteArray = null;
  36.       if(existing != null) {
  37.         for(k in existing) {
  38.           EncryptedLocalStore.removeItem("localConfig.item." + k);
  39.         }
  40.       }
  41.  
  42.       var keys:Array = [];
  43.       for(k in data) {
  44.         buffer = new ByteArray();
  45.         buffer.writeUTFBytes(JSON.stringify(data[k]));
  46.         EncryptedLocalStore.setItem("localConfig.item." + k, buffer);
  47.         keys.push(k);
  48.       }
  49.  
  50.       buffer = new ByteArray();
  51.       buffer.writeUTFBytes(JSON.stringify(keys))
  52.       EncryptedLocalStore.setItem("localConfig.keys", buffer);
  53.     }
  54.   }
  55. }