]> rtime.felk.cvut.cz Git - orte.git/commitdiff
ROBOT_DEMO: allow managers setup without restart
authorMartin Vajnar <martin.vajnar@gmail.com>
Tue, 27 Aug 2013 13:40:30 +0000 (15:40 +0200)
committerPavel Pisa <pisa@cmp.felk.cvut.cz>
Mon, 23 Sep 2013 09:06:28 +0000 (11:06 +0200)
orte/Robot_Demo/res/menu/activity_main.xml
orte/Robot_Demo/src/org/ocera/orte/demo/MainActivity.java

index 0c53199576c77913328c54c6a71d650398fafeb8..793a6c00ed8c1bae48396ea3d911c347481e2880 100644 (file)
         android:orderInCategory="6"
         android:showAsAction="never">
     </item>
+    
+    <item android:id="@+id/managers"
+        android:title="Fellow managers"
+        android:orderInCategory="7"
+        android:showAsAction="never">
+    </item>
 
     <item android:id="@+id/about"
         android:title="About"
-        android:orderInCategory="7"
+        android:orderInCategory="8"
         android:showAsAction="never">
     </item>
 
index f74ab0f943a4128502e1e1c976fa22229fca1f7e..644e01afd5767bb59a34f8727036318bf2f8eb68 100644 (file)
@@ -36,6 +36,7 @@ public class MainActivity extends Activity {
        private AlertDialog managersDialog = null;
        private EditText managersField = null;
        private TextView ownIP = null;
+       private NetworkInfo wifiInfoTask = null; 
        static EditText voltage33 = null;
        static EditText voltage50 = null;
        static EditText voltage80 = null;
@@ -201,7 +202,6 @@ public class MainActivity extends Activity {
                managersField = (EditText)managersView.findViewById(R.id.managers);
                managersField.setText(mgrs);
                
-               NetworkInfo wifiInfoTask = new NetworkInfo();
                managersBuilder.setCancelable(false);
                managersBuilder.setView(managersView);
                managersBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@@ -213,13 +213,11 @@ public class MainActivity extends Activity {
                                editor.putString("managers", mgrs);
                                editor.commit();
                                
-                       manager = new Manager(mgrs);
-
-                       appDomain = new DomainApp();
-                       magnet_cmd = new MagnetCmdPublish(appDomain);
-                       magnet_cmd.start();
-                       crane_cmd = new CraneCmdPublish(appDomain);
-                       crane_cmd.start();
+                               if (manager != null)
+                                       manager.destroy();
+                               manager = new Manager(mgrs);
+                               
+                               wifiInfoTask.cancel(false);
                                managersDialog.dismiss();
                        }
                });
@@ -231,8 +229,13 @@ public class MainActivity extends Activity {
         
         hokuyo_view = (HokuyoView) findViewById(R.id.hokuyo_view);
         
-        managersDialog.show();
-               wifiInfoTask.execute();
+        manager = new Manager(mgrs);
+
+        appDomain = new DomainApp();
+        magnet_cmd = new MagnetCmdPublish(appDomain);
+        magnet_cmd.start();
+        crane_cmd = new CraneCmdPublish(appDomain);
+        crane_cmd.start();
     }
     
        @Override
@@ -332,6 +335,12 @@ public class MainActivity extends Activity {
                        pwr_voltage.start();
                        voltageDialog.show();
                }
+               else if (item.getTitle().equals("Fellow managers")) {
+                       wifiInfoTask = new NetworkInfo();
+
+                       managersDialog.show();
+                       wifiInfoTask.execute();
+               }
                else if (item.getTitle().equals("About")) {
                        aboutDialog.show();
                }
@@ -359,7 +368,7 @@ public class MainActivity extends Activity {
     private class NetworkInfo extends AsyncTask<Void, String, Void> {
        @Override
        protected Void doInBackground(Void... arg0) {
-               while (managersDialog.isShowing()) {
+               while (!isCancelled()) {
                        WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
                        int ip = wifiInfo.getIpAddress();
                        String ipAddress = Formatter.formatIpAddress(ip);