fix: avoid multiple binds on message cells in conversation view
Change-Id: I308b972c8d5a6042f0391116ef008c0a47fb2af7
Reviewed-by: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
diff --git a/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift b/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
index 8281d2d..f69bd15 100644
--- a/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
+++ b/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
@@ -746,7 +746,7 @@
.observeOn(MainScheduler.instance)
.filter {
return $0 != DataTransferStatus.unknown && $0 != item.lastTransferStatus && $0 != item.initialTransferStatus }
- .subscribe(onNext: { status in
+ .subscribe(onNext: { [unowned self] status in
guard let currentIndexPath = tableView.indexPath(for: cell) else { return }
guard let transferId = item.daemonId else { return }
self.log.info("Transfer status change from: \(item.lastTransferStatus.description) to: \(status.description) for transferId: \(transferId) cell row: \(currentIndexPath.row)")
@@ -763,7 +763,7 @@
.disposed(by: cell.disposeBag)
cell.cancelButton.rx.tap
- .subscribe(onNext: { _ in
+ .subscribe(onNext: { [unowned self] _ in
guard let transferId = item.daemonId else { return }
self.log.info("canceling transferId \(transferId)")
_ = self.viewModel.cancelTransfer(transferId: transferId)
@@ -776,7 +776,7 @@
if item.bubblePosition() == .received {
cell.acceptButton?.rx.tap
- .subscribe(onNext: { _ in
+ .subscribe(onNext: { [unowned self] _ in
guard let transferId = item.daemonId else { return }
self.log.info("accepting transferId \(transferId)")
if self.viewModel.acceptTransfer(transferId: transferId, interactionID: item.messageId, messageContent: &item.message.content) != .success {