Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
dfbc2e2
Only ask for camera permission when necessary
f3dm76 Aug 14, 2023
2189ab9
Use current fullscreen media if nothing else is selected
f3dm76 Aug 14, 2023
2a182bc
Add sim check
f3dm76 Aug 17, 2023
6d404a5
Add header hiding in fullscreen
f3dm76 Aug 17, 2023
e855bee
Fix single selection mode
f3dm76 Aug 17, 2023
61f70ea
Forbid screen rotation for the whole picker
f3dm76 Aug 22, 2023
7c8fe5a
Fix orientation locking
f3dm76 Aug 22, 2023
a51c02f
Fix slow camera dismissal
f3dm76 Aug 22, 2023
2b57f10
Don't show circles in the library for single selection
f3dm76 Aug 22, 2023
9c36467
Don't make media smaller while keyboard is displayed
f3dm76 Aug 24, 2023
1192d7e
Current fullscreen item fix
f3dm76 Aug 24, 2023
eaaf60c
Fix video size calculations
f3dm76 Aug 25, 2023
b58ddea
Fix single media selection mode
f3dm76 Sep 1, 2023
b60bd25
Add audio capture for videos
f3dm76 Sep 1, 2023
154ec10
Add custom bg for video player
f3dm76 Sep 4, 2023
e5cae02
Add keyboard dismiss on tap
f3dm76 Sep 4, 2023
922bde1
add cell style
X901 Oct 3, 2023
6c0b9d0
fix issue when tap on MediaCell open wrong image
Oct 10, 2023
75f4393
Renew example project
f3dm76 Oct 11, 2023
777d395
Fix padding
f3dm76 Oct 11, 2023
9947ee5
Simplify keyboard avoidence
f3dm76 Oct 16, 2023
d25d750
Fix current fullscreen item
f3dm76 Oct 16, 2023
6a67be9
Merge branch 'main' into main
f3dm76 Oct 16, 2023
792fad4
Merge pull request #18 from X901/main
f3dm76 Oct 16, 2023
2b2644f
Raise ios target to 16
f3dm76 Oct 16, 2023
8e5e4d8
Fix "empty data" flashing
f3dm76 Oct 16, 2023
97d1f33
Add option to remove fullscreen preview
f3dm76 Oct 18, 2023
ed48423
Add live camera view customization closure
f3dm76 Oct 18, 2023
f493425
Allow to pass selection parameters struct
f3dm76 Oct 19, 2023
467ba6d
Bump version
f3dm76 Oct 19, 2023
708e9d2
Add iOs 15 support;
Alex-M-B95 Oct 23, 2023
a8c58ab
Add a new feature: deselect photo/video from camera;
Alex-M-B95 Oct 25, 2023
1d3c061
Correct code formatting;
Alex-M-B95 Oct 25, 2023
e53d3af
Merge pull request #21 from exyte/feature/deselect-items-from-camera
f3dm76 Oct 25, 2023
e8d1bc3
Fix a crash when the application does not have camera permission;
Alex-M-B95 Oct 25, 2023
4129507
Merge pull request #22 from exyte/fix/app-crashes-without-camera-perm…
f3dm76 Oct 25, 2023
7577cce
Apply the main text color from the theme for “Empty Data” texts;
Alex-M-B95 Oct 25, 2023
37bb06d
Merge pull request #23 from exyte/fix/empty-data-text-color
f3dm76 Oct 25, 2023
97b4b29
Merge branch 'main' into fix/support-ios-15
f3dm76 Oct 31, 2023
8d4f1d4
Add show preview closure to camera builder
f3dm76 Oct 31, 2023
3cb62be
Bump version
f3dm76 Oct 31, 2023
4ec0d23
Add more color customization
f3dm76 Dec 14, 2023
f2dbedb
fix showFullscreenPreview selection style
villyGreen Mar 6, 2024
b5741e6
fix comment
villyGreen Mar 6, 2024
cbbf95b
Merge pull request #27 from exyte/feature/showFullscreenPreviewSelection
f3dm76 Mar 7, 2024
f4f756d
fix close action in camera stub view
villyGreen Mar 11, 2024
71e81ea
Merge pull request #29 from exyte/fix/cameraStubCloseAction
f3dm76 Mar 11, 2024
88769b1
Only ask permissions when needed
f3dm76 May 6, 2024
2738cd0
Update README.md
f3dm76 Jul 10, 2024
6f87457
Use less geometry readers
f3dm76 Feb 21, 2025
7b88be4
Refactor theme a bit; optimize fulscreen container
f3dm76 Feb 26, 2025
84f768b
Fix filter picker
f3dm76 Feb 27, 2025
7bb3011
Fix toggle video playing
f3dm76 Feb 27, 2025
40eb768
Update README.md
f3dm76 Feb 28, 2025
7fa2782
Add swift 6 support; Add growing cells animations
f3dm76 Mar 7, 2025
2aa1d07
Merge commit '40eb7689d0288109a5193a2aac7918509ae99f35'
f3dm76 Mar 7, 2025
bb69eab
Replace combine with swiftUI where possible
f3dm76 Mar 7, 2025
58067de
Make theme public
f3dm76 Mar 17, 2025
831fe42
Refactor permissions service
f3dm76 Mar 21, 2025
15f0008
Deprecate cocoapods
f3dm76 Mar 21, 2025
558293a
Reorganize the project
f3dm76 Mar 25, 2025
53eb9cc
Restore the structure
f3dm76 Mar 25, 2025
7067c34
Fix
f3dm76 Mar 25, 2025
d349b68
Update readme
f3dm76 Mar 26, 2025
fab9865
Fix xcode 15 warnings
f3dm76 Apr 3, 2025
c287ee4
Fix showFullscreenPreview
f3dm76 Apr 4, 2025
05a4cdc
Added editorconfig for standardised formatting
fred-bowker Aug 28, 2025
dd9d41c
changed to have fixed 3 column width instead of dynamic width
fred-bowker Aug 28, 2025
deff058
fix(camera): correctly switch between front and back cameras
FireLord Aug 29, 2025
fa86019
fix(camera): remove applyIf by inlining zoom gesture condition
FireLord Aug 29, 2025
05f4acb
Merge pull request #39 from FireLord/main
f3dm76 Aug 30, 2025
985b176
Merge pull request #38 from fred-bowker/media-column-width
f3dm76 Aug 30, 2025
41fabae
Merge pull request #37 from fred-bowker/editorconfig
f3dm76 Aug 30, 2025
56c9406
added functionality for showing camera cell prominent, 2 cell height
fred-bowker Sep 11, 2025
c3769c6
Merge pull request #43 from fred-bowker/prominent-camera
f3dm76 Sep 11, 2025
2dc3aec
Restore camera cell method with deprecated annotation
f3dm76 Sep 12, 2025
a4d1c69
Small fix
f3dm76 Sep 12, 2025
36019ee
setMediaPickerParameters with parameter liveCameraCell allows externa…
fred-bowker Oct 16, 2025
17beea1
Merge pull request #45 from fred-bowker/cameracell-param-v1
f3dm76 Oct 17, 2025
1e41f2a
Fix compile error
f3dm76 Oct 17, 2025
39e9b63
changing MediaPickerParamsHolder to public
fred-bowker Oct 19, 2025
89c95ce
Merge pull request #46 from fred-bowker/accessor-change
f3dm76 Oct 20, 2025
f398c40
update to create compressed thumbnail for image types in getThumbnail…
fred-bowker Nov 1, 2025
fd71c0b
Merge pull request #47 from fred-bowker/thumbnail
f3dm76 Nov 5, 2025
eeec611
Add public initializer for Media struct
denis-obukhov Dec 9, 2025
96f4f5e
Merge pull request #49 from exyte/exyte/feature/issue-35
f3dm76 Dec 9, 2025
7de947d
Fix not dismissing AnchoredPopup with mediaSelectionLimit(1)
denis-obukhov Dec 9, 2025
f6d5107
Merge pull request #50 from exyte/exyte/fix/issue-40
f3dm76 Dec 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[*.{swift}]
indent_style = space
indent_size = 4
36 changes: 0 additions & 36 deletions Examples/Example-iOS/AppDelegate.swift

