summaryrefslogtreecommitdiff
path: root/src/com/android/camera/VideoModule.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/VideoModule.java')
-rw-r--r--src/com/android/camera/VideoModule.java43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index cdfdff10..0fecca63 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -462,14 +462,13 @@ public class VideoModule implements CameraModule,
// ignore
}
- Thread startPreviewThread = new Thread(new Runnable() {
+ readVideoPreferences();
+ new Thread(new Runnable() {
@Override
public void run() {
- readVideoPreferences();
startPreview();
}
- });
- startPreviewThread.start();
+ }).start();
initializeControlByIntent();
initializeOverlay();
@@ -481,20 +480,6 @@ public class VideoModule implements CameraModule,
setOrientationIndicator(0, false);
setDisplayOrientation();
- // Make sure preview is started.
- try {
- startPreviewThread.join();
- if (mActivity.mOpenCameraFail) {
- Util.showErrorAndFinish(mActivity, R.string.cannot_connect_camera);
- return;
- } else if (mActivity.mCameraDisabled) {
- Util.showErrorAndFinish(mActivity, R.string.camera_disabled);
- return;
- }
- } catch (InterruptedException ex) {
- // ignore
- }
-
showTimeLapseUI(mCaptureTimeLapse);
initializeVideoSnapshot();
resizeForPreviewAspectRatio();
@@ -844,7 +829,12 @@ public class VideoModule implements CameraModule,
}
readVideoPreferences();
resizeForPreviewAspectRatio();
- startPreview();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ startPreview();
+ }
+ }).start();
}
// Initializing it here after the preview is started.
@@ -892,6 +882,8 @@ public class VideoModule implements CameraModule,
}
}
+ mPreviewing = true;
+
setDisplayOrientation();
mActivity.mCameraDevice.setDisplayOrientation(mCameraDisplayOrientation);
setCameraParameters();
@@ -912,9 +904,18 @@ public class VideoModule implements CameraModule,
} catch (Throwable ex) {
closeCamera();
throw new RuntimeException("startPreview failed", ex);
+ } finally {
+ mActivity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ if (mActivity.mOpenCameraFail) {
+ Util.showErrorAndFinish(mActivity, R.string.cannot_connect_camera);
+ } else if (mActivity.mCameraDisabled) {
+ Util.showErrorAndFinish(mActivity, R.string.camera_disabled);
+ }
+ }
+ });
}
-
- mPreviewing = true;
}
private void stopPreview() {