Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 6 additions & 3 deletions Share/NCShareExtension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ extension NCShareExtension {
vPosition: .center,
horizontalLayout: horizontalLayout,
blocksTouches: true)
(token, banner) = showUploadBanner(windowScene: window.windowScene,
(banner, token) = showUploadBanner(windowScene: window.windowScene,
payload: payload,
allowMinimizeOnTap: false,
onButtonTap: {
Expand Down Expand Up @@ -416,8 +416,11 @@ extension NCShareExtension {
banner?.update(payload: LucidBannerPayload.Update(subtitle: error?.errorDescription, stage: .error), for: self.token)
}

banner?.dismiss(after: 2) {
self.cancel()
if let banner, let token {
Task { @MainActor in
try? await Task.sleep(for: .seconds(2))
banner.dismiss()
}
}
}

Expand Down
29 changes: 17 additions & 12 deletions iOSClient/GUI/Lucid Banner/AlertActionBannerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import SwiftUI
import LucidBanner

@MainActor
func showAlertActionBannerView(lucidBanner: LucidBanner?,
title: String? = nil,
subtitle: String? = nil,
onConfirm: (() -> Void)? = nil) {
func showAlertActionBanner(lucidBanner: LucidBanner?,
title: String? = nil,
subtitle: String? = nil,
onConfirm: (() -> Void)? = nil) {
guard let lucidBanner else {
return
}
Expand All @@ -28,9 +28,7 @@ func showAlertActionBannerView(lucidBanner: LucidBanner?,
)

lucidBanner.show(payload: payload,
policy: .replace) { _, _ in
lucidBanner.dismiss()
} content: { state in
policy: .enqueue) { state in
AlertActionBannerView(
state: state,
onConfirm: {
Expand All @@ -42,7 +40,6 @@ func showAlertActionBannerView(lucidBanner: LucidBanner?,
}
)
}

}

// MARK: - SwiftUI
Expand Down Expand Up @@ -84,26 +81,34 @@ struct AlertActionBannerView: View {

// Buttons
HStack(spacing: 12) {
Button("_cancel_") {
Button {
onCancel?()
} label: {
Text("_cancel_")
.frame(maxWidth: .infinity)
.contentShape(Rectangle())
}
.padding(.vertical, 8)
.frame(maxWidth: .infinity)
.background(
Capsule()
.stroke(Color.secondary.opacity(0.5), lineWidth: 1)
)
.foregroundStyle(.primary)
.buttonStyle(.plain)

Button("_ok_") {
Button {
onConfirm?()
} label: {
Text("_ok_")
.frame(maxWidth: .infinity)
.contentShape(Rectangle())
}
.padding(.vertical, 8)
.frame(maxWidth: .infinity)
.background(
Capsule().fill(Color.accentColor)
)
.foregroundStyle(.white)
.buttonStyle(.plain)
}
.frame(maxWidth: .infinity)
}
Expand Down
8 changes: 4 additions & 4 deletions iOSClient/GUI/Lucid Banner/BannerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ func showBanner(windowScene: UIWindowScene?,
backgroundColor: UIColor,
autoDismissAfter: TimeInterval = NCGlobal.shared.dismissAfterSecond,
swipeToDismiss: Bool = true,
policy: LucidBanner.ShowPolicy = .enqueue) async -> LucidBanner? {
policy: LucidBanner.ShowPolicy = .replace) async -> (banner: LucidBanner?, token: Int?) {
guard let windowScene else {
return nil
return (nil, nil)
}

let payload = LucidBannerPayload(
Expand All @@ -43,11 +43,11 @@ func showBanner(windowScene: UIWindowScene?,

let banner = LucidBannerRegistry.shared.banner(for: windowScene)

banner.show(payload: payload, policy: policy) { state in
let token = banner.show(payload: payload, policy: policy) { state in
BannerView(state: state)
}

return banner
return(banner, token)
}

// MARK: - SwiftUI
Expand Down
2 changes: 2 additions & 0 deletions iOSClient/GUI/Lucid Banner/ErrorBannerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,10 @@ func showErrorBanner(windowScene: UIWindowScene?,
autoDismissAfter: NCGlobal.shared.dismissAfterSecond,
swipeToDismiss: true,
)

banner.show(
payload: payload,
policy: .replace,
onTap: { _, _ in
banner.dismiss()
}
Expand Down
7 changes: 4 additions & 3 deletions iOSClient/GUI/Lucid Banner/HudBannerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ func showHudBanner(windowScene: UIWindowScene?,
title: String? = nil,
subtitle: String? = nil,
stage: LucidBanner.Stage? = nil,
onButtonTap: (() -> Void)? = nil) -> (token: Int?, banner: LucidBanner?) {
onButtonTap: (() -> Void)? = nil) -> (banner: LucidBanner?, token: Int?) {
guard let windowScene else {
return (nil, nil)
}
Expand All @@ -27,12 +27,13 @@ func showHudBanner(windowScene: UIWindowScene?,
)

let token = banner.show(
payload: payload
payload: payload,
policy: .enqueue
) { state in
HudBannerView(state: state, onButtonTap: onButtonTap)
}

return (token, banner)
return(banner, token)
}

@MainActor
Expand Down
1 change: 1 addition & 0 deletions iOSClient/GUI/Lucid Banner/InfoBannerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ func showInfoBanner(windowScene: UIWindowScene?,

banner.show(
payload: payload,
policy: .replace,
onTap: { _, _ in
banner.dismiss()
}
Expand Down
9 changes: 5 additions & 4 deletions iOSClient/GUI/Lucid Banner/UploadBannerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,16 @@ import LucidBanner
func showUploadBanner(windowScene: UIWindowScene?,
payload: LucidBannerPayload,
allowMinimizeOnTap: Bool,
onButtonTap: (() -> Void)? = nil) -> (token: Int?, banner: LucidBanner?) {
onButtonTap: (() -> Void)? = nil) -> (banner: LucidBanner?, token: Int?) {
guard let windowScene else {
return (nil, nil)
}
let banner = LucidBannerRegistry.shared.banner(for: windowScene)
let bannerCoordinator = LucidBannerVariantCoordinator(banner: banner)

let token = banner.show(payload: payload,
policy: .drop) { state in
let token = banner.show(
payload: payload,
policy: .replace) { state in
UploadBannerView(state: state,
coordinator: bannerCoordinator,
allowMinimizeOnTap: allowMinimizeOnTap,
Expand All @@ -37,7 +38,7 @@ func showUploadBanner(windowScene: UIWindowScene?,
}
}
#endif
return (token, banner)
return (banner, token)
}

// MARK: - SwiftUI
Expand Down
6 changes: 3 additions & 3 deletions iOSClient/Login/NCLogin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -197,9 +197,9 @@ class NCLogin: UIViewController, UITextFieldDelegate, NCLoginQRCodeDelegate {
let subtitle = String(format: NSLocalizedString("_add_existing_account_", comment: ""), NCBrandOptions.shared.brand)
self.banner = LucidBannerRegistry.shared.banner(for: windowScene)

showAlertActionBannerView(lucidBanner: banner,
title: title,
subtitle: subtitle) {
showAlertActionBanner(lucidBanner: banner,
title: title,
subtitle: subtitle) {
self.openShareAccountsViewController(nil)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,16 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
func downloadFile() async {
var downloadRequest: DownloadRequest?
var banner: LucidBanner?
var tokenBanner: Int?
await MainActor.run {
(tokenBanner, banner) = showHudBanner(windowScene: windowScene,
title: "_download_in_progress_",
stage: .button,
onButtonTap: {
if let request = downloadRequest {
request.cancel()
}
})
}
var token: Int?

(banner, token) = showHudBanner(windowScene: windowScene,
title: "_download_in_progress_",
stage: .button,
onButtonTap: {
if let request = downloadRequest {
request.cancel()
}
})

guard let metadata = await database.setMetadataSessionInWaitDownloadAsync(ocId: metadata.ocId,
session: self.networking.sessionDownload,
Expand All @@ -55,11 +54,12 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
Task {@MainActor in
banner?.update(
payload: LucidBannerPayload.Update(progress: Double(progress.fractionCompleted)),
for: tokenBanner)
for: token)
}
}
await MainActor.run {
banner?.dismiss()

if let banner {
await banner.dismissAsync()
}

if results.nkError == .success || results.afError?.isExplicitlyCancelledError ?? false {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,10 @@ extension NCCollectionViewCommon: NCCollectionViewCommonSelectTabBarDelegate {
break
}
}
bannerResults.banner?.dismiss()

if let banner = bannerResults.banner {
banner.dismiss()
}
}
}
await self.reloadDataSource()
Expand All @@ -88,7 +91,7 @@ extension NCCollectionViewCommon: NCCollectionViewCommonSelectTabBarDelegate {
var banner: LucidBanner?
let containsDirectory = metadatas.contains { $0.isDirectory }
if containsDirectory {
(token, banner) = showHudBanner(windowScene: self.windowScene, title: "_delete_in_progress_")
(banner, token) = showHudBanner(windowScene: self.windowScene, title: "_delete_in_progress_")
}

for metadata in metadatas {
Expand All @@ -103,7 +106,10 @@ extension NCCollectionViewCommon: NCCollectionViewCommonSelectTabBarDelegate {
}

})
banner?.dismiss()

if let banner {
banner.dismiss()
}
}
await self.setEditMode(false)
}
Expand Down
9 changes: 7 additions & 2 deletions iOSClient/Main/Collection Common/NCCollectionViewCommon.swift
Original file line number Diff line number Diff line change
Expand Up @@ -691,12 +691,17 @@ class NCCollectionViewCommon: UIViewController, NCAccountSettingsModelDelegate,
}
} else {
Task {
await showErrorBanner(windowScene: windowScene, text: resultsUpload.error.errorDescription, errorCode: resultsUpload.error.errorCode)
await showErrorBanner(windowScene: windowScene,
text: resultsUpload.error.errorDescription,
errorCode: resultsUpload.error.errorCode)
}
}
}
}
bannerResults.banner?.dismiss()

if let banner = bannerResults.banner {
banner.dismiss()
}
}
}

Expand Down
8 changes: 6 additions & 2 deletions iOSClient/Main/Create/NCCreate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,9 @@ class NCCreate: NSObject {
selector: "",
sceneIdentifier: controller.sceneIdentifier
) else {
bannerResults.banner?.dismiss()
if let banner = bannerResults.banner {
banner.dismiss()
}
return
}

Expand All @@ -310,7 +312,9 @@ class NCCreate: NSObject {
}
}

bannerResults.banner?.dismiss()
if let banner = bannerResults.banner {
banner.dismiss()
}
}

guard !exportURLs.isEmpty else { return }
Expand Down
2 changes: 1 addition & 1 deletion iOSClient/Main/NCDragDrop.swift
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ class NCDragDrop: NSObject {
horizontalLayout: horizontalLayout,
blocksTouches: false,
draggable: false)
(token, banner) = showUploadBanner(windowScene: window.windowScene,
(banner, token) = showUploadBanner(windowScene: window.windowScene,
payload: payload,
allowMinimizeOnTap: false,
onButtonTap: {
Expand Down
7 changes: 5 additions & 2 deletions iOSClient/Menu/NCContextMenuMain.swift
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ class NCContextMenuMain: NSObject {
var token: Int?
var banner: LucidBanner?
if metadata.isDirectory {
(token, banner) = showHudBanner(windowScene: self.windowScene, title: "_delete_in_progress_")
(banner, token) = showHudBanner(windowScene: self.windowScene, title: "_delete_in_progress_")
}

await NCNetworking.shared.deleteCache(metadata, progress: { progress in
Expand All @@ -522,7 +522,10 @@ class NCContextMenuMain: NSObject {
}

})
banner?.dismiss()

if let banner {
banner.dismiss()
}
}
}
}
Expand Down
25 changes: 13 additions & 12 deletions iOSClient/Networking/NCAutoUpload.swift
Original file line number Diff line number Diff line change
Expand Up @@ -45,24 +45,25 @@ class NCAutoUpload: NSObject {
let windowScene = SceneManager.shared.getWindowScene(controller: controller)
var banner: LucidBanner?
defer {
banner?.dismiss(after: 1)
if let banner {
banner.dismiss()
}
}

guard let tblAccount = await self.database.getTableAccountAsync(predicate: NSPredicate(format: "account == %@", account)) else {
return
}

banner = await showBanner(windowScene: windowScene,
title: "_info_",
subtitle: "_creating_db_photo_progress_",
textColor: .label,
image: "photo.on.rectangle.angled",
imageAnimation: .bounce,
imageColor: .label,
backgroundColor: UIColor.lightGray.withAlphaComponent(0.75),
autoDismissAfter: 0,
swipeToDismiss: false,
policy: .drop
(banner, _) = await showBanner(windowScene: windowScene,
title: "_info_",
subtitle: "_creating_db_photo_progress_",
textColor: .label,
image: "photo.on.rectangle.angled",
imageAnimation: .bounce,
imageColor: .label,
backgroundColor: UIColor.lightGray.withAlphaComponent(0.75),
autoDismissAfter: 0,
swipeToDismiss: false
)

let result = await getCameraRollAssets(controller: controller, assetCollections: assetCollections, tblAccount: tblAccount)
Expand Down
Loading
Loading