]> www.average.org Git - WhereAmI.git/blobdiff - src/org/average/whereami/WhereAmI.java
clean worker interface
[WhereAmI.git] / src / org / average / whereami / WhereAmI.java
index 49abbe2919af7262b22fcabe30b5629f9bfc2b43..953fcc92bb42c1ee07a0263d930eb2d290452662 100644 (file)
@@ -1,13 +1,15 @@
 package org.average.whereami;
 
 import org.average.whereami.WhereAmIprefs;
 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 android.app.Activity;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
 import android.os.AsyncTask;
 import android.os.Handler;
 
 import android.app.Activity;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
 import android.os.AsyncTask;
 import android.os.Handler;
-import android.os.SystemClock;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.content.BroadcastReceiver;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.content.BroadcastReceiver;
@@ -30,22 +32,21 @@ import android.widget.TextView;
 public class WhereAmI extends Activity
 {
     private WifiManager wifiman;
 public class WhereAmI extends Activity
 {
     private WifiManager wifiman;
+    private Boolean managewifi = false;
     private Long updatedelay = 60000L;
     private Integer runningtasks = 0;
     private SharedPreferences prefs;
 
     private class UpdateTarget {
         private TextView tv;
     private Long updatedelay = 60000L;
     private Integer runningtasks = 0;
     private SharedPreferences prefs;
 
     private class UpdateTarget {
         private TextView tv;
-        private Integer updater; // will be the function/object
+        private Oracle updater;
         private BgUpdate task;
 
         private class BgUpdate extends AsyncTask<Void, Void, String> {
             @Override
             protected String doInBackground(Void... params) {
                 Log.w("WhereAmI", "BgUpdate " + updater + " starting");
         private BgUpdate task;
 
         private class BgUpdate extends AsyncTask<Void, Void, String> {
             @Override
             protected String doInBackground(Void... params) {
                 Log.w("WhereAmI", "BgUpdate " + updater + " starting");
-                SystemClock.sleep(5000); // real job do be done here
-                Log.w("WhereAmI", "BgUpdate about to return");
-                return "5 seconds passed in " + updater;
+                return updater.getResult();
             }
         
             @Override
             }
         
             @Override
@@ -70,7 +71,7 @@ public class WhereAmI extends Activity
             }
         }
 
             }
         }
 
-        public UpdateTarget(TextView tv, Integer updater) {
+        public UpdateTarget(TextView tv, Oracle updater) {
             this.tv = tv;
             this.updater = updater;
         }
             this.tv = tv;
             this.updater = updater;
         }
@@ -129,12 +130,19 @@ public class WhereAmI extends Activity
     private Runnable updateInfo = new Runnable () {
         public void run() {
             Log.w("WhereAmI", "updateInfo starting");
     private Runnable updateInfo = new Runnable () {
         public void run() {
             Log.w("WhereAmI", "updateInfo starting");
-            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);
+            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);
+            } else {
+                for (int i = 0; i < ut.length; i++) {
+                    runningtasks++;
+                    ut[i].launch();
+                }
+            }
             mHandler.postDelayed(resetInfo, updatedelay);
             mHandler.postDelayed(this, 60000);
         }
             mHandler.postDelayed(resetInfo, updatedelay);
             mHandler.postDelayed(this, 60000);
         }
@@ -156,8 +164,10 @@ public class WhereAmI extends Activity
                 tvs.setText(R.string.failtry);
                 tvs.append(tm.format(" %d/%m/%Y %H:%M:%S"));
             }
                 tvs.setText(R.string.failtry);
                 tvs.append(tm.format(" %d/%m/%Y %H:%M:%S"));
             }
-            boolean wifion = wifiman.setWifiEnabled(false);
-            Log.w("WhereAmI", "disabling wifi result " + wifion);
+            if (managewifi) {
+                boolean wifion = wifiman.setWifiEnabled(false);
+                Log.w("WhereAmI", "disabling wifi result " + wifion);
+            }
         }
     };
 
         }
     };
 
@@ -195,8 +205,10 @@ public class WhereAmI extends Activity
         tvd = (TextView)findViewById(R.id.date);
         tvs = (TextView)findViewById(R.id.timestamp);
        ut = new UpdateTarget[] {
         tvd = (TextView)findViewById(R.id.date);
         tvs = (TextView)findViewById(R.id.timestamp);
        ut = new UpdateTarget[] {
-            new UpdateTarget((TextView)findViewById(R.id.location),  1),
-            new UpdateTarget((TextView)findViewById(R.id.phonecall), 2)
+            new UpdateTarget((TextView)findViewById(R.id.location),
+                             new PhoneLog()),
+            new UpdateTarget((TextView)findViewById(R.id.phonecall),
+                             new Location())
         };
         Log.w("WhereAmI", "created UI, about to start update task");
        mHandler.post(updateClock);
         };
         Log.w("WhereAmI", "created UI, about to start update task");
        mHandler.post(updateClock);
@@ -211,6 +223,7 @@ public class WhereAmI extends Activity
         super.onResume();
         prefs = PreferenceManager.getDefaultSharedPreferences(this);
         boolean fullscreen = prefs.getBoolean("fullscreen", false);
         super.onResume();
         prefs = PreferenceManager.getDefaultSharedPreferences(this);
         boolean fullscreen = prefs.getBoolean("fullscreen", false);
+        managewifi = prefs.getBoolean("managewifi", false);
         updatedelay = Long.parseLong(prefs.getString("updateperiod", "1200000"));
         if (fullscreen) {
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
         updatedelay = Long.parseLong(prefs.getString("updateperiod", "1200000"));
         if (fullscreen) {
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);