dismiss menu actions when selected item is deleted

This commit is contained in:
Michael Kirk 2019-02-21 14:16:29 -07:00
parent 504d5f89b9
commit 233bc3858b
3 changed files with 16 additions and 0 deletions

View File

@ -2044,6 +2044,7 @@ typedef enum : NSUInteger {
menuActionsViewController.delegate = self;
self.conversationViewModel.mostRecentMenuActionsViewItem = cell.viewItem;
[[OWSWindowManager sharedManager] showMenuActionsWindow:menuActionsViewController];
[self updateShouldObserveVMUpdates];
@ -4820,6 +4821,12 @@ typedef enum : NSUInteger {
[self scrollToBottomAnimated:NO];
}
- (void)conversationViewModelDidDeleteMostRecentMenuActionsViewItem
{
OWSAssertIsOnMainThread();
[[OWSWindowManager sharedManager] hideMenuActionsWindow];
}
#pragma mark - Orientation
- (void)viewWillTransitionToSize:(CGSize)size

View File

@ -74,6 +74,8 @@ typedef NS_ENUM(NSUInteger, ConversationUpdateItemType) {
// to prod the view to reset its scroll state, etc.
- (void)conversationViewModelDidReset;
- (void)conversationViewModelDidDeleteMostRecentMenuActionsViewItem;
- (BOOL)isObservingVMUpdates;
- (ConversationStyle *)conversationStyle;
@ -87,6 +89,7 @@ typedef NS_ENUM(NSUInteger, ConversationUpdateItemType) {
@property (nonatomic, readonly) NSArray<id<ConversationViewItem>> *viewItems;
@property (nonatomic, nullable) NSString *focusMessageIdOnOpen;
@property (nonatomic, readonly, nullable) ThreadDynamicInteractions *dynamicInteractions;
@property (nonatomic, nullable) id<ConversationViewItem> mostRecentMenuActionsViewItem;
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithThread:(TSThread *)thread

View File

@ -583,6 +583,12 @@ static const int kYapDatabaseRangeMaxLength = 25000;
return;
}
NSString *_Nullable mostRecentMenuActionsInterationId = self.mostRecentMenuActionsViewItem.interaction.uniqueId;
if (mostRecentMenuActionsInterationId != nil &&
[diff.removedItemIds containsObject:mostRecentMenuActionsInterationId]) {
[self.delegate conversationViewModelDidDeleteMostRecentMenuActionsViewItem];
}
NSMutableSet<NSString *> *diffAddedItemIds = [diff.addedItemIds mutableCopy];
NSMutableSet<NSString *> *diffRemovedItemIds = [diff.removedItemIds mutableCopy];
NSMutableSet<NSString *> *diffUpdatedItemIds = [diff.updatedItemIds mutableCopy];