mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Support for ongoing voice vs video call + joining (#5399)
This commit is contained in:
@@ -160,6 +160,10 @@ struct HomeScreenViewStateBindings {
|
||||
var spaceFiltersViewModel: ChatsSpaceFiltersScreenViewModel?
|
||||
}
|
||||
|
||||
enum CallBadgeType {
|
||||
case voice, video, none
|
||||
}
|
||||
|
||||
struct HomeScreenRoom: Identifiable, Equatable {
|
||||
enum RoomType: Equatable {
|
||||
case placeholder
|
||||
@@ -190,7 +194,7 @@ struct HomeScreenRoom: Identifiable, Equatable {
|
||||
let isDotShown: Bool
|
||||
let isMentionShown: Bool
|
||||
let isMuteShown: Bool
|
||||
let isCallShown: Bool
|
||||
let callBadgeType: CallBadgeType
|
||||
}
|
||||
|
||||
let name: String
|
||||
@@ -228,7 +232,7 @@ struct HomeScreenRoom: Identifiable, Equatable {
|
||||
HomeScreenRoom(id: UUID().uuidString,
|
||||
roomID: nil,
|
||||
type: .placeholder,
|
||||
badges: .init(isDotShown: false, isMentionShown: false, isMuteShown: false, isCallShown: false),
|
||||
badges: .init(isDotShown: false, isMentionShown: false, isMuteShown: false, callBadgeType: .none),
|
||||
name: "Placeholder room name",
|
||||
isDirect: false,
|
||||
isHighlighted: false,
|
||||
@@ -252,9 +256,12 @@ extension HomeScreenRoom {
|
||||
let isDotShown = hasUnreadMessages || summary.hasUnreadMentions || summary.hasUnreadNotifications || summary.isMarkedUnread || isUnseenInvite
|
||||
let isMentionShown = summary.hasUnreadMentions && !summary.isMuted
|
||||
let isMuteShown = summary.isMuted
|
||||
let isCallShown = summary.hasOngoingCall
|
||||
let isHighlighted = summary.isMarkedUnread || (!summary.isMuted && (summary.hasUnreadNotifications || summary.hasUnreadMentions)) || isUnseenInvite
|
||||
|
||||
let callBadge = if summary.hasOngoingCall {
|
||||
summary.activeCallIntent == .audio ? CallBadgeType.voice : CallBadgeType.video
|
||||
} else { CallBadgeType.none }
|
||||
|
||||
let type: HomeScreenRoom.RoomType = switch summary.joinRequestType {
|
||||
case .invite(let inviter): .invite(inviterDetails: inviter.map(RoomInviterDetails.init))
|
||||
case .knock: .knock
|
||||
@@ -267,7 +274,7 @@ extension HomeScreenRoom {
|
||||
badges: .init(isDotShown: isDotShown,
|
||||
isMentionShown: isMentionShown,
|
||||
isMuteShown: isMuteShown,
|
||||
isCallShown: isCallShown),
|
||||
callBadgeType: callBadge),
|
||||
name: summary.name,
|
||||
isDirect: summary.isDirect,
|
||||
isHighlighted: isHighlighted,
|
||||
|
||||
Reference in New Issue
Block a user