From 8ecf6381f936b5da9e6297a5177386d7ff953ecc Mon Sep 17 00:00:00 2001 From: richardbushnell Date: Tue, 25 Aug 2020 20:48:28 +0100 Subject: [PATCH 1/6] Update pubspec.yaml Use name "camera". --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index c546b4d..6b9647d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,4 +1,4 @@ -name: flutter_better_camera +name: camera description: Flutter plugin for controlling the camera on Android and IOS, supports camera feed, capturing images, capturing videos, streaming image buffers and has support for all the essential features the camera APIs allow (flash, AE and more) version: 0.6.1 From f08bb358a6f8ce7637f45a8734c4e4ef8b6c6287 Mon Sep 17 00:00:00 2001 From: Richard Bushnell Date: Wed, 26 Aug 2020 09:54:32 +0100 Subject: [PATCH 2/6] Rename cameraPlugin to FlutterBetterCameraPlugin and rename the namespaces --- CHANGELOG.md | 2 +- android/build.gradle | 2 +- android/src/main/AndroidManifest.xml | 2 +- .../plugins/flutterBetterCamera}/Camera.java | 4 +- .../CameraPermissions.java | 2 +- .../flutterBetterCamera}/CameraPlugin.java | 8 +- .../flutterBetterCamera}/CameraUtils.java | 4 +- .../flutterBetterCamera}/Constants.java | 2 +- .../flutterBetterCamera}/DartMessenger.java | 4 +- .../MethodCallHandlerImpl.java | 8 +- .../plugins/camera/DartMessengerTest.java | 2 +- example/android/app/build.gradle | 2 +- .../EmbeddingV1ActivityTest.java | 2 +- .../cameraexample/MainActivityTest.java | 2 +- .../android/app/src/main/AndroidManifest.xml | 2 +- .../cameraexample/EmbeddingV1Activity.java | 2 +- .../plugins/cameraexample/MainActivity.java | 4 +- example/ios/Runner.xcodeproj/project.pbxproj | 4 +- example/test_driver/camera_e2e_test.dart | 2 +- ...raPlugin.h => FlutterBetterCameraPlugin.h} | 2 +- ...raPlugin.m => FlutterBetterCameraPlugin.m} | 16 ++-- ...sts.m => FlutterBetterCameraPluginTests.m} | 6 +- lib/camera.dart | 78 +++++++++---------- pubspec.yaml | 10 +-- 24 files changed, 83 insertions(+), 89 deletions(-) rename android/src/main/java/{io/flutter/plugins/camera => com/tudutu/plugins/flutterBetterCamera}/Camera.java (99%) rename android/src/main/java/{io/flutter/plugins/camera => com/tudutu/plugins/flutterBetterCamera}/CameraPermissions.java (98%) rename android/src/main/java/{io/flutter/plugins/camera => com/tudutu/plugins/flutterBetterCamera}/CameraPlugin.java (92%) rename android/src/main/java/{io/flutter/plugins/camera => com/tudutu/plugins/flutterBetterCamera}/CameraUtils.java (97%) rename android/src/main/java/{io/flutter/plugins/camera => com/tudutu/plugins/flutterBetterCamera}/Constants.java (92%) rename android/src/main/java/{io/flutter/plugins/camera => com/tudutu/plugins/flutterBetterCamera}/DartMessenger.java (89%) rename android/src/main/java/{io/flutter/plugins/camera => com/tudutu/plugins/flutterBetterCamera}/MethodCallHandlerImpl.java (95%) rename ios/Classes/{CameraPlugin.h => FlutterBetterCameraPlugin.h} (72%) rename ios/Classes/{CameraPlugin.m => FlutterBetterCameraPlugin.m} (98%) rename ios/Tests/{CameraPluginTests.m => FlutterBetterCameraPluginTests.m} (72%) 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..61fae10 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..12059fc 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..9d12d7f 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; 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..c452964 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..9198264 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..751052d 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..25f7e12 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..449c270 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..7ac0eb9 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..68fcb5b 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 72% rename from ios/Classes/CameraPlugin.h rename to ios/Classes/FlutterBetterCameraPlugin.h index ae865e4..e3dc1a8 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 6b9647d..318dc58 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,4 +1,4 @@ -name: camera +name: flutter_better_camera description: Flutter plugin for controlling the camera on Android and IOS, supports camera feed, capturing images, capturing videos, streaming image buffers and has support for all the essential features the camera APIs allow (flash, AE and more) version: 0.6.1 @@ -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 - pluginClass: CameraPlugin + package: com.tudutu.plugins.flutterBetterCamera + pluginClass: FlutterBetterCameraPlugin ios: - pluginClass: CameraPlugin + pluginClass: FlutterBetterCameraPlugin environment: sdk: ">=2.1.0 <3.0.0" From 973c1740b1e0cb5b8e17c3dd82dd4df71c316eec Mon Sep 17 00:00:00 2001 From: Richard Bushnell Date: Wed, 26 Aug 2020 09:57:55 +0100 Subject: [PATCH 3/6] Fix: Rename main android plugin class name to CameraPlugin --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 318dc58..f087ba6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -19,7 +19,7 @@ flutter: platforms: android: package: com.tudutu.plugins.flutterBetterCamera - pluginClass: FlutterBetterCameraPlugin + pluginClass: CameraPlugin ios: pluginClass: FlutterBetterCameraPlugin From 3beabed0c827e04a2027f08e52ceae80e8393ca7 Mon Sep 17 00:00:00 2001 From: Richard Bushnell Date: Wed, 26 Aug 2020 10:08:04 +0100 Subject: [PATCH 4/6] Rename flutterBetterCamera package to flutterbettercamera --- android/build.gradle | 2 +- android/src/main/AndroidManifest.xml | 2 +- .../com/tudutu/plugins/flutterBetterCamera/Camera.java | 4 ++-- .../plugins/flutterBetterCamera/CameraPermissions.java | 2 +- .../tudutu/plugins/flutterBetterCamera/CameraPlugin.java | 8 ++++---- .../tudutu/plugins/flutterBetterCamera/CameraUtils.java | 4 ++-- .../com/tudutu/plugins/flutterBetterCamera/Constants.java | 2 +- .../tudutu/plugins/flutterBetterCamera/DartMessenger.java | 2 +- .../flutterBetterCamera/MethodCallHandlerImpl.java | 4 ++-- .../java/io/flutter/plugins/camera/DartMessengerTest.java | 2 +- .../io/flutter/plugins/cameraexample/MainActivity.java | 2 +- pubspec.yaml | 2 +- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 61fae10..969819e 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,4 +1,4 @@ -group 'com.tudutu.plugins.flutterBetterCamera' +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 12059fc..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/com/tudutu/plugins/flutterBetterCamera/Camera.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Camera.java index 9d12d7f..437b8c5 100644 --- a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Camera.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Camera.java @@ -1,7 +1,7 @@ -package com.tudutu.plugins.flutterBetterCamera; +package com.tudutu.plugins.flutterbettercamera; import static android.view.OrientationEventListener.ORIENTATION_UNKNOWN; -import static com.tudutu.plugins.flutterBetterCamera.CameraUtils.computeBestPreviewSize; +import static com.tudutu.plugins.flutterbettercamera.CameraUtils.computeBestPreviewSize; import android.annotation.SuppressLint; import android.app.Activity; diff --git a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPermissions.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPermissions.java index c452964..e72a5b7 100644 --- a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPermissions.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPermissions.java @@ -1,4 +1,4 @@ -package com.tudutu.plugins.flutterBetterCamera; +package com.tudutu.plugins.flutterbettercamera; import android.Manifest; import android.Manifest.permission; diff --git a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPlugin.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraPlugin.java index 9198264..7032a01 100644 --- a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/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 com.tudutu.plugins.flutterBetterCamera; +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 com.tudutu.plugins.flutterBetterCamera.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 com.tudutu.plugins.flutterBetterCamera.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 com.tudutu.plugins.flutterBetterCamera.MainActivity} for an example. + *

