summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/VideoMenu.java
diff options
context:
space:
mode:
authorlikaid <likaid@codeaurora.org>2015-03-02 16:02:01 +0800
committerlikaid <likaid@codeaurora.org>2015-03-11 09:48:38 +0800
commit3689f9ecffe9fa18c91d4a6d479b2329efe3752e (patch)
treef69a51d176b0d62f0fc287ce8d48d63a5c348833 /src/com/android/camera/VideoMenu.java
parent2d894ed368689085e89b6f0b79fb355575267e97 (diff)
downloadandroid_packages_apps_Snap-3689f9ecffe9fa18c91d4a6d479b2329efe3752e.tar.gz
android_packages_apps_Snap-3689f9ecffe9fa18c91d4a6d479b2329efe3752e.tar.bz2
android_packages_apps_Snap-3689f9ecffe9fa18c91d4a6d479b2329efe3752e.zip
SnapdragonCamera: Fix app FC when time lapse and HFR is set to ON
After HFR and time lapse both are on, the ListMenu is initialize again and mListMenu is set null which lead to NullPointerException happened. Don't initialize listmenu when it's showing, move toast to VideoMenu reference similar code in PhotoModule. Change-Id: I9eaa308cc1b5eccb7bc86a3da6ae99f09b280be9 CRs-Fixed: 796135
Diffstat (limited to 'src/com/android/camera/VideoMenu.java')
-rw-r--r--src/com/android/camera/VideoMenu.java33
1 files changed, 31 insertions, 2 deletions
diff --git a/src/com/android/camera/VideoMenu.java b/src/com/android/camera/VideoMenu.java
index 63d255715..582703830 100644
--- a/src/com/android/camera/VideoMenu.java
+++ b/src/com/android/camera/VideoMenu.java
@@ -42,8 +42,10 @@ import com.android.camera.ui.ListSubMenu;
import com.android.camera.ui.ListMenu;
import com.android.camera.ui.TimeIntervalPopup;
import com.android.camera.ui.RotateImageView;
+import com.android.camera.ui.RotateTextToast;
import org.codeaurora.snapcam.R;
import android.widget.HorizontalScrollView;
+import android.widget.Toast;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.Display;
@@ -653,12 +655,12 @@ public class VideoMenu extends MenuController
@Override
// Hit when an item in the second-level popup gets selected
public void onListPrefChanged(ListPreference pref) {
+ onSettingChanged(pref);
if (mPopupStatus == POPUP_SECOND_LEVEL) {
mListMenu.reloadPreference();
animateFadeOut(mListSubMenu, 2);
+ ((ListMenu) mListMenu).resetHighlight();
}
- super.onSettingChanged(pref);
- ((ListMenu) mListMenu).resetHighlight();
}
protected void initializePopup() {
@@ -758,8 +760,35 @@ public class VideoMenu extends MenuController
animateSlideOut(mListMenu, 1);
}
+ // 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 onSettingChanged(ListPreference pref) {
+
+ if (notSame(pref, CameraSettings.KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL,
+ mActivity.getString(R.string.pref_video_time_lapse_frame_interval_default))) {
+ ListPreference hfrPref =
+ mPreferenceGroup.findPreference(CameraSettings.KEY_VIDEO_HIGH_FRAME_RATE);
+ if (hfrPref != null && !"off".equals(hfrPref.getValue())) {
+ RotateTextToast.makeText(mActivity, R.string.error_app_unsupported_hfr_selection,
+ Toast.LENGTH_LONG).show();
+ }
+ setPreference(CameraSettings.KEY_VIDEO_HIGH_FRAME_RATE, "off");
+ }
+ if (notSame(pref, CameraSettings.KEY_VIDEO_HIGH_FRAME_RATE, "off")) {
+ String defaultValue =
+ mActivity.getString(R.string.pref_video_time_lapse_frame_interval_default);
+ ListPreference lapsePref = mPreferenceGroup
+ .findPreference(CameraSettings.KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL);
+ if (lapsePref != null && !defaultValue.equals(lapsePref.getValue())) {
+ RotateTextToast.makeText(mActivity, R.string.error_app_unsupported_hfr_selection,
+ Toast.LENGTH_LONG).show();
+ }
+ setPreference(CameraSettings.KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL, defaultValue);
+ }
super.onSettingChanged(pref);
}