@@ -315,13 +315,30 @@ final class CallVC: UIViewController, VideoPreviewDelegate {
315
315
result. font = . boldSystemFont( ofSize: Values . veryLargeFontSize)
316
316
result. themeTextColor = . textPrimary
317
317
result. textAlignment = . center
318
- result. isHidden = call. hasConnected
319
318
320
319
if call. hasStartedConnecting { result. text = " callsConnecting " . localized ( ) }
321
320
322
321
return result
323
322
} ( )
324
323
324
+ private lazy var callDetailedInfoLabel : UILabel = {
325
+ let result : UILabel = UILabel ( )
326
+ result. font = . boldSystemFont( ofSize: Values . smallFontSize)
327
+ result. themeTextColor = . textPrimary
328
+ result. textAlignment = . center
329
+
330
+ return result
331
+ } ( )
332
+
333
+ private lazy var callInfoLabelStackView : UIStackView = {
334
+ let result : UIStackView = UIStackView ( arrangedSubviews: [ callInfoLabel, callDetailedInfoLabel] )
335
+ result. axis = . vertical
336
+ result. spacing = Values . mediumSpacing
337
+ result. isHidden = call. hasConnected
338
+
339
+ return result
340
+ } ( )
341
+
325
342
private lazy var callDurationLabel : UILabel = {
326
343
let result = UILabel ( )
327
344
result. font = . boldSystemFont( ofSize: Values . veryLargeFontSize)
@@ -350,11 +367,11 @@ final class CallVC: UIViewController, VideoPreviewDelegate {
350
367
remoteVideoView. alpha = isEnabled ? 1 : 0
351
368
}
352
369
353
- if self . callInfoLabel . alpha < 0.5 {
370
+ if self . callInfoLabelStackView . alpha < 0.5 {
354
371
UIView . animate ( withDuration: 0.25 ) {
355
372
self . operationPanel. alpha = 1
356
373
self . responsePanel. alpha = 1
357
- self . callInfoLabel . alpha = 1
374
+ self . callInfoLabelStackView . alpha = 1
358
375
}
359
376
}
360
377
}
@@ -387,7 +404,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate {
387
404
self ? . durationTimer = Timer . scheduledTimer ( withTimeInterval: 1 , repeats: true ) { _ in
388
405
self ? . updateDuration ( )
389
406
}
390
- self ? . callInfoLabel . isHidden = true
407
+ self ? . callInfoLabelStackView . isHidden = true
391
408
self ? . callDurationLabel. isHidden = false
392
409
}
393
410
}
@@ -402,18 +419,24 @@ final class CallVC: UIViewController, VideoPreviewDelegate {
402
419
403
420
self . call. hasStartedReconnecting = { [ weak self] in
404
421
DispatchQueue . main. async {
405
- self ? . callInfoLabel . isHidden = false
422
+ self ? . callInfoLabelStackView . isHidden = false
406
423
self ? . callDurationLabel. isHidden = true
407
424
self ? . callInfoLabel. text = " callsReconnecting " . localized ( )
408
425
}
409
426
}
410
427
411
428
self . call. hasReconnected = { [ weak self] in
412
429
DispatchQueue . main. async {
413
- self ? . callInfoLabel . isHidden = true
430
+ self ? . callInfoLabelStackView . isHidden = true
414
431
self ? . callDurationLabel. isHidden = false
415
432
}
416
433
}
434
+
435
+ self . call. updateCallDetailedStatus = { [ weak self] status in
436
+ DispatchQueue . main. async {
437
+ self ? . callDetailedInfoLabel. text = status
438
+ }
439
+ }
417
440
}
418
441
419
442
required init ( coder: NSCoder ) { preconditionFailure ( " Use init(for:) instead. " ) }
@@ -510,10 +533,10 @@ final class CallVC: UIViewController, VideoPreviewDelegate {
510
533
callInfoLabelContainer. pin ( . top, to: . bottom, of: profilePictureView)
511
534
callInfoLabelContainer. pin ( . bottom, to: . bottom, of: profilePictureContainer)
512
535
callInfoLabelContainer. pin ( [ UIView . HorizontalEdge. left, UIView . HorizontalEdge. right ] , to: view)
513
- callInfoLabelContainer. addSubview ( callInfoLabel )
536
+ callInfoLabelContainer. addSubview ( callInfoLabelStackView )
514
537
callInfoLabelContainer. addSubview ( callDurationLabel)
515
- callInfoLabel . translatesAutoresizingMaskIntoConstraints = false
516
- callInfoLabel . center ( in: callInfoLabelContainer)
538
+ callInfoLabelStackView . translatesAutoresizingMaskIntoConstraints = false
539
+ callInfoLabelStackView . center ( in: callInfoLabelContainer)
517
540
callDurationLabel. translatesAutoresizingMaskIntoConstraints = false
518
541
callDurationLabel. center ( in: callInfoLabelContainer)
519
542
}
@@ -587,7 +610,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate {
587
610
588
611
func handleEndCallMessage( ) {
589
612
SNLog ( " [Calls] Ending call. " )
590
- self . callInfoLabel . isHidden = false
613
+ self . callInfoLabelStackView . isHidden = false
591
614
self . callDurationLabel. isHidden = true
592
615
self . callInfoLabel. text = " callsEnded " . localized ( )
593
616
@@ -596,7 +619,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate {
596
619
remoteVideoView. alpha = 0
597
620
self . operationPanel. alpha = 1
598
621
self . responsePanel. alpha = 1
599
- self . callInfoLabel . alpha = 1
622
+ self . callInfoLabelStackView . alpha = 1
600
623
}
601
624
602
625
Timer . scheduledTimer ( withTimeInterval: 2 , repeats: false ) { [ weak self] _ in
0 commit comments