Merge pull request #4673 from vector-im/ismail/4642_additions

Additional fixes for Call Tiles
This commit is contained in:
ismailgulek 2021-08-06 17:25:16 +03:00 committed by GitHub
commit b5b5584813
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 39 additions and 17 deletions

View file

@ -13,6 +13,7 @@ Changes to be released in next version
* Voice messages: Improve audio recording quality
* Voice messages: Remove labs setting and enable them by default
* Room: Remove the green border from direct message room avatars (#4520).
* VoIP: Additional changes on call tiles (#4642).
🐛 Bugfix
*

View file

@ -848,7 +848,8 @@ Tap the + to start adding people.";
"event_formatter_message_edited_mention" = "(edited)";
"event_formatter_call_connecting" = "Connecting…";
"event_formatter_call_ringing" = "Ringing…";
"event_formatter_call_has_ended" = "Call ended %@";
"event_formatter_call_has_ended" = "Call ended";
"event_formatter_call_has_ended_with_time" = "Call ended • %@";
"event_formatter_call_incoming_voice" = "Incoming voice call";
"event_formatter_call_incoming_video" = "Incoming video call";
"event_formatter_call_active_voice" = "Active voice call";

View file

@ -1274,9 +1274,13 @@ internal enum VectorL10n {
internal static var eventFormatterCallEndCall: String {
return VectorL10n.tr("Vector", "event_formatter_call_end_call")
}
/// Call ended %@
internal static func eventFormatterCallHasEnded(_ p1: String) -> String {
return VectorL10n.tr("Vector", "event_formatter_call_has_ended", p1)
/// Call ended
internal static var eventFormatterCallHasEnded: String {
return VectorL10n.tr("Vector", "event_formatter_call_has_ended")
}
/// Call ended %@
internal static func eventFormatterCallHasEndedWithTime(_ p1: String) -> String {
return VectorL10n.tr("Vector", "event_formatter_call_has_ended_with_time", p1)
}
/// Incoming video call
internal static var eventFormatterCallIncomingVideo: String {

View file

@ -220,27 +220,27 @@ class RoomDirectCallStatusBubbleCell: RoomBaseCallBubbleCell {
.remoteHangup,
.answeredElseWhere:
viewState = .ended
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
case .missed:
if call.isIncoming {
viewState = .missed
statusText = isVideoCall ? VectorL10n.eventFormatterCallMissedVideo : VectorL10n.eventFormatterCallMissedVoice
} else {
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
}
case .busy:
configureForRejectedCall(call: call)
@unknown default:
viewState = .ended
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
}
case .inviteExpired,
.answeredElseWhere:
viewState = .ended
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
@unknown default:
viewState = .ended
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
}
}
@ -261,21 +261,21 @@ class RoomDirectCallStatusBubbleCell: RoomBaseCallBubbleCell {
statusText = VectorL10n.eventFormatterCallYouDeclined
} else {
viewState = .ended
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
}
}
private func configureForHangupCall(withEvent event: MXEvent) {
guard let hangupEventContent = MXCallHangupEventContent(fromJSON: event.content) else {
viewState = .ended
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
return
}
switch hangupEventContent.reasonType {
case .userHangup:
viewState = .ended
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
default:
viewState = .failed
statusText = VectorL10n.eventFormatterCallConnectionFailed
@ -290,7 +290,15 @@ class RoomDirectCallStatusBubbleCell: RoomBaseCallBubbleCell {
} else {
// outgoing unanswered call
viewState = .ended
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
}
}
private func updateStatusTextForEndedCall() {
if callDurationString.count > 0 {
statusText = VectorL10n.eventFormatterCallHasEndedWithTime(callDurationString)
} else {
statusText = VectorL10n.eventFormatterCallHasEnded
}
}
@ -404,7 +412,7 @@ class RoomDirectCallStatusBubbleCell: RoomBaseCallBubbleCell {
// there is no reject or hangup event, we can just say this call has ended
viewState = .ended
statusText = VectorL10n.eventFormatterCallHasEnded(callDurationString)
updateStatusTextForEndedCall()
return
}

View file

@ -158,6 +158,14 @@ class RoomGroupCallStatusBubbleCell: RoomBaseCallBubbleCell {
}
}
private func updateStatusTextForEndedCall() {
if callDurationString.count > 0 {
statusText = VectorL10n.eventFormatterCallHasEndedWithTime(callDurationString)
} else {
statusText = VectorL10n.eventFormatterCallHasEnded
}
}
// MARK: - Actions
@objc
@ -265,7 +273,7 @@ class RoomGroupCallStatusBubbleCell: RoomBaseCallBubbleCell {
in: room,
with: roomState) else {
self.viewState = .ended
self.statusText = VectorL10n.eventFormatterCallHasEnded(self.callDurationString)
self.updateStatusTextForEndedCall()
return
}
@ -277,7 +285,7 @@ class RoomGroupCallStatusBubbleCell: RoomBaseCallBubbleCell {
guard let widget = widgets.first(where: { $0.widgetId == widgetId }) else {
self.viewState = .ended
self.statusText = VectorL10n.eventFormatterCallHasEnded(self.callDurationString)
self.updateStatusTextForEndedCall()
return
}
@ -301,7 +309,7 @@ class RoomGroupCallStatusBubbleCell: RoomBaseCallBubbleCell {
}
} else {
self.viewState = .ended
self.statusText = VectorL10n.eventFormatterCallHasEnded(self.callDurationString)
self.updateStatusTextForEndedCall()
}
}
}