Surface organization name in contact view.

pull/1/head
Matthew Chen 7 years ago
parent aa7cc4633a
commit 6460493669

@ -355,6 +355,14 @@ class ContactViewController: OWSViewController, ContactShareViewHelperDelegate {
// action:#selector(didPressShareContact))) // action:#selector(didPressShareContact)))
// } // }
if let organizationName = contactShare.name.organizationName?.ows_stripped() {
if (contactShare.name.hasAnyNamePart() &&
organizationName.count > 0) {
rows.append(ContactFieldView.contactFieldView(forOrganizationName: organizationName,
layoutMargins: UIEdgeInsets(top: 5, left: hMargin, bottom: 5, right: hMargin)))
}
}
for phoneNumber in contactShare.phoneNumbers { for phoneNumber in contactShare.phoneNumbers {
rows.append(ContactFieldView.contactFieldView(forPhoneNumber: phoneNumber, rows.append(ContactFieldView.contactFieldView(forPhoneNumber: phoneNumber,
layoutMargins: UIEdgeInsets(top: 5, left: hMargin, bottom: 5, right: hMargin), layoutMargins: UIEdgeInsets(top: 5, left: hMargin, bottom: 5, right: hMargin),

@ -61,6 +61,12 @@ public class ContactFieldView: UIView {
lastRow?.autoPinEdge(toSuperviewEdge: .bottom, withInset: 0) lastRow?.autoPinEdge(toSuperviewEdge: .bottom, withInset: 0)
} }
public class func contactFieldView(forOrganizationName organizationName: String, layoutMargins: UIEdgeInsets) -> UIView {
return simpleFieldView(name: NSLocalizedString("CONTACT_FIELD_ORGANIZATION_NAME", comment: "Label for the 'organization name' field of a contact."),
value: organizationName,
layoutMargins: layoutMargins, actionBlock: nil)
}
public class func contactFieldView(forPhoneNumber phoneNumber: OWSContactPhoneNumber, layoutMargins: UIEdgeInsets, actionBlock : (() -> Void)?) -> UIView { public class func contactFieldView(forPhoneNumber phoneNumber: OWSContactPhoneNumber, layoutMargins: UIEdgeInsets, actionBlock : (() -> Void)?) -> UIView {
let formattedPhoneNumber = PhoneNumber.bestEffortLocalizedPhoneNumber(withE164: phoneNumber.phoneNumber) let formattedPhoneNumber = PhoneNumber.bestEffortLocalizedPhoneNumber(withE164: phoneNumber.phoneNumber)
return simpleFieldView(name: phoneNumber.localizedLabel(), value: formattedPhoneNumber, layoutMargins: layoutMargins, actionBlock: actionBlock) return simpleFieldView(name: phoneNumber.localizedLabel(), value: formattedPhoneNumber, layoutMargins: layoutMargins, actionBlock: actionBlock)

@ -103,14 +103,21 @@ NSString *NSStringForContactAddressType(OWSContactAddressType value);
@interface OWSContactName : MTLModel @interface OWSContactName : MTLModel
// The "name parts".
@property (nonatomic, nullable) NSString *givenName; @property (nonatomic, nullable) NSString *givenName;
@property (nonatomic, nullable) NSString *familyName; @property (nonatomic, nullable) NSString *familyName;
@property (nonatomic, nullable) NSString *nameSuffix; @property (nonatomic, nullable) NSString *nameSuffix;
@property (nonatomic, nullable) NSString *namePrefix; @property (nonatomic, nullable) NSString *namePrefix;
@property (nonatomic, nullable) NSString *middleName; @property (nonatomic, nullable) NSString *middleName;
@property (nonatomic, nullable) NSString *organizationName; @property (nonatomic, nullable) NSString *organizationName;
@property (nonatomic) NSString *displayName; @property (nonatomic) NSString *displayName;
// Returns true if any of the name parts (which doesn't include
// organization name) is non-empty.
- (BOOL)hasAnyNamePart;
@end @end
#pragma mark - #pragma mark -

@ -339,16 +339,23 @@ NSString *NSStringForContactAddressType(OWSContactAddressType value)
- (nullable CNContact *)systemContactForName - (nullable CNContact *)systemContactForName
{ {
CNMutableContact *systemContact = [CNMutableContact new]; CNMutableContact *systemContact = [CNMutableContact new];
systemContact.givenName = self.givenName; systemContact.givenName = self.givenName.ows_stripped;
systemContact.middleName = self.middleName; systemContact.middleName = self.middleName.ows_stripped;
systemContact.familyName = self.familyName; systemContact.familyName = self.familyName.ows_stripped;
systemContact.namePrefix = self.namePrefix; systemContact.namePrefix = self.namePrefix.ows_stripped;
systemContact.nameSuffix = self.nameSuffix; systemContact.nameSuffix = self.nameSuffix.ows_stripped;
// We don't need to set display name, it's implicit for system contacts. // We don't need to set display name, it's implicit for system contacts.
systemContact.organizationName = self.organizationName; systemContact.organizationName = self.organizationName.ows_stripped;
return systemContact; return systemContact;
} }
- (BOOL)hasAnyNamePart
{
return (self.givenName.ows_stripped.length > 0 || self.middleName.ows_stripped.length > 0
|| self.familyName.ows_stripped.length > 0 || self.namePrefix.ows_stripped.length > 0
|| self.nameSuffix.ows_stripped.length > 0);
}
@end @end
#pragma mark - #pragma mark -

Loading…
Cancel
Save