js/storage.js
changeset 0 54063d8b0412
equal deleted inserted replaced
-1:000000000000 0:54063d8b0412
       
     1 /**
       
     2  * @author ryan
       
     3  */
       
     4 
       
     5 function Storage() {
       
     6 	this.available = true;
       
     7 	this.serialized = null;
       
     8 	this.items = null;
       
     9 	
       
    10 	if (!window.widget) {
       
    11 		this.available = false;
       
    12 		return;
       
    13 	}
       
    14 	var pref = window.widget.preferenceForKey(Storage.PREFERENCE_KEY);
       
    15 	
       
    16 	//storage not yet created
       
    17 	if (pref == "undefined" || pref == undefined) {
       
    18 		this.length = 0;
       
    19 		this.serialized = "({})";
       
    20 		this.items = {};
       
    21 		window.widget.setPreferenceForKey(this.serialized, Storage.PREFERENCE_KEY);
       
    22 	} else {
       
    23 		this.serialized = pref;'({"store_test": { "key": "store_test", "data": "asdfasdfs" },})';
       
    24 		this.items = eval(this.serialized);
       
    25 	}
       
    26 }
       
    27 
       
    28 Storage.PREFERENCE_KEY = "phonegap_storage_pref_key";
       
    29 
       
    30 Storage.prototype.index = function (key) {
       
    31 	
       
    32 };
       
    33 
       
    34 Storage.prototype.getItem = function (key) {
       
    35 	try {
       
    36 		return this.items[key].data;
       
    37 	} catch (ex) {
       
    38 		return null;
       
    39 	}
       
    40 };
       
    41 
       
    42 Storage.prototype.setItem = function (key, data) {
       
    43 
       
    44 	this.items[key] = {
       
    45 		"key": key,
       
    46 		"data": data
       
    47 	};
       
    48 	
       
    49 	this.serialize();
       
    50 };
       
    51 
       
    52 Storage.prototype.removeItem = function (key) {
       
    53 
       
    54 	if (this.items[key]) {
       
    55 		this.items[key] = undefined;
       
    56 	}
       
    57 	this.serialize();
       
    58 };
       
    59 
       
    60 Storage.prototype.clear = function () {
       
    61 	this.serialized = "({})";
       
    62 	this.items = {};
       
    63 	this.serialize();
       
    64 };
       
    65 
       
    66 Storage.prototype.serialize = function() {
       
    67 	var json = "";
       
    68 	
       
    69 	for (key in this.items) {
       
    70 		var item = this.items[key];
       
    71 		if (typeof item != "undefined") {
       
    72 			json += "\"" + item.key + "\": { \"key\": \"" + item.key + "\", \"data\": \"" + item.data + "\" }, ";
       
    73 		}
       
    74 	}
       
    75 	this.serialized = "({" + json + "})";
       
    76 
       
    77 	window.widget.setPreferenceForKey( this.serialized, Storage.PREFERENCE_KEY);
       
    78 };
       
    79 
       
    80 if (typeof navigator.storage == "undefined" ) navigator.storage = new Storage();