diff options
Diffstat (limited to 'src/org/madore/android/unicodeMap/UnicodeMapActivity.java')
-rw-r--r-- | src/org/madore/android/unicodeMap/UnicodeMapActivity.java | 56 |
1 files changed, 31 insertions, 25 deletions
diff --git a/src/org/madore/android/unicodeMap/UnicodeMapActivity.java b/src/org/madore/android/unicodeMap/UnicodeMapActivity.java index a1917a4..cedffb8 100644 --- a/src/org/madore/android/unicodeMap/UnicodeMapActivity.java +++ b/src/org/madore/android/unicodeMap/UnicodeMapActivity.java @@ -39,31 +39,37 @@ 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.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.setMax(total); - progress.setProgress(done); - if ( done >= total ) - progress.dismiss(); - } - }; - final Thread thr = new Thread() { - public void run() { - UnicodeDatabase db - = new UnicodeDatabase(UnicodeMapActivity.this); - db.populate(handler); - } - }; - thr.start(); + android.util.Log.v("UnicodeMapActivity", "creating activity"); + final UnicodeDatabase db = new UnicodeDatabase(this); + final boolean needPopulate = db.needPopulate(); + db.close(); + if ( needPopulate ) { + final ProgressDialog progress = new ProgressDialog(this); + progress.setOwnerActivity(this); + 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.setMax(total); + progress.setProgress(done); + if ( done >= total ) + progress.dismiss(); + } + }; + final Thread thr = new Thread() { + public void run() { + final UnicodeDatabase db + = new UnicodeDatabase(UnicodeMapActivity.this); + db.populate(handler); + } + }; + thr.start(); + } setListAdapter(new ArrayAdapter<UnicodeRange>(this, R.layout.list_item, list)); ListView lv = getListView(); lv.setTextFilterEnabled(true); |