]> www.average.org Git - WhereAmI.git/blobdiff - src/org/average/whereami/WhereAmI.java
time & date display; final layout
[WhereAmI.git] / src / org / average / whereami / WhereAmI.java
index 11867938dfed201f1baca8a0cd6d9f36b6d51766..20812aa04ecabf6fcedc3d8f0ad87bc22307de7e 100644 (file)
@@ -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);
         }
     }
 }