]> www.average.org Git - WhereAmI.git/blobdiff - src/org/average/whereami/WhereAmI.java
make accessProtectedResource a method
[WhereAmI.git] / src / org / average / whereami / WhereAmI.java
index 953fcc92bb42c1ee07a0263d930eb2d290452662..c08453a28057b4b665fc28df5863277451849347 100644 (file)
@@ -3,10 +3,11 @@ package org.average.whereami;
 import org.average.whereami.WhereAmIprefs;
 import org.average.whereami.Oracle;
 import org.average.whereami.PhoneLog;
-import org.average.whereami.Location;
+import org.average.whereami.LastLocation;
 
 import android.app.Activity;
 import android.net.wifi.WifiManager;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.AsyncTask;
 import android.os.Handler;
@@ -31,11 +32,14 @@ import android.widget.TextView;
 
 public class WhereAmI extends Activity
 {
+    final String TAG = getClass().getName();
+
     private WifiManager wifiman;
     private Boolean managewifi = false;
     private Long updatedelay = 60000L;
     private Integer runningtasks = 0;
     private SharedPreferences prefs;
+    private PersistentStore store;
 
     private class UpdateTarget {
         private TextView tv;
@@ -45,28 +49,30 @@ public class WhereAmI extends Activity
         private class BgUpdate extends AsyncTask<Void, Void, String> {
             @Override
             protected String doInBackground(Void... params) {
-                Log.w("WhereAmI", "BgUpdate " + updater + " starting");
+                Log.v(TAG, "BgUpdate " + updater + " starting");
                 return updater.getResult();
             }
         
             @Override
             protected void onPostExecute(String str) {
-                Log.w("WhereAmI", "BgUpdate callback executing");
+                Log.v(TAG, "BgUpdate callback executing");
                 tv.setText(str);
                 runningtasks--;
                 if (runningtasks <= 0) {
-                    boolean wifion = wifiman.setWifiEnabled(false);
-                    Log.w("WhereAmI", "disabling wifi result " + wifion);
+                    if (managewifi) {
+                        boolean wifion = wifiman.setWifiEnabled(false);
+                        Log.v(TAG, "disabling wifi result " + wifion);
+                    }
                     Time tm = new Time();
                     tm.setToNow();
                     tvs.setText(R.string.lasttry);
-                    tvs.append(tm.format(" %d/%m/%Y %H:%M:%S"));
+                    tvs.append(tm.format(" %d/%m/%Y %H:%M"));
                 }
             }
 
             @Override
             protected void onCancelled() {
-                Log.w("WhereAmI", "BgUpdate callback cancelled");
+                Log.v(TAG, "BgUpdate callback cancelled");
                 runningtasks--;
             }
         }
@@ -129,28 +135,28 @@ public class WhereAmI extends Activity
 
     private Runnable updateInfo = new Runnable () {
         public void run() {
-            Log.w("WhereAmI", "updateInfo starting");
+            Log.v(TAG, "updateInfo starting");
             if (managewifi) {
                 IntentFilter intentFilter =
                     new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
                 registerReceiver(connChanged,intentFilter);
                 connChangedRegistered = true;
                 boolean wifion = wifiman.setWifiEnabled(true);
-                Log.w("WhereAmI", "enabling wifi result " + wifion);
+                Log.v(TAG, "enabling wifi result " + wifion);
             } else {
                 for (int i = 0; i < ut.length; i++) {
                     runningtasks++;
                     ut[i].launch();
                 }
             }
-            mHandler.postDelayed(resetInfo, updatedelay);
-            mHandler.postDelayed(this, 60000);
+            mHandler.postDelayed(resetInfo, 50000);
+            mHandler.postDelayed(this, updatedelay);
         }
     };
 
     private Runnable resetInfo = new Runnable () {
         public void run() {
-            Log.w("WhereAmI", "resetInfo starting");
+            Log.v(TAG, "resetInfo starting");
             if (connChangedRegistered) {
                 unregisterReceiver(connChanged);
                 connChangedRegistered = false;
@@ -166,7 +172,7 @@ public class WhereAmI extends Activity
             }
             if (managewifi) {
                 boolean wifion = wifiman.setWifiEnabled(false);
-                Log.w("WhereAmI", "disabling wifi result " + wifion);
+                Log.v(TAG, "disabling wifi result " + wifion);
             }
         }
     };
@@ -180,7 +186,7 @@ public class WhereAmI extends Activity
             NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
             boolean isConnected = activeNetwork != null &&
                                   activeNetwork.isConnectedOrConnecting();
-            Log.w("WhereAmI", "Connectivity changed to " + isConnected);
+            Log.v(TAG, "Connectivity changed to " + isConnected);
             if (isConnected) {
                 for (int i = 0; i < ut.length; i++) {
                     runningtasks++;
@@ -194,6 +200,16 @@ public class WhereAmI extends Activity
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.FROYO) {
+            Log.v(TAG, "Disabling keepalive for build version " +
+                       Build.VERSION.SDK_INT);
+            System.setProperty("http.keepAlive", "false");
+        } else {
+            Log.v(TAG, "Post-Froyo version " +
+                        Build.VERSION.SDK_INT);
+       }
+        prefs = PreferenceManager.getDefaultSharedPreferences(this);
+        store = new PersistentStore(prefs);
         wifiman = (WifiManager)getSystemService(Context.WIFI_SERVICE);
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
@@ -206,25 +222,27 @@ public class WhereAmI extends Activity
         tvs = (TextView)findViewById(R.id.timestamp);
        ut = new UpdateTarget[] {
             new UpdateTarget((TextView)findViewById(R.id.location),
-                             new PhoneLog()),
+                             new PhoneLog(res, store)),
             new UpdateTarget((TextView)findViewById(R.id.phonecall),
-                             new Location())
+                             new LastLocation(res, store))
         };
-        Log.w("WhereAmI", "created UI, about to start update task");
+        Log.v(TAG, "created UI, about to start update task");
        mHandler.post(updateClock);
        mHandler.post(updateCal);
        mHandler.post(updateInfo);
-        Log.w("WhereAmI", "created UI, update task created");
+        Log.v(TAG, "created UI, update task created");
     }
 
     /** Called when reactivated */
     @Override
     public void onResume() {
         super.onResume();
-        prefs = PreferenceManager.getDefaultSharedPreferences(this);
         boolean fullscreen = prefs.getBoolean("fullscreen", false);
         managewifi = prefs.getBoolean("managewifi", false);
         updatedelay = Long.parseLong(prefs.getString("updateperiod", "1200000"));
+        Log.v("WhereAmI", "fullscreen: " + fullscreen +
+                          ", managewifi: " + managewifi +
+                          ", updatedelay: " + updatedelay);
         if (fullscreen) {
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
             getWindow().clearFlags(WindowManager.LayoutParams.
@@ -238,14 +256,14 @@ public class WhereAmI extends Activity
     @Override
     public void onPause() {
         super.onPause();
-        Log.w("WhereAmI", "going background");
+        Log.v(TAG, "going background");
     }
 
     /** Called when the activity is destroyed. */
     @Override
     public void onDestroy() {
         super.onDestroy();
-        Log.w("WhereAmI", "going down");
+        Log.v(TAG, "going down");
        mHandler.removeCallbacks(updateClock);
        mHandler.removeCallbacks(updateCal);
        mHandler.removeCallbacks(updateInfo);
@@ -253,8 +271,10 @@ public class WhereAmI extends Activity
             unregisterReceiver(connChanged);
             connChangedRegistered = false;
         }
-        boolean wifion = wifiman.setWifiEnabled(false);
-        Log.w("WhereAmI", "disabling wifi result " + wifion);
+        if (managewifi) {
+            boolean wifion = wifiman.setWifiEnabled(false);
+            Log.v(TAG, "disabling wifi result " + wifion);
+        }
     }
 
     /** Called when the menu is activated. */
@@ -272,8 +292,12 @@ public class WhereAmI extends Activity
         case R.id.quit:
             finish();
             return true;
+        case R.id.authorize:
+            Log.v(TAG, "authorize requested");
+            startActivity(new Intent(this, Authorize.class));
+            return true;
         case R.id.settings:
-            Log.w("WhereAmI", "settings requested");
+            Log.v(TAG, "settings requested");
             startActivity(new Intent(this, WhereAmIprefs.class));
             return true;
         default: