diff --git a/CHANGELOG.md b/CHANGELOG.md index ee84d9e..c569078 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -86,7 +86,7 @@ Add flash, auto exposure, zoom and auto focus support for IOS and Android ## 0.5.1 * Can now be compiled with earlier Android sdks below 21 when -`` has been added to the project +`` has been added to the project `AndroidManifest.xml`. For sdks below 21, the plugin won't be registered and calls to it will throw a `MissingPluginException.` diff --git a/android/build.gradle b/android/build.gradle index d5d8680..969819e 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,4 +1,4 @@ -group 'io.flutter.plugins.camera' +group 'com.tudutu.plugins.flutterbettercamera' version '1.0-SNAPSHOT' buildscript { diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index d80d364..fb9e34a 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.tudutu.plugins.flutterbettercamera"> diff --git a/android/src/main/java/io/flutter/plugins/camera/Camera.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Camera.java similarity index 99% rename from android/src/main/java/io/flutter/plugins/camera/Camera.java rename to android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Camera.java index 53be029..912421f 100644 --- a/android/src/main/java/io/flutter/plugins/camera/Camera.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Camera.java @@ -1,7 +1,7 @@ -package io.flutter.plugins.camera; +package com.tudutu.plugins.flutterbettercamera; import static android.view.OrientationEventListener.ORIENTATION_UNKNOWN; -import static io.flutter.plugins.camera.CameraUtils.computeBestPreviewSize; +import static com.tudutu.plugins.flutterbettercamera.CameraUtils.computeBestPreviewSize; import android.annotation.SuppressLint; import android.app.Activity; @@ -564,6 +564,8 @@ public void captureStillPicture(String filePath, @NonNull final Result result) { captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, getMediaOrientation()); + // Set zoom level + captureBuilder.set(CaptureRequest.SCALER_CROP_REGION, mPreviewRequestBuilder.get(CaptureRequest.SCALER_CROP_REGION)); mCaptureSession.capture( captureBuilder.build(), diff --git a/android/src/main/java/io/flutter/plugins/camera/CameraPermissions.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPermissions.java similarity index 98% rename from android/src/main/java/io/flutter/plugins/camera/CameraPermissions.java rename to android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPermissions.java index 3c86ce0..e72a5b7 100644 --- a/android/src/main/java/io/flutter/plugins/camera/CameraPermissions.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPermissions.java @@ -1,4 +1,4 @@ -package io.flutter.plugins.camera; +package com.tudutu.plugins.flutterbettercamera; import android.Manifest; import android.Manifest.permission; diff --git a/android/src/main/java/io/flutter/plugins/camera/CameraPlugin.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPlugin.java similarity index 92% rename from android/src/main/java/io/flutter/plugins/camera/CameraPlugin.java rename to android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPlugin.java index 9bd34e1..7032a01 100644 --- a/android/src/main/java/io/flutter/plugins/camera/CameraPlugin.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPlugin.java @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package io.flutter.plugins.camera; +package com.tudutu.plugins.flutterbettercamera; import android.app.Activity; import android.os.Build; @@ -13,14 +13,14 @@ import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.PluginRegistry.Registrar; -import io.flutter.plugins.camera.CameraPermissions.PermissionsRegistry; +import com.tudutu.plugins.flutterbettercamera.CameraPermissions.PermissionsRegistry; import io.flutter.view.TextureRegistry; /** * Platform implementation of the camera_plugin. * *

Instantiate this in an add to app scenario to gracefully handle activity and context changes. - * See {@code io.flutter.plugins.camera.MainActivity} for an example. + * See {@code com.tudutu.plugins.flutterbettercamera.MainActivity} for an example. * *

