@@ -9,6 +9,11 @@ import SignalServiceKit
9
9
import SignalUI
10
10
import Combine
11
11
12
+ protocol CallDrawerDelegate : AnyObject {
13
+ func didPresentViewController( _ viewController: UIViewController )
14
+ func didTapDone( )
15
+ }
16
+
12
17
// MARK: - GroupCallSheet
13
18
14
19
class CallDrawerSheet : InteractiveSheetViewController {
@@ -42,7 +47,7 @@ class CallDrawerSheet: InteractiveSheetViewController {
42
47
let doneButton = UIButton ( primaryAction: . init(
43
48
title: CommonStrings . doneButton
44
49
) { [ weak self] _ in
45
- self ? . minimizeHeight ( )
50
+ self ? . callDrawerDelegate ? . didTapDone ( )
46
51
} )
47
52
container. addSubview ( doneButton)
48
53
doneButton. setTitleColor ( UIColor . Signal. label, for: . normal)
@@ -68,6 +73,8 @@ class CallDrawerSheet: InteractiveSheetViewController {
68
73
private let call : SignalCall
69
74
private let callSheetDataSource : CallDrawerSheetDataSource
70
75
76
+ private weak var callDrawerDelegate : CallDrawerDelegate ?
77
+
71
78
private var callLinkDataSource : CallLinkSheetDataSource ? {
72
79
self . callSheetDataSource as? CallLinkSheetDataSource
73
80
}
@@ -99,7 +106,7 @@ class CallDrawerSheet: InteractiveSheetViewController {
99
106
confirmationToastManager: CallControlsConfirmationToastManager ,
100
107
callControlsDelegate: CallControlsDelegate ,
101
108
sheetPanDelegate: ( any SheetPanDelegate ) ? ,
102
- didPresentViewController : ( ( UIViewController ) -> Void ) ? = nil
109
+ callDrawerDelegate : CallDrawerDelegate ? = nil
103
110
) {
104
111
self . call = call
105
112
self . callSheetDataSource = callSheetDataSource
@@ -109,12 +116,12 @@ class CallDrawerSheet: InteractiveSheetViewController {
109
116
confirmationToastManager: confirmationToastManager,
110
117
delegate: callControlsDelegate
111
118
)
112
- self . didPresentViewController = didPresentViewController
113
119
114
120
super. init ( blurEffect: nil )
115
121
116
122
self . animationsShouldBeInterruptible = true
117
123
self . sheetPanDelegate = sheetPanDelegate
124
+ self . callDrawerDelegate = callDrawerDelegate
118
125
119
126
self . overrideUserInterfaceStyle = . dark
120
127
callSheetDataSource. addObserver ( self , syncStateImmediately: true )
@@ -147,7 +154,7 @@ class CallDrawerSheet: InteractiveSheetViewController {
147
154
148
155
override func present( _ viewControllerToPresent: UIViewController , animated flag: Bool , completion: ( ( ) -> Void ) ? = nil ) {
149
156
super. present ( viewControllerToPresent, animated: flag, completion: completion)
150
- self . didPresentViewController ? ( viewControllerToPresent)
157
+ self . callDrawerDelegate ? . didPresentViewController ( viewControllerToPresent)
151
158
}
152
159
153
160
// MARK: - Table setup
0 commit comments