X-Git-Url: http://www.average.org/gitweb/?p=WhereAmI.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fwhereami%2FWhereAmI.java;h=f4403642a1a4b4d96380eea192e9c92f68da0a8b;hp=2f69212af35f023f542cd6d4a5a310d29e242426;hb=b3e0f9208b1890ce9a80239841756fb462d8976f;hpb=d837c7a854c5e53867641b519a33d545b929c52e diff --git a/src/org/average/whereami/WhereAmI.java b/src/org/average/whereami/WhereAmI.java index 2f69212..f440364 100644 --- a/src/org/average/whereami/WhereAmI.java +++ b/src/org/average/whereami/WhereAmI.java @@ -3,6 +3,10 @@ package org.average.whereami; import android.app.Activity; import android.os.Bundle; import android.os.AsyncTask; +import android.os.Handler; +import android.os.SystemClock; +import android.content.res.Resources; +import android.text.format.Time; import android.util.Log; import android.view.View; import android.view.Window; @@ -11,6 +15,11 @@ import android.widget.TextView; public class WhereAmI extends Activity { + private TextView tv; + private Resources res; + private String[] month; + private String[] wday; + /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) @@ -20,11 +29,42 @@ public class WhereAmI extends Activity getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); setContentView(R.layout.main); + res = getResources(); + month = res.getStringArray(R.array.month); + wday = res.getStringArray(R.array.wday); + Log.v("WhereAmI","month length " + Integer.toString(month.length)); + Log.v("WhereAmI","wday length " + Integer.toString(wday.length)); + tv = (TextView)findViewById(R.id.tv); + tv.setText(R.string.greet); Log.v("WhereAmI", "created UI, about to start update task"); - new TimedUpdateTask().execute(5); + mHandler.postDelayed(updateClock, 1000); Log.v("WhereAmI", "created UI, update task created"); } + private Handler mHandler = new Handler(); + + private Runnable updateClock = new Runnable () { + public void run() { + long now = System.currentTimeMillis(); + Time tm = new Time(); + tm.set(now); + Log.v("WhereAmI", "weekday is" + Integer.toString(tm.weekDay)); + Log.v("WhereAmI", "month is" + Integer.toString(tm.month)); + tv.setText( + wday[tm.weekDay] + + tm.format(", %d ") + + month[tm.month] + + tm.format(" %Y") + + tm.format(", %H:%M%:%S")); + tm.second++; + long next = tm.toMillis(false); + tv.append("\n" + Long.toString(next-now+1)); + + // new TimedUpdateTask().execute(5); // for delayed execution + mHandler.postDelayed(this, next-now+1); + } + }; + private class TimedUpdateTask extends AsyncTask { @Override protected String doInBackground(Integer... howlong) { @@ -40,9 +80,8 @@ public class WhereAmI extends Activity @Override protected void onPostExecute(String str) { - TextView tv = (TextView)findViewById(R.id.tv); Log.v("TimedUpdateTask", "callback executing"); - tv.append("\n" + str); + tv.setText(str); } } }