X-Git-Url: http://www.average.org/gitweb/?p=WhereAmI.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fwhereami%2FWhereAmI.java;h=20812aa04ecabf6fcedc3d8f0ad87bc22307de7e;hp=11867938dfed201f1baca8a0cd6d9f36b6d51766;hb=ca6debb0783f0cd561b042df3dd0495654a4a503;hpb=a28bb6c7a3376b82a726835bbc36f32031c4b095 diff --git a/src/org/average/whereami/WhereAmI.java b/src/org/average/whereami/WhereAmI.java index 1186793..20812aa 100644 --- a/src/org/average/whereami/WhereAmI.java +++ b/src/org/average/whereami/WhereAmI.java @@ -5,6 +5,8 @@ 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; @@ -13,7 +15,10 @@ import android.widget.TextView; public class WhereAmI extends Activity { - private TextView tv; + private TextView tv, tvt, tvd; + private Resources res; + private String[] month; + private String[] wday; /** Called when the activity is first created. */ @Override @@ -24,9 +29,16 @@ public class WhereAmI extends Activity getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); setContentView(R.layout.main); - tv = (TextView)findViewById(R.id.tv); + res = getResources(); + month = res.getStringArray(R.array.month); + wday = res.getStringArray(R.array.wday); + tv = (TextView)findViewById(R.id.location); + tvt = (TextView)findViewById(R.id.time); + tvd = (TextView)findViewById(R.id.date); Log.v("WhereAmI", "created UI, about to start update task"); - mHandler.postDelayed(updateClock, 2000); + updateClock.run(); + updateCal.run(); + updateInfo.run(); Log.v("WhereAmI", "created UI, update task created"); } @@ -34,11 +46,42 @@ public class WhereAmI extends Activity private Runnable updateClock = new Runnable () { public void run() { - long millis = System.currentTimeMillis(); - Log.v("updateClock", "executing"); - // new TimedUpdateTask().execute(5); // for delayed execution - tv.setText(Long.toString(millis)); - mHandler.postDelayed(this, 2000); + long now = System.currentTimeMillis(); + Time tm = new Time(); + tm.set(now); + tvt.setText(tm.format("%H:%M")); + tm.set(now + 60000); + tm.second=0; + long next = tm.toMillis(false); + mHandler.postDelayed(this, next-now+1); + } + }; + + private Runnable updateCal = new Runnable () { + public void run() { + long now = System.currentTimeMillis(); + Time tm = new Time(); + tm.set(now); + tvd.setText( + wday[tm.weekDay] + + tm.format("\n%d ") + + month[tm.month] + + tm.format(" %Y")); + tm.set(now + 86400000); + tm.hour=0; + tm.minute=0; + tm.second=0; + long next = tm.toMillis(false); + mHandler.postDelayed(this, next-now+1); + } + }; + + private Runnable updateInfo = new Runnable () { + public void run() { + Log.v("updateInfo", "starting"); + tv.setText(R.string.updating); + new TimedUpdateTask().execute(5); // for delayed execution + mHandler.postDelayed(this, 10000); } }; @@ -58,7 +101,7 @@ public class WhereAmI extends Activity @Override protected void onPostExecute(String str) { Log.v("TimedUpdateTask", "callback executing"); - tv.setText(str); + tv.setText(R.string.failure); } } }