X-Git-Url: http://www.average.org/gitweb/?p=WhereAmI.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fwhereami%2FWhereAmI.java;h=953fcc92bb42c1ee07a0263d930eb2d290452662;hp=49abbe2919af7262b22fcabe30b5629f9bfc2b43;hb=f0a40c9526244dbc9369480f2f7056771dfa40c6;hpb=4e67198f228c17d21e071e7f89f67c42e213bc11 diff --git a/src/org/average/whereami/WhereAmI.java b/src/org/average/whereami/WhereAmI.java index 49abbe2..953fcc9 100644 --- a/src/org/average/whereami/WhereAmI.java +++ b/src/org/average/whereami/WhereAmI.java @@ -1,13 +1,15 @@ 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.os.SystemClock; 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; + private Boolean managewifi = false; 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 { @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 @@ -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; } @@ -129,12 +130,19 @@ public class WhereAmI extends Activity 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); } @@ -156,8 +164,10 @@ public class WhereAmI extends Activity 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[] { - 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); @@ -211,6 +223,7 @@ public class WhereAmI extends Activity 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);