Skip to content

Commit

Permalink
Cleanup java main
Browse files Browse the repository at this point in the history
  • Loading branch information
yaakovschectman committed Oct 15, 2024
1 parent d380b9f commit 97d72b8
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 156 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -808,9 +808,8 @@ void unlockAutoFocus() {
dartMessenger.error(flutterResult, errorCode, errorMessage, null));
}

public void startVideoRecording(
@NonNull Messages.VoidResult result, @Nullable EventChannel imageStreamChannel) {
prepareRecording(result);
public void startVideoRecording(@Nullable EventChannel imageStreamChannel) {
prepareRecording();

if (imageStreamChannel != null) {
setStreamHandler(imageStreamChannel);
Expand All @@ -819,11 +818,11 @@ public void startVideoRecording(
recordingVideo = true;
try {
startCapture(true, imageStreamChannel != null);
result.success();
return;
} catch (CameraAccessException e) {
recordingVideo = false;
captureFile = null;
result.error(new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null));
throw new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null);
}
}

Expand All @@ -834,10 +833,9 @@ private void closeRenderer() {
}
}

public void stopVideoRecording(@NonNull final Messages.Result<String> result) {
public String stopVideoRecording() {
if (!recordingVideo) {
result.success("");
return;
return "";
}
// Re-create autofocus feature so it's using continuous capture focus mode now.
cameraFeatures.setAutoFocus(
Expand All @@ -854,57 +852,47 @@ public void stopVideoRecording(@NonNull final Messages.Result<String> result) {
try {
startPreview();
} catch (CameraAccessException | IllegalStateException | InterruptedException e) {
result.error(new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null));
return;
throw new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null);
}
result.success(captureFile.getAbsolutePath());
String path = captureFile.getAbsolutePath();
captureFile = null;
return path;
}

public void pauseVideoRecording(@NonNull final Messages.VoidResult result) {
public void pauseVideoRecording() {
if (!recordingVideo) {
result.success();
return;
}

try {
if (SdkCapabilityChecker.supportsVideoPause()) {
mediaRecorder.pause();
} else {
result.error(
throw
new Messages.FlutterError(
"videoRecordingFailed", "pauseVideoRecording requires Android API +24.", null));
return;
"videoRecordingFailed", "pauseVideoRecording requires Android API +24.", null);
}
} catch (IllegalStateException e) {
result.error(new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null));
return;
throw new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null);
}

result.success();
}

public void resumeVideoRecording(@NonNull final Messages.VoidResult result) {
public void resumeVideoRecording() {
if (!recordingVideo) {
result.success();
return;
}

try {
if (SdkCapabilityChecker.supportsVideoPause()) {
mediaRecorder.resume();
} else {
result.error(
throw
new Messages.FlutterError(
"videoRecordingFailed", "resumeVideoRecording requires Android API +24.", null));
return;
"videoRecordingFailed", "resumeVideoRecording requires Android API +24.", null);
}
} catch (IllegalStateException e) {
result.error(new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null));
return;
throw new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null);
}

result.success();
}

/**
Expand Down Expand Up @@ -984,10 +972,9 @@ public double getExposureOffsetStepSize() {
/**
* Sets new focus mode from dart.
*
* @param result Flutter result.
* @param newMode New mode.
*/
public void setFocusMode(final Messages.VoidResult result, @NonNull FocusMode newMode) {
public void setFocusMode(@NonNull FocusMode newMode) {
final AutoFocusFeature autoFocusFeature = cameraFeatures.getAutoFocus();
autoFocusFeature.setValue(newMode);
autoFocusFeature.updateBuilder(previewRequestBuilder);
Expand All @@ -1014,12 +1001,9 @@ public void setFocusMode(final Messages.VoidResult result, @NonNull FocusMode ne
captureSession.setRepeatingRequest(
previewRequestBuilder.build(), null, backgroundHandler);
} catch (CameraAccessException e) {
if (result != null) {
result.error(
throw
new Messages.FlutterError(
"setFocusModeFailed", "Error setting focus mode: " + e.getMessage(), null));
}
return;
"setFocusModeFailed", "Error setting focus mode: " + e.getMessage(), null);
}
break;
case auto:
Expand All @@ -1028,10 +1012,6 @@ public void setFocusMode(final Messages.VoidResult result, @NonNull FocusMode ne
break;
}
}

if (result != null) {
result.success();
}
}

/**
Expand All @@ -1052,7 +1032,7 @@ public void setFocusPoint(@NonNull final Messages.VoidResult result, @Nullable P
new Messages.FlutterError(
"setFocusPointFailed", "Could not set focus point.", null)));

this.setFocusMode(null, cameraFeatures.getAutoFocus().getValue());
this.setFocusMode(cameraFeatures.getAutoFocus().getValue());
}

/**
Expand Down Expand Up @@ -1248,21 +1228,19 @@ public void onError(@NonNull String errorCode, @NonNull String errorMessage) {
}

@VisibleForTesting
void prepareRecording(@NonNull Messages.VoidResult result) {
void prepareRecording() {
final File outputDir = applicationContext.getCacheDir();
try {
captureFile = File.createTempFile("REC", ".mp4", outputDir);
} catch (IOException | SecurityException e) {
result.error(new Messages.FlutterError("cannotCreateFile", e.getMessage(), null));
return;
throw new Messages.FlutterError("cannotCreateFile", e.getMessage(), null);
}
try {
prepareMediaRecorder(captureFile.getAbsolutePath());
} catch (IOException e) {
recordingVideo = false;
captureFile = null;
result.error(new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null));
return;
throw new Messages.FlutterError("videoRecordingFailed", e.getMessage(), null);
}
// Re-create autofocus feature so it's using video focus mode now.
cameraFeatures.setAutoFocus(
Expand Down Expand Up @@ -1363,24 +1341,21 @@ public void uncaughtException(Thread thread, Throwable ex) {
videoRendererUncaughtExceptionHandler);
}

public void setDescriptionWhileRecording(
@NonNull final Messages.VoidResult result, CameraProperties properties) {
public void setDescriptionWhileRecording(CameraProperties properties) {

if (!recordingVideo) {
result.error(
throw
new Messages.FlutterError(
"setDescriptionWhileRecordingFailed", "Device was not recording", null));
return;
"setDescriptionWhileRecordingFailed", "Device was not recording", null);
}

// See VideoRenderer.java; support for this EGL extension is required to switch camera while recording.
if (!SdkCapabilityChecker.supportsEglRecordableAndroid()) {
result.error(
throw
new Messages.FlutterError(
"setDescriptionWhileRecordingFailed",
"Device does not support switching the camera while recording",
null));
return;
null);
}

stopAndReleaseCamera();
Expand All @@ -1398,10 +1373,9 @@ public void setDescriptionWhileRecording(
try {
open(imageFormatGroup);
} catch (CameraAccessException e) {
result.error(
new Messages.FlutterError("setDescriptionWhileRecordingFailed", e.getMessage(), null));
throw
new Messages.FlutterError("setDescriptionWhileRecordingFailed", e.getMessage(), null);
}
result.success();
}

public void dispose() {
Expand Down
Loading

0 comments on commit 97d72b8

Please sign in to comment.