diff options
author | Sai Kumar Sanagavarapu <ssanagav@codeaurora.org> | 2014-05-16 19:42:48 +0530 |
---|---|---|
committer | Sai Kumar Sanagavarapu <ssanagav@codeaurora.org> | 2014-06-02 12:45:28 +0530 |
commit | 3512531b2ce62b56900affadb5dae1172ffba2d8 (patch) | |
tree | 89384d5e9e8f09429b03149e4aeba191c64047fe | |
parent | 1e1660788569a7adc6416672ff55010743dfacaf (diff) | |
download | android_packages_apps_Snap-3512531b2ce62b56900affadb5dae1172ffba2d8.tar.gz android_packages_apps_Snap-3512531b2ce62b56900affadb5dae1172ffba2d8.tar.bz2 android_packages_apps_Snap-3512531b2ce62b56900affadb5dae1172ffba2d8.zip |
Camera2: Query support for longshot and ZSL+HDR from parameters.
Query camera parameters to check if longshot and ZSL+HDR are
supported or not.
Also, add generic way of enabling/disabling preferences to
facilitate features which are mutually exclusive.
Change-Id: I4332e3d5050f56b1953e4c0d767eb87f7e932c49
-rw-r--r-- | src/com/android/camera/CameraPreference.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 28 | ||||
-rw-r--r-- | src/com/android/camera/PhotoMenu.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 24 | ||||
-rw-r--r-- | src/com/android/camera/PhotoUI.java | 4 | ||||
-rw-r--r-- | src/com/android/camera/PieController.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 5 |
7 files changed, 64 insertions, 2 deletions
diff --git a/src/com/android/camera/CameraPreference.java b/src/com/android/camera/CameraPreference.java index 407c1408c..f2a78e9cc 100644 --- a/src/com/android/camera/CameraPreference.java +++ b/src/com/android/camera/CameraPreference.java @@ -34,6 +34,7 @@ public abstract class CameraPreference { private final Context mContext; static public interface OnPreferenceChangedListener { + public void onSharedPreferenceChanged(ListPreference pref); public void onSharedPreferenceChanged(); public void onRestorePreferencesClicked(); public void onOverriddenPreferencesClicked(); diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 243a1ff8f..c70ee9909 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -122,6 +122,8 @@ public class CameraSettings { public static final String KEY_QC_DIS_MODE = "dis"; public static final String KEY_INTERNAL_PREVIEW_RESTART = "internal-restart"; + public static final String KEY_QC_ZSL_HDR_SUPPORTED = "zsl-hdr-supported"; + public static final String KEY_QC_LONGSHOT_SUPPORTED = "longshot-supported"; private static final String TRUE = "true"; private static final String FALSE = "false"; @@ -348,6 +350,7 @@ public class CameraSettings { ListPreference videoHdr = group.findPreference(KEY_VIDEO_HDR); ListPreference pictureFormat = group.findPreference(KEY_PICTURE_FORMAT); ListPreference hfr = group.findPreference(KEY_VIDEO_HIGH_FRAME_RATE); + ListPreference longShot = group.findPreference(KEY_LONGSHOT); if (touchAfAec != null) { filterUnsupportedOptions(group, @@ -435,6 +438,9 @@ public class CameraSettings { filterUnsupportedOptions(group, advancedFeatures, getSupportedAdvancedFeatures(mParameters)); } + if (longShot!= null && !isLongshotSupported(mParameters)) { + removePreference(group, longShot.getKey()); + } } private void initPreference(PreferenceGroup group) { ListPreference videoQuality = group.findPreference(KEY_VIDEO_QUALITY); @@ -898,4 +904,26 @@ public class CameraSettings { } return ret; } + + public static boolean isLongshotSupported(Parameters params) { + boolean ret = false; + if (null != params) { + String val = params.get(KEY_QC_LONGSHOT_SUPPORTED); + if ((null != val) && (TRUE.equals(val))) { + ret = true; + } + } + return ret; + } + + public static boolean isZSLHDRSupported(Parameters params) { + boolean ret = false; + if (null != params) { + String val = params.get(KEY_QC_ZSL_HDR_SUPPORTED); + if ((null != val) && (TRUE.equals(val))) { + ret = true; + } + } + return ret; + } } diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java index 4b7fc49ed..a9526962b 100644 --- a/src/com/android/camera/PhotoMenu.java +++ b/src/com/android/camera/PhotoMenu.java @@ -371,7 +371,7 @@ public class PhotoMenu extends PieController return (key.equals(pref.getKey()) && !value.equals(pref.getValue())); } - private void setPreference(String key, String value) { + public void setPreference(String key, String value) { ListPreference pref = mPreferenceGroup.findPreference(key); if (pref != null && !value.equals(pref.getValue())) { pref.setValue(value); diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index e72411da4..1723ca2d2 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -2947,6 +2947,30 @@ public class PhotoModule } } + // Return true if the preference has the specified key but not the value. + private static boolean notSame(ListPreference pref, String key, String value) { + return (key.equals(pref.getKey()) && !value.equals(pref.getValue())); + } + + @Override + public void onSharedPreferenceChanged(ListPreference pref) { + // ignore the events after "onPause()" + if (mPaused) return; + + //filter off unsupported settings + final String settingOff = mActivity.getString(R.string.setting_off_value); + if (!CameraSettings.isZSLHDRSupported(mParameters)) { + if (notSame(pref, CameraSettings.KEY_CAMERA_HDR, settingOff)) { + mUI.setPreference(CameraSettings.KEY_ZSL,settingOff); + } else if (notSame(pref,CameraSettings.KEY_ZSL,settingOff)) { + mUI.setPreference(CameraSettings.KEY_CAMERA_HDR, settingOff); + } + } + + //call generic onSharedPreferenceChanged + onSharedPreferenceChanged(); + } + @Override public void onSharedPreferenceChanged() { // ignore the events after "onPause()" diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java index 7717e1af0..7a798bea3 100644 --- a/src/com/android/camera/PhotoUI.java +++ b/src/com/android/camera/PhotoUI.java @@ -933,4 +933,8 @@ public class PhotoUI implements PieListener, mController.updateCameraOrientation(); } + public void setPreference(String key, String value) { + mMenu.setPreference(key, value); + } + } diff --git a/src/com/android/camera/PieController.java b/src/com/android/camera/PieController.java index ba4988379..ac81b140f 100644 --- a/src/com/android/camera/PieController.java +++ b/src/com/android/camera/PieController.java @@ -71,7 +71,7 @@ public class PieController { public void onSettingChanged(ListPreference pref) { if (mListener != null) { - mListener.onSharedPreferenceChanged(); + mListener.onSharedPreferenceChanged(pref); } } diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 1fab44268..9c1c7a65a 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -2172,6 +2172,11 @@ public class VideoModule implements CameraModule, } @Override + public void onSharedPreferenceChanged(ListPreference pref) { + onSharedPreferenceChanged(); + } + + @Override public void onSharedPreferenceChanged() { // ignore the events after "onPause()" or preview has not started yet if (mPaused) { |