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 /src/org | |
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.
Diffstat (limited to 'src/org')
-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(); } |