blob: dc2ec89e1b61019eb6f4058b196bd79ba62042db [file] [log] [blame]
/*
* TODO for Palm. Could just use below functionality, and implement simple serialization, or could map to Palm's data store APIs.
* @author ryan
*/
function Storage() {
this.length = null;
this.available = true;
this.serialized = null;
this.items = null;
if (!window.widget) {
this.available = false;
return;
}
var pref = window.widget.preferenceForKey(Storage.PREFERENCE_KEY);
//storage not yet created
if (pref == "undefined" || pref == undefined) {
this.length = 0;
this.serialized = "({})";
this.items = {};
window.widget.setPreferenceForKey(this.serialized, Storage.PREFERENCE_KEY);
} else {
this.serialized = pref;
'({"store_test": { "key": "store_test", "data": "asdfasdfs" },})';
this.items = eval(this.serialized);
}
};
Storage.PREFERENCE_KEY = "phonegap_storage_pref_key";
Storage.prototype.index = function(key) {
};
Storage.prototype.getItem = function(key) {
var err = "Storage unimplemented on Palm PhoneGap";
debug.log(err);
throw {
name: "StorageError",
message: err
};
try {
return this.items[key].data;
} catch(ex) {
return null;
}
};
Storage.prototype.setItem = function(key, data) {
var err = "Storage unimplemented on Palm PhoneGap";
debug.log(err);
throw {
name: "StorageError",
message: err
};
if (!this.items[key])
this.length++;
this.items[key] = {
"key": key,
"data": data
};
this.serialize();
};
Storage.prototype.removeItem = function(key) {
if (this.items[key]) {
this.items[key] = undefined;
this.length--;
}
this.serialize();
};
Storage.prototype.clear = function() {
this.length = 0;
this.serialized = "({})";
this.items = {};
};
Storage.prototype.serialize = function() {
var err = "Storage unimplemented on Palm PhoneGap";
debug.log(err);
throw {
name: "StorageError",
message: err
};
};
if (typeof navigator.storage == "undefined") navigator.storage = new Storage();