Fixing up Cupcake Storage

This commit is contained in:
Joe Bowser 2009-12-08 15:58:07 -08:00
parent b0a69f5cc5
commit 5ee34b58d7
2 changed files with 26 additions and 20 deletions

View File

@ -29,8 +29,6 @@ public class Storage {
public void executeSql(String query, String[] params, String tx_id) public void executeSql(String query, String[] params, String tx_id)
{ {
if(txid.length() == 0)
{
try{ try{
txid = tx_id; txid = tx_id;
Cursor myCursor = myDb.rawQuery(query, params); Cursor myCursor = myDb.rawQuery(query, params);
@ -39,8 +37,9 @@ public class Storage {
catch (SQLiteException ex) catch (SQLiteException ex)
{ {
Log.d(LOG_TAG, ex.getMessage()); Log.d(LOG_TAG, ex.getMessage());
txid = "";
//TODO: Call FAIL!
} }
}
} }
public void processResults(Cursor cur) public void processResults(Cursor cur)
@ -61,10 +60,11 @@ public class Storage {
resultString += ","; resultString += ",";
} }
resultString += "}"; resultString += "}";
appView.loadUrl("javascript:droiddb.addResult('" + resultString + "')"); appView.loadUrl("javascript:droiddb.addResult('" + resultString + "', " + txid + ")");
} while (cur.moveToNext()); } while (cur.moveToNext());
appView.loadUrl("javascript:droiddb.completeQuery()"); appView.loadUrl("javascript:droiddb.completeQuery(" + txid + ")");
txid = ""; txid = "";
myDb.close();
} }
} }

View File

@ -4,24 +4,24 @@
* most manufacturers ship with Android 1.5 and do not do OTA Updates, this is required * most manufacturers ship with Android 1.5 and do not do OTA Updates, this is required
*/ */
var droiddb = new function() var DroidDB = function()
{ {
this.txQueue = []; this.txQueue = [];
} }
droiddb.prototype.addResult(rawdata, tx_id) DroidDB.prototype.addResult = function(rawdata, tx_id)
{ {
eval("var data = " + rawdata); eval("var data = " + rawdata);
var tx = this.txQueue(tx_id); var tx = this.txQueue[tx_id];
tx.resultSet.push(data); tx.resultSet.push(data);
} }
droiddb.prototype.completeQuery(tx_id) DroidDB.prototype.completeQuery = function(tx_id)
{ {
var tx = this.txQueue(tx_id); var tx = this.txQueue[tx_id];
var r = new result(); var r = new result();
r.rows.resultSet = tx.resultSet; r.rows.resultSet = tx.resultSet;
r.rows.length = resultSet.length; r.rows.length = tx.resultSet.length;
tx.win(r); tx.win(r);
} }
@ -30,7 +30,7 @@ var DatabaseShell = function()
} }
DatabaseShell.transaction(process) DatabaseShell.prototype.transaction = function(process)
{ {
tx = new Tx(); tx = new Tx();
process(tx); process(tx);
@ -45,7 +45,7 @@ var Tx = function()
Tx.prototype.executeSql = function(query, params, win, fail) Tx.prototype.executeSql = function(query, params, win, fail)
{ {
droidStorage.executeSql(query, params, tx_id); droidStorage.executeSql(query, params, this.id);
tx.win = win; tx.win = win;
tx.fail = fail; tx.fail = fail;
} }
@ -66,12 +66,18 @@ Rows.prototype.item = function(row_id)
return this.resultSet[id]; return this.resultSet[id];
} }
var dbSetup = function(name, version, display_name, size)
{
droidStorage.openDatabase(name, version, display_name, size)
db_object = new DatabaseShell();
return db_object;
}
PhoneGap.addConstructor(function() { PhoneGap.addConstructor(function() {
if (typeof navigator.openDatabase == "undefined") { if (typeof navigator.openDatabase == "undefined")
var openDatabase = function(name, version, display_name, size) {
{ navigator.openDatabase = window.openDatabase = dbSetup;
droidStorage.openDatabase(name, version, display_name, size) window.droiddb = new DroidDB();
db_object = new DatabaseShell();
}
} }
}); });