Update “new conversation” view to use OWSTableView, contacts view helper, etc.
// FREEBIE
This commit is contained in:
parent
4b9ee2dcfe
commit
363d84fd2d
|
@ -24,6 +24,7 @@
|
|||
34535D821E256BE9008A4747 /* UIView+OWS.m in Sources */ = {isa = PBXBuildFile; fileRef = 34535D811E256BE9008A4747 /* UIView+OWS.m */; };
|
||||
345671011E89A5F1006EE662 /* ThreadUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 345671001E89A5F1006EE662 /* ThreadUtil.m */; };
|
||||
3456710A1E8A9F5D006EE662 /* TSGenericAttachmentAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 345671091E8A9F5D006EE662 /* TSGenericAttachmentAdapter.m */; };
|
||||
3471B1DA1EB7C63600F6AEC8 /* NewNonContactConversationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3471B1D91EB7C63600F6AEC8 /* NewNonContactConversationViewController.m */; };
|
||||
3472229F1EB22FFE00E53955 /* AddToGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3472229E1EB22FFE00E53955 /* AddToGroupViewController.m */; };
|
||||
34B3F8711E8DF1700035BE1A /* AboutTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3F8351E8DF1700035BE1A /* AboutTableViewController.m */; };
|
||||
34B3F8721E8DF1700035BE1A /* AdvancedSettingsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3F8371E8DF1700035BE1A /* AdvancedSettingsTableViewController.m */; };
|
||||
|
@ -170,8 +171,6 @@
|
|||
45D231781DC7E8F10034FA89 /* SessionResetJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45D231761DC7E8F10034FA89 /* SessionResetJob.swift */; };
|
||||
45DF5DF21DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DF5DF11DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift */; };
|
||||
45DF5DF31DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DF5DF11DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift */; };
|
||||
45E1F3A31DEF1DF000852CF1 /* NoSignalContactsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 45E1F3A21DEF1DF000852CF1 /* NoSignalContactsView.xib */; };
|
||||
45E1F3A51DEF20A100852CF1 /* NoSignalContactsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E1F3A41DEF20A100852CF1 /* NoSignalContactsView.swift */; };
|
||||
45E2E9201E153B3D00457AA0 /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E2E91F1E153B3D00457AA0 /* Strings.swift */; };
|
||||
45E615161E8C590B0018AD52 /* DisplayableTextFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E615151E8C590B0018AD52 /* DisplayableTextFilter.swift */; };
|
||||
45E615171E8C59100018AD52 /* DisplayableTextFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E615151E8C590B0018AD52 /* DisplayableTextFilter.swift */; };
|
||||
|
@ -383,6 +382,8 @@
|
|||
345671001E89A5F1006EE662 /* ThreadUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ThreadUtil.m; sourceTree = "<group>"; };
|
||||
345671081E8A9F5D006EE662 /* TSGenericAttachmentAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TSGenericAttachmentAdapter.h; sourceTree = "<group>"; };
|
||||
345671091E8A9F5D006EE662 /* TSGenericAttachmentAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSGenericAttachmentAdapter.m; sourceTree = "<group>"; };
|
||||
3471B1D81EB7C63600F6AEC8 /* NewNonContactConversationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewNonContactConversationViewController.h; sourceTree = "<group>"; };
|
||||
3471B1D91EB7C63600F6AEC8 /* NewNonContactConversationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewNonContactConversationViewController.m; sourceTree = "<group>"; };
|
||||
3472229D1EB22FFE00E53955 /* AddToGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddToGroupViewController.h; sourceTree = "<group>"; };
|
||||
3472229E1EB22FFE00E53955 /* AddToGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddToGroupViewController.m; sourceTree = "<group>"; };
|
||||
34B3F8341E8DF1700035BE1A /* AboutTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AboutTableViewController.h; sourceTree = "<group>"; };
|
||||
|
@ -569,8 +570,6 @@
|
|||
45CD81F11DC03A22004C9430 /* OWSLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSLogger.m; sourceTree = "<group>"; };
|
||||
45D231761DC7E8F10034FA89 /* SessionResetJob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SessionResetJob.swift; path = Jobs/SessionResetJob.swift; sourceTree = "<group>"; };
|
||||
45DF5DF11DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CompareSafetyNumbersActivity.swift; sourceTree = "<group>"; };
|
||||
45E1F3A21DEF1DF000852CF1 /* NoSignalContactsView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NoSignalContactsView.xib; sourceTree = "<group>"; };
|
||||
45E1F3A41DEF20A100852CF1 /* NoSignalContactsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NoSignalContactsView.swift; sourceTree = "<group>"; };
|
||||
45E282DE1D08E67800ADD4C8 /* gl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = gl; path = translations/gl.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
45E282DF1D08E6CC00ADD4C8 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = translations/id.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
45E2E91E1E13EE3500457AA0 /* OWSCallNotificationsAdaptee.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSCallNotificationsAdaptee.h; path = UserInterface/OWSCallNotificationsAdaptee.h; sourceTree = "<group>"; };
|
||||
|
@ -903,6 +902,8 @@
|
|||
34B3F8531E8DF1700035BE1A /* MessagesViewController.xib */,
|
||||
34B3F8541E8DF1700035BE1A /* NewGroupViewController.h */,
|
||||
34B3F8551E8DF1700035BE1A /* NewGroupViewController.m */,
|
||||
3471B1D81EB7C63600F6AEC8 /* NewNonContactConversationViewController.h */,
|
||||
3471B1D91EB7C63600F6AEC8 /* NewNonContactConversationViewController.m */,
|
||||
34B3F8561E8DF1700035BE1A /* NotificationSettingsOptionsViewController.h */,
|
||||
34B3F8571E8DF1700035BE1A /* NotificationSettingsOptionsViewController.m */,
|
||||
34B3F8581E8DF1700035BE1A /* NotificationSettingsViewController.h */,
|
||||
|
@ -1300,8 +1301,6 @@
|
|||
45B201751DAECBFE00C461E0 /* HighlightableLabel.swift */,
|
||||
4531C9C21DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.h */,
|
||||
4531C9C31DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.m */,
|
||||
45E1F3A41DEF20A100852CF1 /* NoSignalContactsView.swift */,
|
||||
45E1F3A21DEF1DF000852CF1 /* NoSignalContactsView.xib */,
|
||||
45C681B91D305C080050903A /* OWSCallCollectionViewCell.h */,
|
||||
45C681BA1D305C080050903A /* OWSCallCollectionViewCell.m */,
|
||||
45C681C01D305C9E0050903A /* OWSCallCollectionViewCell.xib */,
|
||||
|
@ -1787,7 +1786,6 @@
|
|||
AD41D7B61A6F6F0600241130 /* play_button@2x.png in Resources */,
|
||||
AD83FF3F1A73426500B5C81A /* audio_pause_button_blue.png in Resources */,
|
||||
34330A5A1E7875FB00DF2FB9 /* fontawesome-webfont.ttf in Resources */,
|
||||
45E1F3A31DEF1DF000852CF1 /* NoSignalContactsView.xib in Resources */,
|
||||
A5509ECA1A69AB8B00ABA4BC /* Main.storyboard in Resources */,
|
||||
45F2B1971D9CA207000D2C69 /* OWSIncomingMessageCollectionViewCell.xib in Resources */,
|
||||
AD83FF421A73426500B5C81A /* audio_play_button.png in Resources */,
|
||||
|
@ -2058,6 +2056,7 @@
|
|||
34533F181EA8D2070006114F /* OWSAudioAttachmentPlayer.m in Sources */,
|
||||
452EA09E1EA7ABE00078744B /* AttachmentPointerView.swift in Sources */,
|
||||
45666EC91D994C0D008FE134 /* OWSGroupAvatarBuilder.m in Sources */,
|
||||
3471B1DA1EB7C63600F6AEC8 /* NewNonContactConversationViewController.m in Sources */,
|
||||
34B3F87A1E8DF1700035BE1A /* DebugUITableViewController.m in Sources */,
|
||||
34B3F87C1E8DF1700035BE1A /* FingerprintViewController.m in Sources */,
|
||||
76EB058218170B33006006FC /* Environment.m in Sources */,
|
||||
|
@ -2132,7 +2131,6 @@
|
|||
B68112EA1A4D9EC400BA82FF /* UIImage+normalizeImage.m in Sources */,
|
||||
B609597C1C2C0FC6004E8797 /* iRate.m in Sources */,
|
||||
4574A5D61DD6704700C6B692 /* CallService.swift in Sources */,
|
||||
45E1F3A51DEF20A100852CF1 /* NoSignalContactsView.swift in Sources */,
|
||||
34B3F8721E8DF1700035BE1A /* AdvancedSettingsTableViewController.m in Sources */,
|
||||
45F170D61E315310003FC1F2 /* Weak.swift in Sources */,
|
||||
34B3F8891E8DF1700035BE1A /* OWSConversationSettingsTableViewController.m in Sources */,
|
||||
|
|
|
@ -444,7 +444,7 @@ static NSString *const kURLHostVerifyPrefix = @"verify";
|
|||
performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem
|
||||
completionHandler:(void (^)(BOOL succeeded))completionHandler {
|
||||
if ([TSAccountManager isRegistered]) {
|
||||
[[Environment getCurrent].signalsViewController composeNew];
|
||||
[[Environment getCurrent].signalsViewController composeNew:nil];
|
||||
completionHandler(YES);
|
||||
} else {
|
||||
UIAlertController *controller =
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1421" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES" initialViewController="tuk-0x-yCb">
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12118" systemVersion="16E195" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES" initialViewController="tuk-0x-yCb">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
|
||||
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
|
||||
|
@ -84,7 +84,7 @@
|
|||
<inset key="imageInsets" minX="-10" minY="0.0" maxX="10" maxY="0.0"/>
|
||||
<color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<segue destination="cZ7-de-SUi" kind="modal" identifier="composeNew" id="Ea3-ew-jtL"/>
|
||||
<action selector="composeNew:" destination="MY2-bB-USa" id="cT0-NQ-JcZ"/>
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
|
@ -387,7 +387,7 @@
|
|||
<rect key="frame" x="0.0" y="22" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hyn-Ss-OAa" id="4XE-JO-Upr">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
|
@ -432,10 +432,10 @@
|
|||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<prototypes>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="ExistingDevice" rowHeight="72" id="XjV-oU-jSb" customClass="OWSDeviceTableViewCell">
|
||||
<rect key="frame" x="0.0" y="56" width="375" height="72"/>
|
||||
<rect key="frame" x="0.0" y="55.5" width="375" height="72"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="XjV-oU-jSb" id="XqL-QG-IbY">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="71"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="71.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Signal on Chrome" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="57o-uV-YOg">
|
||||
|
@ -476,21 +476,21 @@
|
|||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="AddNewDevice" textLabel="w80-IJ-E6R" detailTextLabel="8ft-2u-wBF" style="IBUITableViewCellStyleSubtitle" id="6h2-gg-1C6">
|
||||
<rect key="frame" x="0.0" y="128" width="375" height="44"/>
|
||||
<rect key="frame" x="0.0" y="127.5" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="6h2-gg-1C6" id="RKi-c6-pzb">
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Link New Device" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="w80-IJ-E6R">
|
||||
<rect key="frame" x="15" y="3" width="127" height="21"/>
|
||||
<rect key="frame" x="15" y="4" width="127" height="20.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Scan QR Code" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="8ft-2u-wBF">
|
||||
<rect key="frame" x="15" y="24" width="88" height="16"/>
|
||||
<rect key="frame" x="15" y="24.5" width="88" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleFootnote"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
@ -545,7 +545,7 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="375" height="96"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="5zF-Ko-9qU" id="gr7-Sm-bcs">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="95"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="95.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1 (708) 000-1234" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ipE-BI-sLL">
|
||||
|
@ -586,7 +586,7 @@
|
|||
<rect key="frame" x="0.0" y="96" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8rk-06-1ZS" id="hqv-P5-du9">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Network Status" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uNq-FV-lwt">
|
||||
|
@ -626,11 +626,11 @@
|
|||
<rect key="frame" x="0.0" y="140" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="a7a-qe-87x" id="gcU-Ld-alv">
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Invite Your Friends" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="9FD-M0-WLe" userLabel="Invite Your Friends">
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43"/>
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<nil key="textColor"/>
|
||||
|
@ -643,11 +643,11 @@
|
|||
<rect key="frame" x="0.0" y="184" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ITG-sW-Zn0" id="vOb-SA-SH2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Privacy" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="i1f-DT-7rL">
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43"/>
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
@ -660,11 +660,11 @@
|
|||
<rect key="frame" x="0.0" y="228" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="jp5-vZ-AhJ" id="sji-CJ-bhq">
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Notifications" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="tRQ-1p-6aT">
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43"/>
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
@ -677,11 +677,11 @@
|
|||
<rect key="frame" x="0.0" y="272" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="wZ8-fs-Ylw" id="Ua5-nw-s2z">
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Linked Devices" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="hrc-lZ-NeA">
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43"/>
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
@ -697,11 +697,11 @@
|
|||
<rect key="frame" x="0.0" y="316" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Xx7-pz-aLN" id="pMA-vR-8Ae">
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Advanced" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="dkL-Nz-E6H">
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43"/>
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
@ -714,11 +714,11 @@
|
|||
<rect key="frame" x="0.0" y="360" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="EI4-kQ-MMA" id="czg-5p-aVz">
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="About" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="qeN-f1-cIQ">
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43"/>
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
@ -735,7 +735,7 @@
|
|||
<rect key="frame" x="0.0" y="404" width="375" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="R82-FT-SEA" id="Ok9-fE-WhB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="99"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="99.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4Mk-ly-6fq">
|
||||
|
@ -920,7 +920,7 @@
|
|||
<rect key="frame" x="0.0" y="22" width="375" height="59"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Ld5-sX-pB8" id="EqP-87-4hZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="58"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="58.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4zF-SU-q4z">
|
||||
|
@ -976,36 +976,8 @@
|
|||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
<connections>
|
||||
<outlet property="inviteCell" destination="Pgm-Qb-oPu" id="Nf5-sS-IKL"/>
|
||||
<outlet property="noSignalContactsView" destination="M2F-Tn-Zvq" id="jOQ-hN-f9v"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="fUD-iU-Cax" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="ContactTableInviteCell" textLabel="QGl-1D-W9D" rowHeight="48" style="IBUITableViewCellStyleDefault" id="Pgm-Qb-oPu" userLabel="Invite Cell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Pgm-Qb-oPu" id="amG-75-RNT">
|
||||
<rect key="frame" x="0.0" y="0.0" width="342" height="47"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Invite your friends!" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="QGl-1D-W9D">
|
||||
<rect key="frame" x="15" y="0.0" width="325" height="47"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<color key="textColor" red="0.09412795243864841" green="0.43645224658557435" blue="0.71380208333333339" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="tintColor" red="0.1135657504" green="0.4787300229" blue="0.89595204589999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<searchDisplayController id="f1M-Dk-nMv"/>
|
||||
<view contentMode="scaleToFill" id="M2F-Tn-Zvq" customClass="OWSNoSignalContactsView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="274" height="400"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="-2357" y="-235"/>
|
||||
</scene>
|
||||
|
|
|
@ -199,8 +199,12 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
- (NSArray<SignalAccount *> *)signalAccountsMatchingSearchString:(NSString *)searchText
|
||||
{
|
||||
NSArray<NSString *> *searchTerms =
|
||||
[[searchText stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
|
||||
componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
||||
[[[searchText stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
|
||||
componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
|
||||
filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSString *_Nullable searchTerm,
|
||||
NSDictionary<NSString *, id> *_Nullable bindings) {
|
||||
return searchTerm.length > 0;
|
||||
}]];
|
||||
|
||||
if (searchTerms.count < 1) {
|
||||
return self.signalAccounts;
|
||||
|
|
|
@ -2,12 +2,9 @@
|
|||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "Contact.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface MessageComposeTableViewController : UITableViewController
|
||||
@interface MessageComposeTableViewController : UIViewController
|
||||
|
||||
@end
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SelectRecipientViewController.h"
|
||||
|
||||
@protocol NewNonContactConversationViewControllerDelegate <NSObject>
|
||||
|
||||
- (void)recipientIdWasSelected:(NSString *)recipientId;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@interface NewNonContactConversationViewController : SelectRecipientViewController
|
||||
|
||||
@property (nonatomic, weak) id<NewNonContactConversationViewControllerDelegate> nonContactConversationDelegate;
|
||||
|
||||
@end
|
|
@ -0,0 +1,127 @@
|
|||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
#import "NewNonContactConversationViewController.h"
|
||||
#import "BlockListUIUtils.h"
|
||||
#import "ContactsViewHelper.h"
|
||||
#import "OWSContactsManager.h"
|
||||
#import "SignalAccount.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface NewNonContactConversationViewController () <SelectRecipientViewControllerDelegate>
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@implementation NewNonContactConversationViewController
|
||||
|
||||
- (void)loadView
|
||||
{
|
||||
self.delegate = self;
|
||||
|
||||
[super loadView];
|
||||
|
||||
self.title = NSLocalizedString(
|
||||
@"NEW_NONCONTACT_CONVERSATION_VIEW_TITLE", @"Title for the 'new non-contact conversation' view.");
|
||||
}
|
||||
|
||||
- (NSString *)phoneNumberSectionTitle
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSString *)phoneNumberButtonText
|
||||
{
|
||||
return NSLocalizedString(@"NEW_NONCONTACT_CONVERSATION_VIEW_BUTTON",
|
||||
@"A label for the 'add by phone number' button in the 'new non-contact conversation' view");
|
||||
}
|
||||
|
||||
- (NSString *)contactsSectionTitle
|
||||
{
|
||||
OWSAssert(0);
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void)phoneNumberWasSelected:(NSString *)phoneNumber
|
||||
{
|
||||
OWSAssert(phoneNumber.length > 0);
|
||||
|
||||
__weak NewNonContactConversationViewController *weakSelf = self;
|
||||
ContactsViewHelper *helper = self.contactsViewHelper;
|
||||
if ([helper isRecipientIdBlocked:phoneNumber]) {
|
||||
[BlockListUIUtils showUnblockPhoneNumberActionSheet:phoneNumber
|
||||
fromViewController:self
|
||||
blockingManager:helper.blockingManager
|
||||
contactsManager:helper.contactsManager
|
||||
completionBlock:^(BOOL isBlocked) {
|
||||
if (isBlocked) {
|
||||
[weakSelf selectRecipient:phoneNumber];
|
||||
}
|
||||
}];
|
||||
} else {
|
||||
[self selectRecipient:phoneNumber];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)signalAccountWasSelected:(SignalAccount *)signalAccount
|
||||
{
|
||||
OWSAssert(signalAccount);
|
||||
|
||||
__weak NewNonContactConversationViewController *weakSelf = self;
|
||||
ContactsViewHelper *helper = self.contactsViewHelper;
|
||||
if ([helper isRecipientIdBlocked:signalAccount.recipientId]) {
|
||||
[BlockListUIUtils showUnblockSignalAccountActionSheet:signalAccount
|
||||
fromViewController:self
|
||||
blockingManager:helper.blockingManager
|
||||
contactsManager:helper.contactsManager
|
||||
completionBlock:^(BOOL isBlocked) {
|
||||
if (isBlocked) {
|
||||
[weakSelf selectRecipient:signalAccount.recipientId];
|
||||
}
|
||||
}];
|
||||
} else {
|
||||
[self selectRecipient:signalAccount.recipientId];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)selectRecipient:(NSString *)recipientId
|
||||
{
|
||||
OWSAssert(recipientId.length > 0);
|
||||
|
||||
[self.nonContactConversationDelegate recipientIdWasSelected:recipientId];
|
||||
}
|
||||
|
||||
- (BOOL)shouldHideLocalNumber
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL)shouldHideContacts
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)shouldValidatePhoneNumbers
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
#pragma mark - Logging
|
||||
|
||||
+ (NSString *)tag
|
||||
{
|
||||
return [NSString stringWithFormat:@"[%@]", self.class];
|
||||
}
|
||||
|
||||
- (NSString *)tag
|
||||
{
|
||||
return self.class.tag;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -33,6 +33,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
@property (nonatomic, readonly) ThreadViewHelper *threadViewHelper;
|
||||
|
||||
@property (nonatomic, readonly) OWSTableViewController *tableViewController;
|
||||
|
||||
@property (nonatomic, readonly) UISearchBar *searchBar;
|
||||
|
||||
@end
|
||||
|
@ -124,7 +125,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
[self updateTableContents];
|
||||
}
|
||||
|
||||
#pragma mark - Actions
|
||||
#pragma mark - Table Contents
|
||||
|
||||
- (void)updateTableContents
|
||||
{
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
keyboardOnViewAppearing:(BOOL)keyboardOnViewAppearing
|
||||
callOnViewAppearing:(BOOL)callOnViewAppearing;
|
||||
- (NSNumber *)updateInboxCountLabel;
|
||||
- (void)composeNew;
|
||||
- (IBAction)composeNew:(id)sender;
|
||||
|
||||
- (void)presentTopLevelModalViewController:(UIViewController *)viewController
|
||||
animateDismissal:(BOOL)animateDismissal
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#import "SignalsViewController.h"
|
||||
#import "AppDelegate.h"
|
||||
#import "InboxTableViewCell.h"
|
||||
#import "MessageComposeTableViewController.h"
|
||||
#import "MessagesViewController.h"
|
||||
#import "NSDate+millisecondTimeStamp.h"
|
||||
#import "OWSContactsManager.h"
|
||||
|
@ -255,14 +256,16 @@ NSString *const SignalsViewControllerSegueShowIncomingCall = @"ShowIncomingCallS
|
|||
[self.navigationController pushViewController:vc animated:NO];
|
||||
}
|
||||
|
||||
- (void)composeNew {
|
||||
if (self.presentedViewController) {
|
||||
[self dismissViewControllerAnimated:YES completion:nil];
|
||||
}
|
||||
- (IBAction)composeNew:(id)sender
|
||||
{
|
||||
// if (self.presentedViewController) {
|
||||
// [self dismissViewControllerAnimated:YES completion:nil];
|
||||
// }
|
||||
//
|
||||
// [self.navigationController popToRootViewControllerAnimated:YES];
|
||||
|
||||
[self.navigationController popToRootViewControllerAnimated:YES];
|
||||
|
||||
[self performSegueWithIdentifier:@"composeNew" sender:self];
|
||||
MessageComposeTableViewController *viewController = [MessageComposeTableViewController new];
|
||||
[self pushTopLevelViewController:viewController animateDismissal:YES animatePresentation:YES];
|
||||
}
|
||||
|
||||
- (void)swappedSegmentedControl {
|
||||
|
@ -507,15 +510,14 @@ NSString *const SignalsViewControllerSegueShowIncomingCall = @"ShowIncomingCallS
|
|||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
MessagesViewController *mvc = [[MessagesViewController alloc] initWithNibName:@"MessagesViewController"
|
||||
bundle:nil];
|
||||
[mvc configureForThread:thread
|
||||
keyboardOnViewAppearing:keyboardOnViewAppearing
|
||||
callOnViewAppearing:callOnViewAppearing];
|
||||
|
||||
if (self.presentedViewController) {
|
||||
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
|
||||
}
|
||||
[self.navigationController popToRootViewControllerAnimated:YES];
|
||||
|
||||
[mvc configureForThread:thread
|
||||
keyboardOnViewAppearing:keyboardOnViewAppearing
|
||||
callOnViewAppearing:callOnViewAppearing];
|
||||
[self.navigationController pushViewController:mvc animated:YES];
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
// Created by Michael Kirk on 11/30/16.
|
||||
// Copyright © 2016 Open Whisper Systems. All rights reserved.
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
|
||||
@objc(OWSNoSignalContactsView)
|
||||
@IBDesignable class NoSignalContactsView: UIView {
|
||||
static let nibName = "NoSignalContactsView"
|
||||
|
||||
@IBOutlet var headingLabel: UILabel!
|
||||
@IBOutlet var subheadingLabel: UILabel!
|
||||
@IBOutlet var inviteButton: UIButton!
|
||||
|
||||
var view: UIView!
|
||||
|
||||
// Mark: - Initialize
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
super.init(coder: aDecoder)
|
||||
commonInit()
|
||||
}
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
commonInit()
|
||||
}
|
||||
|
||||
func commonInit() {
|
||||
xibSetup()
|
||||
localizeStrings()
|
||||
}
|
||||
|
||||
func xibSetup() {
|
||||
view = loadViewFromNib()
|
||||
|
||||
// use bounds not frame or it'll be offset
|
||||
view.frame = bounds
|
||||
|
||||
// Make the view stretch with containing view
|
||||
view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
||||
// Adding custom subview on top of our view (over any custom drawing > see note below)
|
||||
addSubview(view)
|
||||
}
|
||||
|
||||
func localizeStrings() {
|
||||
headingLabel.text = NSLocalizedString("EMPTY_CONTACTS_LABEL_LINE1", comment:"Full width label displayed when attempting to compose message")
|
||||
subheadingLabel.text = NSLocalizedString("EMPTY_CONTACTS_LABEL_LINE2", comment:"Full width label displayed when attempting to compose message")
|
||||
let inviteText = NSLocalizedString("INVITE_FRIENDS_CONTACT_TABLE_BUTTON", comment:"Text for button at the top of the contact picker")
|
||||
inviteButton.setTitle(inviteText, for: .normal)
|
||||
}
|
||||
|
||||
func loadViewFromNib() -> UIView {
|
||||
let bundle = Bundle(for: type(of:self))
|
||||
let nib = UINib(nibName: NoSignalContactsView.nibName, bundle: bundle)
|
||||
let view = nib.instantiate(withOwner:self, options: nil)[0] as! UIView
|
||||
|
||||
return view
|
||||
}
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11542" systemVersion="15G1108" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
|
||||
<device id="retina3_5" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11524"/>
|
||||
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="OWSNoSignalContactsView">
|
||||
<connections>
|
||||
<outlet property="headingLabel" destination="ple-3h-S8P" id="usA-UI-6Cv"/>
|
||||
<outlet property="inviteButton" destination="Jfc-NG-all" id="uSx-BP-zWV"/>
|
||||
<outlet property="subheadingLabel" destination="cT2-0C-Dat" id="XEh-l0-Har"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="iN0-l3-epB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="None of your contacts have Signal." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="ple-3h-S8P">
|
||||
<rect key="frame" x="8" y="196" width="304" height="18"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Why don't you invite someone?" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="cT2-0C-Dat">
|
||||
<rect key="frame" x="8" y="216" width="304" height="17"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.31764705882352939" green="0.31764705882352939" blue="0.31764705882352939" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Jfc-NG-all">
|
||||
<rect key="frame" x="8" y="357" width="304" height="33"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
|
||||
<state key="normal" title="Invite Your Friends">
|
||||
<color key="titleColor" red="0.09412795243864841" green="0.43645224658557435" blue="0.71380208333333339" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleAspectFit" image="uiEmptyContact" translatesAutoresizingMaskIntoConstraints="NO" id="fKk-9P-Vfe">
|
||||
<rect key="frame" x="106" y="56" width="108" height="108"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="fKk-9P-Vfe" secondAttribute="height" multiplier="1:1" id="ZhY-sY-cRx"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="cT2-0C-Dat" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" constant="-16" id="1Zm-pA-q3f"/>
|
||||
<constraint firstItem="ple-3h-S8P" firstAttribute="top" secondItem="fKk-9P-Vfe" secondAttribute="bottom" constant="32" id="7Lb-ko-XsU"/>
|
||||
<constraint firstItem="cT2-0C-Dat" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leadingMargin" id="F7C-3A-Bfq"/>
|
||||
<constraint firstItem="ple-3h-S8P" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leadingMargin" id="HpA-Re-sfp"/>
|
||||
<constraint firstItem="Jfc-NG-all" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="I8m-CS-7Rn"/>
|
||||
<constraint firstItem="cT2-0C-Dat" firstAttribute="top" secondItem="ple-3h-S8P" secondAttribute="bottom" constant="2" id="NfJ-MK-gqj"/>
|
||||
<constraint firstItem="Jfc-NG-all" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leadingMargin" id="P1B-My-dq4"/>
|
||||
<constraint firstItem="fKk-9P-Vfe" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="Tan-qQ-d1V"/>
|
||||
<constraint firstItem="fKk-9P-Vfe" firstAttribute="width" secondItem="iN0-l3-epB" secondAttribute="width" multiplier="1:3" constant="1" id="ZPp-oI-RGS"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="ple-3h-S8P" secondAttribute="trailing" id="eWz-EA-vVw"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="cT2-0C-Dat" secondAttribute="trailing" id="v9E-h7-SBE"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="Jfc-NG-all" secondAttribute="trailing" id="vN6-kC-OKO"/>
|
||||
<constraint firstItem="Jfc-NG-all" firstAttribute="top" secondItem="cT2-0C-Dat" secondAttribute="bottom" constant="124" id="zlH-k5-wED"/>
|
||||
</constraints>
|
||||
<point key="canvasLocation" x="34.5" y="100.5"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="uiEmptyContact" width="227" height="227"/>
|
||||
</resources>
|
||||
</document>
|
|
@ -92,7 +92,7 @@
|
|||
"ATTACHMENT_DOWNLOADING_STATUS_FAILED" = "Failed. Tap to retry.";
|
||||
|
||||
/* Status label when an attachment is currently downloading */
|
||||
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Downloading...";
|
||||
"ATTACHMENT_DOWNLOADING_STATUS_IN_PROGRESS" = "Downloading…";
|
||||
|
||||
/* Status label when an attachment is enqueued, but hasn't yet started downloading */
|
||||
"ATTACHMENT_DOWNLOADING_STATUS_QUEUED" = "Queued";
|
||||
|
@ -551,13 +551,13 @@
|
|||
"HOURS_TIME_AMOUNT" = "%u hours";
|
||||
|
||||
/* Call setup status label */
|
||||
"IN_CALL_CONNECTING" = "Connecting...";
|
||||
"IN_CALL_CONNECTING" = "Connecting…";
|
||||
|
||||
/* Call setup status label */
|
||||
"IN_CALL_RINGING" = "Ringing...";
|
||||
"IN_CALL_RINGING" = "Ringing…";
|
||||
|
||||
/* Call setup status label */
|
||||
"IN_CALL_SECURING" = "Answered. Securing...";
|
||||
"IN_CALL_SECURING" = "Answered. Securing…";
|
||||
|
||||
/* Call setup status label */
|
||||
"IN_CALL_TALKING" = "Secured. Active.";
|
||||
|
@ -574,7 +574,7 @@
|
|||
/* No comment provided by engineer. */
|
||||
"INCOMING_INCOMPLETE_CALL" = "Incomplete incoming call from";
|
||||
|
||||
/* Text for button at the top of the contact picker */
|
||||
/* Label for the cell that presents the 'invite contacts' workflow. */
|
||||
"INVITE_FRIENDS_CONTACT_TABLE_BUTTON" = "Invite Friends to Signal";
|
||||
|
||||
/* Search */
|
||||
|
@ -628,12 +628,6 @@
|
|||
/* table cell label in conversation settings */
|
||||
"LIST_GROUP_MEMBERS_ACTION" = "List Group Members";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"LOADING_CONTACTS_LABEL_LINE1" = "Loading your contacts.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"LOADING_CONTACTS_LABEL_LINE2" = "Sit tight.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"LOGGING_SECTION" = "Logging";
|
||||
|
||||
|
@ -662,7 +656,7 @@
|
|||
"MESSAGE_STATUS_SENT" = "Sent";
|
||||
|
||||
/* message footer while attachment is uploading */
|
||||
"MESSAGE_STATUS_UPLOADING" = "Uploading...";
|
||||
"MESSAGE_STATUS_UPLOADING" = "Uploading…";
|
||||
|
||||
/* A label for audio attachments of unknown type. */
|
||||
"MESSAGES_VIEW_AUDIO_TYPE_GENERIC" = "Audio";
|
||||
|
@ -744,11 +738,11 @@
|
|||
/* No comment provided by engineer. */
|
||||
"NETWORK_STATUS_TEXT" = "You can check your network status by looking at the colored bar above your inbox.";
|
||||
|
||||
/* Text for button to start a new conversation with a non-contact */
|
||||
"NEW_CONVERSATION_FOR_NON_CONTACT_FORMAT" = "New conversation with %@";
|
||||
/* A label the cell that lets you add a new member to a group. */
|
||||
"NEW_CONVERSATION_FIND_BY_PHONE_NUMBER" = "Find by Phone Number";
|
||||
|
||||
/* A label for the cell that lets you add a new non-contact member to a group. */
|
||||
"NEW_GROUP_ADD_NON_CONTACT" = "Add by phone number…";
|
||||
"NEW_GROUP_ADD_NON_CONTACT" = "Add by phone number";
|
||||
|
||||
/* Action Sheet title prompting the user for a group avatar */
|
||||
"NEW_GROUP_ADD_PHOTO_ACTION" = "Set Group Photo";
|
||||
|
@ -774,6 +768,12 @@
|
|||
/* The alert title if user tries to exit the new group view without saving changes. */
|
||||
"NEW_GROUP_VIEW_UNSAVED_CHANGES_TITLE" = "Unsaved Changes";
|
||||
|
||||
/* A label for the 'add by phone number' button in the 'new non-contact conversation' view */
|
||||
"NEW_NONCONTACT_CONVERSATION_VIEW_BUTTON" = "Search";
|
||||
|
||||
/* Title for the 'new non-contact conversation' view. */
|
||||
"NEW_NONCONTACT_CONVERSATION_VIEW_TITLE" = "Find User";
|
||||
|
||||
/* Label for a button that lets users search for contacts by phone number */
|
||||
"NO_CONTACTS_SEARCH_BY_PHONE_NUMBER" = "Find Contacts by Phone Number";
|
||||
|
||||
|
@ -1028,7 +1028,7 @@
|
|||
"SEND_INVITE_SUCCESS" = "You've invited your friend to use Signal!";
|
||||
|
||||
/* Text for button to send a Signal invite via SMS. %@ is placeholder for the receipient's phone number. */
|
||||
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Send Invite via SMS to: %@";
|
||||
"SEND_INVITE_VIA_SMS_BUTTON_FORMAT" = "Invite via SMS: %@";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SEND_SMS_CONFIRM_TITLE" = "Invite a friend via insecure SMS?";
|
||||
|
@ -1063,6 +1063,9 @@
|
|||
/* A label that indicates the user has no Signal contacts. */
|
||||
"SETTINGS_BLOCK_LIST_NO_CONTACTS" = "You have no contacts on Signal.";
|
||||
|
||||
/* A label that indicates the user's search has no matching results. */
|
||||
"SETTINGS_BLOCK_LIST_NO_SEARCH_RESULTS" = "No Search Results";
|
||||
|
||||
/* Label for the block list section of the settings view */
|
||||
"SETTINGS_BLOCK_LIST_TITLE" = "Blocked";
|
||||
|
||||
|
@ -1091,7 +1094,7 @@
|
|||
"SETTINGS_DELETE_ACCOUNT_BUTTON" = "Delete Account";
|
||||
|
||||
/* Alert message before user confirms clearing history */
|
||||
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all your history (messages, attachments, call history ...) ? This action cannot be reverted.";
|
||||
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION" = "Are you sure you want to delete all your history (messages, attachments, call history …) ? This action cannot be reverted.";
|
||||
|
||||
/* No comment provided by engineer. */
|
||||
"SETTINGS_DELETE_HISTORYLOG_CONFIRMATION_BUTTON" = "I'm sure.";
|
||||
|
|
Loading…
Reference in New Issue