package org.average.whereami;
+import org.average.whereami.WhereAmIprefs;
+
import android.app.Activity;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.content.IntentFilter;
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;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
public class WhereAmI extends Activity
{
private WifiManager wifiman;
+ private Long updatedelay = 60000L;
private Integer runningtasks = 0;
+ private SharedPreferences prefs;
private class UpdateTarget {
private TextView tv;
tvs.append(tm.format(" %d/%m/%Y %H:%M:%S"));
}
}
+
+ @Override
+ protected void onCancelled() {
+ Log.w("WhereAmI", "BgUpdate callback cancelled");
+ runningtasks--;
+ }
}
public UpdateTarget(TextView tv, Integer updater) {
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);
+ mHandler.postDelayed(resetInfo, updatedelay);
mHandler.postDelayed(this, 60000);
}
};
private Runnable resetInfo = new Runnable () {
public void run() {
Log.w("WhereAmI", "resetInfo starting");
- unregisterReceiver(connChanged);
+ if (connChangedRegistered) {
+ unregisterReceiver(connChanged);
+ connChangedRegistered = false;
+ }
if (runningtasks > 0) {
for (int i = 0; i < ut.length; i++) {
ut[i].cancel();
}
};
+ private boolean connChangedRegistered = false;
private final BroadcastReceiver connChanged = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
/** Called when the activity is first created. */
@Override
- public void onCreate(Bundle savedInstanceState)
- {
+ public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
wifiman = (WifiManager)getSystemService(Context.WIFI_SERVICE);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- //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);
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);
+ 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", "calling finish");
- finish();
+ 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);
mHandler.removeCallbacks(updateCal);
mHandler.removeCallbacks(updateInfo);
- //unregisterReceiver(connChanged);
+ if (connChangedRegistered) {
+ unregisterReceiver(connChanged);
+ connChangedRegistered = false;
+ }
boolean wifion = wifiman.setWifiEnabled(false);
Log.w("WhereAmI", "disabling wifi result " + wifion);
}
+
+ /** Called when the menu is activated. */
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.main_menu, menu);
+ return true;
+ }
+
+ /** Called when the menu item is selected */
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.quit:
+ finish();
+ return true;
+ case R.id.settings:
+ Log.w("WhereAmI", "settings requested");
+ startActivity(new Intent(this, WhereAmIprefs.class));
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
}