Call {@link #registerWith(Registrar)} to register an implementation of this that uses the * stable {@code io.flutter.plugin.common} package. @@ -34,7 +34,7 @@ public final class CameraPlugin implements FlutterPlugin, ActivityAware { /** * Initialize this within the {@code #configureFlutterEngine} of a Flutter activity or fragment. * - *

See {@code io.flutter.plugins.camera.MainActivity} for an example. + *

See {@code com.tudutu.plugins.flutterbettercamera.MainActivity} for an example. */ public CameraPlugin() {} diff --git a/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraUtils.java similarity index 97% rename from android/src/main/java/io/flutter/plugins/camera/CameraUtils.java rename to android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraUtils.java index a7bb3b7..1c79bf3 100644 --- a/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraUtils.java @@ -1,4 +1,4 @@ -package io.flutter.plugins.camera; +package com.tudutu.plugins.flutterbettercamera; import android.app.Activity; import android.content.Context; @@ -10,7 +10,7 @@ import android.hardware.camera2.params.StreamConfigurationMap; import android.media.CamcorderProfile; import android.util.Size; -import io.flutter.plugins.camera.Camera.ResolutionPreset; +import com.tudutu.plugins.flutterbettercamera.Camera.ResolutionPreset; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; diff --git a/android/src/main/java/io/flutter/plugins/camera/Constants.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Constants.java similarity index 92% rename from android/src/main/java/io/flutter/plugins/camera/Constants.java rename to android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Constants.java index 938638a..87f01d8 100644 --- a/android/src/main/java/io/flutter/plugins/camera/Constants.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Constants.java @@ -1,4 +1,4 @@ -package io.flutter.plugins.camera; +package com.tudutu.plugins.flutterbettercamera; public interface Constants { diff --git a/android/src/main/java/io/flutter/plugins/camera/DartMessenger.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/DartMessenger.java similarity index 89% rename from android/src/main/java/io/flutter/plugins/camera/DartMessenger.java rename to android/src/main/java/com/tudutu/plugins/flutterBetterCamera/DartMessenger.java index fe385be..fbde01b 100644 --- a/android/src/main/java/io/flutter/plugins/camera/DartMessenger.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/DartMessenger.java @@ -1,4 +1,4 @@ -package io.flutter.plugins.camera; +package com.tudutu.plugins.flutterbettercamera; import android.text.TextUtils; import androidx.annotation.Nullable; @@ -16,7 +16,7 @@ enum EventType { } DartMessenger(BinaryMessenger messenger, long eventChannelId) { - new EventChannel(messenger, "flutter.io/cameraPlugin/cameraEvents" + eventChannelId) + new EventChannel(messenger, "tudutu.com/flutterBetterCameraPlugin/cameraEvents" + eventChannelId) .setStreamHandler( new EventChannel.StreamHandler() { @Override diff --git a/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/MethodCallHandlerImpl.java similarity index 95% rename from android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java rename to android/src/main/java/com/tudutu/plugins/flutterBetterCamera/MethodCallHandlerImpl.java index 1419db0..3591c4f 100644 --- a/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/MethodCallHandlerImpl.java @@ -1,4 +1,4 @@ -package io.flutter.plugins.camera; +package com.tudutu.plugins.flutterbettercamera; import android.app.Activity; import android.content.pm.PackageManager; @@ -12,7 +12,7 @@ import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel.Result; -import io.flutter.plugins.camera.CameraPermissions.PermissionsRegistry; +import com.tudutu.plugins.flutterbettercamera.CameraPermissions.PermissionsRegistry; import io.flutter.view.TextureRegistry; final class MethodCallHandlerImpl implements MethodChannel.MethodCallHandler { @@ -37,8 +37,8 @@ final class MethodCallHandlerImpl implements MethodChannel.MethodCallHandler { this.permissionsRegistry = permissionsAdder; this.textureRegistry = textureRegistry; - methodChannel = new MethodChannel(messenger, "plugins.flutter.io/camera"); - imageStreamChannel = new EventChannel(messenger, "plugins.flutter.io/camera/imageStream"); + methodChannel = new MethodChannel(messenger, "plugins.tudutu.com/flutterBetterCamera"); + imageStreamChannel = new EventChannel(messenger, "plugins.tudutu.com/flutterBetterCamera/imageStream"); methodChannel.setMethodCallHandler(this); } diff --git a/android/src/test/java/io/flutter/plugins/camera/DartMessengerTest.java b/android/src/test/java/io/flutter/plugins/camera/DartMessengerTest.java index db89eb2..624a626 100644 --- a/android/src/test/java/io/flutter/plugins/camera/DartMessengerTest.java +++ b/android/src/test/java/io/flutter/plugins/camera/DartMessengerTest.java @@ -1,4 +1,4 @@ -package io.flutter.plugins.camera; +package com.tudutu.plugins.flutterbettercamera; import static junit.framework.TestCase.assertNull; import static org.junit.Assert.assertEquals; diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index e47b6db..5b8bb6f 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -32,7 +32,7 @@ android { } defaultConfig { - applicationId "io.flutter.plugins.cameraexample" + applicationId "com.tudutu.plugins.flutterBetterCameraexample" minSdkVersion 21 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() diff --git a/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/EmbeddingV1ActivityTest.java b/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/EmbeddingV1ActivityTest.java index 95b5f43..f321879 100644 --- a/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/EmbeddingV1ActivityTest.java +++ b/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/EmbeddingV1ActivityTest.java @@ -1,4 +1,4 @@ -package io.flutter.plugins.cameraexample; +package com.tudutu.plugins.flutterBetterCameraexample; import androidx.test.rule.ActivityTestRule; import dev.flutter.plugins.e2e.FlutterRunner; diff --git a/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/MainActivityTest.java b/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/MainActivityTest.java index 5d1b955..14ff2d0 100644 --- a/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/MainActivityTest.java +++ b/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/MainActivityTest.java @@ -1,4 +1,4 @@ -package io.flutter.plugins.cameraexample; +package com.tudutu.plugins.flutterBetterCameraexample; import androidx.test.rule.ActivityTestRule; import dev.flutter.plugins.e2e.FlutterRunner; diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 188f088..34a8d7d 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.tudutu.plugins.flutterBetterCameraexample"> main() async { if (!(Platform.isLinux || Platform.isMacOS)) { diff --git a/ios/Classes/CameraPlugin.h b/ios/Classes/FlutterBetterCameraPlugin.h similarity index 75% rename from ios/Classes/CameraPlugin.h rename to ios/Classes/FlutterBetterCameraPlugin.h index ae865e4..ccf93ba 100644 --- a/ios/Classes/CameraPlugin.h +++ b/ios/Classes/FlutterBetterCameraPlugin.h @@ -4,5 +4,5 @@ #import -@interface CameraPlugin : NSObject +@interface FlutterBetterCameraPlugin : NSObject @end diff --git a/ios/Classes/CameraPlugin.m b/ios/Classes/FlutterBetterCameraPlugin.m similarity index 98% rename from ios/Classes/CameraPlugin.m rename to ios/Classes/FlutterBetterCameraPlugin.m index abccf89..be344cd 100644 --- a/ios/Classes/CameraPlugin.m +++ b/ios/Classes/FlutterBetterCameraPlugin.m @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "CameraPlugin.h" +#import "FlutterBetterCameraPlugin.h" #import #import #import @@ -675,7 +675,7 @@ - (void)resumeVideoRecording { - (void)startImageStreamWithMessenger:(NSObject *)messenger { if (!_isStreamingImages) { FlutterEventChannel *eventChannel = - [FlutterEventChannel eventChannelWithName:@"plugins.flutter.io/camera/imageStream" + [FlutterEventChannel eventChannelWithName:@"plugins.tudutu.com/flutterBetterCamera/imageStream" binaryMessenger:messenger]; _imageStreamHandler = [[FLTImageStreamHandler alloc] init]; @@ -863,20 +863,20 @@ - (void)setUpCaptureSessionForAudio { } @end -@interface CameraPlugin () +@interface FlutterBetterCameraPlugin () @property(readonly, nonatomic) NSObject *registry; @property(readonly, nonatomic) NSObject *messenger; @property(readonly, nonatomic) FLTCam *camera; @end -@implementation CameraPlugin { +@implementation FlutterBetterCameraPlugin { dispatch_queue_t _dispatchQueue; } + (void)registerWithRegistrar:(NSObject *)registrar { FlutterMethodChannel *channel = - [FlutterMethodChannel methodChannelWithName:@"plugins.flutter.io/camera" + [FlutterMethodChannel methodChannelWithName:@"plugins.tudutu.com/flutterBetterCamera" binaryMessenger:[registrar messenger]]; - CameraPlugin *instance = [[CameraPlugin alloc] initWithRegistry:[registrar textures] + FlutterBetterCameraPlugin *instance = [[FlutterBetterCameraPlugin alloc] initWithRegistry:[registrar textures] messenger:[registrar messenger]]; [registrar addMethodCallDelegate:instance channel:channel]; } @@ -892,7 +892,7 @@ - (instancetype)initWithRegistry:(NSObject *)registry - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result { if (_dispatchQueue == nil) { - _dispatchQueue = dispatch_queue_create("io.flutter.camera.dispatchqueue", NULL); + _dispatchQueue = dispatch_queue_create("com.tudutu.flutterBetterCamera.dispatchqueue", NULL); } // Invoke the plugin on another dispatch queue to avoid blocking the UI. @@ -960,7 +960,7 @@ - (void)handleMethodCallAsync:(FlutterMethodCall *)call result:(FlutterResult)re }; FlutterEventChannel *eventChannel = [FlutterEventChannel eventChannelWithName:[NSString - stringWithFormat:@"flutter.io/cameraPlugin/cameraEvents%lld", + stringWithFormat:@"tudutu.com/flutterBetterCameraPlugin/cameraEvents%lld", textureId] binaryMessenger:_messenger]; [eventChannel setStreamHandler:cam]; diff --git a/ios/Tests/CameraPluginTests.m b/ios/Tests/FlutterBetterCameraPluginTests.m similarity index 72% rename from ios/Tests/CameraPluginTests.m rename to ios/Tests/FlutterBetterCameraPluginTests.m index e5be398..0352020 100644 --- a/ios/Tests/CameraPluginTests.m +++ b/ios/Tests/FlutterBetterCameraPluginTests.m @@ -1,10 +1,10 @@ -@import camera; +@import flutterBetterCamera; @import XCTest; -@interface CameraPluginTests : XCTestCase +@interface FlutterBetterCameraPluginTests : XCTestCase @end -@implementation CameraPluginTests +@implementation FlutterBetterCameraPluginTests - (void)testModuleImport { // This test will fail to compile if the module cannot be imported. diff --git a/lib/camera.dart b/lib/camera.dart index 48615d2..f582806 100644 --- a/lib/camera.dart +++ b/lib/camera.dart @@ -11,7 +11,8 @@ import 'package:flutter/widgets.dart'; part 'camera_image.dart'; -final MethodChannel _channel = const MethodChannel('plugins.flutter.io/camera'); +final MethodChannel _channel = + const MethodChannel('plugins.tudutu.com/flutterBetterCamera'); enum CameraLensDirection { front, back, external } @@ -179,14 +180,13 @@ class CameraValue { const CameraValue.uninitialized() : this( - isInitialized: false, - isRecordingVideo: false, - isTakingPicture: false, - isStreamingImages: false, - isRecordingPaused: false, - autoFocusEnabled: true, - flashMode: FlashMode.off - ); + isInitialized: false, + isRecordingVideo: false, + isTakingPicture: false, + isStreamingImages: false, + isRecordingPaused: false, + autoFocusEnabled: true, + flashMode: FlashMode.off); /// True after [CameraController.initialize] has completed successfully. final bool isInitialized; @@ -200,7 +200,6 @@ class CameraValue { /// FlashMode final FlashMode flashMode; - /// True when the camera is recording (not the same as previewing). final bool isRecordingVideo; @@ -226,17 +225,16 @@ class CameraValue { bool get hasError => errorDescription != null; - CameraValue copyWith({ - bool isInitialized, - bool isRecordingVideo, - bool isTakingPicture, - bool isStreamingImages, - String errorDescription, - Size previewSize, - bool isRecordingPaused, - bool autoFocusEnabled, - FlashMode flashMode - }) { + CameraValue copyWith( + {bool isInitialized, + bool isRecordingVideo, + bool isTakingPicture, + bool isStreamingImages, + String errorDescription, + Size previewSize, + bool isRecordingPaused, + bool autoFocusEnabled, + FlashMode flashMode}) { return CameraValue( isInitialized: isInitialized ?? this.isInitialized, errorDescription: errorDescription, @@ -270,13 +268,12 @@ class CameraValue { /// /// To show the camera preview on the screen use a [CameraPreview] widget. class CameraController extends ValueNotifier { - CameraController(this.description, - this.resolutionPreset, { - this.enableAudio = true, - this.autoFocusEnabled = true, - this.flashMode = FlashMode.off, - this.enableAutoExposure = true - }) : super(const CameraValue.uninitialized()); + CameraController(this.description, this.resolutionPreset, + {this.enableAudio = true, + this.autoFocusEnabled = true, + this.flashMode = FlashMode.off, + this.enableAutoExposure = true}) + : super(const CameraValue.uninitialized()); final CameraDescription description; final ResolutionPreset resolutionPreset; @@ -305,7 +302,7 @@ class CameraController extends ValueNotifier { try { _creatingCompleter = Completer(); final Map reply = - await _channel.invokeMapMethod( + await _channel.invokeMapMethod( 'initialize', { 'cameraName': description.name, @@ -327,11 +324,11 @@ class CameraController extends ValueNotifier { } on PlatformException catch (e) { throw CameraException(e.code, e.message); } - - _eventSubscription = - EventChannel('flutter.io/cameraPlugin/cameraEvents$_textureId') - .receiveBroadcastStream() - .listen(_listener); + + _eventSubscription = EventChannel( + 'tudutu.com/flutterBetterCameraPlugin/cameraEvents$_textureId') + .receiveBroadcastStream() + .listen(_listener); _creatingCompleter.complete(); return _creatingCompleter.future; } @@ -370,7 +367,6 @@ class CameraController extends ValueNotifier { } } - /// Captures an image and saves it to [path]. /// /// A path can for example be obtained using @@ -446,13 +442,13 @@ class CameraController extends ValueNotifier { throw CameraException(e.code, e.message); } const EventChannel cameraEventChannel = - EventChannel('plugins.flutter.io/camera/imageStream'); + EventChannel('plugins.tudutu.com/flutterBetterCamera/imageStream'); _imageStreamSubscription = cameraEventChannel.receiveBroadcastStream().listen( - (dynamic imageData) { - onAvailable(CameraImage._fromPlatformData(imageData)); - }, - ); + (dynamic imageData) { + onAvailable(CameraImage._fromPlatformData(imageData)); + }, + ); } /// Stop streaming images from platform camera. @@ -693,6 +689,4 @@ class CameraController extends ValueNotifier { await _eventSubscription?.cancel(); } } - - } diff --git a/pubspec.yaml b/pubspec.yaml index c546b4d..93b40ca 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -13,15 +13,15 @@ dev_dependencies: sdk: flutter flutter_driver: sdk: flutter -homepage: https://github.com/Lightsnap/flutter-better-camera/ +homepage: https://github.com/tudutu/flutter-better-camera/ flutter: plugin: platforms: android: - package: io.flutter.plugins.camera + package: com.tudutu.plugins.flutterbettercamera pluginClass: CameraPlugin ios: - pluginClass: CameraPlugin + pluginClass: FlutterBetterCameraPlugin environment: sdk: ">=2.1.0 <3.0.0"