summaryrefslogtreecommitdiff
path: root/navit/android/src/org/navitproject/navit/NavitCamera.java
diff options
context:
space:
mode:
Diffstat (limited to 'navit/android/src/org/navitproject/navit/NavitCamera.java')
-rw-r--r--navit/android/src/org/navitproject/navit/NavitCamera.java75
1 files changed, 45 insertions, 30 deletions
diff --git a/navit/android/src/org/navitproject/navit/NavitCamera.java b/navit/android/src/org/navitproject/navit/NavitCamera.java
index 709686b97..1df26081a 100644
--- a/navit/android/src/org/navitproject/navit/NavitCamera.java
+++ b/navit/android/src/org/navitproject/navit/NavitCamera.java
@@ -25,58 +25,73 @@ import android.view.SurfaceView;
import java.io.IOException;
+class NavitCamera extends SurfaceView implements SurfaceHolder.Callback {
-
-public class NavitCamera extends SurfaceView implements SurfaceHolder.Callback {
- SurfaceHolder mHolder;
- Camera mCamera;
-
-
+ private Camera mCamera;
+ private static final String TAG = "NavitCamera";
NavitCamera(Context context) {
super(context);
- mHolder = getHolder();
- mHolder.addCallback(this);
- mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
- Log.e("NavitCamera","Creator");
-
-
+ if (android.support.v4.content.ContextCompat.checkSelfPermission(context,
+ android.Manifest.permission.CAMERA)
+ != android.content.pm.PackageManager.PERMISSION_GRANTED) {
+ Log.e(TAG,"No permission to access camera");
+ return;
+ }
+ SurfaceHolder holder;
+ holder = getHolder();
+ holder.addCallback(this);
+ holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
+ Log.v(TAG,"Creator");
}
+ /**
+ * {@inheritDoc}
+ *
+ * <p>acquire the camera and tell it where to draw.</p>
+ */
public void surfaceCreated(SurfaceHolder holder) {
- // The Surface has been created, acquire the camera and tell it where
- // to draw.
- try {
- mCamera = Camera.open();
- mCamera.setPreviewDisplay(holder);
- } catch (IOException exception) {
- mCamera.release();
- mCamera = null;
- // TODO: add more exception handling logic here
+ if (mCamera != null) {
+ try {
+ mCamera = Camera.open();
+ mCamera.setPreviewDisplay(holder);
+ } catch (IOException exception) {
+ mCamera.release();
+ mCamera = null;
+ Log.e(TAG, "IOException");
+ }
+ Log.i(TAG, "surfaceCreated");
+ } else {
+ Log.e(TAG, "null camera");
}
- Log.e("NavitCamera","surfaceCreated");
}
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>stop the preview and release the camera.</p>
+ */
public void surfaceDestroyed(SurfaceHolder holder) {
- // Surface will be destroyed when we return, so stop the preview.
- // Because the CameraDevice object is not a shared resource, it's very
- // important to release it when the activity is paused.
mCamera.stopPreview();
mCamera = null;
- Log.e("NavitCamera","surfaceDestroyed");
+ Log.e(TAG,"surfaceDestroyed");
}
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>set up the camera with the new parameters.</p>
+ */
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
- // Now that the size is known, set up the camera parameters and begin
- // the preview.
- Log.e("NavitCamera","surfaceChanged " + w + "x" + h);
+ Log.e(TAG,"surfaceChanged " + w + "x " + h);
mCamera.stopPreview();
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(w, h);
mCamera.setParameters(parameters);
mCamera.startPreview();
}
-
}