diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index a7a55a3..1fc7f5b 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -45,5 +45,6 @@ Por favor espere, buscando dispositivo de control Conectado con el dispositivo de control Falló la conexión con el dispositivo de control + La cámara es null! diff --git a/res/values/strings.xml b/res/values/strings.xml index c789648..c3e1c60 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -45,5 +45,6 @@ Please wait, looking for control device Connected with the control device Could no connect with the control device + Camera is null! \ No newline at end of file diff --git a/src/ve/ucv/ciens/ccg/nxtcam/CamActivity.java b/src/ve/ucv/ciens/ccg/nxtcam/CamActivity.java index e22bf01..7bcae9a 100644 --- a/src/ve/ucv/ciens/ccg/nxtcam/CamActivity.java +++ b/src/ve/ucv/ciens/ccg/nxtcam/CamActivity.java @@ -19,6 +19,7 @@ import ve.ucv.ciens.ccg.nxtcam.camera.CameraPreview; import ve.ucv.ciens.ccg.nxtcam.network.ImageTransferThread; import ve.ucv.ciens.ccg.nxtcam.network.LCPThread; import ve.ucv.ciens.ccg.nxtcam.utils.Logger; +import ve.ucv.ciens.ccg.nxtcam.utils.ProjectConstants; import android.app.Activity; import android.content.Intent; import android.hardware.Camera; @@ -109,6 +110,13 @@ public class CamActivity extends Activity{ // TODO: Destroy the network threads. imThread = null; } + + @Override + public void onBackPressed(){ + Intent result = new Intent(); + setResult(Activity.RESULT_OK, result); + finish(); + } /****************** * My own methods * @@ -122,7 +130,9 @@ public class CamActivity extends Activity{ Logger.log_d(TAG, CLASS_NAME + ".startCameraPreview() :: Camera and content view set."); }else{ Logger.log_wtf(TAG, CLASS_NAME + ".startCameraPreview() :: CAMERA IS NULL!"); - System.exit(1); + Intent result = new Intent(); + setResult(ProjectConstants.RESULT_CAMERA_FAILURE, result); + finish(); } } diff --git a/src/ve/ucv/ciens/ccg/nxtcam/MainActivity.java b/src/ve/ucv/ciens/ccg/nxtcam/MainActivity.java index bda3060..74f0d3c 100644 --- a/src/ve/ucv/ciens/ccg/nxtcam/MainActivity.java +++ b/src/ve/ucv/ciens/ccg/nxtcam/MainActivity.java @@ -60,6 +60,7 @@ public class MainActivity extends Activity implements WifiOnDialogListener, Conn private final String TAG = "NXTCAM_MAIN"; private final String CLASS_NAME = MainActivity.class.getSimpleName(); private static final int REQUEST_ENABLE_BT = 1; + private static final int REQUEST_CAM_ACTIVITY = 2; // Gui components private Button startButton; @@ -73,6 +74,7 @@ public class MainActivity extends Activity implements WifiOnDialogListener, Conn // Variables. private boolean wifiOnByMe; private boolean btOnByMe; + private boolean changingActivity; @Override protected void onCreate(Bundle savedInstanceState) { @@ -82,6 +84,7 @@ public class MainActivity extends Activity implements WifiOnDialogListener, Conn // Set up fields. wifiOnByMe = false; btOnByMe = false; + changingActivity = false; // Set up gui components. startButton = (Button)findViewById(R.id.startButton); @@ -115,11 +118,12 @@ public class MainActivity extends Activity implements WifiOnDialogListener, Conn public void onPause(){ super.onPause(); - if(btManager.isBTEnabled() && btOnByMe) - btManager.disableBT(); - - if(wifiManager.isWifiEnabled() && wifiOnByMe) - setWifi(false); + if(!changingActivity){ + if(btManager.isBTEnabled() && btOnByMe) + btManager.disableBT(); + if(wifiManager.isWifiEnabled() && wifiOnByMe) + setWifi(false); + } } @Override @@ -142,11 +146,18 @@ public class MainActivity extends Activity implements WifiOnDialogListener, Conn } protected void onActivityResult(int request, int result, Intent data){ - if(request == REQUEST_ENABLE_BT && result == RESULT_OK){ - if(!wifiManager.isWifiEnabled()) - enableWifi(); - }else{ - Toast.makeText(this, R.string.bt_on_fail, Toast.LENGTH_LONG).show(); + if(request == REQUEST_ENABLE_BT){ + if(result == RESULT_OK){ + if(!wifiManager.isWifiEnabled()) + enableWifi(); + }else{ + Toast.makeText(this, R.string.bt_on_fail, Toast.LENGTH_SHORT).show(); + } + }else if(request == REQUEST_CAM_ACTIVITY){ + changingActivity = false; + if(result == ProjectConstants.RESULT_CAMERA_FAILURE){ + Toast.makeText(this, R.string.cam_fail, Toast.LENGTH_SHORT).show(); + } } } @@ -160,8 +171,9 @@ public class MainActivity extends Activity implements WifiOnDialogListener, Conn if(serverFound){ Logger.log_d(TAG, CLASS_NAME + ".startCamActivity() :: Launching camera activity."); Intent intent = new Intent(this, CamActivity.class); + changingActivity = true; intent.putExtra("address", ipAddress); - startActivity(intent); + startActivityForResult(intent, REQUEST_CAM_ACTIVITY); }else{ Logger.log_d(TAG, CLASS_NAME + ".startCamActivity() :: Cannot launch camera activity."); Toast.makeText(this, R.string.badIpToast, Toast.LENGTH_SHORT).show(); diff --git a/src/ve/ucv/ciens/ccg/nxtcam/utils/ProjectConstants.java b/src/ve/ucv/ciens/ccg/nxtcam/utils/ProjectConstants.java index 658a20c..36eae22 100644 --- a/src/ve/ucv/ciens/ccg/nxtcam/utils/ProjectConstants.java +++ b/src/ve/ucv/ciens/ccg/nxtcam/utils/ProjectConstants.java @@ -17,7 +17,10 @@ package ve.ucv.ciens.ccg.nxtcam.utils; import java.util.UUID; +import android.app.Activity; + public abstract class ProjectConstants { + // Network related constants. public static final int SERVER_UDP_PORT = 8889; public static final int SERVER_TCP_PORT_1 = 9989; public static final int SERVER_TCP_PORT_2 = 9990; @@ -25,5 +28,8 @@ public abstract class ProjectConstants { public static final String OUI_LEGO = "00:16:53"; public static final String MULTICAST_ADDRESS = "230.0.0.1"; + // Activity results. + public static final int RESULT_CAMERA_FAILURE = Activity.RESULT_FIRST_USER + 1; + public static final boolean DEBUG = true; }