diff --git a/Share/NCShareExtension.swift b/Share/NCShareExtension.swift index 4b4ee536de..47e96e4141 100644 --- a/Share/NCShareExtension.swift +++ b/Share/NCShareExtension.swift @@ -371,12 +371,19 @@ extension NCShareExtension { @MainActor func uploadAndExit() async { var error: NKError? + guard let window = self.view.window else { + return + } + let horizontalLayout = horizontalLayoutBanner(bounds: window.bounds, + safeAreaInsets: window.safeAreaInsets, + idiom: window.traitCollection.userInterfaceIdiom) + let payload = LucidBannerPayload(stage: .button, backgroundColor: Color(.systemBackground), vPosition: .center, - horizontalLayout: .centered(width: 500), + horizontalLayout: horizontalLayout, blocksTouches: true) - token = showUploadBanner(scene: self.view.window?.windowScene, + token = showUploadBanner(scene: window.windowScene, payload: payload, allowMinimizeOnTap: false, onButtonTap: { @@ -399,14 +406,11 @@ extension NCShareExtension { } if error == .success { - let payloadUpdate = LucidBannerPayload.Update(stage: .success) - LucidBanner.shared.update(payload: payloadUpdate, for: self.token) + LucidBanner.shared.update(payload: LucidBannerPayload.Update(stage: .success, horizontalLayout: .centered(width: 100)), + for: self.token) } else { - let payload = LucidBannerPayload.Update( - subtitle: error?.errorDescription, - stage: .error - ) - LucidBanner.shared.update(payload: payload, for: self.token) + LucidBanner.shared.update(payload: LucidBannerPayload.Update(subtitle: error?.errorDescription,stage: .error), + for: self.token) } LucidBanner.shared.dismiss(after: 2) { @@ -444,11 +448,9 @@ extension NCShareExtension { if metadata.isDirectoryE2EE { error = await NCNetworkingE2EEUpload().upload(metadata: metadata, session: session, controller: self, stageBanner: nil, tokenBanner: self.token) } else if metadata.chunk > 0 { - let payload = LucidBannerPayload.Update( - systemImage: "gearshape.arrow.triangle.2.circlepath", - imageAnimation: .rotate - ) - LucidBanner.shared.update(payload: payload, for: self.token) + LucidBanner.shared.update(payload: LucidBannerPayload.Update(systemImage: "gearshape.arrow.triangle.2.circlepath", + imageAnimation: .rotate), + for: self.token) let task = Task { () -> (account: String, file: NKFile?, error: NKError) in let results = await NCNetworking.shared.uploadChunkFile(metadata: metadata) { total, counter in Task {@MainActor in @@ -494,9 +496,8 @@ extension NCShareExtension { dateModificationFile: metadata.date as Date) { _ in } progressHandler: { _, _, fractionCompleted in Task {@MainActor in - LucidBanner.shared.update( - payload: LucidBannerPayload.Update(progress: fractionCompleted), - for: self.token) + LucidBanner.shared.update(payload: LucidBannerPayload.Update(progress: fractionCompleted), + for: self.token) } } error = results.error diff --git a/iOSClient/GUI/Lucid Banner/HelperBanner.swift b/iOSClient/GUI/Lucid Banner/HelperBanner.swift index 4382f7065c..38bd2dddd3 100644 --- a/iOSClient/GUI/Lucid Banner/HelperBanner.swift +++ b/iOSClient/GUI/Lucid Banner/HelperBanner.swift @@ -11,7 +11,6 @@ public extension View { allowMinimizeOnTap: Bool, @ViewBuilder _ content: () -> Content) -> some View { let isError = state.payload.stage == .error - // let isSuccess = state.payload.stage == .success let isMinimized = state.variant == .alternate let cornerRadius: CGFloat = isMinimized ? 15 : 25 diff --git a/iOSClient/GUI/Lucid Banner/UploadBannerView.swift b/iOSClient/GUI/Lucid Banner/UploadBannerView.swift index 3d5ff756ba..0b6e1b4bb5 100644 --- a/iOSClient/GUI/Lucid Banner/UploadBannerView.swift +++ b/iOSClient/GUI/Lucid Banner/UploadBannerView.swift @@ -20,25 +20,8 @@ func showUploadBanner(scene: UIWindowScene?, #if !EXTENSION if allowMinimizeOnTap { - LucidBannerVariantCoordinator.shared.register(token: token) { context in - let bounds = context.bounds - let insets = context.safeAreaInsets - let trait = context.window.traitCollection - let controller = SceneManager.shared.getController(scene: context.window.windowScene) - let tabBarHeight: CGFloat = controller?.barHeightBottom ?? 0 - let verticalSpacing: CGFloat - let y: CGFloat - - if trait.horizontalSizeClass == .regular { - verticalSpacing = 24 - y = bounds.maxY - insets.bottom - verticalSpacing - } else { - verticalSpacing = 20 - y = bounds.maxY - tabBarHeight - insets.bottom - verticalSpacing - } - - return LucidBannerVariantCoordinator.VariantResolution( - targetPoint: CGPoint(x: bounds.midX, y: y), + LucidBannerVariantCoordinator.shared.register(token: token) { _ in + return .init( payloadUpdate: .init( horizontalLayout: .centered(width: 100), swipeToDismiss: false, diff --git a/iOSClient/Main/NCDragDrop.swift b/iOSClient/Main/NCDragDrop.swift index caf6a7834e..9b3397cf0b 100644 --- a/iOSClient/Main/NCDragDrop.swift +++ b/iOSClient/Main/NCDragDrop.swift @@ -201,7 +201,6 @@ class NCDragDrop: NSObject { let payload = LucidBannerPayload(stage: nil, backgroundColor: Color(.systemBackground), - vPosition: .center, horizontalLayout: horizontalLayout, blocksTouches: false, draggable: false) diff --git a/iOSClient/Networking/NCNetworkingProcess.swift b/iOSClient/Networking/NCNetworkingProcess.swift index e78220ede3..70a6169017 100644 --- a/iOSClient/Networking/NCNetworkingProcess.swift +++ b/iOSClient/Networking/NCNetworkingProcess.swift @@ -399,7 +399,6 @@ actor NCNetworkingProcess { safeAreaInsets: window.safeAreaInsets, idiom: window.traitCollection.userInterfaceIdiom) let payload = LucidBannerPayload(backgroundColor: Color(.systemBackground), - vPosition: .center, horizontalLayout: horizontalLayout, blocksTouches: true, draggable: false) @@ -460,7 +459,7 @@ actor NCNetworkingProcess { payload: LucidBannerPayload(stage: .button, backgroundColor: Color(.systemBackground), vPosition: .bottom, - verticalMargin: 80, + verticalMargin: 50, horizontalLayout: horizontalLayout, blocksTouches: false, draggable: true),