From 678971d123ba3255e47f6f5a7911fef6d69e3821 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Mon, 15 Feb 2016 05:13:30 +0200 Subject: Snap: Fix filtering of unsupported HFR/HSR modes Change-Id: I7721613f10a24cbd36eb0a3c5b0a46a98e828679 --- src/com/android/camera/CameraSettings.java | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 18c286aa7..15480ed18 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -1011,9 +1011,9 @@ public class CameraSettings { getSupportedSeeMoreModes(mParameters)); } - if ((videoHfrMode != null) && - (mParameters.getSupportedHfrSizes() == null)) { - filterUnsupportedOptions(group, videoHfrMode, null); + if (videoHfrMode != null) { + filterUnsupportedOptions(group, videoHfrMode, getSupportedHighFrameRateModes( + mParameters)); } if (videoQuality != null) { @@ -1407,6 +1407,28 @@ public class CameraSettings { writePreferredCameraId(preferences, currentCameraId); } + public static List getSupportedHighFrameRateModes(Parameters params) { + ArrayList supported = new ArrayList(); + List supportedModes = params.getSupportedVideoHighFrameRateModes(); + String hsr = params.get(KEY_VIDEO_HSR); + + if (supportedModes == null) { + return null; + } + + for (String highFrameRateMode : supportedModes) { + if (highFrameRateMode.equals("off")) { + supported.add(highFrameRateMode); + } else { + supported.add("hfr" + highFrameRateMode); + if (hsr != null) { + supported.add("hsr" + highFrameRateMode); + } + } + } + return supported; + } + public static ArrayList getSupportedVideoQualities(int cameraId, Parameters parameters) { ArrayList supported = new ArrayList(); -- cgit v1.2.3