This file was deleted.

12 changes: 0 additions & 12 deletions Examples/Example-iOS/Info.plist

This file was deleted.

23 changes: 0 additions & 23 deletions ExyteMediaPicker.podspec

This file was deleted.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1600"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
buildArchitectures = "Automatic">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5BFF68302AD689C80099D333"
BuildableName = "MediaPickerExample.app"
BlueprintName = "MediaPickerExample"
ReferencedContainer = "container:MediaPickerExample.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "ExyteMediaPicker"
BuildableName = "ExyteMediaPicker"
BlueprintName = "ExyteMediaPicker"
ReferencedContainer = "container:..">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5BFF68302AD689C80099D333"
BuildableName = "MediaPickerExample.app"
BlueprintName = "MediaPickerExample"
ReferencedContainer = "container:MediaPickerExample.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5BFF68302AD689C80099D333"
BuildableName = "MediaPickerExample.app"
BlueprintName = "MediaPickerExample"
ReferencedContainer = "container:MediaPickerExample.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
44 changes: 44 additions & 0 deletions MediaPickerExample/MediaPickerExample/AppDelegate.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
//
// AppDelegate.swift
// Example-iOS
//
// Created by Alexandra Afonasova on 20.10.2022.
//

import Foundation
import UIKit

final class AppDelegate: NSObject, UIApplicationDelegate, ObservableObject {

private var orientationLock = UIInterfaceOrientationMask.all

func lockOrientationToPortrait() {
orientationLock = .portrait
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
scene.requestGeometryUpdate(.iOS(interfaceOrientations: .portrait))
}
}

func unlockOrientation() {
orientationLock = .all
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
let currentOrientation = UIDevice.current.orientation
let newOrientation: UIInterfaceOrientationMask

switch currentOrientation {
case .portrait: newOrientation = .portrait
case .portraitUpsideDown: newOrientation = .portraitUpsideDown
case .landscapeLeft: newOrientation = .landscapeLeft
case .landscapeRight: newOrientation = .landscapeRight
default: newOrientation = .all
}

scene.requestGeometryUpdate(.iOS(interfaceOrientations: newOrientation))
}
}

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return orientationLock
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ struct Application: App {
WindowGroup {
ContentView()
.environmentObject(appDelegate)
.preferredColorScheme(.dark)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

import SwiftUI
import ExyteMediaPicker
import Combine

struct ContentView: View {

Expand Down Expand Up @@ -54,12 +53,13 @@ struct ContentView: View {
}

// MARK: - Default media picker
.sheet(isPresented: $showDefaultMediaPicker) {
.fullScreenCover(isPresented: $showDefaultMediaPicker) {
MediaPicker(
isPresented: $showDefaultMediaPicker,
onChange: { medias = $0 }
)
.showLiveCameraCell()
.mediaSelectionType(.photoAndVideo)
.mediaSelectionStyle(.count)
.orientationHandler {
switch $0 {
case .lock: appDelegate.lockOrientationToPortrait()
Expand Down
Loading