@Override
 public void onRequest(String req, String[] keys, String[] values, byte[] data) {
   String type = "text/text";
   if (req.equals("image.jpg")) type = "image/jpg";
   else if (req.equals("command.php")) {
     String message = new String(data);
     message = CellDroid.stripTimestampIfAny(message);
     if (!processCommand(message) && !celldroid.processCommand(message)) {
       CellDroidManager.sendDirectCommand(message);
     }
   }
   localHttpManager.setResponseByName(req, data, type);
 }
 @Override
 public void onDestroy() {
   super.onDestroy();
   if (progressDialog != null) {
     progressDialog.dismiss();
   }
   if (mEyesView != null) mEyesView.hide();
   celldroid.stopCellDroidService();
   if (localHttpManager != null) {
     localHttpManager.disconnect();
   }
 }
 @Override
 public void run() {
   int state = AbstractRobotControllerService.STATE_NONE;
   while (true) {
     state = celldroid.getState();
     if (state != AbstractRobotControllerService.STATE_NONE
         && state != AbstractRobotControllerService.STATE_STARTING) {
       break;
     }
     try {
       Thread.sleep(100);
     } catch (InterruptedException e) {
       e.printStackTrace();
     }
   }
   if (state == AbstractRobotControllerService.STATE_SUCCESS) {
     runOnUiThread(dialogHider);
   } else if (state == AbstractRobotControllerService.STATE_BLUETOOTH_FAIL) {
     runOnUiThread(bluetoothFailDialogRunnable);
   }
 }