diff options
author | David A. Madore <david@procyon.(none)> | 2010-04-25 10:22:19 +0200 |
---|---|---|
committer | David A. Madore <david@procyon.(none)> | 2010-04-25 10:22:19 +0200 |
commit | 0e64b9e42047a96e26395002b8287a70f2da2eea (patch) | |
tree | 036f8d93ca3b74e215fc937a5803d0126c24c455 | |
parent | 2521f18e396b989043387ef0cd14eeb101c14263 (diff) | |
download | UnicodeMap-0e64b9e42047a96e26395002b8287a70f2da2eea.tar.gz UnicodeMap-0e64b9e42047a96e26395002b8287a70f2da2eea.tar.bz2 UnicodeMap-0e64b9e42047a96e26395002b8287a70f2da2eea.zip |
Repair progress bar. Use a transaction for populating db.
Default max for progress bar is not 10000 contrary to what doc says.
SQLite is excruciatingly slow in the absence of transactions, so we
use one.
-rw-r--r-- | src/org/madore/android/unicodeMap/UnicodeDatabase.java | 7 | ||||
-rw-r--r-- | src/org/madore/android/unicodeMap/UnicodeMapActivity.java | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/org/madore/android/unicodeMap/UnicodeDatabase.java b/src/org/madore/android/unicodeMap/UnicodeDatabase.java index b0b5c77..c40cf67 100644 --- a/src/org/madore/android/unicodeMap/UnicodeDatabase.java +++ b/src/org/madore/android/unicodeMap/UnicodeDatabase.java @@ -73,6 +73,7 @@ public class UnicodeDatabase { public void populate(Handler progressHandler) { SQLiteDatabase db = dbinit.getWritableDatabase(); + db.beginTransaction(); db.execSQL("DELETE FROM "+UNICODE_TABLE_NAME); AssetManager amgr = activity.getAssets(); SQLiteStatement cmd @@ -116,9 +117,11 @@ public class UnicodeDatabase { throw new AssertionError("US-ASCII encoding unsupported"); } catch (IOException e) { throw new RuntimeException(e); + } finally { + db.endTransaction(); + db.close(); + reportProgress(progressHandler, pieces.length, pieces.length); } - reportProgress(progressHandler, pieces.length, pieces.length); - db.close(); } protected final static String[] queryColumns = { "id", "name", "category" }; diff --git a/src/org/madore/android/unicodeMap/UnicodeMapActivity.java b/src/org/madore/android/unicodeMap/UnicodeMapActivity.java index 7d70186..a1917a4 100644 --- a/src/org/madore/android/unicodeMap/UnicodeMapActivity.java +++ b/src/org/madore/android/unicodeMap/UnicodeMapActivity.java @@ -44,12 +44,14 @@ public final class UnicodeMapActivity extends ListActivity { progress.setTitle("Loading Unicode database"); progress.setMessage("Please wait"); progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progress.setCancelable(false); progress.show(); final Handler handler = new Handler() { public void handleMessage(Message msg) { int done = msg.getData().getInt("done"); int total = msg.getData().getInt("total"); - progress.setProgress(done*10000/total); + progress.setMax(total); + progress.setProgress(done); if ( done >= total ) progress.dismiss(); } |