diff options
author | Steve Kondik <steve@cyngn.com> | 2016-08-03 15:40:15 -0700 |
---|---|---|
committer | Bruno Martins <bgcngm@gmail.com> | 2018-11-20 12:31:36 +0000 |
commit | 5e43c5998f9d70592df3dd8547ee3f725cccfc1d (patch) | |
tree | 7eb5ebec3aa2bcbc722aff5bd7867e514511dd6e /src/com/android/camera | |
parent | 4bb5e9048aa3557d25c7e25d505556735b1448c5 (diff) | |
download | android_packages_apps_Snap-5e43c5998f9d70592df3dd8547ee3f725cccfc1d.tar.gz android_packages_apps_Snap-5e43c5998f9d70592df3dd8547ee3f725cccfc1d.tar.bz2 android_packages_apps_Snap-5e43c5998f9d70592df3dd8547ee3f725cccfc1d.zip |
Snap: Fixes for advanced features and scene modes
* Get rid of the annoying toast when longshot is disabled
* Add support for ChromaFlash as a scene mode
* Adjust overrides for various scene modes
Change-Id: Ifda1990f4e9b3435655664f2a6c2b31fc3ae23fa
Diffstat (limited to 'src/com/android/camera')
-rwxr-xr-x | src/com/android/camera/CameraSettings.java | 21 | ||||
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 7 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 68 |
3 files changed, 54 insertions, 42 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index f932262cd..7707cbadf 100755 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -1171,7 +1171,7 @@ public class CameraSettings { if (chromaFlash != null) { List<String> supportedAdvancedFeatures = getSupportedAdvancedFeatures(mParameters); - if (!CameraUtil.isSupported( + if (hasChromaFlashScene(mContext) || !CameraUtil.isSupported( mContext.getString(R.string .pref_camera_advanced_feature_value_chromaflash_on), supportedAdvancedFeatures)) { @@ -1199,6 +1199,13 @@ public class CameraSettings { supportedSceneModes.add(mContext.getString(R.string .pref_camera_advanced_feature_value_optizoom_on)); } + if (hasChromaFlashScene(mContext) && CameraUtil.isSupported( + mContext.getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on), + supportedAdvancedFeatures)) { + supportedSceneModes.add(mContext.getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on)); + } filterUnsupportedOptions(group, sceneMode, supportedSceneModes); } if (flashMode != null) { @@ -1858,4 +1865,16 @@ public class CameraSettings { pictureSize.setEntries(entries.toArray(new String[entries.size()])); pictureSize.setEntryValues(entryValues.toArray(new String[entryValues.size()])); } + + public static boolean hasChromaFlashScene(Context context) { + String[] sceneModes = context.getResources().getStringArray( + R.array.pref_camera_scenemode_entryvalues); + for (String mode : sceneModes) { + if (mode.equals(context.getResources().getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on))) { + return true; + } + } + return false; + } } diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index c63e77dab..4abab3a03 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -1488,13 +1488,12 @@ public class PhotoMenu extends MenuController } } - String chromaFlashOn = mActivity.getString(R.string. - pref_camera_advanced_feature_value_chromaflash_on); - if (notSame(pref, CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO)) { + String chromaFlashOn = mActivity.getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on); + if (notSame(pref, CameraSettings.KEY_SCENE_MODE, chromaFlashOn)) { ListPreference lp = mPreferenceGroup .findPreference(CameraSettings.KEY_ADVANCED_FEATURES); if (lp != null && chromaFlashOn.equals(lp.getValue())) { - setPreference(CameraSettings.KEY_QC_CHROMA_FLASH, mSettingOff); setPreference(CameraSettings.KEY_ADVANCED_FEATURES, mActivity.getString(R.string.pref_camera_advanced_feature_default)); } diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index 3d891f167..b444608e9 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -2028,8 +2028,10 @@ public class PhotoModule (fssr != null && fssr.equals(fssrOn)) || (truePortrait != null && truePortrait.equals(truPortraitOn)) || (stillMore != null && stillMore.equals(stillMoreOn))) { - if ( (optiZoom != null && optiZoom.equals(optiZoomOn)) || - (reFocus != null && reFocus.equals(reFocusOn)) ) { + if ((optiZoom != null && optiZoom.equals(optiZoomOn)) || + (reFocus != null && reFocus.equals(reFocusOn)) || + (CameraSettings.hasChromaFlashScene(mActivity) && + chromaFlash != null && chromaFlash.equals(chromaFlashOn))) { sceneMode = null; } else { mSceneMode = sceneMode = Parameters.SCENE_MODE_AUTO; @@ -2053,7 +2055,8 @@ public class PhotoModule // If scene mode is set, for white balance and focus mode // read settings from preferences so we retain user preferences. - if (!Parameters.SCENE_MODE_AUTO.equals(mSceneMode)) { + if (!Parameters.SCENE_MODE_AUTO.equals(mSceneMode) && + !"asd".equals(mSceneMode) && !"sports".equals(mSceneMode)) { flashMode = Parameters.FLASH_MODE_OFF; String whiteBalance = Parameters.WHITE_BALANCE_AUTO; focusMode = mFocusManager.getFocusMode(false); @@ -2105,6 +2108,12 @@ public class PhotoModule flashMode = Parameters.FLASH_MODE_OFF; mParameters.setFlashMode(flashMode); } + + if (chromaFlash != null && chromaFlash.equals(chromaFlashOn)) { + flashMode = Parameters.FLASH_MODE_ON; + mParameters.setFlashMode(flashMode); + } + if (disableLongShot) { mUI.overrideSettings(CameraSettings.KEY_LONGSHOT, mActivity.getString(R.string.setting_off_value)); @@ -3242,6 +3251,8 @@ public class PhotoModule mParameters.set("long-shot", longshot_enable); String optizoomOn = mActivity.getString(R.string .pref_camera_advanced_feature_value_optizoom_on); + String chromaFlashOn = mActivity.getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on); // Set Touch AF/AEC parameter. if (CameraUtil.isSupported(mParameters.TOUCH_AF_AEC_ON, @@ -4180,7 +4191,10 @@ public class PhotoModule .pref_camera_advanced_feature_value_refocus_on); String optizoomOn = mActivity.getString(R.string .pref_camera_advanced_feature_value_optizoom_on); + String chromaFlashOn = mActivity.getString(R.string + .pref_camera_advanced_feature_value_chromaflash_on); String scenModeStr = mSceneMode; + if (refocusOn.equals(mSceneMode)) { try { mSceneMode = Parameters.SCENE_MODE_AUTO; @@ -4198,6 +4212,12 @@ public class PhotoModule } } catch (NullPointerException e) { } + } else if (chromaFlashOn.equals(mSceneMode)) { + try { + mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, chromaFlashOn); + mParameters.setSceneMode(Parameters.SCENE_MODE_AUTO); + } catch (NullPointerException e) { + } } else if (mSceneMode == null) { mSceneMode = Parameters.SCENE_MODE_AUTO; } @@ -4254,7 +4274,8 @@ public class PhotoModule Log.w(TAG, "invalid exposure range: " + value); } - if (Parameters.SCENE_MODE_AUTO.equals(mSceneMode)) { + if (Parameters.SCENE_MODE_AUTO.equals(mSceneMode) || + "asd".equals(mSceneMode) || "sports".equals(mSceneMode)) { // Set flash mode. String flashMode; if (mSavedFlashMode == null) { @@ -4308,9 +4329,10 @@ public class PhotoModule mActivity.getString(R.string.pref_camera_focustime_default)))); } else { mFocusManager.overrideFocusMode(mParameters.getFocusMode()); - if (CameraUtil.isSupported(Parameters.FLASH_MODE_OFF, - mParameters.getSupportedFlashModes())) { - mParameters.setFlashMode(Parameters.FLASH_MODE_OFF); + String flashMode = chromaFlashOn.equals(mSceneMode) ? + Parameters.FLASH_MODE_ON : Parameters.FLASH_MODE_OFF; + if (CameraUtil.isSupported(flashMode, mParameters.getSupportedFlashModes())) { + mParameters.setFlashMode(flashMode); } if (CameraUtil.isSupported(Parameters.WHITE_BALANCE_AUTO, mParameters.getSupportedWhiteBalance())) { @@ -4956,7 +4978,8 @@ public class PhotoModule updateRemainingPhotos(); } - if (CameraSettings.KEY_QC_CHROMA_FLASH.equals(pref.getKey())) { + if (!CameraSettings.hasChromaFlashScene(mActivity) && + CameraSettings.KEY_QC_CHROMA_FLASH.equals(pref.getKey())) { mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, pref.getValue()); } @@ -4969,35 +4992,6 @@ public class PhotoModule mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, pref.getValue()); } - String ubiFocusOff = mActivity.getString(R.string. - pref_camera_advanced_feature_value_ubifocus_off); - String chromaFlashOff = mActivity.getString(R.string. - pref_camera_advanced_feature_value_chromaflash_off); - String optiZoomOff = mActivity.getString(R.string. - pref_camera_advanced_feature_value_optizoom_off); - String reFocusOff = mActivity.getString(R.string. - pref_camera_advanced_feature_value_refocus_off); - String fssrOff = mActivity.getString(R.string. - pref_camera_advanced_feature_value_FSSR_off); - String truePortraitOff = mActivity.getString(R.string. - pref_camera_advanced_feature_value_trueportrait_off); - String multiTouchFocusOff = mActivity.getString(R.string. - pref_camera_advanced_feature_value_multi_touch_focus_off); - String stillMoreOff = mActivity.getString(R.string. - pref_camera_advanced_feature_value_stillmore_off); - String advancedFeatureOff = mActivity.getString(R.string. - pref_camera_advanced_feature_value_none); - if (notSame(pref, CameraSettings.KEY_QC_OPTI_ZOOM, optiZoomOff) || - notSame(pref, CameraSettings.KEY_QC_AF_BRACKETING, ubiFocusOff) || - notSame(pref, CameraSettings.KEY_QC_FSSR, fssrOff) || - notSame(pref, CameraSettings.KEY_QC_TP, truePortraitOff) || - notSame(pref, CameraSettings.KEY_QC_MULTI_TOUCH_FOCUS, multiTouchFocusOff) || - notSame(pref, CameraSettings.KEY_QC_STILL_MORE, stillMoreOff) || - notSame(pref, CameraSettings.KEY_QC_RE_FOCUS, reFocusOff) || - notSame(pref, CameraSettings.KEY_ADVANCED_FEATURES, advancedFeatureOff)) { - RotateTextToast.makeText(mActivity, R.string.advanced_capture_disable_continuous_shot, - Toast.LENGTH_LONG).show(); - } //call generic onSharedPreferenceChanged onSharedPreferenceChanged(); } |