From 07f1c5f8d730cd35c70eab9203e84369775926ba Mon Sep 17 00:00:00 2001 From: n8fr8 Date: Sat, 20 Jan 2018 06:26:20 -0500 Subject: [PATCH] fix more camera state issues found in Android 4.1 --- src/main/java/org/havenapp/main/MonitorActivity.java | 10 ---------- .../java/org/havenapp/main/sensors/motion/Preview.java | 7 +++++-- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/havenapp/main/MonitorActivity.java b/src/main/java/org/havenapp/main/MonitorActivity.java index 3df6d6e7..268397f3 100644 --- a/src/main/java/org/havenapp/main/MonitorActivity.java +++ b/src/main/java/org/havenapp/main/MonitorActivity.java @@ -174,16 +174,6 @@ private void configCamera() { mFragmentCamera.stopCamera(); startActivityForResult(new Intent(this, CameraConfigureActivity.class),REQUEST_CAMERA); - /** - String camera = preferences.getCamera(); - if (camera.equals(PreferenceManager.FRONT)) - preferences.setCamera(PreferenceManager.BACK); - else if (camera.equals(PreferenceManager.BACK)) - preferences.setCamera(PreferenceManager.FRONT); - - ((CameraFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_camera)).resetCamera(); - **/ - } diff --git a/src/main/java/org/havenapp/main/sensors/motion/Preview.java b/src/main/java/org/havenapp/main/sensors/motion/Preview.java index 17ef545a..58adba16 100644 --- a/src/main/java/org/havenapp/main/sensors/motion/Preview.java +++ b/src/main/java/org/havenapp/main/sensors/motion/Preview.java @@ -145,6 +145,8 @@ public void addListener(MotionAsyncTask.MotionListener listener) { */ public void surfaceCreated(SurfaceHolder holder) { + if (camera != null) + stopCamera(); /* * The Surface has been created, acquire the camera and tell it where * to draw. @@ -167,7 +169,6 @@ public void surfaceCreated(SurfaceHolder holder) { } break; case PreferenceManager.BACK: - camera = Camera.open(); cameraFacing = Camera.CameraInfo.CAMERA_FACING_BACK; break; @@ -346,7 +347,9 @@ public void stopCamera () // 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. - context.unbindService(mConnection); + if (serviceMessenger != null) + context.unbindService(mConnection); + camera.setPreviewCallback(null); camera.stopPreview(); camera.release();