| /* |
| * Copyright (C) 2014 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.ex.camera2.utils; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertFalse; |
| import static org.junit.Assert.assertNotSame; |
| import static org.junit.Assert.assertTrue; |
| import static org.mockito.Mockito.mock; |
| import static org.mockito.Mockito.verify; |
| |
| import android.graphics.Rect; |
| import android.hardware.camera2.CameraCaptureSession.CaptureCallback; |
| import android.hardware.camera2.CameraDevice; |
| import android.hardware.camera2.CaptureRequest; |
| import android.hardware.camera2.CaptureRequest.Key; |
| import android.view.Surface; |
| |
| import org.junit.Test; |
| |
| public class Camera2UtilsTest extends Camera2DeviceTester { |
| private void captureListenerSplitterAllCallbacksReceived(CaptureCallback splitter, |
| CaptureCallback... terminals) { |
| splitter.onCaptureCompleted(null, null, null); |
| for (CaptureCallback each : terminals) { |
| verify(each).onCaptureCompleted(null, null, null); |
| } |
| splitter.onCaptureFailed(null, null, null); |
| for (CaptureCallback each : terminals) { |
| verify(each).onCaptureFailed(null, null, null); |
| } |
| splitter.onCaptureProgressed(null, null, null); |
| for (CaptureCallback each : terminals) { |
| verify(each).onCaptureProgressed(null, null, null); |
| } |
| splitter.onCaptureSequenceAborted(null, 0); |
| for (CaptureCallback each : terminals) { |
| verify(each).onCaptureSequenceAborted(null, 0); |
| } |
| splitter.onCaptureSequenceCompleted(null, 0, 0L); |
| for (CaptureCallback each : terminals) { |
| verify(each).onCaptureSequenceCompleted(null, 0, 0L); |
| } |
| splitter.onCaptureStarted(null, null, 0L, 1L); |
| for (CaptureCallback each : terminals) { |
| verify(each).onCaptureStarted(null, null, 0L, 1L); |
| } |
| } |
| |
| @Test |
| public void captureListenerSplitter() { |
| CaptureCallback firstBackingListener = mock(CaptureCallback.class); |
| CaptureCallback secondBackingListener = mock(CaptureCallback.class); |
| captureListenerSplitterAllCallbacksReceived( |
| new Camera2CaptureCallbackSplitter(firstBackingListener, secondBackingListener), |
| firstBackingListener, secondBackingListener); |
| } |
| |
| @Test |
| public void captureListenerSplitterEmpty() { |
| captureListenerSplitterAllCallbacksReceived(new Camera2CaptureCallbackSplitter()); |
| } |
| |
| @Test |
| public void captureListenerSplitterNoNpe() { |
| captureListenerSplitterAllCallbacksReceived( |
| new Camera2CaptureCallbackSplitter((CaptureCallback) null)); |
| } |
| |
| @Test |
| public void captureListenerSplitterMultipleNulls() { |
| captureListenerSplitterAllCallbacksReceived( |
| new Camera2CaptureCallbackSplitter(null, null, null)); |
| } |
| |
| @Test |
| public void captureListenerSplitterValidAndNull() { |
| CaptureCallback onlyRealBackingListener = mock(CaptureCallback.class); |
| captureListenerSplitterAllCallbacksReceived( |
| new Camera2CaptureCallbackSplitter(null, onlyRealBackingListener), |
| onlyRealBackingListener); |
| } |
| |
| private <T> void requestSettingsSetAndForget(Camera2RequestSettingsSet s, Key<T> k, T v) { |
| s.set(k, v); |
| assertEquals(v, s.get(k)); |
| } |
| |
| @Test |
| public void requestSettingsSet() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| // Try a boolean |
| requestSettingsSetAndForget(setUp, CaptureRequest.CONTROL_AE_LOCK, false); |
| requestSettingsSetAndForget(setUp, CaptureRequest.CONTROL_AE_LOCK, true); |
| // Try an int |
| requestSettingsSetAndForget(setUp, CaptureRequest.CONTROL_AE_MODE, 1); |
| requestSettingsSetAndForget(setUp, CaptureRequest.CONTROL_AE_MODE, -1); |
| requestSettingsSetAndForget(setUp, CaptureRequest.CONTROL_AE_MODE, 0); |
| // Try an int[] |
| requestSettingsSetAndForget(setUp, CaptureRequest.SENSOR_TEST_PATTERN_DATA, new int[] {1}); |
| requestSettingsSetAndForget(setUp, CaptureRequest.SENSOR_TEST_PATTERN_DATA, |
| new int[] {2, 2}); |
| } |
| |
| @Test |
| public void requestSettingsSetNullValue() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| requestSettingsSetAndForget(setUp, CaptureRequest.SENSOR_TEST_PATTERN_DATA, new int[] {1}); |
| requestSettingsSetAndForget(setUp, CaptureRequest.SENSOR_TEST_PATTERN_DATA, null); |
| requestSettingsSetAndForget(setUp, CaptureRequest.SENSOR_TEST_PATTERN_DATA, |
| new int[] {2, 2}); |
| } |
| |
| @Test |
| public void requestSettingsSetUnsetAndContains() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| assertFalse(setUp.contains(CaptureRequest.CONTROL_AE_LOCK)); |
| setUp.set(CaptureRequest.CONTROL_AE_LOCK, false); |
| assertTrue(setUp.contains(CaptureRequest.CONTROL_AE_LOCK)); |
| setUp.set(CaptureRequest.CONTROL_AE_LOCK, null); |
| assertTrue(setUp.contains(CaptureRequest.CONTROL_AE_LOCK)); |
| setUp.unset(CaptureRequest.CONTROL_AE_LOCK); |
| assertFalse(setUp.contains(CaptureRequest.CONTROL_AE_LOCK)); |
| |
| setUp.set(CaptureRequest.CONTROL_AE_LOCK, null); |
| assertTrue(setUp.contains(CaptureRequest.CONTROL_AE_LOCK)); |
| setUp.set(CaptureRequest.CONTROL_AE_LOCK, false); |
| assertTrue(setUp.contains(CaptureRequest.CONTROL_AE_LOCK)); |
| setUp.unset(CaptureRequest.CONTROL_AE_LOCK); |
| assertFalse(setUp.contains(CaptureRequest.CONTROL_AE_LOCK)); |
| } |
| |
| @Test |
| public void requestSettingsSetStartsWithoutChanges() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| assertEquals(0, setUp.getRevision()); |
| } |
| |
| private <T> void requestSettingsSetAndAssertChanged(Camera2RequestSettingsSet settings, |
| Key<T> key, T value, |
| boolean shouldHaveChanged) { |
| long revision = settings.getRevision(); |
| assertEquals(shouldHaveChanged, settings.set(key, value)); |
| assertEquals(shouldHaveChanged ? revision + 1 : revision, settings.getRevision()); |
| } |
| |
| @Test |
| public void requestSettingsSetChangesReportedCorrectly() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| requestSettingsSetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, false, true); |
| requestSettingsSetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, false, false); |
| requestSettingsSetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, true, true); |
| } |
| |
| @Test |
| public void requestSettingsSetDetectsNoopChanges() { |
| Camera2RequestSettingsSet s = new Camera2RequestSettingsSet(); |
| int[] one = {1}, two = {2}; |
| |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.SENSOR_TEST_PATTERN_DATA, one, true); |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.SENSOR_TEST_PATTERN_DATA, one, false); |
| |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.SENSOR_TEST_PATTERN_DATA, null, true); |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.SENSOR_TEST_PATTERN_DATA, null, false); |
| |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.SENSOR_TEST_PATTERN_DATA, two, true); |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.SENSOR_TEST_PATTERN_DATA, two, false); |
| } |
| |
| private <T> void requestSettingsUnsetAndAssertChanged(Camera2RequestSettingsSet settings, |
| Key<T> key, boolean shouldHaveChanged) { |
| long revision = settings.getRevision(); |
| assertEquals(shouldHaveChanged, settings.unset(key)); |
| assertEquals(shouldHaveChanged ? revision + 1 : revision, settings.getRevision()); |
| } |
| |
| @Test |
| public void requestSettingsSetUnsetMakesChangesAndDetectsNoops() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| requestSettingsUnsetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, false); |
| |
| requestSettingsSetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, false, true); |
| requestSettingsUnsetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, true); |
| |
| requestSettingsSetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, false, true); |
| requestSettingsSetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, false, false); |
| requestSettingsUnsetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, true); |
| requestSettingsUnsetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, false); |
| |
| requestSettingsSetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, false, true); |
| requestSettingsSetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, true, true); |
| requestSettingsUnsetAndAssertChanged(setUp, CaptureRequest.CONTROL_AE_LOCK, true); |
| } |
| |
| @Test(expected=NullPointerException.class) |
| public void requestSettingsSetNullArgToCopyConstructor() { |
| Camera2RequestSettingsSet flop = new Camera2RequestSettingsSet(null); |
| } |
| |
| @Test(expected=NullPointerException.class) |
| public void requestSettingsSetNullArgToSetKey() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| setUp.set(null, null); |
| } |
| |
| @Test(expected=NullPointerException.class) |
| public void requestSettingsSetNullArgToUnset() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| setUp.unset(null); |
| } |
| |
| @Test(expected=NullPointerException.class) |
| public void requestSettingsSetNullArgToContains() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| setUp.contains(null); |
| } |
| |
| @Test(expected=NullPointerException.class) |
| public void requestSettingsSetNullArgToGet() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| setUp.get(null); |
| } |
| |
| @Test |
| public void requestSettingsSetMatchesPrimitives() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| assertTrue(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, null)); |
| assertFalse(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, false)); |
| assertFalse(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, true)); |
| |
| setUp.set(CaptureRequest.CONTROL_AE_LOCK, null); |
| assertTrue(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, null)); |
| assertFalse(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, false)); |
| assertFalse(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, true)); |
| |
| setUp.set(CaptureRequest.CONTROL_AE_LOCK, false); |
| assertFalse(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, null)); |
| assertTrue(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, false)); |
| assertFalse(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, true)); |
| |
| setUp.set(CaptureRequest.CONTROL_AE_LOCK, true); |
| assertFalse(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, null)); |
| assertFalse(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, false)); |
| assertTrue(setUp.matches(CaptureRequest.CONTROL_AE_LOCK, true)); |
| } |
| |
| @Test |
| public void requestSettingsSetMatchesReferences() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| assertTrue(setUp.matches(CaptureRequest.SCALER_CROP_REGION, null)); |
| assertFalse(setUp.matches(CaptureRequest.SCALER_CROP_REGION, new Rect(0, 0, 0, 0))); |
| |
| setUp.set(CaptureRequest.SCALER_CROP_REGION, null); |
| assertTrue(setUp.matches(CaptureRequest.SCALER_CROP_REGION, null)); |
| assertFalse(setUp.matches(CaptureRequest.SCALER_CROP_REGION, new Rect(0, 0, 0, 0))); |
| |
| setUp.set(CaptureRequest.SCALER_CROP_REGION, new Rect(0, 0, 0, 0)); |
| assertFalse(setUp.matches(CaptureRequest.SCALER_CROP_REGION, null)); |
| assertTrue(setUp.matches(CaptureRequest.SCALER_CROP_REGION, new Rect(0, 0, 0, 0))); |
| assertFalse(setUp.matches(CaptureRequest.SCALER_CROP_REGION, new Rect(0, 0, 1, 1))); |
| } |
| |
| @Test(expected=NullPointerException.class) |
| public void requestSettingsSetNullArgToCreateRequest0() throws Exception { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| setUp.createRequest(null, CameraDevice.TEMPLATE_PREVIEW); |
| } |
| |
| @Test(expected=NullPointerException.class) |
| public void requestSettingsSetNullArgToCreateRequest2() throws Exception { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| setUp.createRequest(mCamera, CameraDevice.TEMPLATE_PREVIEW, (Surface) null); |
| } |
| |
| @Test(expected=NullPointerException.class) |
| public void requestSettingsSetNullArgToCreateRequest02() throws Exception { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| setUp.createRequest(null, CameraDevice.TEMPLATE_PREVIEW, (Surface) null); |
| } |
| |
| @Test |
| public void requestSettingsSetNullArgToUnion() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| assertFalse(setUp.union(null)); |
| assertEquals(0, setUp.getRevision()); |
| } |
| |
| @Test |
| public void requestSettingsSetSelfArgToUnion() { |
| Camera2RequestSettingsSet setUp = new Camera2RequestSettingsSet(); |
| assertFalse(setUp.union(setUp)); |
| assertEquals(0, setUp.getRevision()); |
| } |
| |
| @Test |
| public void requestSettingsSetCopyConstructor() { |
| Camera2RequestSettingsSet original = new Camera2RequestSettingsSet(); |
| Camera2RequestSettingsSet unchanged = new Camera2RequestSettingsSet(original); |
| |
| requestSettingsSetAndForget(original, CaptureRequest.CONTROL_AE_LOCK, true); |
| Camera2RequestSettingsSet changed = new Camera2RequestSettingsSet(original); |
| assertEquals(true, changed.get(CaptureRequest.CONTROL_AE_LOCK)); |
| } |
| |
| @Test |
| public void requestSettingsSetCopyConstructorPreservesChangedStatus() { |
| Camera2RequestSettingsSet original = new Camera2RequestSettingsSet(); |
| Camera2RequestSettingsSet unchanged = new Camera2RequestSettingsSet(original); |
| assertEquals(original.getRevision(), unchanged.getRevision()); |
| |
| requestSettingsSetAndAssertChanged(original, CaptureRequest.CONTROL_AE_LOCK, true, true); |
| Camera2RequestSettingsSet changed = new Camera2RequestSettingsSet(original); |
| assertEquals(original.getRevision(), changed.getRevision()); |
| assertNotSame(original.getRevision(), unchanged.getRevision()); |
| } |
| |
| @Test |
| public void requestSettingsSetCopyConstructorPerformsDeepCopy() { |
| Camera2RequestSettingsSet original = new Camera2RequestSettingsSet(); |
| requestSettingsSetAndForget(original, CaptureRequest.CONTROL_AE_LOCK, true); |
| |
| Camera2RequestSettingsSet changed = new Camera2RequestSettingsSet(original); |
| requestSettingsSetAndForget(changed, CaptureRequest.CONTROL_AE_LOCK, false); |
| assertEquals(true, original.get(CaptureRequest.CONTROL_AE_LOCK)); |
| } |
| |
| @Test |
| public void requestSettingsSetNullMeansDefault() throws Exception { |
| Camera2RequestSettingsSet s = new Camera2RequestSettingsSet(); |
| CaptureRequest r1 = s.createRequest(mCamera, CameraDevice.TEMPLATE_PREVIEW); |
| assertEquals((Object) CaptureRequest.CONTROL_CAPTURE_INTENT_PREVIEW, |
| r1.get(CaptureRequest.CONTROL_CAPTURE_INTENT)); |
| |
| requestSettingsSetAndForget(s, CaptureRequest.CONTROL_CAPTURE_INTENT, |
| CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE); |
| CaptureRequest r2 = s.createRequest(mCamera, CameraDevice.TEMPLATE_PREVIEW); |
| assertEquals((Object) CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE, |
| r2.get(CaptureRequest.CONTROL_CAPTURE_INTENT)); |
| |
| requestSettingsSetAndForget(s, CaptureRequest.CONTROL_CAPTURE_INTENT, null); |
| CaptureRequest r3 = s.createRequest(mCamera, CameraDevice.TEMPLATE_PREVIEW); |
| assertEquals((Object) CaptureRequest.CONTROL_CAPTURE_INTENT_PREVIEW, |
| r3.get(CaptureRequest.CONTROL_CAPTURE_INTENT)); |
| |
| s.unset(CaptureRequest.CONTROL_CAPTURE_INTENT); |
| CaptureRequest r4 = s.createRequest(mCamera, CameraDevice.TEMPLATE_PREVIEW); |
| assertEquals((Object) CaptureRequest.CONTROL_CAPTURE_INTENT_PREVIEW, |
| r4.get(CaptureRequest.CONTROL_CAPTURE_INTENT)); |
| } |
| |
| @Test |
| public void requestSettingsSetNullPreservedByUnions() { |
| Camera2RequestSettingsSet master = new Camera2RequestSettingsSet(); |
| requestSettingsSetAndForget(master, CaptureRequest.CONTROL_CAPTURE_INTENT, |
| CaptureRequest.CONTROL_CAPTURE_INTENT_PREVIEW); |
| |
| Camera2RequestSettingsSet slave = new Camera2RequestSettingsSet(); |
| master.union(slave); |
| assertEquals((Object) CaptureRequest.CONTROL_CAPTURE_INTENT_PREVIEW, |
| master.get(CaptureRequest.CONTROL_CAPTURE_INTENT)); |
| |
| requestSettingsSetAndForget(slave, CaptureRequest.CONTROL_CAPTURE_INTENT, null); |
| master.union(slave); |
| assertEquals(null, master.get(CaptureRequest.CONTROL_CAPTURE_INTENT)); |
| |
| requestSettingsSetAndForget(slave, CaptureRequest.CONTROL_CAPTURE_INTENT, |
| CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE); |
| master.union(slave); |
| assertEquals((Object) CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE, |
| master.get(CaptureRequest.CONTROL_CAPTURE_INTENT)); |
| |
| slave.unset(CaptureRequest.CONTROL_CAPTURE_INTENT); |
| master.union(slave); |
| assertEquals((Object) CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE, |
| master.get(CaptureRequest.CONTROL_CAPTURE_INTENT)); |
| } |
| |
| @Test |
| public void requestSettingsSetNullChangesRecorded() throws Exception { |
| Camera2RequestSettingsSet s = new Camera2RequestSettingsSet(); |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.CONTROL_CAPTURE_INTENT, null, true); |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.CONTROL_CAPTURE_INTENT, |
| CaptureRequest.CONTROL_CAPTURE_INTENT_PREVIEW, true); |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.CONTROL_CAPTURE_INTENT, null, true); |
| requestSettingsSetAndAssertChanged(s, CaptureRequest.CONTROL_CAPTURE_INTENT, null, false); |
| } |
| |
| @Test |
| public void requestSettingsSetUnionChangesRecorded() { |
| Camera2RequestSettingsSet[] sets = { new Camera2RequestSettingsSet(), |
| new Camera2RequestSettingsSet() }; |
| sets[0].union(sets[1]); |
| assertEquals(1, sets[0].getRevision()); |
| assertEquals(0, sets[1].getRevision()); |
| } |
| |
| private <T> void requestSettingsSetsCheckPairOfProperties(Camera2RequestSettingsSet firstSet, |
| Camera2RequestSettingsSet secondSet, |
| Key<T> firstKey, |
| Key<T> secondKey, |
| T expectedFirstSetFirstValue, |
| T expectedFirstSetSecondValue, |
| T expectedSecondSetFirstValue, |
| T expectedSecondSetSecondValue) { |
| assertEquals(expectedFirstSetFirstValue, firstSet.get(firstKey)); |
| assertEquals(expectedFirstSetSecondValue, firstSet.get(secondKey)); |
| assertEquals(expectedSecondSetFirstValue, secondSet.get(firstKey)); |
| assertEquals(expectedSecondSetSecondValue, secondSet.get(secondKey)); |
| } |
| |
| @Test |
| public void requestSettingsSetUnionChangesReflected() { |
| Camera2RequestSettingsSet[] sets = { new Camera2RequestSettingsSet(), |
| new Camera2RequestSettingsSet() }; |
| |
| sets[0].set(CaptureRequest.CONTROL_AE_LOCK, true); |
| sets[1].set(CaptureRequest.CONTROL_AWB_LOCK, true); |
| sets[0].union(sets[1]); |
| sets[1].set(CaptureRequest.CONTROL_AE_LOCK, false); |
| requestSettingsSetsCheckPairOfProperties(sets[0], sets[1], |
| CaptureRequest.CONTROL_AE_LOCK, CaptureRequest.CONTROL_AWB_LOCK, |
| true, true, false, true); |
| |
| sets[0].union(sets[1]); |
| requestSettingsSetsCheckPairOfProperties(sets[0], sets[1], |
| CaptureRequest.CONTROL_AE_LOCK, CaptureRequest.CONTROL_AWB_LOCK, |
| false, true, false, true); |
| |
| sets[1].set(CaptureRequest.CONTROL_AE_LOCK, false); |
| sets[1].set(CaptureRequest.CONTROL_AWB_LOCK, false); |
| sets[0].union(sets[1]); |
| requestSettingsSetsCheckPairOfProperties(sets[0], sets[1], |
| CaptureRequest.CONTROL_AE_LOCK, CaptureRequest.CONTROL_AWB_LOCK, |
| false, false, false, false); |
| } |
| } |