+ };
+
+ private boolean connChangedRegistered = false;
+ private final BroadcastReceiver connChanged = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ ConnectivityManager cm = (ConnectivityManager)context.
+ getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
+ boolean isConnected = activeNetwork != null &&
+ activeNetwork.isConnectedOrConnecting();
+ Log.v(TAG, "Connectivity changed to " + isConnected);
+ if (isConnected) {
+ for (int i = 0; i < ut.length; i++) {
+ runningtasks++;
+ ut[i].launch();
+ }
+ }
+ }
+ };
+
+ /** Called when the activity is first created. */
+ @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);
+ setContentView(R.layout.main);
+ res = getResources();
+ month = res.getStringArray(R.array.month);
+ wday = res.getStringArray(R.array.wday);
+ tvt = (TextView)findViewById(R.id.time);
+ tvd = (TextView)findViewById(R.id.date);
+ tvs = (TextView)findViewById(R.id.timestamp);
+ ut = new UpdateTarget[] {
+ new UpdateTarget((TextView)findViewById(R.id.phonecall),
+ new PhoneLog(res, store)),
+ new UpdateTarget((TextView)findViewById(R.id.location),
+ new LastLocation(res, store))
+ };
+ }
+
+ /** Called when reactivated */
+ @Override
+ public void onResume() {
+ super.onResume();
+ 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.
+ FLAG_FORCE_NOT_FULLSCREEN);
+ } else {
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ }
+ mHandler.post(updateClock);
+ mHandler.post(updateCal);
+ mHandler.post(updateInfo);
+ Log.v(TAG, "update tasks scheduled");
+ }
+
+ /** Called when put to background */
+ @Override
+ public void onPause() {
+ super.onPause();
+ Log.v(TAG, "going background");
+ resetInfo.run();
+ mHandler.removeCallbacks(updateClock);
+ mHandler.removeCallbacks(updateCal);
+ mHandler.removeCallbacks(updateInfo);
+ }
+
+ /** Called when the activity is destroyed. */
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ Log.v(TAG, "going down");
+ }
+
+ /** 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.authorize:
+ Log.v(TAG, "authorize requested");
+ startActivity(new Intent(this, Authorize.class));
+ return true;
+ case R.id.settings:
+ Log.v(TAG, "settings requested");
+ startActivity(new Intent(this, WhereAmIprefs.class));
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);