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
committerGerrit - the friendly Code Review server <code-review@localhost>2015-03-20 07:33:29 -0700
commitd52c003516a93991174b09bef3756055e4f3be22 (patch)
treeaff725e67413cf9afaa64a392fd7e174cd1d8e0a /src/com/android/camera/VideoMenu.java
parente945dddc2d1582d0246c6d7f823c03d2e33cd847 (diff)
downloadandroid_packages_apps_Snap-d52c003516a93991174b09bef3756055e4f3be22.tar.gz
android_packages_apps_Snap-d52c003516a93991174b09bef3756055e4f3be22.tar.bz2
android_packages_apps_Snap-d52c003516a93991174b09bef3756055e4f3be22.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 2706357ef..de8d5e4e2 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);
}