@@ -49,6 +49,7 @@ class NCShareExtension: UIViewController {
4949 let global = NCGlobal . shared
5050 var maintenanceMode : Bool = false
5151 var token : Int ?
52+ var banner : LucidBanner ?
5253 var sceneIdentifier : String = UUID ( ) . uuidString
5354
5455 // MARK: - View Life Cycle
@@ -114,6 +115,10 @@ class NCShareExtension: UIViewController {
114115 }
115116
116117 NCNetworking . shared. setupScene ( sceneIdentifier: sceneIdentifier, controller: self )
118+
119+ if let windowScene = view. window? . windowScene {
120+ banner = LucidBannerRegistry . shared. banner ( for: windowScene)
121+ }
117122 }
118123
119124 override func viewWillAppear( _ animated: Bool ) {
@@ -383,10 +388,10 @@ extension NCShareExtension {
383388 vPosition: . center,
384389 horizontalLayout: horizontalLayout,
385390 blocksTouches: true )
386- token = showUploadBanner ( scene : window. windowScene,
387- payload: payload,
388- allowMinimizeOnTap: false ,
389- onButtonTap: {
391+ ( token, banner ) = showUploadBanner ( windowScene : window. windowScene,
392+ payload: payload,
393+ allowMinimizeOnTap: false ,
394+ onButtonTap: {
390395 self . cancel ( )
391396 } )
392397
@@ -397,7 +402,7 @@ extension NCShareExtension {
397402 systemImage: " arrowshape.up.circle " ,
398403 imageAnimation: . breathe,
399404 progress: 0 )
400- LucidBanner . shared . update ( payload: payloadUpdate)
405+ banner ? . update ( payload: payloadUpdate)
401406
402407 error = await self . upload ( metadata: metadata)
403408 if error != . success {
@@ -406,12 +411,12 @@ extension NCShareExtension {
406411 }
407412
408413 if error == . success {
409- LucidBanner . shared . update ( payload: LucidBannerPayload . Update ( stage: . success, horizontalLayout: . centered( width: 100 ) ) , for: self . token)
414+ banner ? . update ( payload: LucidBannerPayload . Update ( stage: . success, horizontalLayout: . centered( width: 100 ) ) , for: self . token)
410415 } else {
411- LucidBanner . shared . update ( payload: LucidBannerPayload . Update ( subtitle: error? . errorDescription, stage: . error) , for: self . token)
416+ banner ? . update ( payload: LucidBannerPayload . Update ( subtitle: error? . errorDescription, stage: . error) , for: self . token)
412417 }
413418
414- LucidBanner . shared . dismiss ( after: 2 ) {
419+ banner ? . dismiss ( after: 2 ) {
415420 self . cancel ( )
416421 }
417422 }
@@ -444,35 +449,40 @@ extension NCShareExtension {
444449 self . counterUploaded += 1
445450
446451 if metadata. isDirectoryE2EE {
447- error = await NCNetworkingE2EEUpload ( ) . upload ( metadata: metadata, session: session, controller: self , stageBanner: nil , tokenBanner: self . token)
452+ error = await NCNetworkingE2EEUpload ( ) . upload ( metadata: metadata,
453+ session: session,
454+ controller: self ,
455+ banner: banner,
456+ stageBanner: nil ,
457+ tokenBanner: self . token)
448458 } else if metadata. chunk > 0 {
449- LucidBanner . shared . update ( payload: LucidBannerPayload . Update ( systemImage: " gearshape.arrow.triangle.2.circlepath " ,
450- imageAnimation: . rotate) ,
459+ banner ? . update ( payload: LucidBannerPayload . Update ( systemImage: " gearshape.arrow.triangle.2.circlepath " ,
460+ imageAnimation: . rotate) ,
451461 for: self . token)
452462 let task = Task { ( ) -> ( account: String , file: NKFile ? , error: NKError ) in
453463 let results = await NCNetworking . shared. uploadChunkFile ( metadata: metadata) { total, counter in
454464 Task { @MainActor in
455- LucidBanner . shared . update ( payload: LucidBannerPayload . Update ( progress: Double ( counter) / Double( total) ) , for: self . token)
465+ self . banner ? . update ( payload: LucidBannerPayload . Update ( progress: Double ( counter) / Double( total) ) , for: self . token)
456466 }
457467 } uploadStart: { _ in
458468 Task { @MainActor in
459469 let payload = LucidBannerPayload . Update (
460470 systemImage: " arrowshape.up.circle " ,
461471 imageAnimation: . breathe
462472 )
463- LucidBanner . shared . update ( payload: payload, for: self . token)
473+ self . banner ? . update ( payload: payload, for: self . token)
464474 }
465475 } uploadProgressHandler: { _, _, progress in
466476 Task { @MainActor in
467- LucidBanner . shared . update ( payload: LucidBannerPayload . Update ( progress: progress) , for: self . token)
477+ self . banner ? . update ( payload: LucidBannerPayload . Update ( progress: progress) , for: self . token)
468478 }
469479 } assembling: {
470480 Task { @MainActor in
471481 let payload = LucidBannerPayload . Update (
472482 systemImage: " gearshape.arrow.triangle.2.circlepath " ,
473483 imageAnimation: . rotate
474484 )
475- LucidBanner . shared . update ( payload: payload, for: self . token)
485+ self . banner ? . update ( payload: payload, for: self . token)
476486 }
477487 }
478488
@@ -494,8 +504,8 @@ extension NCShareExtension {
494504 dateModificationFile: metadata. date as Date ) { _ in
495505 } progressHandler: { _, _, fractionCompleted in
496506 Task { @MainActor in
497- LucidBanner . shared . update ( payload: LucidBannerPayload . Update ( progress: fractionCompleted) ,
498- for: self . token)
507+ self . banner ? . update ( payload: LucidBannerPayload . Update ( progress: fractionCompleted) ,
508+ for: self . token)
499509 }
500510 }
501511 error = results. error
0 commit comments