diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/AndroidCameraManagerImpl.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 5 | ||||
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 28 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 14 | ||||
-rw-r--r-- | src/com/android/camera/PhotoUI.java | 13 | ||||
-rw-r--r-- | src/com/android/camera/VideoMenu.java | 15 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 5 | ||||
-rw-r--r-- | src/com/android/camera/VideoUI.java | 5 |
8 files changed, 58 insertions, 29 deletions
diff --git a/src/com/android/camera/AndroidCameraManagerImpl.java b/src/com/android/camera/AndroidCameraManagerImpl.java index 637a5f5c5..408bf4f55 100644 --- a/src/com/android/camera/AndroidCameraManagerImpl.java +++ b/src/com/android/camera/AndroidCameraManagerImpl.java @@ -774,7 +774,7 @@ class AndroidCameraManagerImpl implements CameraManager { mHandler.post(new Runnable() { @Override public void run() { - if (currentCamera.equals(mCamera.getCamera())) { + if (currentCamera != null && currentCamera.equals(mCamera.getCamera())) { mCallback.onPictureTaken(data, mCamera); } } diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index ca66babae..300975845 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -421,6 +421,7 @@ public class CameraActivity extends Activity if(!arePreviewControlsVisible()) { setPreviewControlsVisibility(true); CameraActivity.this.setSystemBarsVisibility(false); + mFilmStripView.getController().goToFullScreen(); } } @@ -995,6 +996,10 @@ public class CameraActivity extends Activity public void notifyNewMedia(Uri uri) { ContentResolver cr = getContentResolver(); String mimeType = cr.getType(uri); + if (mimeType == null) { + Log.e(TAG, "mimeType is NULL"); + return; + } if (mimeType.startsWith("video/")) { sendBroadcast(new Intent(CameraUtil.ACTION_NEW_VIDEO, uri)); mDataAdapter.addNewVideo(cr, uri); diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index f8d95b3f0..be3a02c1f 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -541,6 +541,7 @@ public class PhotoMenu extends MenuController ListPreference pref = mPreferenceGroup.findPreference( CameraSettings.KEY_SCENE_MODE); + updateFilterModeIcon(pref, mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_HDR)); String sceneMode = (pref != null) ? pref.getValue() : null; pref = mPreferenceGroup.findPreference(CameraSettings.KEY_FACE_DETECTION); String faceDetection = (pref != null) ? pref.getValue() : null; @@ -629,20 +630,21 @@ public class PhotoMenu extends MenuController } } - pref = mPreferenceGroup.findPreference(CameraSettings.KEY_SCENE_MODE); - if (pref != null) { - if (notSame(pref, CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO)) { - buttonSetEnabled(mFilterModeSwitcher, false); - } else { - buttonSetEnabled(mFilterModeSwitcher, true); - } - } - if (mListener != null) { mListener.onSharedPreferenceChanged(); } } + private void updateFilterModeIcon(ListPreference scenePref, ListPreference hdrPref) { + if (scenePref == null || hdrPref == null) return; + if ((notSame(scenePref, CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO)) + || (notSame(hdrPref, CameraSettings.KEY_CAMERA_HDR, mSettingOff))) { + buttonSetEnabled(mFilterModeSwitcher, false); + } else { + buttonSetEnabled(mFilterModeSwitcher, true); + } + } + public void initSwitchItem(final String prefKey, View switcher) { final IconListPreference pref = (IconListPreference) mPreferenceGroup.findPreference(prefKey); @@ -1072,6 +1074,7 @@ public class PhotoMenu extends MenuController Toast.LENGTH_LONG).show(); } setPreference(CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO); + updateSceneModeIcon((IconListPreference) scenePref); } else if (notSame(pref, CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO)) { ListPreference hdrPref = mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_HDR); @@ -1126,12 +1129,7 @@ public class PhotoMenu extends MenuController mActivity.getString(R.string.pref_camera_advanced_feature_default)); } } - - if (notSame(pref, CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO)) { - buttonSetEnabled(mFilterModeSwitcher, false); - } else { - buttonSetEnabled(mFilterModeSwitcher, true); - } + updateFilterModeIcon(pref, pref); super.onSettingChanged(pref); } diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 2f519935e..c36ea087f 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -533,6 +533,7 @@ public class PhotoModule } private void onPreviewStarted() { + mUI.hidePreviewCover(); setCameraState(IDLE); mFocusManager.onPreviewStarted(); startFaceDetection(); @@ -1975,9 +1976,14 @@ public class PhotoModule @Override public void onShutterButtonFocus(boolean pressed) { - if (mPaused || mUI.collapseCameraControls() + if (mCameraDevice == null + || mPaused || mUI.collapseCameraControls() || (mCameraState == SNAPSHOT_IN_PROGRESS) - || (mCameraState == PREVIEW_STOPPED)) return; + || (mCameraState == PREVIEW_STOPPED)) { + Log.v(TAG, "onShutterButtonFocus error case mCameraState = " + mCameraState + + "mCameraDevice = " + mCameraDevice + "mPaused =" + mPaused); + return; + } synchronized(mCameraDevice) { if (mCameraState == LONGSHOT) { @@ -2177,7 +2183,8 @@ public class PhotoModule private void updateRemainingPhotos() { if (mJpegFileSizeEstimation != 0) { - mRemainingPhotos = (int) (mActivity.getStorageSpaceBytes() + mRemainingPhotos = (int) + ((mActivity.getStorageSpaceBytes() - Storage.LOW_STORAGE_THRESHOLD_BYTES) / mJpegFileSizeEstimation); } else { mRemainingPhotos = -1; @@ -4076,6 +4083,7 @@ public class PhotoModule Storage.setSaveSDCard( mPreferences.getString(CameraSettings.KEY_CAMERA_SAVEPATH, "0").equals("1")); mActivity.updateStorageSpaceAndHint(); + updateRemainingPhotos(); } //call generic onSharedPreferenceChanged diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java index eb66c8395..0df2c30ca 100644 --- a/src/com/android/camera/PhotoUI.java +++ b/src/com/android/camera/PhotoUI.java @@ -390,6 +390,8 @@ public class PhotoUI implements PieListener, } } else { float width = mOriginalPreviewWidth, height = mOriginalPreviewHeight; + if (width == 0 || height == 0) return; + if (mOrientationResize) { scaledTextureWidth = height * mAspectRatio; if (scaledTextureWidth > width) { @@ -459,10 +461,6 @@ public class PhotoUI implements PieListener, @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { Log.v(TAG, "surfaceChanged: width =" + width + ", height = " + height); - // Make sure preview cover is hidden if preview data is available. - if (mPreviewCover.getVisibility() != View.GONE) { - mPreviewCover.setVisibility(View.GONE); - } } @Override @@ -1143,6 +1141,13 @@ public class PhotoUI implements PieListener, mPreviewCover.setVisibility(View.VISIBLE); } + public void hidePreviewCover() { + // Hide the preview cover if need. + if (mPreviewCover.getVisibility() != View.GONE) { + mPreviewCover.setVisibility(View.GONE); + } + } + public void onPause() { cancelCountDown(); diff --git a/src/com/android/camera/VideoMenu.java b/src/com/android/camera/VideoMenu.java index b8cb5a1fe..63d255715 100644 --- a/src/com/android/camera/VideoMenu.java +++ b/src/com/android/camera/VideoMenu.java @@ -460,9 +460,12 @@ public class VideoMenu extends MenuController @Override public void onClick(View v) { addFilterMode(); - View view = mUI.getPreviewMenuLayout().getChildAt(0); - mUI.adjustOrientation(); - animateSlideIn(view, previewMenuSize, false); + ViewGroup menuLayout = mUI.getPreviewMenuLayout(); + if (menuLayout != null) { + View view = menuLayout.getChildAt(0); + mUI.adjustOrientation(); + animateSlideIn(view, previewMenuSize, false); + } } }); } @@ -699,7 +702,11 @@ public class VideoMenu extends MenuController public void showUI() { mFrontBackSwitcher.setVisibility(View.VISIBLE); - mFilterModeSwitcher.setVisibility(View.VISIBLE); + final IconListPreference pref = (IconListPreference) mPreferenceGroup + .findPreference(CameraSettings.KEY_COLOR_EFFECT); + if (pref != null) { + mFilterModeSwitcher.setVisibility(View.VISIBLE); + } } @Override diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index e200de1bd..75d3f221d 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -96,7 +96,7 @@ public class VideoModule implements CameraModule, private static final int SCREEN_DELAY = 2 * 60 * 1000; - private static final long SHUTTER_BUTTON_TIMEOUT = 500L; // 500ms + private static final long SHUTTER_BUTTON_TIMEOUT = 0L; // 0ms /** * An unpublished intent flag requesting to start recording straight away @@ -688,12 +688,13 @@ public class VideoModule implements CameraModule, if (isRecorderReady() == false) return; + mUI.enableShutter(false); + if (stop) { onStopVideoRecording(); } else { startVideoRecording(); } - mUI.enableShutter(false); // Keep the shutter button disabled when in video capture intent // mode and recording is stopped. It'll be re-enabled when diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java index b70027a80..8362d0590 100644 --- a/src/com/android/camera/VideoUI.java +++ b/src/com/android/camera/VideoUI.java @@ -822,6 +822,11 @@ public class VideoUI implements PieRenderer.PieListener, public void enableShutter(boolean enable) { if (mShutterButton != null) { + if (enable) { + Log.v(TAG, "Shutter Button enabled !!"); + } else { + Log.v(TAG, "Shutter Button disabled !!"); + } mShutterButton.setEnabled(enable); } } |