diff --git a/Signal/src/ViewControllers/AppSettings/PrivacySettingsTableViewController.m b/Signal/src/ViewControllers/AppSettings/PrivacySettingsTableViewController.m index d2afb7ea0..18abd1532 100644 --- a/Signal/src/ViewControllers/AppSettings/PrivacySettingsTableViewController.m +++ b/Signal/src/ViewControllers/AppSettings/PrivacySettingsTableViewController.m @@ -209,16 +209,58 @@ NS_ASSUME_NONNULL_BEGIN OWSTableSection *unidentifiedDeliveryIndicatorsSection = [OWSTableSection new]; unidentifiedDeliveryIndicatorsSection.headerTitle = NSLocalizedString(@"SETTINGS_UNIDENTIFIED_DELIVERY_SECTION_TITLE", @"table section label"); + [unidentifiedDeliveryIndicatorsSection + addItem:[OWSTableItem + itemWithCustomCellBlock:^UITableViewCell * { + UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 + reuseIdentifier:@"UITableViewCellStyleValue1"]; + [OWSTableItem configureCell:cell]; + cell.preservesSuperviewLayoutMargins = YES; + cell.contentView.preservesSuperviewLayoutMargins = YES; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + + UILabel *label = [UILabel new]; + label.text + = NSLocalizedString(@"SETTINGS_UNIDENTIFIED_DELIVERY_SHOW_INDICATORS", @"switch label"); + label.font = [UIFont ows_regularFontWithSize:18.f]; + label.textColor = [Theme primaryColor]; + [label setContentHuggingHorizontalHigh]; + + UIImage *icon = [UIImage imageNamed:@"ic_secret_sender_indicator"]; + UIImageView *iconView = [[UIImageView alloc] + initWithImage:[icon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]]; + iconView.tintColor = Theme.secondaryColor; + [iconView setContentHuggingHorizontalHigh]; + + UIView *spacer = [UIView new]; + [spacer setContentHuggingHorizontalLow]; + + UISwitch *cellSwitch = [UISwitch new]; + cell.accessoryView = cellSwitch; + [cellSwitch setOn:weakSelf.preferences.shouldShowUnidentifiedDeliveryIndicators]; + [cellSwitch addTarget:weakSelf + action:@selector(didToggleUDShowIndicatorsSwitch:) + forControlEvents:UIControlEventValueChanged]; + [cellSwitch setContentHuggingHorizontalHigh]; + + UIStackView *stackView = + [[UIStackView alloc] initWithArrangedSubviews:@[ label, iconView, spacer, cellSwitch ]]; + stackView.axis = UILayoutConstraintAxisHorizontal; + stackView.spacing = 10; + + [cell.contentView addSubview:stackView]; + [stackView ows_autoPinToSuperviewMargins]; + return cell; + } + customRowHeight:UITableViewAutomaticDimension + actionBlock:^{ + NSURL *url = [NSURL URLWithString:@"https://signal.org/blog/secret-sender/"]; + OWSAssertDebug(url); + [UIApplication.sharedApplication openURL:url]; + }]]; unidentifiedDeliveryIndicatorsSection.footerTitle = NSLocalizedString(@"SETTINGS_UNIDENTIFIED_DELIVERY_SHOW_INDICATORS_FOOTER", @"table section footer"); - - OWSTableItem *showUDIndicatorsItem = [OWSTableItem - switchItemWithText:NSLocalizedString(@"SETTINGS_UNIDENTIFIED_DELIVERY_SHOW_INDICATORS", @"switch label") - isOn:weakSelf.preferences.shouldShowUnidentifiedDeliveryIndicators - target:weakSelf - selector:@selector(didToggleUDShowIndicatorsSwitch:)]; - [unidentifiedDeliveryIndicatorsSection addItem:showUDIndicatorsItem]; [contents addSection:unidentifiedDeliveryIndicatorsSection]; OWSTableSection *unidentifiedDeliveryUnrestrictedSection = [OWSTableSection new]; @@ -228,53 +270,20 @@ NS_ASSUME_NONNULL_BEGIN target:weakSelf selector:@selector(didToggleUDUnrestrictedAccessSwitch:)]; [unidentifiedDeliveryUnrestrictedSection addItem:unrestrictedAccessItem]; + unidentifiedDeliveryUnrestrictedSection.footerTitle + = NSLocalizedString(@"SETTINGS_UNIDENTIFIED_DELIVERY_UNRESTRICTED_ACCESS_FOOTER", @"table section footer"); [contents addSection:unidentifiedDeliveryUnrestrictedSection]; OWSTableSection *unidentifiedDeliveryLearnMoreSection = [OWSTableSection new]; [unidentifiedDeliveryLearnMoreSection - addItem:[OWSTableItem - itemWithCustomCellBlock:^UITableViewCell * { - UITableViewCell *cell = [OWSTableItem newCell]; - cell.preservesSuperviewLayoutMargins = YES; - cell.contentView.preservesSuperviewLayoutMargins = YES; - - NSAttributedString *attributedText = [NSAttributedString new]; - attributedText = [attributedText - rtlSafeAppend:NSLocalizedString( - @"SETTINGS_UNIDENTIFIED_DELIVERY_UNRESTRICTED_ACCESS_FOOTER", - @"table section footer") - attributes:@{ - NSFontAttributeName : [UIFont ows_dynamicTypeFootnoteFont], - NSForegroundColorAttributeName : [Theme secondaryColor], - }]; - attributedText = - [attributedText rtlSafeAppend:@" " - attributes:@{ - NSFontAttributeName : [UIFont ows_dynamicTypeFootnoteFont], - }]; - attributedText = [attributedText - rtlSafeAppend:NSLocalizedString(@"SETTINGS_UNIDENTIFIED_DELIVERY_LEARN_MORE", - @"Label for a link to more info about unidentified delivery.") - attributes:@{ - NSFontAttributeName : [UIFont ows_dynamicTypeFootnoteFont], - NSForegroundColorAttributeName : [UIColor ows_materialBlueColor], - }]; - - UILabel *label = [UILabel new]; - label.attributedText = attributedText; - label.numberOfLines = 0; - label.lineBreakMode = NSLineBreakByWordWrapping; - - [cell.contentView addSubview:label]; - [label ows_autoPinToSuperviewMargins]; - return cell; - } - customRowHeight:UITableViewAutomaticDimension - actionBlock:^{ - NSURL *url = [NSURL URLWithString:@"https://signal.org/blog/secret-sender/"]; - OWSAssertDebug(url); - [UIApplication.sharedApplication openURL:url]; - }]]; + addItem:[OWSTableItem disclosureItemWithText:NSLocalizedString(@"SETTINGS_UNIDENTIFIED_DELIVERY_LEARN_MORE", + @"Label for a link to more info about unidentified delivery.") + actionBlock:^{ + NSURL *url = + [NSURL URLWithString:@"https://signal.org/blog/secret-sender/"]; + OWSAssertDebug(url); + [UIApplication.sharedApplication openURL:url]; + }]]; [contents addSection:unidentifiedDeliveryLearnMoreSection]; self.contents = contents;