cordova-android/framework/assets/js/storage.js

90 lines
1.7 KiB
JavaScript
Raw Normal View History

2009-12-09 06:08:48 +08:00
/*
* This is purely for the Android 1.5/1.6 HTML 5 Storage
* I was hoping that Android 2.0 would deprecate this, but given the fact that
* most manufacturers ship with Android 1.5 and do not do OTA Updates, this is required
*/
2009-12-09 07:58:07 +08:00
var DroidDB = function()
2009-12-09 06:08:48 +08:00
{
this.txQueue = [];
}
2009-12-09 07:58:07 +08:00
DroidDB.prototype.addResult = function(rawdata, tx_id)
2009-12-09 06:08:48 +08:00
{
eval("var data = " + rawdata);
2009-12-09 07:58:07 +08:00
var tx = this.txQueue[tx_id];
2009-12-09 06:08:48 +08:00
tx.resultSet.push(data);
}
2009-12-09 07:58:07 +08:00
DroidDB.prototype.completeQuery = function(tx_id)
2009-12-09 06:08:48 +08:00
{
2009-12-09 07:58:07 +08:00
var tx = this.txQueue[tx_id];
2009-12-09 06:08:48 +08:00
var r = new result();
r.rows.resultSet = tx.resultSet;
2009-12-09 07:58:07 +08:00
r.rows.length = tx.resultSet.length;
2009-12-09 06:08:48 +08:00
tx.win(r);
}
2009-12-16 02:38:38 +08:00
DroidDB.prototype.fail = function(reason, tx_id)
{
var tx = this.txQueue[tx_id];
tx.fail(reason);
}
2009-12-09 06:08:48 +08:00
var DatabaseShell = function()
{
}
2009-12-09 07:58:07 +08:00
DatabaseShell.prototype.transaction = function(process)
2009-12-09 06:08:48 +08:00
{
tx = new Tx();
process(tx);
}
var Tx = function()
{
droiddb.txQueue.push(this);
this.id = droiddb.txQueue.length - 1;
this.resultSet = [];
}
Tx.prototype.executeSql = function(query, params, win, fail)
{
2009-12-09 07:58:07 +08:00
droidStorage.executeSql(query, params, this.id);
2009-12-09 06:08:48 +08:00
tx.win = win;
tx.fail = fail;
}
var result = function()
{
this.rows = new Rows();
}
var Rows = function()
{
this.resultSet = [];
this.length = 0;
}
Rows.prototype.item = function(row_id)
{
return this.resultSet[id];
}
2009-12-09 07:58:07 +08:00
var dbSetup = function(name, version, display_name, size)
{
droidStorage.openDatabase(name, version, display_name, size)
db_object = new DatabaseShell();
return db_object;
}
2009-12-09 06:08:48 +08:00
PhoneGap.addConstructor(function() {
2010-05-15 06:49:14 +08:00
if (typeof window.openDatabase == "undefined")
2009-12-09 07:58:07 +08:00
{
navigator.openDatabase = window.openDatabase = dbSetup;
2010-05-15 06:49:14 +08:00
window.droiddb = new DroidDB();
2009-12-09 06:08:48 +08:00
}
});
2009-12-09 07:58:07 +08:00