diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index 13d2f18fb926..a07f2854ccd5 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.0+3 + +* Fixes Java lints. + ## 0.5.0+2 * Adds a dependency on kotlin-bom to align versions of Kotlin transitive dependencies. diff --git a/packages/camera/camera_android_camerax/android/build.gradle b/packages/camera/camera_android_camerax/android/build.gradle index 837ab1b1f0b2..77b10450914a 100644 --- a/packages/camera/camera_android_camerax/android/build.gradle +++ b/packages/camera/camera_android_camerax/android/build.gradle @@ -56,7 +56,6 @@ android { checkAllWarnings true warningsAsErrors true disable 'AndroidGradlePluginVersion', 'GradleDependency', 'InvalidPackage' - baseline file("lint-baseline.xml") } } diff --git a/packages/camera/camera_android_camerax/android/lint-baseline.xml b/packages/camera/camera_android_camerax/android/lint-baseline.xml deleted file mode 100644 index 1142794741a6..000000000000 --- a/packages/camera/camera_android_camerax/android/lint-baseline.xml +++ /dev/null @@ -1,1434 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java index d386635257b1..dd8ab514652c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java @@ -7,6 +7,7 @@ import android.app.Activity; import android.content.Context; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.LifecycleOwner; import io.flutter.embedding.engine.plugins.FlutterPlugin; @@ -24,12 +25,12 @@ public final class CameraAndroidCameraxPlugin implements FlutterPlugin, Activity private VideoCaptureHostApiImpl videoCaptureHostApiImpl; private ImageAnalysisHostApiImpl imageAnalysisHostApiImpl; private ImageCaptureHostApiImpl imageCaptureHostApiImpl; - public SystemServicesHostApiImpl systemServicesHostApiImpl; + public @Nullable SystemServicesHostApiImpl systemServicesHostApiImpl; - @VisibleForTesting @NonNull - public ProcessCameraProviderHostApiImpl processCameraProviderHostApiImpl; + @VisibleForTesting + public @Nullable ProcessCameraProviderHostApiImpl processCameraProviderHostApiImpl; - @VisibleForTesting @NonNull public LiveDataHostApiImpl liveDataHostApiImpl; + @VisibleForTesting public @Nullable LiveDataHostApiImpl liveDataHostApiImpl; /** * Initialize this within the {@code #configureFlutterEngine} of a Flutter activity or fragment. diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraFlutterApiImpl.java index a03548399485..cfc40be1819a 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraFlutterApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraFlutterApiImpl.java @@ -4,14 +4,16 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.core.Camera; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraFlutterApi; public class CameraFlutterApiImpl extends CameraFlutterApi { - private final InstanceManager instanceManager; + private final @NonNull InstanceManager instanceManager; - public CameraFlutterApiImpl(BinaryMessenger binaryMessenger, InstanceManager instanceManager) { + public CameraFlutterApiImpl( + @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { super(binaryMessenger); this.instanceManager = instanceManager; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java index 45fd784b65c4..8b0e1ff6b3e2 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java @@ -4,15 +4,16 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.core.CameraInfo; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraInfoFlutterApi; public class CameraInfoFlutterApiImpl extends CameraInfoFlutterApi { - private final InstanceManager instanceManager; + private final @NonNull InstanceManager instanceManager; public CameraInfoFlutterApiImpl( - BinaryMessenger binaryMessenger, InstanceManager instanceManager) { + @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { super(binaryMessenger); this.instanceManager = instanceManager; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java index e72d08da34d1..83eb359cdb5e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java @@ -20,7 +20,7 @@ public class CameraInfoHostApiImpl implements CameraInfoHostApi { private final BinaryMessenger binaryMessenger; private final InstanceManager instanceManager; - @VisibleForTesting public LiveDataFlutterApiWrapper liveDataFlutterApiWrapper; + @VisibleForTesting public @NonNull LiveDataFlutterApiWrapper liveDataFlutterApiWrapper; public CameraInfoHostApiImpl( @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java index 19b1ee569a9b..28093ec43711 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java @@ -8,6 +8,7 @@ import android.Manifest.permission; import android.app.Activity; import android.content.pm.PackageManager; +import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; @@ -99,7 +100,8 @@ static final class CameraRequestPermissionsListener } @Override - public boolean onRequestPermissionsResult(int id, String[] permissions, int[] grantResults) { + public boolean onRequestPermissionsResult( + int id, @NonNull String[] permissions, @NonNull int[] grantResults) { if (alreadyCalled || id != CAMERA_REQUEST_ID) { return false; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorFlutterApiImpl.java index 6ca3782d8b59..a0b30fa25417 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorFlutterApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorFlutterApiImpl.java @@ -4,6 +4,7 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.core.CameraSelector; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraSelectorFlutterApi; @@ -12,7 +13,7 @@ public class CameraSelectorFlutterApiImpl extends CameraSelectorFlutterApi { private final InstanceManager instanceManager; public CameraSelectorFlutterApiImpl( - BinaryMessenger binaryMessenger, InstanceManager instanceManager) { + @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { super(binaryMessenger); this.instanceManager = instanceManager; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorHostApiImpl.java index 8ceafbcecc7b..bbd747342def 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorHostApiImpl.java @@ -5,6 +5,7 @@ package io.flutter.plugins.camerax; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.camera.core.CameraInfo; import androidx.camera.core.CameraSelector; @@ -18,16 +19,16 @@ public class CameraSelectorHostApiImpl implements CameraSelectorHostApi { private final BinaryMessenger binaryMessenger; private final InstanceManager instanceManager; - @VisibleForTesting public CameraXProxy cameraXProxy = new CameraXProxy(); + @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); public CameraSelectorHostApiImpl( - BinaryMessenger binaryMessenger, InstanceManager instanceManager) { + @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { this.binaryMessenger = binaryMessenger; this.instanceManager = instanceManager; } @Override - public void create(@NonNull Long identifier, Long lensFacing) { + public void create(@NonNull Long identifier, @Nullable Long lensFacing) { CameraSelector.Builder cameraSelectorBuilder = cameraXProxy.createCameraSelectorBuilder(); if (lensFacing != null) { cameraSelectorBuilder = cameraSelectorBuilder.requireLensFacing(lensFacing.intValue()); @@ -36,10 +37,10 @@ public void create(@NonNull Long identifier, Long lensFacing) { } @Override - public List filter(@NonNull Long identifier, @NonNull List cameraInfoIds) { + public @NonNull List filter(@NonNull Long identifier, @NonNull List cameraInfoIds) { CameraSelector cameraSelector = (CameraSelector) Objects.requireNonNull(instanceManager.getInstance(identifier)); - List cameraInfosForFilter = new ArrayList(); + List cameraInfosForFilter = new ArrayList<>(); for (Number cameraInfoAsNumber : cameraInfoIds) { Long cameraInfoId = cameraInfoAsNumber.longValue(); @@ -50,7 +51,7 @@ public List filter(@NonNull Long identifier, @NonNull List cameraInf } List filteredCameraInfos = cameraSelector.filter(cameraInfosForFilter); - List filteredCameraInfosIds = new ArrayList(); + List filteredCameraInfosIds = new ArrayList<>(); for (CameraInfo cameraInfo : filteredCameraInfos) { Long filteredCameraInfoId = instanceManager.getIdentifierForStrongReference(cameraInfo); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java index 09c100337051..af7fdc36a721 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java @@ -24,35 +24,35 @@ public class CameraXProxy { * Converts a {@link ResolutionInfo} instance to a {@link Size} for setting the target resolution * of {@link UseCase}s. */ - public static Size sizeFromResolution(@NonNull ResolutionInfo resolutionInfo) { + public static @NonNull Size sizeFromResolution(@NonNull ResolutionInfo resolutionInfo) { return new Size(resolutionInfo.getWidth().intValue(), resolutionInfo.getHeight().intValue()); } - public CameraSelector.Builder createCameraSelectorBuilder() { + public @NonNull CameraSelector.Builder createCameraSelectorBuilder() { return new CameraSelector.Builder(); } /** Creates an instance of {@link CameraPermissionsManager}. */ - public CameraPermissionsManager createCameraPermissionsManager() { + public @NonNull CameraPermissionsManager createCameraPermissionsManager() { return new CameraPermissionsManager(); } /** Creates an instance of the {@link DeviceOrientationManager}. */ - public DeviceOrientationManager createDeviceOrientationManager( + public @NonNull DeviceOrientationManager createDeviceOrientationManager( @NonNull Activity activity, @NonNull Boolean isFrontFacing, - @NonNull int sensorOrientation, + int sensorOrientation, @NonNull DeviceOrientationManager.DeviceOrientationChangeCallback callback) { return new DeviceOrientationManager(activity, isFrontFacing, sensorOrientation, callback); } /** Creates a builder for an instance of the {@link Preview} use case. */ - public Preview.Builder createPreviewBuilder() { + public @NonNull Preview.Builder createPreviewBuilder() { return new Preview.Builder(); } /** Creates a {@link Surface} instance from the specified {@link SurfaceTexture}. */ - public Surface createSurface(@NonNull SurfaceTexture surfaceTexture) { + public @NonNull Surface createSurface(@NonNull SurfaceTexture surfaceTexture) { return new Surface(surfaceTexture); } @@ -62,7 +62,7 @@ public Surface createSurface(@NonNull SurfaceTexture surfaceTexture) { *

