@capgo/camera-preview 3.2.8 → 3.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CapgoCameraPreview.podspec +1 -1
  2. package/README.md +263 -46
  3. package/android/.gradle/7.4.2/checksums/checksums.lock +0 -0
  4. package/android/.gradle/7.4.2/checksums/md5-checksums.bin +0 -0
  5. package/android/.gradle/7.4.2/checksums/sha1-checksums.bin +0 -0
  6. package/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  7. package/android/.gradle/7.4.2/dependencies-accessors/gc.properties +0 -0
  8. package/android/.gradle/7.4.2/executionHistory/executionHistory.lock +0 -0
  9. package/android/.gradle/7.4.2/fileChanges/last-build.bin +0 -0
  10. package/android/.gradle/7.4.2/fileHashes/fileHashes.lock +0 -0
  11. package/android/.gradle/7.4.2/gc.properties +0 -0
  12. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  13. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  14. package/android/.gradle/vcs-1/gc.properties +0 -0
  15. package/android/build.gradle +8 -8
  16. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  17. package/android/gradle/wrapper/gradle-wrapper.properties +2 -3
  18. package/android/gradlew +182 -108
  19. package/android/src/main/java/com/ahm/capacitor/camera/preview/CameraActivity.java +5 -7
  20. package/android/src/main/java/com/ahm/capacitor/camera/preview/CameraPreview.java +17 -9
  21. package/dist/docs.json +407 -0
  22. package/dist/esm/definitions.d.ts +12 -6
  23. package/dist/esm/index.d.ts +1 -1
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/web.d.ts +6 -4
  26. package/dist/esm/web.js +98 -82
  27. package/dist/esm/web.js.map +1 -1
  28. package/dist/plugin.cjs.js +165 -0
  29. package/dist/plugin.cjs.js.map +1 -0
  30. package/dist/plugin.js +168 -0
  31. package/dist/plugin.js.map +1 -0
  32. package/ios/Plugin/CameraController.swift +19 -1
  33. package/ios/Plugin/Plugin.m +1 -0
  34. package/ios/Plugin/Plugin.swift +42 -7
  35. package/ios/Plugin.xcodeproj/project.pbxproj +10 -4
  36. package/ios/Podfile +1 -1
  37. package/ios/Podfile.lock +4 -4
  38. package/package.json +40 -35
@@ -323,7 +323,25 @@ extension CameraController {
323
323
  return supportedFlashModesAsStrings
324
324
 
325
325
  }
