From 1d5e8c10c5a875a4f0a1ce2db42f34e62fe96e79 Mon Sep 17 00:00:00 2001 From: jepiqueau Date: Sun, 19 Sep 2021 15:10:03 +0200 Subject: [PATCH] fix issue#2 iOS, web platforms --- CHANGELOG.md | 11 +++ .../PhotoSlider/SliderViewController.swift | 22 ++++- ios/Plugin/PhotoViewer.swift | 25 ++++-- ios/Plugin/PhotoViewerPlugin.swift | 29 +++++-- .../@capacitor/android/capacitor/build.gradle | 1 + package-lock.json | 84 +++++++++---------- package.json | 12 +-- 7 files changed, 118 insertions(+), 66 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 264f2ef..66015c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +# 0.0.3 (2021-09-19) + +## Chore + + - Update to @capacitor/core@3.2.3 + - Update to jeep-photoviewer@1.0.1 + +## Add Features (Web, iOS) + + - Display a fullscreen view when the image list contains one image + # 0.0.2 (2021-08-12) ## Chore diff --git a/ios/Plugin/PhotoSlider/SliderViewController.swift b/ios/Plugin/PhotoSlider/SliderViewController.swift index 60c5855..0eefffb 100644 --- a/ios/Plugin/PhotoSlider/SliderViewController.swift +++ b/ios/Plugin/PhotoSlider/SliderViewController.swift @@ -33,6 +33,7 @@ class SliderViewController: UIViewController { private var _compressionQuality: Double = 0.8 private var _movieOptions: [String: Any] = [:] private var _movieObserver: Any? + private var _closeButton: String = "yes" // MARK: - Set-up position var position: IndexPath { @@ -90,6 +91,17 @@ class SliderViewController: UIViewController { } } + // MARK: - Set-up closebutton + + var closebutton: String { + get { + return self._closeButton + } + set { + self._closeButton = newValue + } + } + // MARK: - Set-up Navigation Items lazy var navBar: UINavigationBar = { () -> UINavigationBar in @@ -100,10 +112,12 @@ class SliderViewController: UIViewController { navigationBar.setBackgroundImage(UIImage(), for: .default) navigationBar.shadowImage = UIImage() let navigationItem = UINavigationItem() - if self._isFilm { - navigationItem.rightBarButtonItems = [mClose, mFilm] - } else { - navigationItem.rightBarButtonItem = mClose + if self._closeButton == "yes" { + if self._isFilm { + navigationItem.rightBarButtonItems = [mClose, mFilm] + } else { + navigationItem.rightBarButtonItem = mClose + } } if self._isShare { navigationItem.leftBarButtonItem = mShare diff --git a/ios/Plugin/PhotoViewer.swift b/ios/Plugin/PhotoViewer.swift index bc5b80c..3e6ac2c 100644 --- a/ios/Plugin/PhotoViewer.swift +++ b/ios/Plugin/PhotoViewer.swift @@ -1,5 +1,6 @@ import Foundation import Capacitor +import UIKit enum PhotoViewerError: Error { case failed(message: String) @@ -12,6 +13,11 @@ enum PhotoViewerError: Error { @objc var viewController: CollectionViewController? { return collectionViewController } + var sliderVC: SliderViewController? + + @objc var sliderController: SliderViewController? { + return sliderVC + } // MARK: echo @@ -23,10 +29,19 @@ enum PhotoViewerError: Error { @objc public func show(_ imageList: [[String: String]], options: [String: Any]) -> Bool { - - collectionViewController = CollectionViewController() - collectionViewController?.imageList = imageList - collectionViewController?.options = options - return true + if imageList.count > 1 { + collectionViewController = CollectionViewController() + collectionViewController?.imageList = imageList + collectionViewController?.options = options + return true + } else { + sliderVC = SliderViewController() + sliderVC?.modalPresentationStyle = .overFullScreen + sliderVC?.position = IndexPath(row: 0, section: 0) + sliderVC?.imageList = imageList + sliderVC?.options = options + sliderVC?.closebutton = "no" + return true + } } } diff --git a/ios/Plugin/PhotoViewerPlugin.swift b/ios/Plugin/PhotoViewerPlugin.swift index 01cb896..3eaa3ae 100644 --- a/ios/Plugin/PhotoViewerPlugin.swift +++ b/ios/Plugin/PhotoViewerPlugin.swift @@ -52,15 +52,28 @@ public class PhotoViewerPlugin: CAPPlugin { // Display DispatchQueue.main.async { [weak self] in - guard ((self?.implementation.show(imageList, options: options)) != nil), - let viewController = self?.implementation.viewController else { - call.reject("Show : Unable to show the CollectionViewController") - return + if imageList.count > 1 { + guard ((self?.implementation.show(imageList, options: options)) != nil), + let viewController = self?.implementation.viewController else { + call.reject("Show : Unable to show the CollectionViewController") + return + } + viewController.modalPresentationStyle = .fullScreen + self?.bridge?.viewController?.present(viewController, animated: true, completion: { + call.resolve(["result": true]) + }) + } else if imageList.count == 1 { + guard ((self?.implementation.show(imageList, options: options)) != nil), + let sliderController = self?.implementation.sliderController else { + call.reject("Show : Unable to show the SliderViewController") + return + } + sliderController.modalPresentationStyle = .fullScreen + self?.bridge?.viewController?.present(sliderController, animated: true, completion: { + call.resolve(["result": true]) + }) + } - viewController.modalPresentationStyle = .fullScreen - self?.bridge?.viewController?.present(viewController, animated: true, completion: { - call.resolve(["result": true]) - }) } } diff --git a/node_modules/@capacitor/android/capacitor/build.gradle b/node_modules/@capacitor/android/capacitor/build.gradle index ae96db1..0b26aee 100644 --- a/node_modules/@capacitor/android/capacitor/build.gradle +++ b/node_modules/@capacitor/android/capacitor/build.gradle @@ -32,6 +32,7 @@ android { targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 30 versionCode 1 versionName "1.0" + consumerProguardFiles 'proguard-rules.pro' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/package-lock.json b/package-lock.json index 5d67644..eb238bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,14 +8,11 @@ "name": "@capacitor-community/photoviewer", "version": "0.0.2", "license": "MIT", - "dependencies": { - "jeep-photoviewer": "^0.0.7" - }, "devDependencies": { - "@capacitor/android": "^3.1.2", - "@capacitor/core": "3.1.2", + "@capacitor/android": "^3.2.3", + "@capacitor/core": "3.2.3", "@capacitor/docgen": "^0.0.17", - "@capacitor/ios": "^3.1.2", + "@capacitor/ios": "^3.2.3", "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^1.0.1", "@ionic/swiftlint-config": "^1.1.2", @@ -28,8 +25,8 @@ "typescript": "~4.0.3" }, "peerDependencies": { - "@capacitor/core": "^3.1.2", - "jeep-photoviewer": "^0.0.7" + "@capacitor/core": "^3.2.3", + "jeep-photoviewer": "^1.0.1" } }, "node_modules/@babel/code-frame": { @@ -121,18 +118,19 @@ } }, "node_modules/@capacitor/android": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.1.2.tgz", - "integrity": "sha512-WF2E2jWxO3EBl8Y3aTAa8PHwMZGiAl9pdqvJaEUUhbbovXe0UxAuG4n0mfci4ZI6dD8gannQ2peoZ74vJ0Gr3Q==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.2.3.tgz", + "integrity": "sha512-sltt9/ENb8cgnz29MnQWDFg6mV+EdKK4LCvhjr4v6rDXsFI+tcMrJtLc2px3y7ewKW8lR+w4pRSQIlhpaTrHiA==", "dev": true, + "license": "MIT", "peerDependencies": { - "@capacitor/core": "^3.1.0" + "@capacitor/core": "^3.2.0" } }, "node_modules/@capacitor/core": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.1.2.tgz", - "integrity": "sha512-cMqDY4JTNtyonqVPYxHqbmN3M3jlEBnQxecptlR+6yk/ZuhUwOJTHT1ActXRLyrQ8XIc74+9Yd37fwjWckSwFg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.2.3.tgz", + "integrity": "sha512-6oIi9EXgTRI8Xg3Gg8IWSQcddshb6lNtywkQA+QWoTL/6qV/l519tBcZHV9cu6BA7GT3qm2WcX9yQjwDq5iKpw==", "dev": true, "license": "MIT", "dependencies": { @@ -172,12 +170,13 @@ } }, "node_modules/@capacitor/ios": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.1.2.tgz", - "integrity": "sha512-y6wnTLK0I/ckTuofzeRkXK0OPw6vAKOj0I6QXwg2DxDdtiHmed6qP/G8cvwNBiFhZE9xfXAulxRYP8D76TPtNQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.2.3.tgz", + "integrity": "sha512-HGuCf9CnHdpeCBU8grgaPxlF20gIs6R5UhngdLbUKc1ULj6EtfOFxfH6ptbdJ/rIuZ9a8ADlszFaN4CGl5P8Mg==", "dev": true, + "license": "MIT", "peerDependencies": { - "@capacitor/core": "^3.1.0" + "@capacitor/core": "^3.2.0" } }, "node_modules/@eslint/eslintrc": { @@ -375,9 +374,9 @@ } }, "node_modules/@stencil/core": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.6.0.tgz", - "integrity": "sha512-QsxWayZyusnqSZrlCl81R71rA3KqFjVVQSH4E0rGN15F1GdQaFonKlHLyCOLKLig1zzC+DQkLLiUuocexuvdeQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.8.1.tgz", + "integrity": "sha512-iv9J6oLO/lv7/aO45M05yw3pp1J7olY400vlOZgdMVs3s5zHfalY1ZPYM0KyqU4+7DZuadKYbd0aQZ/g2PInZw==", "peer": true, "bin": { "stencil": "bin/stencil" @@ -1839,13 +1838,12 @@ } }, "node_modules/jeep-photoviewer": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/jeep-photoviewer/-/jeep-photoviewer-0.0.7.tgz", - "integrity": "sha512-12RWjr4IxMIbHjCKKga8Q/i7F8H91Aj5d8B6YetEOkFFevQN2P44kkS8Fm3akhPCq2TLXgORU2cNWrBFz42jqw==", - "license": "MIT", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jeep-photoviewer/-/jeep-photoviewer-1.0.1.tgz", + "integrity": "sha512-kWl1rmmWiOQtcMxiRgyxK8tfFBOyLTQC87U8agStDwp5K11XtVG+JQ8Mmw1DI/PTrwvOzN3sNGhCcrpkSa5Erg==", "peer": true, "dependencies": { - "@stencil/core": "^2.6.0" + "@stencil/core": "^2.8.1" } }, "node_modules/js-tokens": { @@ -3015,16 +3013,16 @@ } }, "@capacitor/android": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.1.2.tgz", - "integrity": "sha512-WF2E2jWxO3EBl8Y3aTAa8PHwMZGiAl9pdqvJaEUUhbbovXe0UxAuG4n0mfci4ZI6dD8gannQ2peoZ74vJ0Gr3Q==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.2.3.tgz", + "integrity": "sha512-sltt9/ENb8cgnz29MnQWDFg6mV+EdKK4LCvhjr4v6rDXsFI+tcMrJtLc2px3y7ewKW8lR+w4pRSQIlhpaTrHiA==", "dev": true, "requires": {} }, "@capacitor/core": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.1.2.tgz", - "integrity": "sha512-cMqDY4JTNtyonqVPYxHqbmN3M3jlEBnQxecptlR+6yk/ZuhUwOJTHT1ActXRLyrQ8XIc74+9Yd37fwjWckSwFg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.2.3.tgz", + "integrity": "sha512-6oIi9EXgTRI8Xg3Gg8IWSQcddshb6lNtywkQA+QWoTL/6qV/l519tBcZHV9cu6BA7GT3qm2WcX9yQjwDq5iKpw==", "dev": true, "requires": { "tslib": "^2.1.0" @@ -3052,9 +3050,9 @@ } }, "@capacitor/ios": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.1.2.tgz", - "integrity": "sha512-y6wnTLK0I/ckTuofzeRkXK0OPw6vAKOj0I6QXwg2DxDdtiHmed6qP/G8cvwNBiFhZE9xfXAulxRYP8D76TPtNQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.2.3.tgz", + "integrity": "sha512-HGuCf9CnHdpeCBU8grgaPxlF20gIs6R5UhngdLbUKc1ULj6EtfOFxfH6ptbdJ/rIuZ9a8ADlszFaN4CGl5P8Mg==", "dev": true, "requires": {} }, @@ -3215,9 +3213,9 @@ } }, "@stencil/core": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.6.0.tgz", - "integrity": "sha512-QsxWayZyusnqSZrlCl81R71rA3KqFjVVQSH4E0rGN15F1GdQaFonKlHLyCOLKLig1zzC+DQkLLiUuocexuvdeQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.8.1.tgz", + "integrity": "sha512-iv9J6oLO/lv7/aO45M05yw3pp1J7olY400vlOZgdMVs3s5zHfalY1ZPYM0KyqU4+7DZuadKYbd0aQZ/g2PInZw==", "peer": true }, "@types/json-schema": { @@ -4300,12 +4298,12 @@ } }, "jeep-photoviewer": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/jeep-photoviewer/-/jeep-photoviewer-0.0.7.tgz", - "integrity": "sha512-12RWjr4IxMIbHjCKKga8Q/i7F8H91Aj5d8B6YetEOkFFevQN2P44kkS8Fm3akhPCq2TLXgORU2cNWrBFz42jqw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jeep-photoviewer/-/jeep-photoviewer-1.0.1.tgz", + "integrity": "sha512-kWl1rmmWiOQtcMxiRgyxK8tfFBOyLTQC87U8agStDwp5K11XtVG+JQ8Mmw1DI/PTrwvOzN3sNGhCcrpkSa5Erg==", "peer": true, "requires": { - "@stencil/core": "^2.6.0" + "@stencil/core": "^2.8.1" } }, "js-tokens": { diff --git a/package.json b/package.json index a38a811..5f1d34b 100644 --- a/package.json +++ b/package.json @@ -46,10 +46,10 @@ "prepublishOnly": "npm run build" }, "devDependencies": { - "@capacitor/android": "^3.1.2", - "@capacitor/core": "3.1.2", + "@capacitor/android": "^3.2.3", + "@capacitor/core": "3.2.3", "@capacitor/docgen": "^0.0.17", - "@capacitor/ios": "^3.1.2", + "@capacitor/ios": "^3.2.3", "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^1.0.1", "@ionic/swiftlint-config": "^1.1.2", @@ -62,8 +62,8 @@ "typescript": "~4.0.3" }, "peerDependencies": { - "@capacitor/core": "^3.1.2", - "jeep-photoviewer": "^0.0.7" + "@capacitor/core": "^3.2.3", + "jeep-photoviewer": "^1.0.1" }, "prettier": "@ionic/prettier-config", "swiftlint": "@ionic/swiftlint-config", @@ -79,6 +79,6 @@ } }, "dependencies": { - "jeep-photoviewer": "^0.0.7" + "jeep-photoviewer": "^1.0.1" } }