From 2521f18e396b989043387ef0cd14eeb101c14263 Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Sun, 25 Apr 2010 00:33:15 +0200 Subject: Use a separate thread for populating database. Still doesn't work. I don't understand the point of this whole rigmarole, nor do I understand why it doesn't work... :-( --- .../android/unicodeMap/UnicodeMapActivity.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/org/madore/android/unicodeMap/UnicodeMapActivity.java') diff --git a/src/org/madore/android/unicodeMap/UnicodeMapActivity.java b/src/org/madore/android/unicodeMap/UnicodeMapActivity.java index fbaced4..7d70186 100644 --- a/src/org/madore/android/unicodeMap/UnicodeMapActivity.java +++ b/src/org/madore/android/unicodeMap/UnicodeMapActivity.java @@ -5,9 +5,12 @@ import java.util.List; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; +import android.os.Message; import android.view.View; import android.widget.*; import android.app.ListActivity; +import android.app.ProgressDialog; public final class UnicodeMapActivity extends ListActivity { @@ -36,6 +39,29 @@ public final class UnicodeMapActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + final ProgressDialog progress = new ProgressDialog(this); + progress.setOwnerActivity(this); + progress.setTitle("Loading Unicode database"); + progress.setMessage("Please wait"); + progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + 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); + if ( done >= total ) + progress.dismiss(); + } + }; + final Thread thr = new Thread() { + public void run() { + UnicodeDatabase db + = new UnicodeDatabase(UnicodeMapActivity.this); + db.populate(handler); + } + }; + thr.start(); setListAdapter(new ArrayAdapter(this, R.layout.list_item, list)); ListView lv = getListView(); lv.setTextFilterEnabled(true); -- cgit v1.2.3