Prechádzať zdrojové kódy

fix initial icon state when long tapping on a pinned chat

cyberta 3 rokov pred
rodič
commit
98309d979a

+ 4 - 3
deltachat-ios/Controller/ChatListController.swift

@@ -460,13 +460,14 @@ class ChatListController: UITableViewController {
         return [archiveAction, pinAction, deleteAction]
     }
 
-    func setLongTapEditing(_ editing: Bool) {
+    func setLongTapEditing(_ editing: Bool, initialIndexPath: [IndexPath]? = nil) {
         tableView.setEditing(editing, animated: true)
         viewModel?.setEditing(editing)
         if editing {
             addEditingView()
             if let viewModel = viewModel {
-                editingBar.showUnpinning = viewModel.hasOnlyPinnedChatsSelected(in: tableView.indexPathsForSelectedRows)
+                editingBar.showUnpinning = viewModel.hasOnlyPinnedChatsSelected(in: tableView.indexPathsForSelectedRows) ||
+                                           viewModel.hasOnlyPinnedChatsSelected(in: initialIndexPath)
             }
             archiveCell.selectionStyle = .none
         } else {
@@ -759,7 +760,7 @@ extension ChatListController: ContactCellDelegate {
            !searchActive,
            !RelayHelper.shared.isForwarding(),
            !tableView.isEditing {
-            setLongTapEditing(true)
+            setLongTapEditing(true, initialIndexPath: [indexPath])
             tableView.selectRow(at: indexPath, animated: true, scrollPosition: .none)
         }
     }