]> www.average.org Git - WhereAmI.git/blobdiff - src/org/average/whereami/WhereAmI.java
add options menu
[WhereAmI.git] / src / org / average / whereami / WhereAmI.java
index aa980ecf58a0683dafc057a9dfb33aa94d2b0366..2323f5421f0800c2d3c90175d432055144af8f4f 100644 (file)
@@ -16,6 +16,9 @@ import android.content.res.Resources;
 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;
@@ -53,6 +56,12 @@ public class WhereAmI extends Activity
                     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) {
@@ -65,6 +74,10 @@ public class WhereAmI extends Activity
             task = new BgUpdate();
             task.execute();
         }
+
+        public void cancel() {
+            task.cancel(true);
+        }
     }
     private UpdateTarget[] ut;
 
@@ -124,14 +137,17 @@ public class WhereAmI extends Activity
         public void run() {
             Log.w("WhereAmI", "resetInfo starting");
             unregisterReceiver(connChanged);
-            boolean wifion = wifiman.setWifiEnabled(false);
-            Log.w("WhereAmI", "disabling wifi result " + wifion);
             if (runningtasks > 0) {
+                for (int i = 0; i < ut.length; i++) {
+                    ut[i].cancel();
+                }
                 Time tm = new Time();
                 tm.setToNow();
                 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);
         }
     };
 
@@ -204,4 +220,27 @@ public class WhereAmI extends Activity
         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");
+            return true;
+        default:
+            return super.onOptionsItemSelected(item);
+        }
+    }
 }