Skip to content

Commit 3f55f94

Browse files
authored
fix: ensure cells state is synced when disabled or pending - WPB-20736 (#3691)
1 parent 1e18ade commit 3f55f94

8 files changed

+15
-7
lines changed

WireNetwork/Sources/WireNetwork/APIs/Rest/ConversationsAPI/ConversationsAPIV10.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ struct ConversationV10: Decodable, ToAPIModelConvertible {
144144
case type
145145
case groupType = "group_conv_type"
146146
case addPermission = "add_permission"
147+
case cellsState = "cells_state"
147148
}
148149

149150
var access: Set<ConversationAccessModeV0>?
@@ -165,6 +166,7 @@ struct ConversationV10: Decodable, ToAPIModelConvertible {
165166
var type: ConversationTypeV0?
166167
var groupType: ConversationGroupTypeV8?
167168
var addPermission: ChannelPermissionV8?
169+
var cellsState: CellsStateV8
168170

169171
func toAPIModel() -> Conversation {
170172
let access = access?.map { $0.toAPIModel() }
@@ -190,7 +192,8 @@ struct ConversationV10: Decodable, ToAPIModelConvertible {
190192
lastEvent: lastEvent,
191193
lastEventTime: lastEventTime?.date,
192194
groupType: groupType?.toAPIModel(),
193-
addPermission: addPermission?.toAPIModel()
195+
addPermission: addPermission?.toAPIModel(),
196+
cellsState: cellsState.toAPIModel()
194197
)
195198
}
196199
}

WireNetwork/Tests/WireNetworkTests/APIs/Rest/ConversationsAPI/Resources/testCreateGroupConversation_givenV10AndSuccessResponse200.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"group_id": "string",
1414
"last_event": "string",
1515
"last_event_time": "2024-06-04T15:03:07.598Z",
16+
"cells_state": "disabled",
1617
"members": {
1718
"others": [
1819
{

WireNetwork/Tests/WireNetworkTests/APIs/Rest/ConversationsAPI/Resources/testCreateGroupConversation_givenV10AndSuccessResponse201.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"group_id": "string",
1414
"last_event": "string",
1515
"last_event_time": "2024-06-04T15:03:07.598Z",
16+
"cells_state": "disabled",
1617
"members": {
1718
"others": [
1819
{

WireNetwork/Tests/WireNetworkTests/APIs/Rest/ConversationsAPI/Resources/testCreateGroupConversation_givenV10_EmptySelfMember_SuccessResponse201.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"group_id": "string",
1414
"last_event": "string",
1515
"last_event_time": "2024-06-04T15:03:07.598Z",
16+
"cells_state": "disabled",
1617
"members": {
1718
"others": [
1819
{

WireNetwork/Tests/WireNetworkTests/APIs/Rest/ConversationsAPI/Resources/testCreateGroupConversation_givenV8AndSuccessResponse200.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"id": "99db9768-04e3-4b5d-9268-831b6a25c4ab",
1616
"last_event": "string",
1717
"last_event_time": "2024-06-04T15:03:07.598Z",
18+
"cells_state": "disabled",
1819
"members": {
1920
"others": [
2021
{

WireNetwork/Tests/WireNetworkTests/APIs/Rest/ConversationsAPI/Resources/testCreateGroupConversation_givenV8AndSuccessResponse201.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"id": "99db9768-04e3-4b5d-9268-831b6a25c4ab",
1616
"last_event": "string",
1717
"last_event_time": "2024-06-04T15:03:07.598Z",
18+
"cells_state": "disabled",
1819
"members": {
1920
"others": [
2021
{

wire-ios/Wire-iOS/Sources/UserInterface/Conversation/ConversationViewController+ViewLifeCycle.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@ extension ConversationViewController {
4040

4141
isAppearing = false
4242

43-
syncCellsStateIfPending()
43+
syncCellsState()
4444
}
4545
}

wire-ios/Wire-iOS/Sources/UserInterface/Conversation/ConversationViewController.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -879,10 +879,10 @@ extension ConversationViewController: ConversationInputBarViewControllerDelegate
879879
filesView.presentOverAll(animated: true)
880880
}
881881

882-
/// If cells state is pending we need to sync it to ensure the value is up to date
883-
/// as it might have been updated to a `ready` state.
884-
func syncCellsStateIfPending() {
885-
guard wireCellsState == .pending else {
882+
/// If cells state is different than ready we need to sync it when view appears to ensure the value is up to date
883+
/// as it might have been updated to either a `pending` or `ready` state.
884+
func syncCellsState() {
885+
guard wireCellsState != .ready else {
886886
return
887887
}
888888

@@ -903,7 +903,7 @@ extension ConversationViewController: ConversationInputBarViewControllerDelegate
903903
)
904904
} catch {
905905
WireLogger.conversation
906-
.error("could not sync cells state for conversation")
906+
.error("could not sync cells state for conversation: \(String(describing: error))")
907907
}
908908
}
909909

0 commit comments

Comments
 (0)