|
|
@ -818,8 +818,15 @@ public class Camera2Engine extends CameraEngine implements ImageReader.OnImageAv |
|
|
|
boolean unlock = (fullPicture && getPictureMetering()) |
|
|
|
boolean unlock = (fullPicture && getPictureMetering()) |
|
|
|
|| (!fullPicture && getPictureSnapshotMetering()); |
|
|
|
|| (!fullPicture && getPictureSnapshotMetering()); |
|
|
|
if (unlock) { |
|
|
|
if (unlock) { |
|
|
|
|
|
|
|
mOrchestrator.scheduleStateful("reset metering after picture", |
|
|
|
|
|
|
|
CameraState.PREVIEW, |
|
|
|
|
|
|
|
new Runnable() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void run() { |
|
|
|
unlockAndResetMetering(); |
|
|
|
unlockAndResetMetering(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//endregion
|
|
|
|
//endregion
|
|
|
@ -1479,7 +1486,8 @@ public class Camera2Engine extends CameraEngine implements ImageReader.OnImageAv |
|
|
|
mCallback.dispatchOnFocusEnd(gesture, action.isSuccessful(), point); |
|
|
|
mCallback.dispatchOnFocusEnd(gesture, action.isSuccessful(), point); |
|
|
|
mOrchestrator.remove("reset metering"); |
|
|
|
mOrchestrator.remove("reset metering"); |
|
|
|
if (shouldResetAutoFocus()) { |
|
|
|
if (shouldResetAutoFocus()) { |
|
|
|
mOrchestrator.scheduleDelayed("reset metering", |
|
|
|
mOrchestrator.scheduleStatefulDelayed("reset metering", |
|
|
|
|
|
|
|
CameraState.PREVIEW, |
|
|
|
getAutoFocusResetDelay(), |
|
|
|
getAutoFocusResetDelay(), |
|
|
|
new Runnable() { |
|
|
|
new Runnable() { |
|
|
|
@Override |
|
|
|
@Override |
|
|
@ -1510,8 +1518,9 @@ public class Camera2Engine extends CameraEngine implements ImageReader.OnImageAv |
|
|
|
return mMeterAction; |
|
|
|
return mMeterAction; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@EngineThread |
|
|
|
private void unlockAndResetMetering() { |
|
|
|
private void unlockAndResetMetering() { |
|
|
|
if (getState() == CameraState.PREVIEW && !isChangingState()) { |
|
|
|
// Needs the PREVIEW state!
|
|
|
|
Actions.sequence( |
|
|
|
Actions.sequence( |
|
|
|
new BaseAction() { |
|
|
|
new BaseAction() { |
|
|
|
@Override |
|
|
|
@Override |
|
|
@ -1530,7 +1539,6 @@ public class Camera2Engine extends CameraEngine implements ImageReader.OnImageAv |
|
|
|
new MeterResetAction() |
|
|
|
new MeterResetAction() |
|
|
|
).start(Camera2Engine.this); |
|
|
|
).start(Camera2Engine.this); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//endregion
|
|
|
|
//endregion
|
|
|
|
|
|
|
|
|
|
|
@ -1568,6 +1576,7 @@ public class Camera2Engine extends CameraEngine implements ImageReader.OnImageAv |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void applyBuilder(@NonNull Action source) { |
|
|
|
public void applyBuilder(@NonNull Action source) { |
|
|
|
|
|
|
|
// NOTE: Should never be called on a non-engine thread!
|
|
|
|
applyRepeatingRequestBuilder(); |
|
|
|
applyRepeatingRequestBuilder(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|