From 3a76a2e916cd5c99b2d9d6e2ecf33d7bb6c27058 Mon Sep 17 00:00:00 2001
From: jinwu <jinwu@codeaurora.org>
Date: Wed, 8 Aug 2018 15:35:08 +0800
Subject: [PATCH] Fix two monkey issues
1. check session is null before stopRepeating
2. catch IndexOutOfBoundsException of getSupportedWhiteBalanceModes
Change-Id: I3096b120d201026644793da8f0214534d2ac8be1
---
src/com/android/camera/CaptureModule.java | 4 ++--
src/com/android/camera/SettingsManager.java | 16 ++++++++++------
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index ad9ece77d..ff26cda06 100755
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -4605,7 +4605,7 @@ public class CaptureModule implements CameraModule, PhotoController,
}
} else {
// is pause or stopRecord
- if (!(mMediaRecorderPausing && mStopRecPending)) {
+ if (!(mMediaRecorderPausing && mStopRecPending) && (mCurrentSession != null)) {
mCurrentSession.stopRepeating();
try {
mVideoRequestBuilder.set(CaptureModule.recording_end_stream, (byte) 0x01);
@@ -4629,7 +4629,7 @@ public class CaptureModule implements CameraModule, PhotoController,
}
// set preview
- if (captureRequestBuilder != null) {
+ if (captureRequestBuilder != null && (mCurrentSession != null)) {
if (mCurrentSession instanceof CameraConstrainedHighSpeedCaptureSession) {
List requestList = CameraUtil.createHighSpeedRequestList(captureRequestBuilder.build());
mCurrentSession.setRepeatingBurst(requestList,
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index 525709e33..fa34b5734 100755
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -1380,13 +1380,17 @@ public class SettingsManager implements ListMenu.SettingsListener {
}
private List<String> getSupportedWhiteBalanceModes(int cameraId) {
- int[] whiteBalanceModes = mCharacteristics.get(cameraId).get(CameraCharacteristics
- .CONTROL_AWB_AVAILABLE_MODES);
- List<String> modes = new ArrayList<>();
- for (int mode : whiteBalanceModes) {
- modes.add("" + mode);
+ try {
+ int[] whiteBalanceModes = mCharacteristics.get(cameraId).get(CameraCharacteristics
+ .CONTROL_AWB_AVAILABLE_MODES);
+ List<String> modes = new ArrayList<>();
+ for (int mode : whiteBalanceModes) {
+ modes.add("" + mode);
+ }
+ return modes;
+ } catch (IndexOutOfBoundsException e) {
+ return null;
}
- return modes;
}
private List<String> getSupportedSceneModes(int cameraId) {
--
GitLab