From 4eda27dcc0a3c5775ecbd15b5cb7a45f8adffd2a Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Tue, 10 Sep 2019 16:26:45 +1000 Subject: [PATCH] Re-enable settings for group conversations --- .../Cells/OWSSystemMessageCell.m | 1 + .../ConversationHeaderView.swift | 6 +- .../OWSConversationSettingsViewController.m | 149 +++++++++--------- 3 files changed, 81 insertions(+), 75 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/Cells/OWSSystemMessageCell.m b/Signal/src/ViewControllers/ConversationView/Cells/OWSSystemMessageCell.m index 76a315c15..b79a96acc 100644 --- a/Signal/src/ViewControllers/ConversationView/Cells/OWSSystemMessageCell.m +++ b/Signal/src/ViewControllers/ConversationView/Cells/OWSSystemMessageCell.m @@ -191,6 +191,7 @@ typedef void (^SystemMessageActionBlock)(void); [self.button setTitle:self.action.title forState:UIControlStateNormal]; UIFont *buttonFont = UIFont.ows_dynamicTypeSubheadlineFont.ows_mediumWeight; self.button.titleLabel.font = buttonFont; + [self.button setTitleColor:UIColor.lokiGreen forState:UIControlStateNormal]; self.button.hidden = NO; } else { self.button.hidden = YES; diff --git a/Signal/src/ViewControllers/ConversationView/ConversationHeaderView.swift b/Signal/src/ViewControllers/ConversationView/ConversationHeaderView.swift index 5a816534f..680060ac6 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationHeaderView.swift +++ b/Signal/src/ViewControllers/ConversationView/ConversationHeaderView.swift @@ -97,10 +97,8 @@ public class ConversationHeaderView: UIStackView { self.addArrangedSubview(avatarView) self.addArrangedSubview(textRows) - if (!thread.isGroupThread()) { - let tapGesture = UITapGestureRecognizer(target: self, action: #selector(didTapView)) - self.addGestureRecognizer(tapGesture) - } + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(didTapView)) + self.addGestureRecognizer(tapGesture) } required public init(coder: NSCoder) { diff --git a/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m b/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m index 378adbaf0..a7170caff 100644 --- a/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m +++ b/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m @@ -551,6 +551,7 @@ const CGFloat kIconViewLength = 24; UISlider *slider = [UISlider new]; slider.maximumValue = (float)(strongSelf.disappearingMessagesDurations.count - 1); slider.minimumValue = 0; + slider.tintColor = UIColor.lokiGreen; slider.continuous = YES; // NO fires change event only once you let go slider.value = strongSelf.disappearingMessagesConfiguration.durationIndex; [slider addTarget:strongSelf @@ -600,6 +601,7 @@ const CGFloat kIconViewLength = 24; // Group settings section. + /* if (self.isGroupThread) { NSArray *groupItems = @[ [OWSTableItem @@ -651,6 +653,7 @@ const CGFloat kIconViewLength = 24; @"Conversation settings table section title") items:groupItems]]; } + */ // Mute thread section. @@ -703,78 +706,80 @@ const CGFloat kIconViewLength = 24; [weakSelf.navigationController pushViewController:vc animated:YES]; }]]; - [mainSection - addItem: - [OWSTableItem - itemWithCustomCellBlock:^{ - UITableViewCell *cell = - [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil]; - [OWSTableItem configureCell:cell]; - OWSConversationSettingsViewController *strongSelf = weakSelf; - OWSCAssertDebug(strongSelf); - cell.preservesSuperviewLayoutMargins = YES; - cell.contentView.preservesSuperviewLayoutMargins = YES; - cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; - - UIImageView *iconView = [strongSelf viewForIconWithName:@"table_ic_mute_thread"]; - - UILabel *rowLabel = [UILabel new]; - rowLabel.text = NSLocalizedString(@"CONVERSATION_SETTINGS_MUTE_LABEL", - @"label for 'mute thread' cell in conversation settings"); - rowLabel.textColor = [Theme primaryColor]; - rowLabel.font = [UIFont ows_dynamicTypeBodyFont]; - rowLabel.lineBreakMode = NSLineBreakByTruncatingTail; - - NSString *muteStatus = NSLocalizedString(@"CONVERSATION_SETTINGS_MUTE_NOT_MUTED", - @"Indicates that the current thread is not muted."); - NSDate *mutedUntilDate = strongSelf.thread.mutedUntilDate; - NSDate *now = [NSDate date]; - if (mutedUntilDate != nil && [mutedUntilDate timeIntervalSinceDate:now] > 0) { - NSCalendar *calendar = [NSCalendar currentCalendar]; - NSCalendarUnit calendarUnits = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay; - NSDateComponents *muteUntilComponents = - [calendar components:calendarUnits fromDate:mutedUntilDate]; - NSDateComponents *nowComponents = [calendar components:calendarUnits fromDate:now]; - NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; - if (nowComponents.year != muteUntilComponents.year - || nowComponents.month != muteUntilComponents.month - || nowComponents.day != muteUntilComponents.day) { - - [dateFormatter setDateStyle:NSDateFormatterShortStyle]; - [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; - } else { - [dateFormatter setDateStyle:NSDateFormatterNoStyle]; - [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; - } + if (!self.thread.isGroupThread) { + [mainSection + addItem: + [OWSTableItem + itemWithCustomCellBlock:^{ + UITableViewCell *cell = + [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil]; + [OWSTableItem configureCell:cell]; + OWSConversationSettingsViewController *strongSelf = weakSelf; + OWSCAssertDebug(strongSelf); + cell.preservesSuperviewLayoutMargins = YES; + cell.contentView.preservesSuperviewLayoutMargins = YES; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; - muteStatus = [NSString - stringWithFormat:NSLocalizedString(@"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT", - @"Indicates that this thread is muted until a given date or time. " - @"Embeds {{The date or time which the thread is muted until}}."), - [dateFormatter stringFromDate:mutedUntilDate]]; - } + UIImageView *iconView = [strongSelf viewForIconWithName:@"table_ic_mute_thread"]; - UIStackView *contentRow = - [[UIStackView alloc] initWithArrangedSubviews:@[ iconView, rowLabel ]]; - contentRow.spacing = strongSelf.iconSpacing; - contentRow.alignment = UIStackViewAlignmentCenter; - [cell.contentView addSubview:contentRow]; - [contentRow autoPinEdgesToSuperviewMargins]; + UILabel *rowLabel = [UILabel new]; + rowLabel.text = NSLocalizedString(@"CONVERSATION_SETTINGS_MUTE_LABEL", + @"label for 'mute thread' cell in conversation settings"); + rowLabel.textColor = [Theme primaryColor]; + rowLabel.font = [UIFont ows_dynamicTypeBodyFont]; + rowLabel.lineBreakMode = NSLineBreakByTruncatingTail; - cell.detailTextLabel.text = muteStatus; + NSString *muteStatus = NSLocalizedString(@"CONVERSATION_SETTINGS_MUTE_NOT_MUTED", + @"Indicates that the current thread is not muted."); + NSDate *mutedUntilDate = strongSelf.thread.mutedUntilDate; + NSDate *now = [NSDate date]; + if (mutedUntilDate != nil && [mutedUntilDate timeIntervalSinceDate:now] > 0) { + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSCalendarUnit calendarUnits = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay; + NSDateComponents *muteUntilComponents = + [calendar components:calendarUnits fromDate:mutedUntilDate]; + NSDateComponents *nowComponents = [calendar components:calendarUnits fromDate:now]; + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + if (nowComponents.year != muteUntilComponents.year + || nowComponents.month != muteUntilComponents.month + || nowComponents.day != muteUntilComponents.day) { + + [dateFormatter setDateStyle:NSDateFormatterShortStyle]; + [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; + } else { + [dateFormatter setDateStyle:NSDateFormatterNoStyle]; + [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; + } + + muteStatus = [NSString + stringWithFormat:NSLocalizedString(@"CONVERSATION_SETTINGS_MUTED_UNTIL_FORMAT", + @"Indicates that this thread is muted until a given date or time. " + @"Embeds {{The date or time which the thread is muted until}}."), + [dateFormatter stringFromDate:mutedUntilDate]]; + } - cell.accessibilityIdentifier - = ACCESSIBILITY_IDENTIFIER_WITH_NAME(OWSConversationSettingsViewController, @"mute"); + UIStackView *contentRow = + [[UIStackView alloc] initWithArrangedSubviews:@[ iconView, rowLabel ]]; + contentRow.spacing = strongSelf.iconSpacing; + contentRow.alignment = UIStackViewAlignmentCenter; + [cell.contentView addSubview:contentRow]; + [contentRow autoPinEdgesToSuperviewMargins]; - return cell; - } - customRowHeight:UITableViewAutomaticDimension - actionBlock:^{ - [weakSelf showMuteUnmuteActionSheet]; - }]]; - mainSection.footerTitle = NSLocalizedString( - @"MUTE_BEHAVIOR_EXPLANATION", @"An explanation of the consequences of muting a thread."); -// [contents addSection:notificationsSection]; + cell.detailTextLabel.text = muteStatus; + + cell.accessibilityIdentifier + = ACCESSIBILITY_IDENTIFIER_WITH_NAME(OWSConversationSettingsViewController, @"mute"); + + return cell; + } + customRowHeight:UITableViewAutomaticDimension + actionBlock:^{ + [weakSelf showMuteUnmuteActionSheet]; + }]]; + mainSection.footerTitle = NSLocalizedString( + @"MUTE_BEHAVIOR_EXPLANATION", @"An explanation of the consequences of muting a thread."); +// [contents addSection:notificationsSection]; + } } // Block Conversation section. @@ -992,10 +997,12 @@ const CGFloat kIconViewLength = 24; [lastTitleView autoPinEdgeToSuperviewEdge:ALEdgeBottom]; - [mainSectionHeader - addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self - action:@selector(conversationNameTouched:)]]; - mainSectionHeader.userInteractionEnabled = YES; + if (!self.thread.isGroupThread) { + [mainSectionHeader + addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self + action:@selector(conversationNameTouched:)]]; + mainSectionHeader.userInteractionEnabled = YES; + } SET_SUBVIEW_ACCESSIBILITY_IDENTIFIER(self, mainSectionHeader);