See {@code com.tudutu.plugins.flutterbettercamera.MainActivity} for an example. */ public CameraPlugin() {} diff --git a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraUtils.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraUtils.java index 751052d..1c79bf3 100644 --- a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraUtils.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/CameraUtils.java @@ -1,4 +1,4 @@ -package com.tudutu.plugins.flutterBetterCamera; +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 com.tudutu.plugins.flutterBetterCamera.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/com/tudutu/plugins/flutterBetterCamera/Constants.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Constants.java index 25f7e12..87f01d8 100644 --- a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Constants.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/Constants.java @@ -1,4 +1,4 @@ -package com.tudutu.plugins.flutterBetterCamera; +package com.tudutu.plugins.flutterbettercamera; public interface Constants { diff --git a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/DartMessenger.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/DartMessenger.java index 449c270..fbde01b 100644 --- a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/DartMessenger.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/DartMessenger.java @@ -1,4 +1,4 @@ -package com.tudutu.plugins.flutterBetterCamera; +package com.tudutu.plugins.flutterbettercamera; import android.text.TextUtils; import androidx.annotation.Nullable; diff --git a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/MethodCallHandlerImpl.java b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/MethodCallHandlerImpl.java index 7ac0eb9..3591c4f 100644 --- a/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/MethodCallHandlerImpl.java +++ b/android/src/main/java/com/tudutu/plugins/flutterBetterCamera/MethodCallHandlerImpl.java @@ -1,4 +1,4 @@ -package com.tudutu.plugins.flutterBetterCamera; +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 com.tudutu.plugins.flutterBetterCamera.CameraPermissions.PermissionsRegistry; +import com.tudutu.plugins.flutterbettercamera.CameraPermissions.PermissionsRegistry; import io.flutter.view.TextureRegistry; final class MethodCallHandlerImpl implements MethodChannel.MethodCallHandler { 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 68fcb5b..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 com.tudutu.plugins.flutterBetterCamera; +package com.tudutu.plugins.flutterbettercamera; import static junit.framework.TestCase.assertNull; import static org.junit.Assert.assertEquals; diff --git a/example/android/app/src/main/java/io/flutter/plugins/cameraexample/MainActivity.java b/example/android/app/src/main/java/io/flutter/plugins/cameraexample/MainActivity.java index 4030cf6..ecd6c3d 100644 --- a/example/android/app/src/main/java/io/flutter/plugins/cameraexample/MainActivity.java +++ b/example/android/app/src/main/java/io/flutter/plugins/cameraexample/MainActivity.java @@ -4,7 +4,7 @@ import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry; -import com.tudutu.plugins.flutterBetterCamera.CameraPlugin; +import com.tudutu.plugins.flutterbettercamera.CameraPlugin; import io.flutter.plugins.pathprovider.PathProviderPlugin; import io.flutter.plugins.videoplayer.VideoPlayerPlugin; diff --git a/pubspec.yaml b/pubspec.yaml index f087ba6..93b40ca 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -18,7 +18,7 @@ flutter: plugin: platforms: android: - package: com.tudutu.plugins.flutterBetterCamera + package: com.tudutu.plugins.flutterbettercamera pluginClass: CameraPlugin ios: pluginClass: FlutterBetterCameraPlugin From acebbfa13e6031f370d7ba12cb8d39afb43bde71 Mon Sep 17 00:00:00 2001 From: Richard Bushnell Date: Wed, 26 Aug 2020 10:18:38 +0100 Subject: [PATCH 5/6] Fix: Rename NSObject to NSObject --- ios/Classes/FlutterBetterCameraPlugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/Classes/FlutterBetterCameraPlugin.h b/ios/Classes/FlutterBetterCameraPlugin.h index e3dc1a8..ccf93ba 100644 --- a/ios/Classes/FlutterBetterCameraPlugin.h +++ b/ios/Classes/FlutterBetterCameraPlugin.h @@ -4,5 +4,5 @@ #import -@interface FlutterBetterCameraPlugin : NSObject +@interface FlutterBetterCameraPlugin : NSObject @end From 8684c3e1d9f902e1539e18617a85406c20462ee0 Mon Sep 17 00:00:00 2001 From: Richard Bushnell Date: Thu, 10 Sep 2020 17:37:10 +0100 Subject: [PATCH 6/6] Add missing zoom setting. --- android/src/main/java/io/flutter/plugins/camera/Camera.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/android/src/main/java/io/flutter/plugins/camera/Camera.java b/android/src/main/java/io/flutter/plugins/camera/Camera.java index 53be029..5d3f758 100644 --- a/android/src/main/java/io/flutter/plugins/camera/Camera.java +++ b/android/src/main/java/io/flutter/plugins/camera/Camera.java @@ -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(),