326
+ func getHorizontalFov() throws -> Float {
327
+ var currentCamera: AVCaptureDevice?
328
+ switch currentCameraPosition {
329
+ case .front:
330
+ currentCamera = self.frontCamera!
331
+ case .rear:
332
+ currentCamera = self.rearCamera!
333
+ default: break
334
+ }
326
335
 
336
+ guard
337
+ let device = currentCamera
338
+ else {
339
+ throw CameraControllerError.noCamerasAvailable
340
+ }
341
+
342
+ return device.activeFormat.videoFieldOfView
343
+
344
+ }
327
345
  func setFlashMode(flashMode: AVCaptureDevice.FlashMode) throws {
328
346
  var currentCamera: AVCaptureDevice?
329
347
  switch currentCameraPosition {
@@ -487,7 +505,7 @@ extension CameraController: AVCapturePhotoCaptureDelegate {
487
505
  public func photoOutput(_ captureOutput: AVCapturePhotoOutput, didFinishProcessingPhoto photoSampleBuffer: CMSampleBuffer?, previewPhoto previewPhotoSampleBuffer: CMSampleBuffer?,
488
506
  resolvedSettings: AVCaptureResolvedPhotoSettings, bracketSettings: AVCaptureBracketedStillImageSettings?, error: Swift.Error?) {
489
507
  if let error = error { self.photoCaptureCompletionBlock?(nil, error) } else if let buffer = photoSampleBuffer, let data = AVCapturePhotoOutput.jpegPhotoDataRepresentation(forJPEGSampleBuffer: buffer, previewPhotoSampleBuffer: nil),
490
- let image = UIImage(data: data) {
508
+ let image = UIImage(data: data) {
491
509
  self.photoCaptureCompletionBlock?(image.fixedOrientation(), nil)
492
510
  } else {
493
511
  self.photoCaptureCompletionBlock?(nil, CameraControllerError.unknown)
@@ -10,6 +10,7 @@ CAP_PLUGIN(CameraPreview, "CameraPreview",
10
10
  CAP_PLUGIN_METHOD(captureSample, CAPPluginReturnPromise);
11
11
  CAP_PLUGIN_METHOD(flip, CAPPluginReturnPromise);
12
12
  CAP_PLUGIN_METHOD(getSupportedFlashModes, CAPPluginReturnPromise);
13
+ CAP_PLUGIN_METHOD(getHorizontalFov, CAPPluginReturnPromise);
13
14
  CAP_PLUGIN_METHOD(setFlashMode, CAPPluginReturnPromise);
14
15
  CAP_PLUGIN_METHOD(startRecordVideo, CAPPluginReturnPromise);
15
16
  CAP_PLUGIN_METHOD(stopRecordVideo, CAPPluginReturnPromise);
@@ -1,6 +1,32 @@
1
1
  import Foundation
2
2
  import Capacitor
3
3
  import AVFoundation
4
+
5
+ extension UIWindow {
6
+ static var isLandscape: Bool {
7
+ if #available(iOS 13.0, *) {
8
+ return UIApplication.shared.windows
9
+ .first?
10
+ .windowScene?
11
+ .interfaceOrientation
12
+ .isLandscape ?? false
13
+ } else {
14
+ return UIApplication.shared.statusBarOrientation.isLandscape
15
+ }
16
+ }
17
+ static var isPortrait: Bool {
18
+ if #available(iOS 13.0, *) {
19
+ return UIApplication.shared.windows
20
+ .first?
21
+ .windowScene?
22
+ .interfaceOrientation
23
+ .isPortrait ?? false
24
+ } else {
25
+ return UIApplication.shared.statusBarOrientation.isPortrait
26
+ }
27
+ }
28
+ }
29
+
4
30
  /**
5
31
  * Please read the Capacitor iOS Plugin Development Guide
6
32
  * here: https://capacitor.ionicframework.com/docs/plugins/ios
@@ -24,15 +50,15 @@ public class CameraPreview: CAPPlugin {
24
50
  var disableAudio: Bool = false
25
51
 
26
52
  @objc func rotated() {
27
- let height = self.paddingBottom != nil ? self.height! - self.paddingBottom!: self.height!;
53
+ let height = self.paddingBottom != nil ? self.height! - self.paddingBottom!: self.height!
28
54
 
29
- if UIApplication.shared.statusBarOrientation.isLandscape {
55
+ if UIWindow.isLandscape {
30
56
  self.previewView.frame = CGRect(x: self.y!, y: self.x!, width: max(height, self.width!), height: min(height, self.width!))
31
57
  self.cameraController.previewLayer?.frame = self.previewView.frame
32
58
  }
33
59
 
34
- if UIApplication.shared.statusBarOrientation.isPortrait {
35
- if (self.previewView != nil && self.x != nil && self.y != nil && self.width != nil && self.height != nil) {
60
+ if UIWindow.isPortrait {
61
+ if self.previewView != nil && self.x != nil && self.y != nil && self.width != nil && self.height != nil {
36
62
  self.previewView.frame = CGRect(x: self.x!, y: self.y!, width: min(height, self.width!), height: max(height, self.width!))
37
63
  }
38
64
  self.cameraController.previewLayer?.frame = self.previewView.frame
@@ -67,7 +93,7 @@ public class CameraPreview: CAPPlugin {
67
93
  self.storeToFile = call.getBool("storeToFile") ?? false
68
94
  self.enableZoom = call.getBool("enableZoom") ?? false
69
95
  self.disableAudio = call.getBool("disableAudio") ?? false
70
-
96
+
71
97
  AVCaptureDevice.requestAccess(for: .video, completionHandler: { (granted: Bool) in
72
98
  guard granted else {
73
99
  call.reject("permission failed")
@@ -78,7 +104,7 @@ public class CameraPreview: CAPPlugin {
78
104
  if self.cameraController.captureSession?.isRunning ?? false {
79
105
  call.reject("camera already started")
80
106
  } else {
81
- self.cameraController.prepare(cameraPosition: self.cameraPosition, disableAudio: self.disableAudio){error in
107
+ self.cameraController.prepare(cameraPosition: self.cameraPosition, disableAudio: self.disableAudio) {error in
82
108
  if let error = error {
83
109
  print(error)
84
110
  call.reject(error.localizedDescription)
@@ -227,6 +253,15 @@ public class CameraPreview: CAPPlugin {
227
253
  }
228
254
  }
229
255
 
256
+ @objc func getHorizontalFov(_ call: CAPPluginCall) {
257
+ do {
258
+ let horizontalFov = try self.cameraController.getHorizontalFov()
259
+ call.resolve(["result": horizontalFov])
260
+ } catch {
261
+ call.reject("failed to get FOV")
262
+ }
263
+ }
264
+
230
265
  @objc func setFlashMode(_ call: CAPPluginCall) {
231
266
  guard let flashMode = call.getString("flashMode") else {
232
267
  call.reject("failed to set flash mode. required parameter flashMode is missing")
@@ -235,7 +270,7 @@ public class CameraPreview: CAPPlugin {
235
270
  do {
236
271
  var flashModeAsEnum: AVCaptureDevice.FlashMode?
237
272
  switch flashMode {
238
- case "off" :
273
+ case "off":
239
274
  flashModeAsEnum = AVCaptureDevice.FlashMode.off
240
275
  case "on":
241
276
  flashModeAsEnum = AVCaptureDevice.FlashMode.on
@@ -414,7 +414,7 @@
414
414
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
415
415
  GCC_WARN_UNUSED_FUNCTION = YES;
416
416
  GCC_WARN_UNUSED_VARIABLE = YES;
417
- IPHONEOS_DEPLOYMENT_TARGET = 12.1;
417
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
418
418
  MTL_ENABLE_DEBUG_INFO = YES;
419
419
  ONLY_ACTIVE_ARCH = YES;
420
420
  SDKROOT = iphoneos;
@@ -469,7 +469,7 @@
469
469
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
470
470
  GCC_WARN_UNUSED_FUNCTION = YES;
471
471
  GCC_WARN_UNUSED_VARIABLE = YES;
472
- IPHONEOS_DEPLOYMENT_TARGET = 12.1;
472
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
473
473
  MTL_ENABLE_DEBUG_INFO = NO;
474
474
  SDKROOT = iphoneos;
475
475
  SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
@@ -493,12 +493,15 @@
493
493
  DYLIB_INSTALL_NAME_BASE = "@rpath";
494
494
  INFOPLIST_FILE = Plugin/Info.plist;
495
495
  INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
496
- IPHONEOS_DEPLOYMENT_TARGET = 12.1;
496
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
497
497
  LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(FRAMEWORK_SEARCH_PATHS)\n$(FRAMEWORK_SEARCH_PATHS)\n$(FRAMEWORK_SEARCH_PATHS)";
498
498
  ONLY_ACTIVE_ARCH = YES;
499
499
  PRODUCT_BUNDLE_IDENTIFIER = com.getcapacitor.Plugin;
500
500
  PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
501
501
  SKIP_INSTALL = YES;
502
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
503
+ SUPPORTS_MACCATALYST = NO;
504
+ SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
502
505
  SWIFT_OPTIMIZATION_LEVEL = "-Onone";
503
506
  SWIFT_VERSION = 4.2;
504
507
  TARGETED_DEVICE_FAMILY = "1,2";
@@ -518,12 +521,15 @@
518
521
  DYLIB_INSTALL_NAME_BASE = "@rpath";
519
522
  INFOPLIST_FILE = Plugin/Info.plist;
520
523
  INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
521
- IPHONEOS_DEPLOYMENT_TARGET = 12.1;
524
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
522
525
  LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(FRAMEWORK_SEARCH_PATHS)";
523
526
  ONLY_ACTIVE_ARCH = NO;
524
527
  PRODUCT_BUNDLE_IDENTIFIER = com.getcapacitor.Plugin;
525
528
  PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
526
529
  SKIP_INSTALL = YES;
530
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
531
+ SUPPORTS_MACCATALYST = NO;
532
+ SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
527
533
  SWIFT_VERSION = 4.2;
528
534
  TARGETED_DEVICE_FAMILY = "1,2";
529
535
  };
package/ios/Podfile CHANGED
@@ -1,4 +1,4 @@
1
- platform :ios, '12.1'
1
+ platform :ios, '13.0'
2
2
 
3
3
  target 'Plugin' do
4
4
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
package/ios/Podfile.lock CHANGED
@@ -1,5 +1,5 @@
1
1
  PODS:
2
- - Capacitor (3.0.0):
2
+ - Capacitor (4.4.0):
3
3
  - CapacitorCordova
4
4
  - CapacitorCordova (2.0.1)
5
5
 
@@ -15,9 +15,9 @@ EXTERNAL SOURCES:
15
15
  :path: "../node_modules/@capacitor/ios"
16
16
 
17
17
  SPEC CHECKSUMS:
18
- Capacitor: 06cd8cd01340f5b162e9528bf5569d87a6f29009
18
+ Capacitor: 868367fcfeb3ba6bfabaefc63c072e6478bd046d
19
19
  CapacitorCordova: 9fee2eb6780331b6ff09710d6a7d1f2e4707f1b9
20
20
 
21
- PODFILE CHECKSUM: d3e2703a3105a8e75e11dfc45c25f5cbf9801486
21
+ PODFILE CHECKSUM: e80ffb7ef3a0ac7d0d6143f3e64f287d4d027c84
22
22
 
23
- COCOAPODS: 1.9.3
23
+ COCOAPODS: 1.11.3
package/package.json CHANGED
@@ -1,58 +1,52 @@
1
1
  {
2
2
  "name": "@capgo/camera-preview",
3
- "version": "3.2.8",
3
+ "version": "3.4.4",
4
4
  "description": "Camera preview",
5
5
  "main": "dist/esm/index.js",
6
6
  "types": "dist/esm/index.d.ts",
7
7
  "scripts": {
8
- "build": "npm run clean && tsc",
9
- "clean": "rimraf './dist'",
10
- "watch": "tsc --watch",
11
- "lint": "concurrently -g \"npm:eslint\" \"npm:prettier -- --check\" \"npm run swiftlint -- lint ios\"",
12
- "fmt": "concurrently -g \"npm:eslint -- --fix\" \"npm:prettier -- --write\" \"npm:swiftlint -- lint --fix --format ios\"",
8
+ "verify": "npm run verify:ios && npm run verify:android && npm run verify:web",
9
+ "verify:ios": "cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin && cd ..",
10
+ "verify:android": "cd android && ./gradlew clean build test && cd ..",
11
+ "verify:web": "npm run build",
12
+ "lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint",
13
+ "fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --autocorrect --format",
13
14
  "eslint": "eslint . --ext ts",
14
15
  "prettier": "prettier \"**/*.{css,html,ts,js,java}\"",
15
16
  "swiftlint": "node-swiftlint",
17
+ "docgen": "docgen --api CameraPreviewPlugin --output-readme README.md --output-json dist/docs.json",
18
+ "build": "npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs",
19
+ "clean": "rimraf ./dist && cd android && ./gradlew clean && cd ..",
20
+ "watch": "tsc --watch",
16
21
  "prepublishOnly": "npm run build",
17
- "prepare": "husky install && npm run build"
22
+ "prepare": "husky install"
18
23
  },
19
- "author": "Martin Donadieu",
24
+ "author": "Martin Donadieu <martindonadieu@gmail.com>",
20
25
  "license": "MIT",
21
- "dependencies": {
22
- "@capacitor/core": "latest"
23
- },
24
26
  "devDependencies": {
25
- "@capacitor/android": "latest",
26
- "@capacitor/ios": "latest",
27
+ "@capacitor/android": "^4.4.0",
28
+ "@capacitor/cli": "^4.4.0",
29
+ "@capacitor/core": "^4.4.0",
30
+ "@capacitor/docgen": "^0.2.0",
31
+ "@capacitor/ios": "^4.4.0",
27
32
  "@ionic/eslint-config": "^0.3.0",
28
33
  "@ionic/prettier-config": "^2.0.0",
29
34
  "@ionic/swiftlint-config": "^1.1.2",
30
- "concurrently": "^7.0.0",
31
- "eslint": "^7.32.0",
32
- "husky": "^7.0.4",
33
- "prettier": "^2.5.1",
34
- "prettier-plugin-java": "^1.6.1",
35
- "pretty-quick": "^3.1.3",
35
+ "@typescript-eslint/eslint-plugin": "^5.42.1",
36
+ "@typescript-eslint/parser": "^5.42.1",
37
+ "eslint": "^8.27.0",
38
+ "eslint-plugin-import": "^2.26.0",
39
+ "husky": "^8.0.2",
40
+ "prettier": "^2.7.1",
41
+ "prettier-plugin-java": "^1.6.2",
36
42
  "rimraf": "^3.0.2",
43
+ "rollup": "^3.2.5",
37
44
  "swiftlint": "^1.0.1",
38
- "typescript": "^4.3.2"
45
+ "typescript": "^4.8.4"
39
46
  },
40
- "husky": {
41
- "hooks": {
42
- "pre-commit": "pretty-quick --staged"
43
- }
47
+ "peerDependencies": {
48
+ "@capacitor/core": "^4.0.0"
44
49
  },
45
- "files": [
46
- "dist/",
47
- "ios/",
48
- "android/",
49
- "CapgoCameraPreview.podspec"
50
- ],
51
- "keywords": [
52
- "capacitor",
53
- "plugin",
54
- "native"
55
- ],
56
50
  "capacitor": {
57
51
  "ios": {
58
52
  "src": "ios"
@@ -66,6 +60,17 @@
66
60
  "eslintConfig": {
67
61
  "extends": "@ionic/eslint-config/recommended"
68
62
  },
63
+ "files": [
64
+ "dist/",
65
+ "ios/",
66
+ "android/",
67
+ "CapgoCameraPreview.podspec"
68
+ ],
69
+ "keywords": [
70
+ "capacitor",
71
+ "plugin",
72
+ "native"
73
+ ],
69
74
  "repository": {
70
75
  "type": "git",
71
76
  "url": "https://github.com/Cap-go/camera-preview.git"