From 84ec33b6f001aa1c5ec825732d0b9d4976e7cab6 Mon Sep 17 00:00:00 2001
From: Tomasz Kurylik
Date: Mon, 18 Nov 2024 12:57:14 +0100
Subject: [PATCH 01/16] hotfix
---
Sources/Internal/UI/PopupView.swift | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Sources/Internal/UI/PopupView.swift b/Sources/Internal/UI/PopupView.swift
index b59e99cff..f46bc9585 100644
--- a/Sources/Internal/UI/PopupView.swift
+++ b/Sources/Internal/UI/PopupView.swift
@@ -16,10 +16,10 @@ struct PopupView: View {
let rootView: any View
#endif
- @ObservedObject var stack: PopupStack
- private let topStackViewModel: VM.VerticalStack = .init(TopPopupConfig.self)
- private let centerStackViewModel: VM.CenterStack = .init(CenterPopupConfig.self)
- private let bottomStackViewModel: VM.VerticalStack = .init(BottomPopupConfig.self)
+ @StateObject var stack: PopupStack
+ @StateObject private var topStackViewModel: VM.VerticalStack = .init(TopPopupConfig.self)
+ @StateObject private var centerStackViewModel: VM.CenterStack = .init(CenterPopupConfig.self)
+ @StateObject private var bottomStackViewModel: VM.VerticalStack = .init(BottomPopupConfig.self)
var body: some View {
From 1ae515039ff1d8afcc4abd0720ba75a37033eb4a Mon Sep 17 00:00:00 2001
From: Tomasz Kurylik
Date: Thu, 19 Dec 2024 16:17:02 +0100
Subject: [PATCH 02/16] 1
---
Sources/Internal/Containers/PopupStack.swift | 2 --
Sources/Internal/Models/AnyPopup.swift | 2 --
Sources/Internal/Models/ID+Popup.swift | 1 -
Sources/Internal/View Models/ViewModel+CentreStack.swift | 3 ---
Sources/Internal/View Models/ViewModel+VerticalStack.swift | 4 ----
Sources/Internal/View Models/ViewModel.swift | 2 --
Sources/Public/Setup/Public+Setup+SceneDelegate.swift | 1 -
Tests/Tests+PopupID.swift | 2 --
Tests/Tests+PopupStack.swift | 2 --
Tests/Tests+ViewModel+PopupCenterStack.swift | 2 --
Tests/Tests+ViewModel+PopupVerticalStack.swift | 2 --
11 files changed, 23 deletions(-)
diff --git a/Sources/Internal/Containers/PopupStack.swift b/Sources/Internal/Containers/PopupStack.swift
index 382385665..7d87ecb3c 100644
--- a/Sources/Internal/Containers/PopupStack.swift
+++ b/Sources/Internal/Containers/PopupStack.swift
@@ -27,7 +27,6 @@ extension PopupStack {
}
-
// MARK: - STACK OPERATIONS
@@ -96,7 +95,6 @@ private extension PopupStack {
}
-
// MARK: - STACK CONTAINER OPERATIONS
diff --git a/Sources/Internal/Models/AnyPopup.swift b/Sources/Internal/Models/AnyPopup.swift
index e21246854..941754399 100644
--- a/Sources/Internal/Models/AnyPopup.swift
+++ b/Sources/Internal/Models/AnyPopup.swift
@@ -24,7 +24,6 @@ struct AnyPopup: Popup {
}
-
// MARK: - INITIALIZE & UPDATE
@@ -70,7 +69,6 @@ private extension AnyPopup {
}
-
// MARK: - PROTOCOLS CONFORMANCE
diff --git a/Sources/Internal/Models/ID+Popup.swift b/Sources/Internal/Models/ID+Popup.swift
index 866463dbf..99d4d7ee7 100644
--- a/Sources/Internal/Models/ID+Popup.swift
+++ b/Sources/Internal/Models/ID+Popup.swift
@@ -37,7 +37,6 @@ extension PopupID {
}
-
// MARK: - HELPERS
diff --git a/Sources/Internal/View Models/ViewModel+CentreStack.swift b/Sources/Internal/View Models/ViewModel+CentreStack.swift
index db6847549..2a83ca056 100644
--- a/Sources/Internal/View Models/ViewModel+CentreStack.swift
+++ b/Sources/Internal/View Models/ViewModel+CentreStack.swift
@@ -21,7 +21,6 @@ extension VM { class CenterStack: ViewModel { required init() {}
}}
-
// MARK: - METHODS / VIEW MODEL / ACTIVE POPUP
@@ -84,7 +83,6 @@ extension VM.CenterStack {
}
-
// MARK: - METHODS / VIEW MODEL / SELECTED POPUP
@@ -104,7 +102,6 @@ private extension VM.CenterStack {
}
-
// MARK: - METHODS / VIEW
diff --git a/Sources/Internal/View Models/ViewModel+VerticalStack.swift b/Sources/Internal/View Models/ViewModel+VerticalStack.swift
index a29ca2e87..9779a9eaa 100644
--- a/Sources/Internal/View Models/ViewModel+VerticalStack.swift
+++ b/Sources/Internal/View Models/ViewModel+VerticalStack.swift
@@ -21,7 +21,6 @@ extension VM { class VerticalStack: ViewModel { required init() {}
}}
-
// MARK: - METHODS / VIEW MODEL / ACTIVE POPUP
@@ -171,7 +170,6 @@ extension VM.VerticalStack {
}
-
// MARK: - METHODS / VIEW MODEL / SELECTED POPUP
@@ -214,7 +212,6 @@ private extension VM.VerticalStack {
}
-
// MARK: - METHODS / VIEW
@@ -307,7 +304,6 @@ extension VM.VerticalStack {
}
-
// MARK: - GESTURES
diff --git a/Sources/Internal/View Models/ViewModel.swift b/Sources/Internal/View Models/ViewModel.swift
index 4f852add0..ba25f6d24 100644
--- a/Sources/Internal/View Models/ViewModel.swift
+++ b/Sources/Internal/View Models/ViewModel.swift
@@ -35,7 +35,6 @@ enum VM {}
}
-
// MARK: - INITIALIZE & SETUP
@@ -54,7 +53,6 @@ extension ViewModel {
}
-
// MARK: UPDATE
diff --git a/Sources/Public/Setup/Public+Setup+SceneDelegate.swift b/Sources/Public/Setup/Public+Setup+SceneDelegate.swift
index 3e391b15f..e7adacfe9 100644
--- a/Sources/Public/Setup/Public+Setup+SceneDelegate.swift
+++ b/Sources/Public/Setup/Public+Setup+SceneDelegate.swift
@@ -73,7 +73,6 @@ extension PopupSceneDelegate {
}
-
// MARK: - WINDOW
diff --git a/Tests/Tests+PopupID.swift b/Tests/Tests+PopupID.swift
index c30460e79..a972982f1 100644
--- a/Tests/Tests+PopupID.swift
+++ b/Tests/Tests+PopupID.swift
@@ -16,7 +16,6 @@ import SwiftUI
@MainActor final class PopupIDTests: XCTestCase {}
-
// MARK: - TEST CASES
@@ -119,7 +118,6 @@ extension PopupIDTests {
}
-
// MARK: - HELPERS
diff --git a/Tests/Tests+PopupStack.swift b/Tests/Tests+PopupStack.swift
index 148bae864..59cbb272b 100644
--- a/Tests/Tests+PopupStack.swift
+++ b/Tests/Tests+PopupStack.swift
@@ -20,7 +20,6 @@ import SwiftUI
}
-
// MARK: - TEST CASES
@@ -241,7 +240,6 @@ extension PopupStackTests {
}
-
// MARK: - HELPERS
diff --git a/Tests/Tests+ViewModel+PopupCenterStack.swift b/Tests/Tests+ViewModel+PopupCenterStack.swift
index 47887c6aa..715d29109 100644
--- a/Tests/Tests+ViewModel+PopupCenterStack.swift
+++ b/Tests/Tests+ViewModel+PopupCenterStack.swift
@@ -37,7 +37,6 @@ private extension PopupCenterStackViewModelTests {
}
-
// MARK: - TEST CASES
@@ -223,7 +222,6 @@ private extension PopupCenterStackViewModelTests {
}
-
// MARK: - HELPERS
diff --git a/Tests/Tests+ViewModel+PopupVerticalStack.swift b/Tests/Tests+ViewModel+PopupVerticalStack.swift
index 2ca6c8267..3601679ac 100644
--- a/Tests/Tests+ViewModel+PopupVerticalStack.swift
+++ b/Tests/Tests+ViewModel+PopupVerticalStack.swift
@@ -44,7 +44,6 @@ private extension PopupVerticalStackViewModelTests {
}
-
// MARK: - TEST CASES
@@ -1475,7 +1474,6 @@ private extension PopupVerticalStackViewModelTests {
}
-
// MARK: - HELPERS
From dcca2b5d7f0e3d231dd1b737d4b18759e6b38790 Mon Sep 17 00:00:00 2001
From: Tomasz Kurylik
Date: Thu, 19 Dec 2024 18:39:07 +0100
Subject: [PATCH 03/16] 1
---
MijickPopups.podspec | 2 +-
Sources/Internal/View Models/ViewModel+CentreStack.swift | 4 ++--
.../Internal/View Models/ViewModel+VerticalStack.swift | 6 +++---
Sources/Internal/View Models/ViewModel.swift | 8 ++++----
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/MijickPopups.podspec b/MijickPopups.podspec
index 82f2d4904..88d92b05c 100644
--- a/MijickPopups.podspec
+++ b/MijickPopups.podspec
@@ -5,7 +5,7 @@ Pod::Spec.new do |s|
MijickPopups solves two seemingly contradictory problems - to allow developers to create fully customizable popup, and to make the process as simple as possible.
DESC
- s.version = '4.0.0'
+ s.version = '4.0.1'
s.ios.deployment_target = '14.0'
s.osx.deployment_target = '12.0'
s.tvos.deployment_target = '15.0'
diff --git a/Sources/Internal/View Models/ViewModel+CentreStack.swift b/Sources/Internal/View Models/ViewModel+CentreStack.swift
index 2a83ca056..257388fb1 100644
--- a/Sources/Internal/View Models/ViewModel+CentreStack.swift
+++ b/Sources/Internal/View Models/ViewModel+CentreStack.swift
@@ -16,8 +16,8 @@ extension VM { class CenterStack: ViewModel { required init() {}
var popups: [AnyPopup] = []
var activePopupProperties: ActivePopupProperties = .init()
var screen: Screen = .init()
- var updatePopupAction: ((AnyPopup) async -> ())!
- var closePopupAction: ((AnyPopup) async -> ())!
+ var updatePopupAction: ((AnyPopup) async -> ())?
+ var closePopupAction: ((AnyPopup) async -> ())?
}}
diff --git a/Sources/Internal/View Models/ViewModel+VerticalStack.swift b/Sources/Internal/View Models/ViewModel+VerticalStack.swift
index 9779a9eaa..97f98cacc 100644
--- a/Sources/Internal/View Models/ViewModel+VerticalStack.swift
+++ b/Sources/Internal/View Models/ViewModel+VerticalStack.swift
@@ -16,8 +16,8 @@ extension VM { class VerticalStack: ViewModel { required init() {}
var popups: [AnyPopup] = []
var activePopupProperties: ActivePopupProperties = .init()
var screen: Screen = .init()
- var updatePopupAction: ((AnyPopup) async -> ())!
- var closePopupAction: ((AnyPopup) async -> ())!
+ var updatePopupAction: ((AnyPopup) async -> ())?
+ var closePopupAction: ((AnyPopup) async -> ())?
}}
@@ -367,7 +367,7 @@ extension VM.VerticalStack {
}
private extension VM.VerticalStack {
func dismissLastPopupIfNeeded(_ popup: AnyPopup) async { switch activePopupProperties.translationProgress >= dragThreshold {
- case true: await closePopupAction(popup)
+ case true: await closePopupAction?(popup)
case false: return
}}
func calculateTargetDragHeight(_ activePopup: AnyPopup) async -> CGFloat {
diff --git a/Sources/Internal/View Models/ViewModel.swift b/Sources/Internal/View Models/ViewModel.swift
index ba25f6d24..9340bdb03 100644
--- a/Sources/Internal/View Models/ViewModel.swift
+++ b/Sources/Internal/View Models/ViewModel.swift
@@ -21,8 +21,8 @@ enum VM {}
var screen: Screen { get set }
// MARK: Actions
- var updatePopupAction: ((AnyPopup) async -> ())! { get set }
- var closePopupAction: ((AnyPopup) async -> ())! { get set }
+ var updatePopupAction: ((AnyPopup) async -> ())? { get set }
+ var closePopupAction: ((AnyPopup) async -> ())? { get set }
// MARK: Methods
func calculateActivePopupHeight() async -> CGFloat?
@@ -93,7 +93,7 @@ extension ViewModel {
let newHeight = await calculatePopupHeight(heightCandidate, popup)
if newHeight != popup.height {
- await updatePopupAction(popup.updatedHeight(newHeight))
+ await updatePopupAction?(popup.updatedHeight(newHeight))
}
}
}
@@ -101,7 +101,7 @@ extension ViewModel {
// MARK: Popup Drag Height
extension ViewModel {
func updatePopupDragHeight(_ targetDragHeight: CGFloat, _ popup: AnyPopup) async {
- await updatePopupAction(popup.updatedDragHeight(targetDragHeight))
+ await updatePopupAction?(popup.updatedDragHeight(targetDragHeight))
}
}
From dc228cf2017c5c382b729b5aa0067ac369d903fa Mon Sep 17 00:00:00 2001
From: Tomasz Kurylik
Date: Thu, 19 Dec 2024 19:45:17 +0100
Subject: [PATCH 04/16] 1
---
Sources/Internal/UI/PopupCenterStackView.swift | 4 ++--
Sources/Internal/UI/PopupVerticalStackView.swift | 4 ++--
Sources/Internal/UI/PopupView.swift | 8 ++++----
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/Sources/Internal/UI/PopupCenterStackView.swift b/Sources/Internal/UI/PopupCenterStackView.swift
index 0b6af71a2..e3d5526cb 100644
--- a/Sources/Internal/UI/PopupCenterStackView.swift
+++ b/Sources/Internal/UI/PopupCenterStackView.swift
@@ -15,12 +15,12 @@ struct PopupCenterStackView: View {
@ObservedObject var viewModel: VM.CenterStack
- var body: some View {
+ var body: some View { if viewModel.screen.height > 0 {
ZStack(content: createPopupStack)
.id(viewModel.popups.isEmpty)
.transition(transition)
.frame(maxWidth: .infinity, maxHeight: viewModel.screen.height)
- }
+ }}
}
private extension PopupCenterStackView {
func createPopupStack() -> some View {
diff --git a/Sources/Internal/UI/PopupVerticalStackView.swift b/Sources/Internal/UI/PopupVerticalStackView.swift
index cbeaa0685..67a0400e9 100644
--- a/Sources/Internal/UI/PopupVerticalStackView.swift
+++ b/Sources/Internal/UI/PopupVerticalStackView.swift
@@ -15,11 +15,11 @@ struct PopupVerticalStackView: View {
@ObservedObject var viewModel: VM.VerticalStack
- var body: some View {
+ var body: some View { if viewModel.screen.height > 0 {
ZStack(alignment: (!viewModel.alignment).toAlignment(), content: createPopupStack)
.frame(height: viewModel.screen.height, alignment: viewModel.alignment.toAlignment())
.onDragGesture(onChanged: viewModel.onPopupDragGestureChanged, onEnded: viewModel.onPopupDragGestureEnded, isEnabled: viewModel.dragGestureEnabled)
- }
+ }}
}
private extension PopupVerticalStackView {
func createPopupStack() -> some View {
diff --git a/Sources/Internal/UI/PopupView.swift b/Sources/Internal/UI/PopupView.swift
index f46bc9585..b59e99cff 100644
--- a/Sources/Internal/UI/PopupView.swift
+++ b/Sources/Internal/UI/PopupView.swift
@@ -16,10 +16,10 @@ struct PopupView: View {
let rootView: any View
#endif
- @StateObject var stack: PopupStack
- @StateObject private var topStackViewModel: VM.VerticalStack = .init(TopPopupConfig.self)
- @StateObject private var centerStackViewModel: VM.CenterStack = .init(CenterPopupConfig.self)
- @StateObject private var bottomStackViewModel: VM.VerticalStack = .init(BottomPopupConfig.self)
+ @ObservedObject var stack: PopupStack
+ private let topStackViewModel: VM.VerticalStack = .init(TopPopupConfig.self)
+ private let centerStackViewModel: VM.CenterStack = .init(CenterPopupConfig.self)
+ private let bottomStackViewModel: VM.VerticalStack = .init(BottomPopupConfig.self)
var body: some View {
From 351c94d840bc0d202534c40300ec9402cf878d04 Mon Sep 17 00:00:00 2001
From: Tomasz Kurylik
Date: Thu, 19 Dec 2024 19:58:15 +0100
Subject: [PATCH 05/16] 1
---
Sources/Public/Setup/Public+Setup+View.swift | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Sources/Public/Setup/Public+Setup+View.swift b/Sources/Public/Setup/Public+Setup+View.swift
index 676d277a4..239e53c19 100644
--- a/Sources/Public/Setup/Public+Setup+View.swift
+++ b/Sources/Public/Setup/Public+Setup+View.swift
@@ -44,11 +44,11 @@ public extension View {
*/
func registerPopups(id: PopupStackID = .shared, configBuilder: @escaping (GlobalConfigContainer) -> GlobalConfigContainer = { $0 }) -> some View {
#if os(tvOS)
- PopupView(rootView: self, stack: .registerStack(id: id)).onAppear { _ = configBuilder(.init()) }
+ PopupView(rootView: self, popupStack: .registerStack(id: id)).onAppear { _ = configBuilder(.init()) }
#else
self
.frame(maxWidth: .infinity, maxHeight: .infinity)
- .overlay(PopupView(stack: .registerStack(id: id)), alignment: .top)
+ .overlay(PopupView(rootView: self, popupStack: .registerStack(id: id)), alignment: .top)
.onAppear { _ = configBuilder(.init()) }
#endif
}
From c08dd8e63204891e5319e9f0c70a5ee01dcba507 Mon Sep 17 00:00:00 2001
From: Tomasz Kurylik
Date: Thu, 19 Dec 2024 20:12:32 +0100
Subject: [PATCH 06/16] 1
---
Sources/Internal/UI/PopupView.swift | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/Sources/Internal/UI/PopupView.swift b/Sources/Internal/UI/PopupView.swift
index b59e99cff..c80dd5294 100644
--- a/Sources/Internal/UI/PopupView.swift
+++ b/Sources/Internal/UI/PopupView.swift
@@ -22,6 +22,14 @@ struct PopupView: View {
private let bottomStackViewModel: VM.VerticalStack = .init(BottomPopupConfig.self)
+ init(rootView: any View, popupStack: PopupStack) {
+ #if os(tvOS)
+ self.rootView = rootView
+ #endif
+ self.stack = popupStack
+
+ Task { [self] in await updateViewModels { await $0.updatePopups(stack.popups) } }
+ }
var body: some View {
#if os(tvOS)
AnyView(rootView)
From 5840fcfd75519cabe104a4b4e356c5312ca07d95 Mon Sep 17 00:00:00 2001
From: Tomasz Kurylik
Date: Thu, 19 Dec 2024 20:13:39 +0100
Subject: [PATCH 07/16] 1
---
Tests/Tests+ViewModel+PopupVerticalStack.swift | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Tests/Tests+ViewModel+PopupVerticalStack.swift b/Tests/Tests+ViewModel+PopupVerticalStack.swift
index 3601679ac..b995cccc3 100644
--- a/Tests/Tests+ViewModel+PopupVerticalStack.swift
+++ b/Tests/Tests+ViewModel+PopupVerticalStack.swift
@@ -132,7 +132,7 @@ extension PopupVerticalStackViewModelTests {
private extension PopupVerticalStackViewModelTests {
func appendPopupsAndCheckPopups(viewModel: ViewModel, popups: [AnyPopup], updatedPopup: AnyPopup, expectedValue: (height: CGFloat?, dragHeight: CGFloat)) async {
await viewModel.updatePopups(popups)
- await viewModel.updatePopupAction(updatedPopup)
+ await viewModel.updatePopupAction?(updatedPopup)
if let index = viewModel.popups.firstIndex(of: updatedPopup) {
XCTAssertEqual(viewModel.popups[index].height, expectedValue.height)
From c114e2acf5ff90248bc8d18699576c31e2c6f136 Mon Sep 17 00:00:00 2001
From: "Tomasz K."
Date: Thu, 19 Dec 2024 20:15:49 +0100
Subject: [PATCH 08/16] Update README.md
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 1a5c7089d..fa74b4d41 100644
--- a/README.md
+++ b/README.md
@@ -63,19 +63,19 @@
-
+
-
+
-
+
-
+
From c6ec8ea04d2ff686954293eb8b578f0ee540fddc Mon Sep 17 00:00:00 2001
From: "Tomasz K."
Date: Thu, 19 Dec 2024 20:17:30 +0100
Subject: [PATCH 09/16] Update README.md
---
README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README.md b/README.md
index fa74b4d41..2445f62fc 100644
--- a/README.md
+++ b/README.md
@@ -65,6 +65,10 @@
+
+
+
+
From 15dfa4b9aede1084877bfefc8b48ef1e759f5fdb Mon Sep 17 00:00:00 2001
From: "Tomasz K."
Date: Thu, 19 Dec 2024 20:18:06 +0100
Subject: [PATCH 10/16] Update README.md
---
README.md | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 89 insertions(+)
diff --git a/README.md b/README.md
index 2445f62fc..b17ecca02 100644
--- a/README.md
+++ b/README.md
@@ -83,6 +83,95 @@
+
+# β¨ Features
+
+
+ ππ» |
+ Automatically handles permissions |
+
+
+ πΌοΈ |
+ Image capture |
+
+
+ π¬οΈ |
+ Video capture (with or without sound) |
+
+
+ πΈ |
+ Camera position changes |
+
+
+ ποΈ |
+ Supports manual zoom |
+
+
+ ποΈ |
+ Supports manual focus |
+
+
+ ποΈ |
+ Changeable frame rate |
+
+
+ πΊοΈ |
+ Changeable camera resolution |
+
+
+ π |
+ Camera filters |
+
+
+ π¦ |
+ Torch |
+
+
+ πΈ |
+ Flash |
+
+
+ β±οΈ |
+ Other camera settings (exposure duration, target bias, ISO, HDR mode and more) |
+
+
+ β’οΈ |
+ Displays error screen if permissions are not granted |
+
+
+ πΌοΈ |
+ Displays captured media screen |
+
+
+ π± |
+ Modern and minimalistic UI |
+
+
+ πΊ |
+ Beautiful animations |
+
+
+ π§ |
+ Fully customizable screens |
+
+
+ π€πΌ |
+ Gestures support |
+
+
+ π² |
+ Blocks screen orientation change |
+
+
+ β‘οΈ |
+ Supports Swift 6 |
+
+
+ π |
+ ... and others |
+
+
+
# βοΈ Why MijickPopups?
MijickPopups solves two seemingly contradictory problems - to allow developers to create fully customizable popup, and to make the process as simple as possible. Here is why we think we have successfully met these objectives:
From 0ccac4f5defbf92c03537809dd77a80a94aa2c26 Mon Sep 17 00:00:00 2001
From: "Tomasz K."
Date: Thu, 19 Dec 2024 20:24:08 +0100
Subject: [PATCH 11/16] Update README.md
---
README.md | 74 +------------------------------------------------------
1 file changed, 1 insertion(+), 73 deletions(-)
diff --git a/README.md b/README.md
index b17ecca02..4c1e68116 100644
--- a/README.md
+++ b/README.md
@@ -86,81 +86,9 @@
# β¨ Features
-
- ππ» |
- Automatically handles permissions |
-
-
- πΌοΈ |
- Image capture |
-
-
- π¬οΈ |
- Video capture (with or without sound) |
-
-
- πΈ |
- Camera position changes |
-
-
- ποΈ |
- Supports manual zoom |
-
-
- ποΈ |
- Supports manual focus |
-
-
- ποΈ |
- Changeable frame rate |
-
-
- πΊοΈ |
- Changeable camera resolution |
-
-
- π |
- Camera filters |
-
-
- π¦ |
- Torch |
-
-
- πΈ |
- Flash |
-
-
- β±οΈ |
- Other camera settings (exposure duration, target bias, ISO, HDR mode and more) |
-
-
- β’οΈ |
- Displays error screen if permissions are not granted |
-
-
- πΌοΈ |
- Displays captured media screen |
-
π± |
- Modern and minimalistic UI |
-
-
- πΊ |
- Beautiful animations |
-
-
- π§ |
- Fully customizable screens |
-
-
- π€πΌ |
- Gestures support |
-
-
- π² |
- Blocks screen orientation change |
+ Three positions for the popups: Top, Center or Bottom |
β‘οΈ |
From beb1dc0567da85dc0ebff72a57feaab896ec40b3 Mon Sep 17 00:00:00 2001
From: "Tomasz K."
Date: Thu, 19 Dec 2024 20:44:33 +0100
Subject: [PATCH 12/16] Update README.md
---
README.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/README.md b/README.md
index 0f03505ea..234427234 100644
--- a/README.md
+++ b/README.md
@@ -69,10 +69,6 @@
-
-
-
-
From 9a54af5513eb23acb028c8a2a47697d914a0c7fa Mon Sep 17 00:00:00 2001
From: "Tomasz K."
Date: Thu, 19 Dec 2024 20:48:23 +0100
Subject: [PATCH 13/16] Update README.md
---
README.md | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/README.md b/README.md
index 234427234..e99f0ad2c 100644
--- a/README.md
+++ b/README.md
@@ -90,6 +90,46 @@
π± |
Three positions for the popups: Top, Center or Bottom |
+
+ |
+ Stackable popups |
+
+
+ |
+ Three height modes: Automatic, Large or Fullscreen |
+
+
+ |
+ Resizable popups |
+
+
+ |
+ Automatic dismissal |
+
+
+ |
+ Super easy to use from any place in the code |
+
+
+ |
+ Fully customizable |
+
+
+ |
+ Beautiful animations |
+
+
+ |
+ Gestures support |
+
+
+ |
+ Works with SwiftUI sheets |
+
+
+ |
+ Supports iOS, macOS, tvOS, watchOS and visionOS |
+
β‘οΈ |
Supports Swift 6 |
From 3d58054682a4a8fcae4133616aadd13f5afe6120 Mon Sep 17 00:00:00 2001
From: "Tomasz K."
Date: Thu, 19 Dec 2024 20:50:58 +0100
Subject: [PATCH 14/16] Update README.md
---
README.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index e99f0ad2c..f77457660 100644
--- a/README.md
+++ b/README.md
@@ -102,32 +102,32 @@
|
Resizable popups |
-
+
|
Automatic dismissal |
- |
+ π |
Super easy to use from any place in the code |
- |
+ π§ |
Fully customizable |
- |
+ πΊ |
Beautiful animations |
- |
+ π€πΌ |
Gestures support |
- |
+ π |
Works with SwiftUI sheets |
- |
+ π₯οΈ |
Supports iOS, macOS, tvOS, watchOS and visionOS |
From ae11c1b2ff23d7f1f0e1248d912abc78266ef716 Mon Sep 17 00:00:00 2001
From: "Tomasz K."
Date: Thu, 19 Dec 2024 20:52:54 +0100
Subject: [PATCH 15/16] Update README.md
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index f77457660..911447fdd 100644
--- a/README.md
+++ b/README.md
@@ -91,19 +91,19 @@
Three positions for the popups: Top, Center or Bottom |
- |
+ π |
Stackable popups |
- |
+ π« |
Three height modes: Automatic, Large or Fullscreen |
- |
+ βΉοΈ |
Resizable popups |
- |
+ π |
Automatic dismissal |
From f5c2b04848d95949b346a86905eb1b12cfacc12f Mon Sep 17 00:00:00 2001
From: "Tomasz K."
Date: Thu, 19 Dec 2024 20:54:16 +0100
Subject: [PATCH 16/16] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 911447fdd..e0b4785c0 100644
--- a/README.md
+++ b/README.md
@@ -202,7 +202,7 @@ Join the welcoming community of developers on [Discord](https://link.mijick.com/
# πΌ Contribute
To contribute a feature or idea to **MijickPopups**, create an [issue](https://github.com/Mijick/Popups/issues/new?assignees=FulcrumOne&labels=state%3A+inactive%2C+type%3A+feature&projects=&template=π-feature-request.md&title=%5BFREQ%5D) explaining your idea or bring it up on [Discord](https://discord.com/invite/dT5V7nm5SC).
If you find a bug, please create an [issue](https://github.com/Mijick/Popups/issues/new?assignees=FulcrumOne%2C+jay-jay-lama&labels=state%3A+inactive%2C+type%3A+bug&projects=&template=π¦-bug-report.md&title=%5BBUG%5D).
-If you would like to contribute, please refer to the [Contribution Guidelines](https://link.mijick.com/contribution-guidelines).
+If you would like to contribute, please refer to the [Contribution Guidelines](https://github.com/Mijick/Popups/blob/main/.github/CONTRIBUTING.md).
# π Sponsor our work