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;
import android.content.Context;
import android.content.res.Resources;
import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
import android.text.format.Time;
import android.util.Log;
import android.view.View;
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<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
}
}
- public UpdateTarget(TextView tv, Integer updater) {
+ public UpdateTarget(TextView tv, Oracle updater) {
this.tv = tv;
this.updater = updater;
}
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);
- mHandler.postDelayed(resetInfo, 30000);
+ 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);
}
};
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);
+ }
}
};
/** Called when the activity is first created. */
@Override
- public void onCreate(Bundle savedInstanceState)
- {
+ public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- prefs = getSharedPreferences("WhereAmI", MODE_PRIVATE);
wifiman = (WifiManager)getSystemService(Context.WIFI_SERVICE);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- boolean fullscreen = prefs.getBoolean("fullscreen", false);
- if (fullscreen) {
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
- getWindow().clearFlags(WindowManager.LayoutParams.
- FLAG_FORCE_NOT_FULLSCREEN);
- }
setContentView(R.layout.main);
res = getResources();
month = res.getStringArray(R.array.month);
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, 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"));
+ if (fullscreen) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ getWindow().clearFlags(WindowManager.LayoutParams.
+ FLAG_FORCE_NOT_FULLSCREEN);
+ } else {
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ }
+ }
+
/** Called when put to background */
@Override
- public void onPause()
- {
+ public void onPause() {
super.onPause();
Log.w("WhereAmI", "going background");
}
/** Called when the activity is destroyed. */
@Override
- public void onDestroy()
- {
+ public void onDestroy() {
super.onDestroy();
Log.w("WhereAmI", "going down");
mHandler.removeCallbacks(updateClock);