Skip to content
Merged
4 changes: 4 additions & 0 deletions packages/camera/camera_android_camerax/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.6.18+1

* Makes Java style improvements.

## 0.6.18

* Adds support for the `MediaSettings.enableAudio` setting, which determines whether or not audio is
Expand Down
5 changes: 5 additions & 0 deletions packages/camera/camera_android_camerax/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ android {
unitTests.includeAndroidResources = true
unitTests.returnDefaultValues = true
unitTests.all {
// The org.gradle.jvmargs property that may be set in gradle.properties does not impact
// the Java heap size when running the Android unit tests. The following property here
// sets the heap size to a size large enough to run the robolectric tests across
// multiple SDK levels.
jvmArgs "-Xmx1G"
testLogging {
events "passed", "skipped", "failed", "standardOut", "standardError"
outputs.upToDateWhen {false}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import androidx.annotation.NonNull;
import androidx.camera.core.ImageAnalysis.Analyzer;
import androidx.camera.core.ImageProxy;
import java.util.Objects;

/**
Expand Down Expand Up @@ -33,7 +34,7 @@ static class AnalyzerImpl implements Analyzer {
}

@Override
public void analyze(@NonNull androidx.camera.core.ImageProxy image) {
public void analyze(@NonNull ImageProxy image) {
api.getPigeonRegistrar()
.runOnMainThread(
new ProxyApiRegistrar.FlutterMethodRunnable() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ public AspectRatioStrategy pigeon_defaultConstructor(
break;
case RATIO_DEFAULT:
nativeAspectRatio = androidx.camera.core.AspectRatio.RATIO_DEFAULT;
break;
case UNKNOWN:
default:
// Default to nativeAspectRatio -2.
break;
}
int nativeFallbackRule = -1;
switch (fallbackRule) {
Expand All @@ -41,6 +46,10 @@ public AspectRatioStrategy pigeon_defaultConstructor(
case NONE:
nativeFallbackRule = AspectRatioStrategy.FALLBACK_RULE_NONE;
break;
case UNKNOWN:
default:
// Default to nativeFallbackRule -1.
break;
}
return new AspectRatioStrategy(nativeAspectRatio, nativeFallbackRule);
}
Expand All @@ -66,9 +75,9 @@ public AspectRatioStrategyFallbackRule getFallbackRule(
return AspectRatioStrategyFallbackRule.AUTO;
case AspectRatioStrategy.FALLBACK_RULE_NONE:
return AspectRatioStrategyFallbackRule.NONE;
default:
return AspectRatioStrategyFallbackRule.UNKNOWN;
}

return AspectRatioStrategyFallbackRule.UNKNOWN;
}

@NonNull
Expand All @@ -81,8 +90,8 @@ public AspectRatio getPreferredAspectRatio(@NonNull AspectRatioStrategy pigeonIn
return AspectRatio.RATIO4TO3;
case androidx.camera.core.AspectRatio.RATIO_DEFAULT:
return AspectRatio.RATIO_DEFAULT;
default:
return AspectRatio.UNKNOWN;
}

return AspectRatio.UNKNOWN;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,12 @@ public void addCaptureRequestOptions(
Futures.addCallback(
addCaptureRequestOptionsFuture,
new FutureCallback<>() {
@Override
public void onSuccess(Void voidResult) {
ResultCompat.success(null, callback);
}

@Override
public void onFailure(@NonNull Throwable t) {
ResultCompat.failure(t, callback);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public Object getCameraCharacteristic(
return null;
}

if (key == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL) {
if (CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL.equals(key)) {
switch ((Integer) result) {
case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_3:
return InfoSupportedHardwareLevel.LEVEL3;
Expand All @@ -57,9 +57,11 @@ public Object getCameraCharacteristic(
return InfoSupportedHardwareLevel.LEGACY;
case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED:
return InfoSupportedHardwareLevel.LIMITED;
default:
// Fall through to return result.
break;
}
}

return result;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public CameraCharacteristics.Key<?> infoSupportedHardwareLevel() {

@NonNull
@Override
public android.hardware.camera2.CameraCharacteristics.Key<?> sensorOrientation() {
public CameraCharacteristics.Key<?> sensorOrientation() {
return CameraCharacteristics.SENSOR_ORIENTATION;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,12 @@ public void enableTorch(
Futures.addCallback(
enableTorchFuture,
new FutureCallback<>() {
@Override
public void onSuccess(Void voidResult) {
ResultCompat.success(null, callback);
}

@Override
public void onFailure(@NonNull Throwable t) {
ResultCompat.failure(t, callback);
}
Expand All @@ -64,10 +66,12 @@ public void setZoomRatio(
Futures.addCallback(
setZoomRatioFuture,
new FutureCallback<>() {
@Override
public void onSuccess(Void voidResult) {
ResultCompat.success(null, callback);
}

@Override
public void onFailure(@NonNull Throwable t) {
if (t instanceof CameraControl.OperationCanceledException) {
// Operation was canceled due to camera being closed or a new request was submitted, which
Expand All @@ -93,10 +97,12 @@ public void startFocusAndMetering(
Futures.addCallback(
focusMeteringResultFuture,
new FutureCallback<>() {
@Override
public void onSuccess(FocusMeteringResult focusMeteringResult) {
ResultCompat.success(focusMeteringResult, callback);
}

@Override
public void onFailure(@NonNull Throwable t) {
if (t instanceof CameraControl.OperationCanceledException) {
// Operation was canceled due to camera being closed or a new request was submitted, which
Expand All @@ -120,10 +126,12 @@ public void cancelFocusAndMetering(
Futures.addCallback(
cancelFocusAndMeteringFuture,
new FutureCallback<>() {
@Override
public void onSuccess(Void voidResult) {
ResultCompat.success(null, callback);
}

@Override
public void onFailure(@NonNull Throwable t) {
ResultCompat.failure(t, callback);
}
Expand All @@ -142,10 +150,12 @@ public void setExposureCompensationIndex(
Futures.addCallback(
setExposureCompensationIndexFuture,
new FutureCallback<>() {
@Override
public void onSuccess(Integer integerResult) {
ResultCompat.success(integerResult.longValue(), callback);
}

@Override
public void onFailure(@NonNull Throwable t) {
if (t instanceof CameraControl.OperationCanceledException) {
// Operation was canceled due to camera being closed or a new request was submitted, which
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ public Range<Integer> pigeon_defaultConstructor(long lower, long upper) {
}

@Override
public long lower(android.util.Range<?> pigeonInstance) {
public long lower(Range<?> pigeonInstance) {
return (Integer) pigeonInstance.getLower();
}

@Override
public long upper(android.util.Range<?> pigeonInstance) {
public long upper(Range<?> pigeonInstance) {
return (Integer) pigeonInstance.getUpper();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,11 @@
import androidx.annotation.VisibleForTesting;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import io.flutter.plugin.common.PluginRegistry;

public final class CameraPermissionsManager {
interface PermissionsRegistry {
@SuppressWarnings("deprecation")
void addListener(
io.flutter.plugin.common.PluginRegistry.RequestPermissionsResultListener handler);
void addListener(PluginRegistry.RequestPermissionsResultListener handler);
}

interface ResultCallback {
Expand Down Expand Up @@ -84,9 +83,8 @@ private boolean hasAudioPermission(Activity activity) {
}

@VisibleForTesting
@SuppressWarnings("deprecation")
static final class CameraRequestPermissionsListener
implements io.flutter.plugin.common.PluginRegistry.RequestPermissionsResultListener {
implements PluginRegistry.RequestPermissionsResultListener {

// There's no way to unregister permission listeners in the v1 embedding, so we'll be called
// duplicate times in cases where the user denies and then grants a permission. Keep track of if
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ public CameraSelector pigeon_defaultConstructor(@Nullable LensFacing requireLens

@NonNull
@Override
public androidx.camera.core.CameraSelector defaultBackCamera() {
public CameraSelector defaultBackCamera() {
return CameraSelector.DEFAULT_BACK_CAMERA;
}

@NonNull
@Override
public androidx.camera.core.CameraSelector defaultFrontCamera() {
public CameraSelector defaultFrontCamera() {
return CameraSelector.DEFAULT_FRONT_CAMERA;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,8 @@ public CameraStateType type(CameraState pigeonInstance) {
return CameraStateType.CLOSING;
case CLOSED:
return CameraStateType.CLOSED;
default:
return CameraStateType.UNKNOWN;
}
return CameraStateType.UNKNOWN;
}

@Nullable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public CameraStateErrorCode code(CameraState.StateError pigeonInstance) {
case CameraState.ERROR_STREAM_CONFIG:
return CameraStateErrorCode.STREAM_CONFIG;
default:
return io.flutter.plugins.camerax.CameraStateErrorCode.UNKNOWN;
return CameraStateErrorCode.UNKNOWN;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class CaptureRequestProxyApi extends PigeonApiCaptureRequest {

@NonNull
@Override
public android.hardware.camera2.CaptureRequest.Key<?> controlAELock() {
public CaptureRequest.Key<?> controlAELock() {
return CaptureRequest.CONTROL_AE_LOCK;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

package io.flutter.plugins.camerax;

import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
Expand Down Expand Up @@ -47,6 +48,8 @@ Context getContext() {
* <p>When orientation information is updated, the callback method of the {@link
* DeviceOrientationManagerProxyApi} is called with the new orientation.
*/
@SuppressLint(
"UnprotectedReceiver") // orientationIntentFilter only listens to protected broadcast
public void start() {
stop();

Expand All @@ -68,7 +71,7 @@ protected OrientationEventListener createOrientationEventListener() {
return new OrientationEventListener(getContext()) {
@Override
public void onOrientationChanged(int orientation) {
handleUIOrientationChange();
handleUiOrientationChange();
}
};
}
Expand All @@ -91,8 +94,8 @@ public void stop() {
* class.
*/
@VisibleForTesting
void handleUIOrientationChange() {
PlatformChannel.DeviceOrientation orientation = getUIOrientation();
void handleUiOrientationChange() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Calling out that this is a possible braking change since it was technically public but because we annotated it @VisibleForTesing then we are ok with it breaking anyone that relied on it.

PlatformChannel.DeviceOrientation orientation = getUiOrientation();
handleOrientationChange(this, orientation, lastOrientation, api);
lastOrientation = orientation;
}
Expand Down Expand Up @@ -143,7 +146,7 @@ public void run() {
// Configuration.ORIENTATION_SQUARE is deprecated.
@SuppressWarnings("deprecation")
@NonNull
PlatformChannel.DeviceOrientation getUIOrientation() {
PlatformChannel.DeviceOrientation getUiOrientation() {
final int rotation = getDefaultRotation();
final int orientation = getContext().getResources().getConfiguration().orientation;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,6 @@ public long getDefaultDisplayRotation(@NonNull DeviceOrientationManager pigeonIn
@NonNull
@Override
public String getUiOrientation(@NonNull DeviceOrientationManager pigeonInstance) {
return pigeonInstance.getUIOrientation().toString();
return pigeonInstance.getUiOrientation().toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ public void disableAutoCancel(FocusMeteringAction.Builder pigeonInstance) {

@NonNull
@Override
public androidx.camera.core.FocusMeteringAction build(
FocusMeteringAction.Builder pigeonInstance) {
public FocusMeteringAction build(FocusMeteringAction.Builder pigeonInstance) {
return pigeonInstance.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,13 @@ public List<MeteringPoint> meteringPointsAe(FocusMeteringAction pigeonInstance)

@NonNull
@Override
public List<androidx.camera.core.MeteringPoint> meteringPointsAf(
FocusMeteringAction pigeonInstance) {
public List<MeteringPoint> meteringPointsAf(FocusMeteringAction pigeonInstance) {
return pigeonInstance.getMeteringPointsAf();
}

@NonNull
@Override
public List<androidx.camera.core.MeteringPoint> meteringPointsAwb(
FocusMeteringAction pigeonInstance) {
public List<MeteringPoint> meteringPointsAwb(FocusMeteringAction pigeonInstance) {
return pigeonInstance.getMeteringPointsAwb();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@ public ProxyApiRegistrar getPigeonRegistrar() {
}

@Override
public void setAnalyzer(
ImageAnalysis pigeonInstance, @NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) {
public void setAnalyzer(ImageAnalysis pigeonInstance, @NonNull ImageAnalysis.Analyzer analyzer) {
getPigeonRegistrar()
.getInstanceManager()
.setClearFinalizedWeakReferencesInterval(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public ProxyApiRegistrar getPigeonRegistrar() {
@NonNull
@Override
public ImageCapture pigeon_defaultConstructor(
@Nullable androidx.camera.core.resolutionselector.ResolutionSelector resolutionSelector,
@Nullable ResolutionSelector resolutionSelector,
@Nullable Long targetRotation,
@Nullable CameraXFlashMode flashMode) {
final ImageCapture.Builder builder = new ImageCapture.Builder();
Expand Down
Loading