Included in this class to utilize the callback methods it provides, e.g. {@code * onCameraError(String)}. */ - public SystemServicesFlutterApiImpl createSystemServicesFlutterApiImpl( + public @NonNull SystemServicesFlutterApiImpl createSystemServicesFlutterApiImpl( @NonNull BinaryMessenger binaryMessenger) { return new SystemServicesFlutterApiImpl(binaryMessenger); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java index ebcb86433f65..67cac560db4d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java @@ -14,6 +14,7 @@ import android.view.Surface; import android.view.WindowManager; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import io.flutter.embedding.engine.systemchannels.PlatformChannel; import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; @@ -106,7 +107,7 @@ public int getPhotoOrientation() { * into degrees. * @return The device's photo orientation in degrees. */ - public int getPhotoOrientation(PlatformChannel.DeviceOrientation orientation) { + public int getPhotoOrientation(@Nullable PlatformChannel.DeviceOrientation orientation) { int angle = 0; // Fallback to device orientation when the orientation value is null. if (orientation == null) { @@ -163,7 +164,7 @@ public int getVideoOrientation() { * into degrees. * @return The device's video orientation in clockwise degrees. */ - public int getVideoOrientation(PlatformChannel.DeviceOrientation orientation) { + public int getVideoOrientation(@Nullable PlatformChannel.DeviceOrientation orientation) { int angle = 0; // Fallback to device orientation when the orientation value is null. @@ -194,7 +195,7 @@ public int getVideoOrientation(PlatformChannel.DeviceOrientation orientation) { } /** @return the last received UI orientation. */ - public PlatformChannel.DeviceOrientation getLastUIOrientation() { + public @Nullable PlatformChannel.DeviceOrientation getLastUIOrientation() { return this.lastOrientation; } @@ -236,6 +237,8 @@ static void handleOrientationChange( * * @return The current user interface orientation. */ + // Configuration.ORIENTATION_SQUARE is deprecated. + @SuppressWarnings("deprecation") @VisibleForTesting PlatformChannel.DeviceOrientation getUIOrientation() { final int rotation = getDisplay().getRotation(); @@ -254,6 +257,8 @@ PlatformChannel.DeviceOrientation getUIOrientation() { } else { return PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT; } + case Configuration.ORIENTATION_SQUARE: + case Configuration.ORIENTATION_UNDEFINED: default: return PlatformChannel.DeviceOrientation.PORTRAIT_UP; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureHostApiImpl.java index 0c00ed63f2f8..f2e71aa3eeee 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureHostApiImpl.java @@ -27,7 +27,7 @@ public class ImageCaptureHostApiImpl implements ImageCaptureHostApi { public static final String TEMPORARY_FILE_NAME = "CAP"; public static final String JPG_FILE_TYPE = ".jpg"; - @VisibleForTesting public CameraXProxy cameraXProxy = new CameraXProxy(); + @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); public ImageCaptureHostApiImpl( @NonNull BinaryMessenger binaryMessenger, @@ -42,7 +42,7 @@ public ImageCaptureHostApiImpl( * Sets the context that the {@link ImageCapture} will use to find a location to save a captured * image. */ - public void setContext(Context context) { + public void setContext(@NonNull Context context) { this.context = context; } @@ -101,7 +101,7 @@ public void takePicture( /** Creates a callback used when saving a captured image. */ @VisibleForTesting - public ImageCapture.OnImageSavedCallback createOnImageSavedCallback( + public @NonNull ImageCapture.OnImageSavedCallback createOnImageSavedCallback( @NonNull File file, @NonNull GeneratedCameraXLibrary.Result result) { return new ImageCapture.OnImageSavedCallback() { @Override diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/InstanceManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/InstanceManager.java index 788d54f668a0..97ab805370df 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/InstanceManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/InstanceManager.java @@ -67,7 +67,7 @@ public interface FinalizationListener { * @return a new `InstanceManager`. */ @NonNull - public static InstanceManager create(FinalizationListener finalizationListener) { + public static InstanceManager create(@NonNull FinalizationListener finalizationListener) { return new InstanceManager(finalizationListener); } @@ -109,7 +109,7 @@ public T remove(long identifier) { * `null` if the manager doesn't contain the value. */ @Nullable - public Long getIdentifierForStrongReference(Object instance) { + public Long getIdentifierForStrongReference(@Nullable Object instance) { logWarningIfFinalizationListenerHasStopped(); final Long identifier = identifiers.get(instance); @@ -130,7 +130,7 @@ public Long getIdentifierForStrongReference(Object instance) { * @param identifier the identifier to be paired with instance. This value must be >= 0 and * unique. */ - public void addDartCreatedInstance(Object instance, long identifier) { + public void addDartCreatedInstance(@NonNull Object instance, long identifier) { logWarningIfFinalizationListenerHasStopped(); addInstance(instance, identifier); } @@ -141,7 +141,7 @@ public void addDartCreatedInstance(Object instance, long identifier) { * @param instance the instance to be stored. This must be unique to all other added instances. * @return the unique identifier (>= 0) stored with instance. */ - public long addHostCreatedInstance(Object instance) { + public long addHostCreatedInstance(@NonNull Object instance) { logWarningIfFinalizationListenerHasStopped(); if (containsInstance(instance)) { @@ -178,7 +178,7 @@ public T getInstance(long identifier) { * @param instance the instance whose presence in this manager is to be tested. * @return whether this manager contains the given `instance`. */ - public boolean containsInstance(Object instance) { + public boolean containsInstance(@Nullable Object instance) { logWarningIfFinalizationListenerHasStopped(); return identifiers.containsKey(instance); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/JavaObjectHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/JavaObjectHostApiImpl.java index 5dc0ba7fc8ba..538d4542cf4b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/JavaObjectHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/JavaObjectHostApiImpl.java @@ -22,7 +22,7 @@ public class JavaObjectHostApiImpl implements JavaObjectHostApi { * * @param instanceManager maintains instances stored to communicate with Dart objects */ - public JavaObjectHostApiImpl(InstanceManager instanceManager) { + public JavaObjectHostApiImpl(@NonNull InstanceManager instanceManager) { this.instanceManager = instanceManager; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java index e89b4bc9eaba..6f93fd0f87cb 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java @@ -19,12 +19,12 @@ import java.util.concurrent.Executors; public class PreviewHostApiImpl implements PreviewHostApi { - private final BinaryMessenger binaryMessenger; + final BinaryMessenger binaryMessenger; private final InstanceManager instanceManager; private final TextureRegistry textureRegistry; - @VisibleForTesting public CameraXProxy cameraXProxy = new CameraXProxy(); - @VisibleForTesting public TextureRegistry.SurfaceTextureEntry flutterSurfaceTexture; + @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); + @VisibleForTesting public @Nullable TextureRegistry.SurfaceTextureEntry flutterSurfaceTexture; public PreviewHostApiImpl( @NonNull BinaryMessenger binaryMessenger, @@ -57,7 +57,7 @@ public void create( * by a Flutter {@link TextureRegistry.SurfaceTextureEntry} used to build the {@link Preview}. */ @Override - public Long setSurfaceProvider(@NonNull Long identifier) { + public @NonNull Long setSurfaceProvider(@NonNull Long identifier) { Preview preview = (Preview) Objects.requireNonNull(instanceManager.getInstance(identifier)); flutterSurfaceTexture = textureRegistry.createSurfaceTexture(); SurfaceTexture surfaceTexture = flutterSurfaceTexture.surfaceTexture(); @@ -72,10 +72,11 @@ public Long setSurfaceProvider(@NonNull Long identifier) { * {@code Preview} that is backed by a Flutter {@link TextureRegistry.SurfaceTextureEntry}. */ @VisibleForTesting - public Preview.SurfaceProvider createSurfaceProvider(@NonNull SurfaceTexture surfaceTexture) { + public @NonNull Preview.SurfaceProvider createSurfaceProvider( + @NonNull SurfaceTexture surfaceTexture) { return new Preview.SurfaceProvider() { @Override - public void onSurfaceRequested(SurfaceRequest request) { + public void onSurfaceRequested(@NonNull SurfaceRequest request) { surfaceTexture.setDefaultBufferSize( request.getResolution().getWidth(), request.getResolution().getHeight()); Surface flutterSurface = cameraXProxy.createSurface(surfaceTexture); @@ -106,7 +107,7 @@ public void onSurfaceRequested(SurfaceRequest request) { break; } }); - }; + } }; } @@ -114,7 +115,7 @@ public void onSurfaceRequested(SurfaceRequest request) { * Returns an error description for each {@link SurfaceRequest.Result} that represents an error * with providing a surface. */ - private String getProvideSurfaceErrorDescription(int resultCode) { + String getProvideSurfaceErrorDescription(int resultCode) { switch (resultCode) { case SurfaceRequest.Result.RESULT_INVALID_SURFACE: return resultCode + ": Provided surface could not be used by the camera."; @@ -136,7 +137,8 @@ public void releaseFlutterSurfaceTexture() { /** Returns the resolution information for the specified {@link Preview}. */ @Override - public GeneratedCameraXLibrary.ResolutionInfo getResolutionInfo(@NonNull Long identifier) { + public @NonNull GeneratedCameraXLibrary.ResolutionInfo getResolutionInfo( + @NonNull Long identifier) { Preview preview = (Preview) Objects.requireNonNull(instanceManager.getInstance(identifier)); Size resolution = preview.getResolutionInfo().getResolution(); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java index 90c94d0c26cb..35e2bc0ec73c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java @@ -4,13 +4,14 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.lifecycle.ProcessCameraProvider; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ProcessCameraProviderFlutterApi; public class ProcessCameraProviderFlutterApiImpl extends ProcessCameraProviderFlutterApi { public ProcessCameraProviderFlutterApiImpl( - BinaryMessenger binaryMessenger, InstanceManager instanceManager) { + @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { super(binaryMessenger); this.instanceManager = instanceManager; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java index 7d72dee31eab..9292ee93fc43 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java @@ -28,13 +28,15 @@ public class ProcessCameraProviderHostApiImpl implements ProcessCameraProviderHo private LifecycleOwner lifecycleOwner; public ProcessCameraProviderHostApiImpl( - BinaryMessenger binaryMessenger, InstanceManager instanceManager, Context context) { + @NonNull BinaryMessenger binaryMessenger, + @NonNull InstanceManager instanceManager, + @NonNull Context context) { this.binaryMessenger = binaryMessenger; this.instanceManager = instanceManager; this.context = context; } - public void setLifecycleOwner(LifecycleOwner lifecycleOwner) { + public void setLifecycleOwner(@NonNull LifecycleOwner lifecycleOwner) { this.lifecycleOwner = lifecycleOwner; } @@ -45,7 +47,7 @@ public void setLifecycleOwner(LifecycleOwner lifecycleOwner) { *

If using the camera plugin in an add-to-app context, ensure that a new instance of the * {@code ProcessCameraProvider} is fetched via {@code #getInstance} anytime the context changes. */ - public void setContext(Context context) { + public void setContext(@NonNull Context context) { this.context = context; } @@ -54,7 +56,7 @@ public void setContext(Context context) { * for the current {@code Context}. */ @Override - public void getInstance(GeneratedCameraXLibrary.Result result) { + public void getInstance(@NonNull GeneratedCameraXLibrary.Result result) { ListenableFuture processCameraProviderFuture = ProcessCameraProvider.getInstance(context); @@ -78,13 +80,14 @@ public void getInstance(GeneratedCameraXLibrary.Result result) { } /** Returns cameras available to the {@code ProcessCameraProvider}. */ + @NonNull @Override public List getAvailableCameraInfos(@NonNull Long identifier) { ProcessCameraProvider processCameraProvider = (ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier)); List availableCameras = processCameraProvider.getAvailableCameraInfos(); - List availableCamerasIds = new ArrayList(); + List availableCamerasIds = new ArrayList<>(); final CameraInfoFlutterApiImpl cameraInfoFlutterApi = new CameraInfoFlutterApiImpl(binaryMessenger, instanceManager); @@ -103,7 +106,7 @@ public List getAvailableCameraInfos(@NonNull Long identifier) { * that {@code LifecycleOwner} reflects. */ @Override - public Long bindToLifecycle( + public @NonNull Long bindToLifecycle( @NonNull Long identifier, @NonNull Long cameraSelectorIdentifier, @NonNull List useCaseIds) { @@ -128,11 +131,11 @@ public Long bindToLifecycle( cameraFlutterApi.create(camera, result -> {}); } - return instanceManager.getIdentifierForStrongReference(camera); + return Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(camera)); } @Override - public Boolean isBound(@NonNull Long identifier, @NonNull Long useCaseIdentifier) { + public @NonNull Boolean isBound(@NonNull Long identifier, @NonNull Long useCaseIdentifier) { ProcessCameraProvider processCameraProvider = (ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier)); UseCase useCase = diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesHostApiImpl.java index ffd387e181e6..b8f4d6b0c62d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesHostApiImpl.java @@ -7,6 +7,7 @@ import android.app.Activity; import android.content.Context; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; import io.flutter.plugin.common.BinaryMessenger; @@ -23,15 +24,17 @@ public class SystemServicesHostApiImpl implements SystemServicesHostApi { private final InstanceManager instanceManager; private Context context; - @VisibleForTesting public CameraXProxy cameraXProxy = new CameraXProxy(); - @VisibleForTesting public DeviceOrientationManager deviceOrientationManager; - @VisibleForTesting public SystemServicesFlutterApiImpl systemServicesFlutterApi; + @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); + @VisibleForTesting public @Nullable DeviceOrientationManager deviceOrientationManager; + @VisibleForTesting public @NonNull SystemServicesFlutterApiImpl systemServicesFlutterApi; private Activity activity; private PermissionsRegistry permissionsRegistry; public SystemServicesHostApiImpl( - BinaryMessenger binaryMessenger, InstanceManager instanceManager, Context context) { + @NonNull BinaryMessenger binaryMessenger, + @NonNull InstanceManager instanceManager, + @NonNull Context context) { this.binaryMessenger = binaryMessenger; this.instanceManager = instanceManager; this.context = context; @@ -39,15 +42,15 @@ public SystemServicesHostApiImpl( } /** Sets the context, which is used to get the cache directory. */ - public void setContext(Context context) { + public void setContext(@NonNull Context context) { this.context = context; } - public void setActivity(Activity activity) { + public void setActivity(@NonNull Activity activity) { this.activity = activity; } - public void setPermissionsRegistry(PermissionsRegistry permissionsRegistry) { + public void setPermissionsRegistry(@NonNull PermissionsRegistry permissionsRegistry) { this.permissionsRegistry = permissionsRegistry; } @@ -59,7 +62,7 @@ public void setPermissionsRegistry(PermissionsRegistry permissionsRegistry) { */ @Override public void requestCameraPermissions( - Boolean enableAudio, Result result) { + @NonNull Boolean enableAudio, @NonNull Result result) { CameraPermissionsManager cameraPermissionsManager = cameraXProxy.createCameraPermissionsManager(); cameraPermissionsManager.requestPermissions( diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 7c5776663234..97a95def2e09 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -3,7 +3,7 @@ description: Android implementation of the camera plugin using the CameraX libra repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android_camerax issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.5.0+2 +version: 0.5.0+3 environment: sdk: ">=2.19.0 <4.0.0"