summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/CaptureUI.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/CaptureUI.java')
-rw-r--r--src/com/android/camera/CaptureUI.java29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/com/android/camera/CaptureUI.java b/src/com/android/camera/CaptureUI.java
index 3d766fa37..71d39e067 100644
--- a/src/com/android/camera/CaptureUI.java
+++ b/src/com/android/camera/CaptureUI.java
@@ -136,15 +136,14 @@ public class CaptureUI implements FocusOverlayManager.FocusUI,
public void surfaceCreated(SurfaceHolder holder) {
Log.v(TAG, "surfaceCreated");
mSurfaceHolder = holder;
- mModule.onPreviewUIReady();
- mActivity.updateThumbnail(mThumbnail);
+ previewUIReady();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
Log.v(TAG, "surfaceDestroyed");
mSurfaceHolder = null;
- mModule.onPreviewUIDestroyed();
+ previewUIDestroyed();
}
};
@@ -172,19 +171,39 @@ public class CaptureUI implements FocusOverlayManager.FocusUI,
// SurfaceHolder callbacks
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+ Log.v(TAG, "surfaceChanged2");
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
+ Log.v(TAG, "surfaceCreated2");
mSurfaceHolder2 = holder;
+ previewUIReady();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
+ Log.v(TAG, "surfaceDestroyed2");
mSurfaceHolder2 = null;
+ previewUIDestroyed();
}
};
+ private void previewUIReady() {
+ if((mSurfaceHolder != null && mSurfaceHolder.getSurface().isValid()) &&
+ (mSurfaceView2.getVisibility() != View.VISIBLE ||
+ (mSurfaceView2.getVisibility() == View.VISIBLE &&
+ mSurfaceHolder2 != null &&
+ mSurfaceHolder2.getSurface().isValid()))) {
+ mModule.onPreviewUIReady();
+ mActivity.updateThumbnail(mThumbnail);
+ }
+ }
+
+ private void previewUIDestroyed() {
+ mModule.onPreviewUIDestroyed();
+ }
+
public CaptureUI(CameraActivity activity, CaptureModule module, View parent) {
mActivity = activity;
mModule = module;
@@ -349,7 +368,9 @@ public class CaptureUI implements FocusOverlayManager.FocusUI,
int index = mSettingsManager.getValueIndex(SettingsManager.KEY_CAMERA_ID);
CharSequence[] entries = mSettingsManager.getEntries(SettingsManager.KEY_CAMERA_ID);
- index = (index + 1) % entries.length;
+ do {
+ index = (index + 1) % entries.length;
+ } while (entries[index] == null);
mSettingsManager.setValueIndex(SettingsManager.KEY_CAMERA_ID, index);
int[] largeIcons = mSettingsManager.getResource(SettingsManager.KEY_CAMERA_ID,
SettingsManager.RESOURCE_TYPE_LARGEICON);