Compare commits
14 commits
master
...
old/Update
Author | SHA1 | Date | |
---|---|---|---|
569afac883 | |||
d077bde41a | |||
0e4cee2887 | |||
ecf3d733b6 | |||
453b8dc2b4 | |||
d6b02316f5 | |||
8c177b260a | |||
d897d02d8c | |||
b029174be5 | |||
f565c5afcf | |||
a5400ffcd2 | |||
4d82de8eef | |||
a83888cb66 | |||
0d47f80db3 |
|
@ -16,6 +16,7 @@
|
|||
3759638626F7317D00831F4C /* Account.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3759638826F7317D00831F4C /* Account.storyboard */; };
|
||||
3759638D26F7320F00831F4C /* MIX.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3759638F26F7320F00831F4C /* MIX.storyboard */; };
|
||||
3759A58C26F8C7CC002987B2 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3759A58E26F8C7CC002987B2 /* Localizable.strings */; };
|
||||
3763450E272C6CEF000BC01F /* CallsSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3763450D272C6CEF000BC01F /* CallsSettingsViewController.swift */; };
|
||||
3776C43526EDC5F00047750B /* MessageStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3776C43426EDC5F00047750B /* MessageStyling.swift */; };
|
||||
3795F92426FB69370067361A /* BartyCrouch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3795F92326FB69370067361A /* BartyCrouch.swift */; };
|
||||
3797D5BD26E9E42E0091DAF8 /* AvatarColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3797D5BC26E9E42E0091DAF8 /* AvatarColors.swift */; };
|
||||
|
@ -334,6 +335,7 @@
|
|||
3759639426F7481200831F4C /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Base; path = Base.lproj/Info.plist; sourceTree = "<group>"; };
|
||||
3759A58D26F8C7CC002987B2 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
3759A58F26F8C7CF002987B2 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
3763450D272C6CEF000BC01F /* CallsSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallsSettingsViewController.swift; sourceTree = "<group>"; };
|
||||
3776C43426EDC5F00047750B /* MessageStyling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageStyling.swift; sourceTree = "<group>"; };
|
||||
3795F92326FB69370067361A /* BartyCrouch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BartyCrouch.swift; sourceTree = "<group>"; };
|
||||
3797D5BC26E9E42E0091DAF8 /* AvatarColors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarColors.swift; sourceTree = "<group>"; };
|
||||
|
@ -767,26 +769,27 @@
|
|||
FE507A0A1CDB7B3B001A015C /* settings */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FE6545611E9E7FDE006A14AC /* AccountDomainTableViewCell.swift */,
|
||||
FE17808C23EB4C7F00A1EA76 /* AccountQRCodeController.swift */,
|
||||
FEF80DB11CDBBBFE005645A7 /* AccountSettingsViewController.swift */,
|
||||
FE507A0B1CDB7B3B001A015C /* AccountTableViewCell.swift */,
|
||||
FE507A0C1CDB7B3B001A015C /* AddAccountController.swift */,
|
||||
FE507A0D1CDB7B3B001A015C /* SettingsViewController.swift */,
|
||||
FEF80DB11CDBBBFE005645A7 /* AccountSettingsViewController.swift */,
|
||||
FE80BDAA1D953FC4001914B0 /* SetupViewController.swift */,
|
||||
FE65455F1E9E7B85006A14AC /* RegisterAccountController.swift */,
|
||||
FE6545611E9E7FDE006A14AC /* AccountDomainTableViewCell.swift */,
|
||||
FE6545631E9E8B67006A14AC /* ServerSelectorTableViewCell.swift */,
|
||||
FEDC678F238B05E4005C0FAB /* BlockedContactsController.swift */,
|
||||
FE9E136C1F25F5F7005C0EE5 /* ChatSettingsViewController.swift */,
|
||||
FE9E136E1F26049A005C0EE5 /* NotificationSettingsViewController.swift */,
|
||||
FE9E13701F2606E9005C0EE5 /* ContactsSettingsViewController.swift */,
|
||||
FE00157E2019090300490340 /* ExperimentalSettingsViewController.swift */,
|
||||
FE0E31112537288A0030F8C5 /* MediaSettingsVIewController.swift */,
|
||||
FE9E136E1F26049A005C0EE5 /* NotificationSettingsViewController.swift */,
|
||||
FE719E7D2274D20D007CEEC9 /* OMEMOFingerprintsController.swift */,
|
||||
E963721126D79D3A00332482 /* PrivacyPolicyTableViewCell.swift */,
|
||||
FE65455F1E9E7B85006A14AC /* RegisterAccountController.swift */,
|
||||
FE2809802167CE18002F5BD0 /* server_features_list.xml */,
|
||||
FE2809822167CF1B002F5BD0 /* ServerFeaturesViewController.swift */,
|
||||
FE719E7D2274D20D007CEEC9 /* OMEMOFingerprintsController.swift */,
|
||||
FEDC678F238B05E4005C0FAB /* BlockedContactsController.swift */,
|
||||
FE17808C23EB4C7F00A1EA76 /* AccountQRCodeController.swift */,
|
||||
FE0E31112537288A0030F8C5 /* MediaSettingsVIewController.swift */,
|
||||
E963721126D79D3A00332482 /* PrivacyPolicyTableViewCell.swift */,
|
||||
FE6545631E9E8B67006A14AC /* ServerSelectorTableViewCell.swift */,
|
||||
FE507A0D1CDB7B3B001A015C /* SettingsViewController.swift */,
|
||||
FE80BDAA1D953FC4001914B0 /* SetupViewController.swift */,
|
||||
373A801F271063E1000E50FE /* TelephonyProviderViewController.swift */,
|
||||
3763450D272C6CEF000BC01F /* CallsSettingsViewController.swift */,
|
||||
);
|
||||
path = settings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -1448,6 +1451,7 @@
|
|||
373A8020271063E1000E50FE /* TelephonyProviderViewController.swift in Sources */,
|
||||
FE3E38862428C21100D3A8E8 /* OSLog.swift in Sources */,
|
||||
FECEF29423B7933A007EC323 /* MetadataCache.swift in Sources */,
|
||||
3763450E272C6CEF000BC01F /* CallsSettingsViewController.swift in Sources */,
|
||||
E9D384B426CA95FF009BEAF3 /* UIDeviceExtension.swift in Sources */,
|
||||
FEB62C501DA80956001500D5 /* AvatarStore.swift in Sources */,
|
||||
FE7D293423B919FF001A877D /* DownloadManager.swift in Sources */,
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
"repositoryURL": "https://github.com/tigase/tigase-swift",
|
||||
"state": {
|
||||
"branch": null,
|
||||
"revision": "028e297fa4de25ac552b9947a8ccd29ade7001e7",
|
||||
"version": "2.1.2"
|
||||
"revision": "d3953dcea80010ad433fa96d7ca6b989bf58850c",
|
||||
"version": "2.1.3"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -776,14 +776,14 @@
|
|||
<scene sceneID="7R8-sh-AnU">
|
||||
<objects>
|
||||
<tableViewController id="WDE-Vb-oKK" customClass="RosterItemEditViewController" customModule="Snikket" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="Ock-Af-3IY">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="Ock-Af-3IY">
|
||||
<rect key="frame" x="0.0" y="0.0" width="428" height="926"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" systemColor="groupTableViewBackgroundColor"/>
|
||||
<sections>
|
||||
<tableViewSection headerTitle="Account" id="Mfv-HJ-QDO">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="mk1-zp-AU3">
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" id="mk1-zp-AU3">
|
||||
<rect key="frame" x="0.0" y="49" width="428" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="mk1-zp-AU3" id="Da1-kS-KYt">
|
||||
|
@ -808,7 +808,7 @@
|
|||
</tableViewSection>
|
||||
<tableViewSection headerTitle="JID" id="Qgj-eQ-geg">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="ubC-3x-1ej">
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" id="ubC-3x-1ej">
|
||||
<rect key="frame" x="0.0" y="142.66666603088379" width="428" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ubC-3x-1ej" id="6FY-Rq-hWY">
|
||||
|
@ -833,7 +833,7 @@
|
|||
</tableViewSection>
|
||||
<tableViewSection headerTitle="Name" id="Kfl-J5-hdD">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="bnU-C3-Ei1">
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" id="bnU-C3-Ei1">
|
||||
<rect key="frame" x="0.0" y="236.33333206176758" width="428" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="bnU-C3-Ei1" id="sWs-wY-Vy8">
|
||||
|
@ -858,7 +858,7 @@
|
|||
</tableViewSection>
|
||||
<tableViewSection headerTitle="PRESENCE" id="Q28-Ig-9NP">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="yky-H4-cbk">
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" id="yky-H4-cbk">
|
||||
<rect key="frame" x="0.0" y="329.99999809265137" width="428" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="yky-H4-cbk" id="Qga-yz-bXa">
|
||||
|
@ -884,7 +884,7 @@
|
|||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="GLY-Pk-gl9">
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" id="GLY-Pk-gl9">
|
||||
<rect key="frame" x="0.0" y="373.99999809265137" width="428" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="GLY-Pk-gl9" id="P7U-6w-pcx">
|
||||
|
@ -912,6 +912,37 @@
|
|||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
<tableViewSection headerTitle="Invite" id="dib-YA-Eiz">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" id="pth-Xm-NXb">
|
||||
<rect key="frame" x="0.0" y="467.66666412353516" width="428" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="pth-Xm-NXb" id="EmN-0E-Hpp">
|
||||
<rect key="frame" x="0.0" y="0.0" width="428" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<textField opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Send Invitation Link" placeholder="Enter contact name" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Rg7-YE-y8H">
|
||||
<rect key="frame" x="20" y="0.0" width="388" height="44"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
</textField>
|
||||
<activityIndicatorView hidden="YES" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" hidesWhenStopped="YES" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="FPK-6B-DCN">
|
||||
<rect key="frame" x="378" y="12" width="20" height="20"/>
|
||||
<color key="color" name="AddToContactsBar"/>
|
||||
</activityIndicatorView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="FPK-6B-DCN" firstAttribute="centerY" secondItem="EmN-0E-Hpp" secondAttribute="centerY" id="HlI-Sf-kPN"/>
|
||||
<constraint firstItem="Rg7-YE-y8H" firstAttribute="leading" secondItem="EmN-0E-Hpp" secondAttribute="leadingMargin" id="Yid-O7-fNs"/>
|
||||
<constraint firstItem="Rg7-YE-y8H" firstAttribute="top" secondItem="EmN-0E-Hpp" secondAttribute="top" id="hll-jG-K6h"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="Rg7-YE-y8H" secondAttribute="trailing" id="iO2-ER-q2P"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="FPK-6B-DCN" secondAttribute="trailing" constant="10" id="jQD-5E-6Ad"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Rg7-YE-y8H" secondAttribute="bottom" id="rnb-WT-t71"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
</sections>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="WDE-Vb-oKK" id="52x-2u-5zh"/>
|
||||
|
@ -932,6 +963,7 @@
|
|||
</navigationItem>
|
||||
<connections>
|
||||
<outlet property="accountTextField" destination="gXY-yq-Y2K" id="HAo-5R-FQQ"/>
|
||||
<outlet property="invitationLinkIndicator" destination="FPK-6B-DCN" id="zl9-LQ-OPw"/>
|
||||
<outlet property="jidTextField" destination="BM3-28-huR" id="rnA-hS-bcu"/>
|
||||
<outlet property="nameTextField" destination="OGf-mX-8z3" id="tdd-eS-Ybc"/>
|
||||
<outlet property="receivePresenceUpdatesSwitch" destination="QIs-qT-dLK" id="y20-Tc-yVK"/>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="18122" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<device id="retina6_1" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="18093"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19144"/>
|
||||
<capability name="Named colors" minToolsVersion="9.0"/>
|
||||
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
|
@ -485,9 +485,36 @@
|
|||
<segue destination="FGQ-GL-dYt" kind="show" id="gsA-2D-Fg6"/>
|
||||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="aboutSettingsViewCall" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="AboutSettingsViewCell" id="00j-hl-4km" userLabel="AboutSettingsViewCall">
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="CallsSettingsViewCell" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="CallsSettingsViewCell" id="k4E-By-FcW">
|
||||
<rect key="frame" x="0.0" y="445.5" width="414" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="k4E-By-FcW" id="u2g-bv-lyd">
|
||||
<rect key="frame" x="0.0" y="0.0" width="384.5" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Calls" textAlignment="natural" lineBreakMode="wordWrap" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wfP-Tn-CDA">
|
||||
<rect key="frame" x="20" y="11" width="356.5" height="22"/>
|
||||
<accessibility key="accessibilityConfiguration" identifier="accountName"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="wfP-Tn-CDA" firstAttribute="leading" secondItem="u2g-bv-lyd" secondAttribute="leadingMargin" id="0bb-UP-oUQ"/>
|
||||
<constraint firstAttribute="bottomMargin" secondItem="wfP-Tn-CDA" secondAttribute="bottom" id="7Ss-yP-q7l"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="wfP-Tn-CDA" secondAttribute="trailing" id="KAy-LK-qLI"/>
|
||||
<constraint firstItem="wfP-Tn-CDA" firstAttribute="top" secondItem="u2g-bv-lyd" secondAttribute="topMargin" id="SJl-yF-XMB"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<accessibility key="accessibilityConfiguration" identifier="aboutSettingsViewCall"/>
|
||||
<connections>
|
||||
<segue destination="4VG-XN-BdZ" kind="show" id="9J1-2I-oGz"/>
|
||||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="aboutSettingsViewCall" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="AboutSettingsViewCell" id="00j-hl-4km" userLabel="AboutSettingsViewCall">
|
||||
<rect key="frame" x="0.0" y="489.5" width="414" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="00j-hl-4km" id="BKo-8a-1ti">
|
||||
<rect key="frame" x="0.0" y="0.0" width="384.5" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
|
@ -1032,7 +1059,7 @@
|
|||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<prototypes>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="BlockedContactTableViewCell" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="BlockedContactTableViewCell" textLabel="7tC-Eh-kK5" detailTextLabel="fB5-hb-x8m" style="IBUITableViewCellStyleSubtitle" id="mrW-yD-uKa">
|
||||
<rect key="frame" x="0.0" y="24.5" width="414" height="55.5"/>
|
||||
<rect key="frame" x="0.0" y="44.5" width="414" height="55.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="mrW-yD-uKa" id="Ozm-Qg-ImQ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="55.5"/>
|
||||
|
@ -1056,7 +1083,7 @@
|
|||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" restorationIdentifier="BlockedContactTableViewEmptyCell" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" reuseIdentifier="BlockedContactTableViewEmptyCell" textLabel="Aki-gv-qus" style="IBUITableViewCellStyleDefault" id="ycT-Zz-uWc">
|
||||
<rect key="frame" x="0.0" y="80" width="414" height="43.5"/>
|
||||
<rect key="frame" x="0.0" y="100" width="414" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="ycT-Zz-uWc" id="rbP-vZ-Xsn">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="43.5"/>
|
||||
|
@ -1136,7 +1163,7 @@
|
|||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="h70-11-ntf" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="2689" y="1685"/>
|
||||
<point key="canvasLocation" x="2570" y="1797"/>
|
||||
</scene>
|
||||
<!--Experimental Settings Scene-->
|
||||
<scene sceneID="4hq-he-9by">
|
||||
|
@ -1319,7 +1346,7 @@
|
|||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Tlr-f3-jiC" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1839" y="1742"/>
|
||||
<point key="canvasLocation" x="1865" y="1797"/>
|
||||
</scene>
|
||||
<!--AboutController-->
|
||||
<scene sceneID="5Mf-Za-3AY">
|
||||
|
@ -1331,9 +1358,63 @@
|
|||
</objects>
|
||||
<point key="canvasLocation" x="2050" y="2202"/>
|
||||
</scene>
|
||||
<!--Calls settings-->
|
||||
<scene sceneID="hhD-HQ-XQ1">
|
||||
<objects>
|
||||
<tableViewController title="Notification settings" id="4VG-XN-BdZ" userLabel="Calls settings" customClass="CallsSettingsViewController" customModule="Snikket" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="1sU-wb-PeQ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" systemColor="groupTableViewBackgroundColor"/>
|
||||
<sections>
|
||||
<tableViewSection headerTitle="TELEPHONY" id="v8T-iN-1IT">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="AddToSystemCallHistoryCell" selectionStyle="default" indentationWidth="10" reuseIdentifier="AddToSystemCallHistoryCell" id="I8r-iy-q2W" userLabel="AddToSystemCallHistoryCell">
|
||||
<rect key="frame" x="0.0" y="49.5" width="414" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="I8r-iy-q2W" id="NJh-pm-678">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Add to system call history" textAlignment="natural" lineBreakMode="wordWrap" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ngk-vc-zET">
|
||||
<rect key="frame" x="20" y="12" width="195.5" height="20.5"/>
|
||||
<accessibility key="accessibilityConfiguration" identifier="accountName"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="UL8-Yi-SF4">
|
||||
<rect key="frame" x="345" y="6.5" width="51" height="31"/>
|
||||
<connections>
|
||||
<action selector="valueChanged:" destination="4VG-XN-BdZ" eventType="valueChanged" id="biy-dX-JX4"/>
|
||||
</connections>
|
||||
</switch>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="leadingMargin" secondItem="Ngk-vc-zET" secondAttribute="leading" id="AJa-Ff-gti"/>
|
||||
<constraint firstItem="Ngk-vc-zET" firstAttribute="centerY" secondItem="NJh-pm-678" secondAttribute="centerY" id="OmK-Xl-nOm"/>
|
||||
<constraint firstItem="UL8-Yi-SF4" firstAttribute="centerY" secondItem="NJh-pm-678" secondAttribute="centerY" id="SYD-ix-fy4"/>
|
||||
<constraint firstItem="UL8-Yi-SF4" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="Ngk-vc-zET" secondAttribute="trailing" constant="8" id="Xkk-ZF-rBn"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="UL8-Yi-SF4" secondAttribute="trailing" id="aFH-qx-7yp"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<accessibility key="accessibilityConfiguration" identifier="AddToSystemCallHistoryCell"/>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
</sections>
|
||||
</tableView>
|
||||
<navigationItem key="navigationItem" id="b0W-ey-5kA"/>
|
||||
<connections>
|
||||
<outlet property="callsSwitch" destination="UL8-Yi-SF4" id="Z8U-Y8-fjZ"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="6ji-YQ-XOK" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="445" y="1797"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<inferredMetricsTieBreakers>
|
||||
<segue reference="TOL-19-lPZ"/>
|
||||
<segue reference="cof-sd-KJv"/>
|
||||
</inferredMetricsTieBreakers>
|
||||
<resources>
|
||||
<namedColor name="chatslistBackground">
|
||||
|
|
|
@ -76,6 +76,31 @@ class ChatViewController : BaseChatViewControllerWithDataSourceAndContextMenuAnd
|
|||
}
|
||||
}
|
||||
|
||||
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
|
||||
// scrollViewShouldScrollToTop will not get called if tableview is already at top
|
||||
guard var contentOffset = self.conversationLogController?.tableView.contentOffset else { return }
|
||||
if contentOffset.y == 0 {
|
||||
contentOffset.y = 1
|
||||
self.conversationLogController?.tableView.setContentOffset(contentOffset, animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool {
|
||||
scrollToTop()
|
||||
return false
|
||||
}
|
||||
|
||||
func scrollToTop() {
|
||||
if let count = self.conversationLogController?.dataSource.count, count > 0 {
|
||||
var currentRow = self.conversationLogController?.tableView.indexPathsForVisibleRows?.first?.row ?? 0
|
||||
currentRow = count > currentRow + 40 ? currentRow + 40 : count
|
||||
let indexPath = IndexPath(row: currentRow - 1, section: 0)
|
||||
DispatchQueue.main.async {
|
||||
self.conversationLogController?.tableView.scrollToRow(at: indexPath, at: .none, animated: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func setupViews() {
|
||||
let recognizer = UITapGestureRecognizer(target: self, action: #selector(ChatViewController.showBuddyInfo));
|
||||
self.titleView.isUserInteractionEnabled = true;
|
||||
|
@ -97,7 +122,10 @@ class ChatViewController : BaseChatViewControllerWithDataSourceAndContextMenuAnd
|
|||
|
||||
|
||||
@IBAction func scrollToBottomTapped(_ sender: UIButton) {
|
||||
self.conversationLogController?.tableView.setContentOffset(.zero, animated: true)
|
||||
self.conversationLogController?.tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: .none, animated: true)
|
||||
DispatchQueue.main.asyncAfter(deadline: .now()+0.5) {
|
||||
self.conversationLogController?.tableView.setContentOffset(CGPoint(x: 0, y: 1), animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
@IBAction func rejectSubscriptionTapped(_ sender: Any) {
|
||||
|
|
|
@ -45,7 +45,7 @@ class ConversationLogController: UIViewController, ChatViewDataSourceDelegate {
|
|||
tableView.rowHeight = UITableView.automaticDimension;
|
||||
tableView.estimatedRowHeight = 160.0;
|
||||
tableView.separatorStyle = .none;
|
||||
tableView.scrollsToTop = false
|
||||
tableView.scrollsToTop = true
|
||||
tableView.transform = dataSource.inverted ? CGAffineTransform(a: 1, b: 0, c: 0, d: -1, tx: 0, ty: 0) : CGAffineTransform.identity;
|
||||
|
||||
if let refreshControl = self.refreshControl {
|
||||
|
@ -72,6 +72,9 @@ class ConversationLogController: UIViewController, ChatViewDataSourceDelegate {
|
|||
} else {
|
||||
self.toggleNoMessagesLabel(show: false)
|
||||
}
|
||||
DispatchQueue.main.async {
|
||||
self.tableView.setContentOffset(CGPoint(x: 0, y: 1), animated: false)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -87,7 +90,10 @@ class ConversationLogController: UIViewController, ChatViewDataSourceDelegate {
|
|||
label.sizeToFit()
|
||||
self.tableView.backgroundView = label
|
||||
} else {
|
||||
self.tableView.backgroundView = nil
|
||||
DispatchQueue.main.async {
|
||||
self.tableView.backgroundView = nil
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,6 +101,9 @@ class ConversationLogController: UIViewController, ChatViewDataSourceDelegate {
|
|||
guard rows.count > 0 else {
|
||||
return;
|
||||
}
|
||||
if shouldScroll, tableView.contentOffset.y == 1 {
|
||||
tableView.setContentOffset(.zero, animated: false)
|
||||
}
|
||||
if dataSource.count == rows.count && rows.count > 1 {
|
||||
tableView.reloadData();
|
||||
} else {
|
||||
|
@ -105,8 +114,12 @@ class ConversationLogController: UIViewController, ChatViewDataSourceDelegate {
|
|||
}
|
||||
if shouldScroll && rows.contains(0) && (tableView.indexPathsForVisibleRows?.contains(firstRowIndexPath) ?? false) {
|
||||
print("added items at:", rows, "scrolling to:", firstRowIndexPath);
|
||||
tableView.scrollToRow(at: firstRowIndexPath, at: .none, animated: true)
|
||||
tableView.scrollToRow(at: firstRowIndexPath, at: .bottom, animated: true)
|
||||
DispatchQueue.main.asyncAfter(deadline: .now()+0.2) {
|
||||
self.tableView.setContentOffset(CGPoint(x: 0, y: 1), animated: false)
|
||||
}
|
||||
}
|
||||
toggleNoMessagesLabel(show: false)
|
||||
markAsReadUpToNewestVisibleRow();
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
/* Class = "UILabel"; text = "Message Archiving"; ObjectID = "Ckp-Mb-v0c"; */
|
||||
"Ckp-Mb-v0c.text" = "Message Archiving";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Invite"; ObjectID = "dib-YA-Eiz"; */
|
||||
"dib-YA-Eiz.headerTitle" = "Invite";
|
||||
|
||||
/* Class = "UIBarButtonItem"; title = "Back"; ObjectID = "Dx3-QU-3cN"; */
|
||||
"Dx3-QU-3cN.title" = "Back";
|
||||
|
||||
|
@ -82,6 +85,12 @@
|
|||
/* Class = "UILabel"; text = "Chat with"; ObjectID = "Qr0-8H-IJq"; */
|
||||
"Qr0-8H-IJq.text" = "Chat with";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Enter contact name"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.placeholder" = "Enter contact name";
|
||||
|
||||
/* Class = "UITextField"; text = "Send Invitation Link"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.text" = "Send Invitation Link";
|
||||
|
||||
/* Class = "UINavigationItem"; title = "Contacts"; ObjectID = "SEz-IM-IWL"; */
|
||||
"SEz-IM-IWL.title" = "Contacts";
|
||||
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
/* Class = "UILabel"; text = "About"; ObjectID = "3vM-ad-4ap"; */
|
||||
"3vM-ad-4ap.text" = "About";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Notification settings"; ObjectID = "4VG-XN-BdZ"; */
|
||||
"4VG-XN-BdZ.title" = "Notification settings";
|
||||
|
||||
/* Class = "UILabel"; text = "Account name"; ObjectID = "7ho-Mu-thd"; */
|
||||
"7ho-Mu-thd.text" = "Account name";
|
||||
|
||||
|
@ -109,6 +112,9 @@
|
|||
/* Class = "UILabel"; text = "Blocked contacts"; ObjectID = "MJ0-kw-1Kl"; */
|
||||
"MJ0-kw-1Kl.text" = "Blocked contacts";
|
||||
|
||||
/* Class = "UILabel"; text = "Add to system call history"; ObjectID = "Ngk-vc-zET"; */
|
||||
"Ngk-vc-zET.text" = "Add to system call history";
|
||||
|
||||
/* Class = "UILabel"; text = "\"Hidden\" group"; ObjectID = "P82-B8-768"; */
|
||||
"P82-B8-768.text" = "\"Hidden\" group";
|
||||
|
||||
|
@ -130,6 +136,12 @@
|
|||
/* Class = "UILabel"; text = "20 MB"; ObjectID = "UuL-li-3gA"; */
|
||||
"UuL-li-3gA.text" = "20 MB";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "TELEPHONY"; ObjectID = "v8T-iN-1IT"; */
|
||||
"v8T-iN-1IT.headerTitle" = "TELEPHONY";
|
||||
|
||||
/* Class = "UILabel"; text = "Calls"; ObjectID = "wfP-Tn-CDA"; */
|
||||
"wfP-Tn-CDA.text" = "Calls";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Contacts settings"; ObjectID = "xRS-v5-T5C"; */
|
||||
"xRS-v5-T5C.title" = "Contacts settings";
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
/* Class = "UILabel"; text = "Message Archiving"; ObjectID = "Ckp-Mb-v0c"; */
|
||||
"Ckp-Mb-v0c.text" = "Message Archiving";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Invite"; ObjectID = "dib-YA-Eiz"; */
|
||||
"dib-YA-Eiz.headerTitle" = "Invite";
|
||||
|
||||
/* Class = "UIBarButtonItem"; title = "Back"; ObjectID = "Dx3-QU-3cN"; */
|
||||
"Dx3-QU-3cN.title" = "Back";
|
||||
|
||||
|
@ -82,6 +85,12 @@
|
|||
/* Class = "UILabel"; text = "Chat with"; ObjectID = "Qr0-8H-IJq"; */
|
||||
"Qr0-8H-IJq.text" = "Chat with";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Enter contact name"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.placeholder" = "Enter contact name";
|
||||
|
||||
/* Class = "UITextField"; text = "Send Invitation Link"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.text" = "Send Invitation Link";
|
||||
|
||||
/* Class = "UINavigationItem"; title = "Contacts"; ObjectID = "SEz-IM-IWL"; */
|
||||
"SEz-IM-IWL.title" = "Contacts";
|
||||
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
/* Class = "UILabel"; text = "About"; ObjectID = "3vM-ad-4ap"; */
|
||||
"3vM-ad-4ap.text" = "About";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Notification settings"; ObjectID = "4VG-XN-BdZ"; */
|
||||
"4VG-XN-BdZ.title" = "Notification settings";
|
||||
|
||||
/* Class = "UILabel"; text = "Account name"; ObjectID = "7ho-Mu-thd"; */
|
||||
"7ho-Mu-thd.text" = "Account name";
|
||||
|
||||
|
@ -109,6 +112,9 @@
|
|||
/* Class = "UILabel"; text = "Blocked contacts"; ObjectID = "MJ0-kw-1Kl"; */
|
||||
"MJ0-kw-1Kl.text" = "Blocked contacts";
|
||||
|
||||
/* Class = "UILabel"; text = "Add to system call history"; ObjectID = "Ngk-vc-zET"; */
|
||||
"Ngk-vc-zET.text" = "Add to system call history";
|
||||
|
||||
/* Class = "UILabel"; text = "\"Hidden\" group"; ObjectID = "P82-B8-768"; */
|
||||
"P82-B8-768.text" = "\"Hidden\" group";
|
||||
|
||||
|
@ -130,6 +136,12 @@
|
|||
/* Class = "UILabel"; text = "20 MB"; ObjectID = "UuL-li-3gA"; */
|
||||
"UuL-li-3gA.text" = "20 MB";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "TELEPHONY"; ObjectID = "v8T-iN-1IT"; */
|
||||
"v8T-iN-1IT.headerTitle" = "TELEPHONY";
|
||||
|
||||
/* Class = "UILabel"; text = "Calls"; ObjectID = "wfP-Tn-CDA"; */
|
||||
"wfP-Tn-CDA.text" = "Calls";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Contacts settings"; ObjectID = "xRS-v5-T5C"; */
|
||||
"xRS-v5-T5C.title" = "Contacts settings";
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
/* Class = "UILabel"; text = "Message Archiving"; ObjectID = "Ckp-Mb-v0c"; */
|
||||
"Ckp-Mb-v0c.text" = "Message Archiving";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Invite"; ObjectID = "dib-YA-Eiz"; */
|
||||
"dib-YA-Eiz.headerTitle" = "Invite";
|
||||
|
||||
/* Class = "UIBarButtonItem"; title = "Back"; ObjectID = "Dx3-QU-3cN"; */
|
||||
"Dx3-QU-3cN.title" = "Back";
|
||||
|
||||
|
@ -82,6 +85,12 @@
|
|||
/* Class = "UILabel"; text = "Chat with"; ObjectID = "Qr0-8H-IJq"; */
|
||||
"Qr0-8H-IJq.text" = "Chat with";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Enter contact name"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.placeholder" = "Enter contact name";
|
||||
|
||||
/* Class = "UITextField"; text = "Send Invitation Link"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.text" = "Send Invitation Link";
|
||||
|
||||
/* Class = "UINavigationItem"; title = "Contacts"; ObjectID = "SEz-IM-IWL"; */
|
||||
"SEz-IM-IWL.title" = "Contacts";
|
||||
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
/* Class = "UILabel"; text = "About"; ObjectID = "3vM-ad-4ap"; */
|
||||
"3vM-ad-4ap.text" = "About";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Notification settings"; ObjectID = "4VG-XN-BdZ"; */
|
||||
"4VG-XN-BdZ.title" = "Notification settings";
|
||||
|
||||
/* Class = "UILabel"; text = "Account name"; ObjectID = "7ho-Mu-thd"; */
|
||||
"7ho-Mu-thd.text" = "Account name";
|
||||
|
||||
|
@ -109,6 +112,9 @@
|
|||
/* Class = "UILabel"; text = "Blocked contacts"; ObjectID = "MJ0-kw-1Kl"; */
|
||||
"MJ0-kw-1Kl.text" = "Blocked contacts";
|
||||
|
||||
/* Class = "UILabel"; text = "Add to system call history"; ObjectID = "Ngk-vc-zET"; */
|
||||
"Ngk-vc-zET.text" = "Add to system call history";
|
||||
|
||||
/* Class = "UILabel"; text = "\"Hidden\" group"; ObjectID = "P82-B8-768"; */
|
||||
"P82-B8-768.text" = "\"Hidden\" group";
|
||||
|
||||
|
@ -130,6 +136,12 @@
|
|||
/* Class = "UILabel"; text = "20 MB"; ObjectID = "UuL-li-3gA"; */
|
||||
"UuL-li-3gA.text" = "20 MB";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "TELEPHONY"; ObjectID = "v8T-iN-1IT"; */
|
||||
"v8T-iN-1IT.headerTitle" = "TELEPHONY";
|
||||
|
||||
/* Class = "UILabel"; text = "Calls"; ObjectID = "wfP-Tn-CDA"; */
|
||||
"wfP-Tn-CDA.text" = "Calls";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Contacts settings"; ObjectID = "xRS-v5-T5C"; */
|
||||
"xRS-v5-T5C.title" = "Contacts settings";
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
/* Class = "UILabel"; text = "Message Archiving"; ObjectID = "Ckp-Mb-v0c"; */
|
||||
"Ckp-Mb-v0c.text" = "Message Archiving";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Invite"; ObjectID = "dib-YA-Eiz"; */
|
||||
"dib-YA-Eiz.headerTitle" = "Invite";
|
||||
|
||||
/* Class = "UIBarButtonItem"; title = "Back"; ObjectID = "Dx3-QU-3cN"; */
|
||||
"Dx3-QU-3cN.title" = "Back";
|
||||
|
||||
|
@ -82,6 +85,12 @@
|
|||
/* Class = "UILabel"; text = "Chat with"; ObjectID = "Qr0-8H-IJq"; */
|
||||
"Qr0-8H-IJq.text" = "Chat with";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Enter contact name"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.placeholder" = "Enter contact name";
|
||||
|
||||
/* Class = "UITextField"; text = "Send Invitation Link"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.text" = "Send Invitation Link";
|
||||
|
||||
/* Class = "UINavigationItem"; title = "Contacts"; ObjectID = "SEz-IM-IWL"; */
|
||||
"SEz-IM-IWL.title" = "Contacts";
|
||||
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
/* Class = "UILabel"; text = "About"; ObjectID = "3vM-ad-4ap"; */
|
||||
"3vM-ad-4ap.text" = "About";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Notification settings"; ObjectID = "4VG-XN-BdZ"; */
|
||||
"4VG-XN-BdZ.title" = "Notification settings";
|
||||
|
||||
/* Class = "UILabel"; text = "Account name"; ObjectID = "7ho-Mu-thd"; */
|
||||
"7ho-Mu-thd.text" = "Account name";
|
||||
|
||||
|
@ -109,6 +112,9 @@
|
|||
/* Class = "UILabel"; text = "Blocked contacts"; ObjectID = "MJ0-kw-1Kl"; */
|
||||
"MJ0-kw-1Kl.text" = "Blocked contacts";
|
||||
|
||||
/* Class = "UILabel"; text = "Add to system call history"; ObjectID = "Ngk-vc-zET"; */
|
||||
"Ngk-vc-zET.text" = "Add to system call history";
|
||||
|
||||
/* Class = "UILabel"; text = "\"Hidden\" group"; ObjectID = "P82-B8-768"; */
|
||||
"P82-B8-768.text" = "\"Hidden\" group";
|
||||
|
||||
|
@ -130,6 +136,12 @@
|
|||
/* Class = "UILabel"; text = "20 MB"; ObjectID = "UuL-li-3gA"; */
|
||||
"UuL-li-3gA.text" = "20 MB";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "TELEPHONY"; ObjectID = "v8T-iN-1IT"; */
|
||||
"v8T-iN-1IT.headerTitle" = "TELEPHONY";
|
||||
|
||||
/* Class = "UILabel"; text = "Calls"; ObjectID = "wfP-Tn-CDA"; */
|
||||
"wfP-Tn-CDA.text" = "Calls";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Contacts settings"; ObjectID = "xRS-v5-T5C"; */
|
||||
"xRS-v5-T5C.title" = "Contacts settings";
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
/* Class = "UILabel"; text = "Message Archiving"; ObjectID = "Ckp-Mb-v0c"; */
|
||||
"Ckp-Mb-v0c.text" = "Message Archiving";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Invite"; ObjectID = "dib-YA-Eiz"; */
|
||||
"dib-YA-Eiz.headerTitle" = "Invite";
|
||||
|
||||
/* Class = "UIBarButtonItem"; title = "Back"; ObjectID = "Dx3-QU-3cN"; */
|
||||
"Dx3-QU-3cN.title" = "Back";
|
||||
|
||||
|
@ -82,6 +85,12 @@
|
|||
/* Class = "UILabel"; text = "Chat with"; ObjectID = "Qr0-8H-IJq"; */
|
||||
"Qr0-8H-IJq.text" = "Chat with";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Enter contact name"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.placeholder" = "Enter contact name";
|
||||
|
||||
/* Class = "UITextField"; text = "Send Invitation Link"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.text" = "Send Invitation Link";
|
||||
|
||||
/* Class = "UINavigationItem"; title = "Contacts"; ObjectID = "SEz-IM-IWL"; */
|
||||
"SEz-IM-IWL.title" = "Contacts";
|
||||
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
/* Class = "UILabel"; text = "About"; ObjectID = "3vM-ad-4ap"; */
|
||||
"3vM-ad-4ap.text" = "About";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Notification settings"; ObjectID = "4VG-XN-BdZ"; */
|
||||
"4VG-XN-BdZ.title" = "Notification settings";
|
||||
|
||||
/* Class = "UILabel"; text = "Account name"; ObjectID = "7ho-Mu-thd"; */
|
||||
"7ho-Mu-thd.text" = "Account name";
|
||||
|
||||
|
@ -109,6 +112,9 @@
|
|||
/* Class = "UILabel"; text = "Blocked contacts"; ObjectID = "MJ0-kw-1Kl"; */
|
||||
"MJ0-kw-1Kl.text" = "Blocked contacts";
|
||||
|
||||
/* Class = "UILabel"; text = "Add to system call history"; ObjectID = "Ngk-vc-zET"; */
|
||||
"Ngk-vc-zET.text" = "Add to system call history";
|
||||
|
||||
/* Class = "UILabel"; text = "\"Hidden\" group"; ObjectID = "P82-B8-768"; */
|
||||
"P82-B8-768.text" = "\"Hidden\" group";
|
||||
|
||||
|
@ -130,6 +136,12 @@
|
|||
/* Class = "UILabel"; text = "20 MB"; ObjectID = "UuL-li-3gA"; */
|
||||
"UuL-li-3gA.text" = "20 MB";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "TELEPHONY"; ObjectID = "v8T-iN-1IT"; */
|
||||
"v8T-iN-1IT.headerTitle" = "TELEPHONY";
|
||||
|
||||
/* Class = "UILabel"; text = "Calls"; ObjectID = "wfP-Tn-CDA"; */
|
||||
"wfP-Tn-CDA.text" = "Calls";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Contacts settings"; ObjectID = "xRS-v5-T5C"; */
|
||||
"xRS-v5-T5C.title" = "Contacts settings";
|
||||
|
||||
|
|
|
@ -102,7 +102,35 @@ class MucChatViewController: BaseChatViewControllerWithDataSourceAndContextMenuA
|
|||
}
|
||||
|
||||
@IBAction func scrollToBottomTapped(_ sender: RoundShadowButton) {
|
||||
self.conversationLogController?.tableView.setContentOffset(.zero, animated: true)
|
||||
self.conversationLogController?.tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: .none, animated: true)
|
||||
DispatchQueue.main.asyncAfter(deadline: .now()+0.5) {
|
||||
self.conversationLogController?.tableView.setContentOffset(CGPoint(x: 0, y: 1), animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
|
||||
// scrollViewShouldScrollToTop will not get called if tableview is already at top
|
||||
guard var contentOffset = self.conversationLogController?.tableView.contentOffset else { return }
|
||||
if contentOffset.y == 0 {
|
||||
contentOffset.y = 1
|
||||
self.conversationLogController?.tableView.setContentOffset(contentOffset, animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool {
|
||||
scrollToTop()
|
||||
return false
|
||||
}
|
||||
|
||||
func scrollToTop() {
|
||||
if let count = self.conversationLogController?.dataSource.count, count > 0 {
|
||||
var currentRow = self.conversationLogController?.tableView.indexPathsForVisibleRows?.first?.row ?? 0
|
||||
currentRow = count > currentRow + 40 ? currentRow + 40 : count
|
||||
let indexPath = IndexPath(row: currentRow - 1, section: 0)
|
||||
DispatchQueue.main.async {
|
||||
self.conversationLogController?.tableView.scrollToRow(at: indexPath, at: .none, animated: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func setupGroupName() {
|
||||
|
|
|
@ -26,6 +26,7 @@ class RosterItemEditViewController: UITableViewController, UIPickerViewDataSourc
|
|||
|
||||
var xmppService:XmppService!
|
||||
|
||||
@IBOutlet weak var invitationLinkIndicator: UIActivityIndicatorView!
|
||||
@IBOutlet var accountTextField: UITextField!
|
||||
@IBOutlet var jidTextField: UITextField!
|
||||
@IBOutlet var nameTextField: UITextField!
|
||||
|
@ -69,6 +70,45 @@ class RosterItemEditViewController: UITableViewController, UIPickerViewDataSourc
|
|||
self.nameTextField.text = nil;
|
||||
}
|
||||
}
|
||||
|
||||
func createInvitationLink() {
|
||||
guard let account = BareJID(self.accountTextField.text), let client = xmppService.getClient(for: account) else { return }
|
||||
|
||||
let inviteCommand = "urn:xmpp:invite#invite"
|
||||
if let adHocModule: AdHocCommandsModule = client.modulesManager.getModule(AdHocCommandsModule.ID) {
|
||||
adHocModule.execute(on: JID(account.domain), command: inviteCommand, action: .execute, data: nil) { response, data in
|
||||
if let inviteLink = data?.getField(named: "landing-url")?.element.findChild(name: "value")?.value {
|
||||
self.presentShareSheet(url: inviteLink)
|
||||
}
|
||||
} onError: { error in
|
||||
self.toggleActivityIndicator(toggle: false)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func presentShareSheet(url: String) {
|
||||
guard let url = URL(string: url) else {
|
||||
self.toggleActivityIndicator(toggle: false)
|
||||
return
|
||||
}
|
||||
|
||||
let items: [Any] = [url]
|
||||
let ac = UIActivityViewController(activityItems: items, applicationActivities: nil)
|
||||
DispatchQueue.main.async {
|
||||
self.present(ac, animated: true) {
|
||||
self.toggleActivityIndicator(toggle: false)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func toggleActivityIndicator(toggle: Bool) {
|
||||
DispatchQueue.main.async {
|
||||
if toggle { self.invitationLinkIndicator.startAnimating() }
|
||||
else {self.invitationLinkIndicator.stopAnimating() }
|
||||
}
|
||||
}
|
||||
|
||||
override func didReceiveMemoryWarning() {
|
||||
super.didReceiveMemoryWarning()
|
||||
|
@ -217,6 +257,13 @@ class RosterItemEditViewController: UITableViewController, UIPickerViewDataSourc
|
|||
|
||||
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
|
||||
self.accountTextField.text = self.pickerView(pickerView, titleForRow: row, forComponent: component);
|
||||
self.view.endEditing(true)
|
||||
}
|
||||
|
||||
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
||||
if indexPath.section == 4, indexPath.row == 0, !invitationLinkIndicator.isAnimating {
|
||||
toggleActivityIndicator(toggle: true)
|
||||
self.createInvitationLink()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -154,7 +154,7 @@ class MessageEventHandler: XmppServiceEventHandler {
|
|||
return;
|
||||
}
|
||||
|
||||
let encryption = encrypted ?? chat.options.encryption ?? ChatEncryption(rawValue: Settings.messageEncryption.string()!)!;
|
||||
var encryption = encrypted ?? chat.options.encryption ?? ChatEncryption(rawValue: Settings.messageEncryption.string()!)!;
|
||||
|
||||
let message = chat.createMessage(msg);
|
||||
message.id = stanzaId ?? UUID().uuidString;
|
||||
|
@ -163,6 +163,11 @@ class MessageEventHandler: XmppServiceEventHandler {
|
|||
|
||||
let account = chat.account;
|
||||
let jid = chat.jid.bareJid;
|
||||
|
||||
// chat.options.encryption == nil means it is set to defualt
|
||||
if let telephonyProvider = AccountSettings.telephonyProvider(account).getString(), jid.domain.lowercased() == telephonyProvider.lowercased(), (chat.options.encryption == nil || chat.options.encryption == ChatEncryption.none) {
|
||||
encryption = ChatEncryption.none
|
||||
}
|
||||
|
||||
switch encryption {
|
||||
case .omemo:
|
||||
|
|
|
@ -419,11 +419,16 @@ class AccountSettingsViewController: UITableViewController {
|
|||
}
|
||||
|
||||
func disablePushNotifications(completion: @escaping (Bool) -> Void) {
|
||||
guard let account = self.account, let config = AccountManager.getAccount(for: account), let pushSettings = config.pushSettings else {
|
||||
guard let account = self.account, let config = AccountManager.getAccount(for: account) else {
|
||||
completion(false)
|
||||
return
|
||||
}
|
||||
|
||||
guard let pushSettings = config.pushSettings else {
|
||||
completion(true)
|
||||
return
|
||||
}
|
||||
|
||||
if let client = XmppService.instance.getClient(forJid: BareJID(account)), client.state == .connected, let pushModule: SiskinPushNotificationsModule = client.modulesManager.getModule(SiskinPushNotificationsModule.ID) {
|
||||
pushModule.unregisterDeviceAndDisable(completionHandler: { result in
|
||||
switch result {
|
||||
|
|
53
Snikket/settings/CallsSettingsViewController.swift
Normal file
53
Snikket/settings/CallsSettingsViewController.swift
Normal file
|
@ -0,0 +1,53 @@
|
|||
//
|
||||
// CallsSettingsViewController.swift
|
||||
// Snikket
|
||||
//
|
||||
// Created by Muhammad Khalid on 29/10/2021.
|
||||
// Copyright © 2021 Snikket. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import CallKit
|
||||
|
||||
class CallsSettingsViewController: UITableViewController {
|
||||
|
||||
@IBOutlet weak var callsSwitch: UISwitch!
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
callsSwitch.isOn = Settings.addCallsToSystem.getBool()
|
||||
}
|
||||
|
||||
// MARK: - Table view data source
|
||||
|
||||
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||
return 1
|
||||
}
|
||||
|
||||
@IBAction func valueChanged(_ sender: UISwitch) {
|
||||
Settings.addCallsToSystem.setValue(sender.isOn)
|
||||
enableAddCallsToSystem(enable: sender.isOn)
|
||||
}
|
||||
|
||||
func enableAddCallsToSystem(enable: Bool) {
|
||||
let config = CXProviderConfiguration(localizedName: "Snikket");
|
||||
if #available(iOS 13.0, *) {
|
||||
if let image = UIImage(systemName: "message.fill") {
|
||||
config.iconTemplateImageData = image.pngData();
|
||||
}
|
||||
} else {
|
||||
if let image = UIImage(named: "message.fill") {
|
||||
config.iconTemplateImageData = image.pngData();
|
||||
}
|
||||
}
|
||||
config.includesCallsInRecents = enable;
|
||||
config.supportsVideo = true;
|
||||
config.maximumCallsPerCallGroup = 1;
|
||||
config.maximumCallGroups = 1;
|
||||
config.supportedHandleTypes = [.generic];
|
||||
|
||||
CallManager.instance?.provider = CXProvider(configuration: config);
|
||||
CallManager.instance?.provider.setDelegate(CallManager.instance, queue: nil)
|
||||
}
|
||||
}
|
|
@ -170,6 +170,9 @@ class SettingsViewController: UITableViewController {
|
|||
let cell = tableView.dequeueReusableCell(withIdentifier: "ExperimentalSettingsViewCell", for: indexPath);
|
||||
cell.accessoryType = .disclosureIndicator;
|
||||
return cell;
|
||||
case .calls:
|
||||
let cell = tableView.dequeueReusableCell(withIdentifier: "CallsSettingsViewCell", for: indexPath)
|
||||
return cell
|
||||
case .about:
|
||||
let cell = tableView.dequeueReusableCell(withIdentifier: "AboutSettingsViewCell", for: indexPath);
|
||||
return cell;
|
||||
|
@ -396,13 +399,14 @@ class SettingsViewController: UITableViewController {
|
|||
case notifications
|
||||
case media
|
||||
case experimental
|
||||
case calls
|
||||
case about
|
||||
|
||||
static let groups: [SettingsGroup] = {
|
||||
if #available(iOS 13.0, *) {
|
||||
return [.appearance, .chat, .contacts, .media, .about]
|
||||
return [.appearance, .chat, .contacts, .media, .calls, .about]
|
||||
} else {
|
||||
return [.chat, .contacts, .media, .about]
|
||||
return [.chat, .contacts, .media, .calls, .about]
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
/* Class = "UILabel"; text = "Message Archiving"; ObjectID = "Ckp-Mb-v0c"; */
|
||||
"Ckp-Mb-v0c.text" = "Meddelandearkivering";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Invite"; ObjectID = "dib-YA-Eiz"; */
|
||||
"dib-YA-Eiz.headerTitle" = "Invite";
|
||||
|
||||
/* Class = "UIBarButtonItem"; title = "Back"; ObjectID = "Dx3-QU-3cN"; */
|
||||
"Dx3-QU-3cN.title" = "Tillbaka";
|
||||
|
||||
|
@ -82,6 +85,12 @@
|
|||
/* Class = "UILabel"; text = "Chat with"; ObjectID = "Qr0-8H-IJq"; */
|
||||
"Qr0-8H-IJq.text" = "Chat with";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Enter contact name"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.placeholder" = "Enter contact name";
|
||||
|
||||
/* Class = "UITextField"; text = "Send Invitation Link"; ObjectID = "Rg7-YE-y8H"; */
|
||||
"Rg7-YE-y8H.text" = "Send Invitation Link";
|
||||
|
||||
/* Class = "UINavigationItem"; title = "Contacts"; ObjectID = "SEz-IM-IWL"; */
|
||||
"SEz-IM-IWL.title" = "Contacts";
|
||||
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
/* Class = "UILabel"; text = "About"; ObjectID = "3vM-ad-4ap"; */
|
||||
"3vM-ad-4ap.text" = "Om";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Notification settings"; ObjectID = "4VG-XN-BdZ"; */
|
||||
"4VG-XN-BdZ.title" = "Notification settings";
|
||||
|
||||
/* Class = "UILabel"; text = "Account name"; ObjectID = "7ho-Mu-thd"; */
|
||||
"7ho-Mu-thd.text" = "Namn på kontot";
|
||||
|
||||
|
@ -109,6 +112,9 @@
|
|||
/* Class = "UILabel"; text = "Blocked contacts"; ObjectID = "MJ0-kw-1Kl"; */
|
||||
"MJ0-kw-1Kl.text" = "Blockerade kontakter";
|
||||
|
||||
/* Class = "UILabel"; text = "Add to system call history"; ObjectID = "Ngk-vc-zET"; */
|
||||
"Ngk-vc-zET.text" = "Add to system call history";
|
||||
|
||||
/* Class = "UILabel"; text = "\"Hidden\" group"; ObjectID = "P82-B8-768"; */
|
||||
"P82-B8-768.text" = "\"Dold\" grupp";
|
||||
|
||||
|
@ -130,6 +136,12 @@
|
|||
/* Class = "UILabel"; text = "20 MB"; ObjectID = "UuL-li-3gA"; */
|
||||
"UuL-li-3gA.text" = "20 MB";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "TELEPHONY"; ObjectID = "v8T-iN-1IT"; */
|
||||
"v8T-iN-1IT.headerTitle" = "TELEPHONY";
|
||||
|
||||
/* Class = "UILabel"; text = "Calls"; ObjectID = "wfP-Tn-CDA"; */
|
||||
"wfP-Tn-CDA.text" = "Calls";
|
||||
|
||||
/* Class = "UITableViewController"; title = "Contacts settings"; ObjectID = "xRS-v5-T5C"; */
|
||||
"xRS-v5-T5C.title" = "Inställningar för kontakter";
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ public enum Settings: String {
|
|||
case EnableMarkdownFormatting = "markdown"
|
||||
case ShowEmoticons
|
||||
case messageStyling
|
||||
case addCallsToSystem
|
||||
|
||||
@available(iOS 13.0, *)
|
||||
case linkPreviews
|
||||
|
|
|
@ -54,7 +54,7 @@ class CallManager: NSObject, CXProviderDelegate {
|
|||
|
||||
private let pushRegistry: PKPushRegistry;
|
||||
|
||||
private let provider: CXProvider;
|
||||
public var provider: CXProvider;
|
||||
private let callController: CXCallController;
|
||||
|
||||
private(set) var currentCall: Call?;
|
||||
|
@ -92,7 +92,7 @@ class CallManager: NSObject, CXProviderDelegate {
|
|||
config.iconTemplateImageData = image.pngData();
|
||||
}
|
||||
}
|
||||
config.includesCallsInRecents = false;
|
||||
config.includesCallsInRecents = Settings.addCallsToSystem.getBool()
|
||||
config.supportsVideo = true;
|
||||
config.maximumCallsPerCallGroup = 1;
|
||||
config.maximumCallGroups = 1;
|
||||
|
@ -125,7 +125,11 @@ class CallManager: NSObject, CXProviderDelegate {
|
|||
update.supportsHolding = false
|
||||
provider.configuration.supportsVideo = call.media.contains(.video)
|
||||
update.hasVideo = AVCaptureDevice.authorizationStatus(for: .video) == .authorized && call.media.contains(.video)
|
||||
update.remoteHandle = call.media.contains(.video) ? CXHandle(type: .generic, value: call.jid.stringValue) : nil
|
||||
|
||||
let telephonyProvider = AccountSettings.telephonyProvider(call.account).getString() ?? ""
|
||||
let handle = telephonyProvider == call.jid.domain ? CXHandle(type: .phoneNumber, value: (call.jid.localPart ?? "Unknown")) : CXHandle(type: .generic, value: call.jid.stringValue)
|
||||
|
||||
update.remoteHandle = handle
|
||||
configureAudioSession()
|
||||
provider.reportNewIncomingCall(with: call.uuid, update: update, completion: { err in
|
||||
guard let error = err else {
|
||||
|
@ -168,7 +172,10 @@ class CallManager: NSObject, CXProviderDelegate {
|
|||
let rosterModule: RosterModule? = XmppService.instance.getClient(for: call.account)?.modulesManager.getModule(RosterModule.ID);
|
||||
let name = rosterModule?.rosterStore.get(for: JID(call.jid))?.name ?? call.jid.stringValue;
|
||||
|
||||
let startCallAction = CXStartCallAction(call: call.uuid, handle: CXHandle(type: .generic, value: call.jid.stringValue));
|
||||
let telephonyProvider = AccountSettings.telephonyProvider(call.account).getString() ?? ""
|
||||
let handle = telephonyProvider == call.jid.domain ? CXHandle(type: .phoneNumber, value: (call.jid.localPart ?? "Unknown")) : CXHandle(type: .generic, value: call.jid.stringValue)
|
||||
|
||||
let startCallAction = CXStartCallAction(call: call.uuid, handle: handle)
|
||||
startCallAction.isVideo = call.media.contains(.video);
|
||||
startCallAction.contactIdentifier = name;
|
||||
let transaction = CXTransaction(action: startCallAction);
|
||||
|
|
Loading…
Reference in a new issue