Commit 365ca0d8 authored by Kateryna Kostiuk's avatar Kateryna Kostiuk

build: upgrade dependencies

Change-Id: I891c3db0fb463977247bd6957246b8a500546ed8
parent cffce651
github "AliSoftware/Reusable" "4.1.1"
github "ReactiveX/RxSwift" "5.1.1"
github "ReactiveX/RxSwift" "6.2.0"
github "RxSwiftCommunity/RxDataSources" "4.0.1"
github "RxSwiftCommunity/RxRealm" "3.1.0"
github "SwiftyBeaver/SwiftyBeaver" "1.9.2"
......@@ -7,5 +7,5 @@ github "andreamazz/AMPopTip" "4.5.0"
github "ashleymills/Reachability.swift" "v5.1.0"
github "gskbyte/GSKStretchyHeaderView" "1.0.4"
github "pkluz/PKHUD" "5.4.0"
github "realm/realm-cocoa" "v5.5.0"
github "realm/realm-cocoa" "v10.7.4"
github "stephencelis/SQLite.swift" "0.12.2"
......@@ -38,18 +38,18 @@ class VCardUtils {
if let vCard = contactRequest.vCard {
single(.success(vCard))
} else {
single(.error(ContactServiceError.loadVCardFailed))
single(.failure(ContactServiceError.loadVCardFailed))
}
} else if let directoryURL = VCardUtils.getFilePath(forFile: name, inFolder: folder, createIfNotExists: false) {
if let data = FileManager.default.contents(atPath: directoryURL.path) {
if let vCard = CNContactVCardSerialization.parseToVCard(data: data) {
single(.success(vCard))
} else {
single(.error(ContactServiceError.loadVCardFailed))
single(.failure(ContactServiceError.loadVCardFailed))
}
}
} else {
single(.error(ContactServiceError.loadVCardFailed))
single(.failure(ContactServiceError.loadVCardFailed))
}
return Disposables.create { }
})
......
......@@ -97,7 +97,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// ignore sigpipe
// swiftlint:disable nesting
typealias SigHandler = @convention(c) (Int32) -> Void
let SIG_IGN = unsafeBitCast(OpaquePointer(bitPattern: 1), to: SigHandler.self)
signal(SIGPIPE, SIG_IGN)
......@@ -196,7 +195,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
.disposed(by: self.disposeBag)
self.accountService.initialAccountsLoading()
.subscribe(onCompleted: {
//set selected account if exists
// set selected account if exists
self.appCoordinator.start()
if self.accountService.hasAccountWithProxyEnabled() {
self.registerVoipNotifications()
......@@ -209,7 +208,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
}
guard let currentAccount = self.accountService.currentAccount else {
self.log.error("Can't get current account!")
//if we don't have any account means it is first run, so enable hardware acceleration
// if we don't have any account means it is first run, so enable hardware acceleration
self.videoService.setHardwareAccelerated(withState: true)
UserDefaults.standard.set(true, forKey: hardareAccelerationKey)
return
......@@ -405,15 +404,15 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
}
func findContactAndStartCall(hash: String, isVideo: Bool) {
//if saved jami hash
// if saved jami hash
if hash.isSHA1() {
let contactUri = JamiURI(schema: URIType.ring, infoHach: hash)
self.findAccountAndStartCall(uri: contactUri, isVideo: isVideo, type: AccountType.ring)
return
}
//if saved jami registered name
// if saved jami registered name
self.nameService.usernameLookupStatus
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.filter({ usernameLookupStatus in
usernameLookupStatus.name == hash
})
......@@ -424,7 +423,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
let contactUri = JamiURI(schema: URIType.ring, infoHach: address)
self.findAccountAndStartCall(uri: contactUri, isVideo: isVideo, type: AccountType.ring)
} else {
//if saved sip contact
// if saved sip contact
let contactUri = JamiURI(schema: URIType.sip, infoHach: hash)
self.findAccountAndStartCall(uri: contactUri, isVideo: isVideo, type: AccountType.sip)
}
......
......@@ -24,7 +24,7 @@ import RxSwift
class ButtonsContainerView: UIView, NibLoadable, UIScrollViewDelegate {
//Outlets
// Outlets
@IBOutlet var containerView: UIView!
@IBOutlet weak var container: UIView!
@IBOutlet weak var stackView: UIStackView!
......@@ -35,13 +35,13 @@ class ButtonsContainerView: UIView, NibLoadable, UIScrollViewDelegate {
@IBOutlet weak var pageControl: UIPageControl!
@IBOutlet weak var scrollView: UIScrollView!
//Constraints
// Constraints
@IBOutlet weak var cancelButtonWidthConstraint: NSLayoutConstraint!
@IBOutlet weak var cancelButtonHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var cancelButtonBottomConstraint: NSLayoutConstraint!
@IBOutlet weak var containerHeightConstraint: NSLayoutConstraint!
//Buttons
// Buttons
var muteAudioButton: UIButton!
var muteVideoButton: UIButton!
var pauseCallButton: UIButton!
......@@ -57,7 +57,7 @@ class ButtonsContainerView: UIView, NibLoadable, UIScrollViewDelegate {
var viewModel: ButtonsContainerViewModel? {
didSet {
self.viewModel?.observableCallOptions
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] callOptions in
switch callOptions {
case .none:
......@@ -159,7 +159,7 @@ class ButtonsContainerView: UIView, NibLoadable, UIScrollViewDelegate {
} else {
let screenRect = UIScreen.main.bounds
let screenWidth: CGFloat = screenRect.size.width
let buttonsWidth: CGFloat = 7 * 50 + 30 * 6 //540
let buttonsWidth: CGFloat = 7 * 50 + 30 * 6 // 540
havePages = screenWidth < buttonsWidth
firstPageStackView.removeSubviews()
secondPageStackView.removeSubviews()
......
......@@ -29,7 +29,7 @@ import SwiftyBeaver
// swiftlint:disable file_length
class CallViewController: UIViewController, StoryboardBased, ViewModelBased, ContactPickerDelegate {
//preview screen
// preview screen
@IBOutlet private weak var profileImageView: UIImageView!
@IBOutlet private weak var nameLabel: UILabel!
@IBOutlet private weak var durationLabel: UILabel!
......@@ -40,7 +40,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
@IBOutlet private weak var mainView: UIView!
//video screen
// video screen
@IBOutlet private weak var callView: UIView!
@IBOutlet private weak var incomingVideo: UIImageView!
@IBOutlet weak var beforeIncomingVideo: UIView!
......@@ -55,7 +55,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
@IBOutlet weak var infoBlurEffect: UIVisualEffectView!
@IBOutlet weak var leftArrow: UIImageView!
//Constraints
// Constraints
@IBOutlet weak var capturedVideoWidthConstraint: NSLayoutConstraint!
@IBOutlet weak var capturedVideoTrailingConstraint: NSLayoutConstraint!
@IBOutlet weak var capturedVideoTopConstraint: NSLayoutConstraint!
......@@ -127,7 +127,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
}
NotificationCenter.default.rx
.notification(UIDevice.orientationDidChangeNotification)
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: {[weak self] (_) in
guard let self = self,
UIDevice.current.portraitOrLandscape else {
......@@ -150,7 +150,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
self.updateconferenceLayoutSize()
self.viewModel.layoutUpdated
.asObservable()
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] updated in
guard let self = self, updated else { return }
self.updateconferenceLayoutSize()
......@@ -196,7 +196,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
@objc
func hideCapturedVideo() {
//if self.isMenuShowed { return }
// if self.isMenuShowed { return }
UIView.animate(withDuration: 0.3, animations: { [weak self] in
if self?.capturedVideoBlurEffect.alpha == 0 {
self?.isVideoHidden = true
......@@ -205,7 +205,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
self?.isVideoHidden = false
self?.capturedVideoBlurEffect.alpha = 0
}
//guard let hidden = self?.infoContainer.isHidden else {return}
// guard let hidden = self?.infoContainer.isHidden else {return}
self?.resizeCapturedVideo(withInfoContainer: false)
self?.view.layoutIfNeeded()
})
......@@ -306,26 +306,26 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
self.viewModel.showContactPickerVC()
})
.disposed(by: self.disposeBag)
//Data bindings
// Data bindings
self.viewModel.videoButtonState
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.bind(to: self.buttonsContainer.muteVideoButton.rx.image())
.disposed(by: self.disposeBag)
self.buttonsContainer.muteVideoButton.isEnabled = !(self.viewModel.call?.isAudioOnly ?? false)
self.viewModel.audioButtonState
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.bind(to: self.buttonsContainer.muteAudioButton.rx.image())
.disposed(by: self.disposeBag)
self.viewModel.speakerButtonState
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.bind(to: self.buttonsContainer.switchSpeakerButton.rx.image())
.disposed(by: self.disposeBag)
self.viewModel.pauseCallButtonState
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.bind(to: self.buttonsContainer.pauseCallButton.rx.image())
.disposed(by: self.disposeBag)
}
......@@ -335,7 +335,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
func setupBindings() {
self.viewModel.contactImageData?.asObservable()
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] dataOrNil in
if let imageData = dataOrNil {
if let image = UIImage(data: imageData) {
......@@ -346,7 +346,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
.disposed(by: self.disposeBag)
self.viewModel.dismisVC
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] dismiss in
if dismiss {
self?.removeFromScreen()
......@@ -365,7 +365,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
self.viewModel.callDuration
.asObservable()
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] _ in
if self?.durationLabel.text != "" {
if self?.viewModel.isAudioOnly ?? true {
......@@ -384,12 +384,12 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
.disposed(by: self.disposeBag)
self.viewModel.bottomInfo
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.bind(to: self.infoBottomLabel.rx.text)
.disposed(by: self.disposeBag)
self.viewModel.incomingFrame
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] frame in
if let image = frame {
self?.spinner.stopAnimating()
......@@ -409,7 +409,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
.disposed(by: self.disposeBag)
self.viewModel.capturedFrame
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] frame in
if let image = frame {
DispatchQueue.main.async {
......@@ -420,7 +420,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
.disposed(by: self.disposeBag)
self.viewModel.showCallOptions
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] show in
if show {
self?.showContactInfo()
......@@ -429,7 +429,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
.disposed(by: self.disposeBag)
self.viewModel.showCancelOption
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] show in
if show {
self?.showCancelButton()
......@@ -441,23 +441,23 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
self.resizeCapturedFrame()
}
self.viewModel.videoMuted
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.bind(to: self.capturedVideo.rx.isHidden)
.disposed(by: self.disposeBag)
self.viewModel.videoMuted
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.bind(to: self.capturedVideoBlurEffect.rx.isHidden)
.disposed(by: self.disposeBag)
self.viewModel.videoMuted
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.bind(to: self.leftArrow.rx.isHidden)
.disposed(by: self.disposeBag)
if !self.viewModel.isAudioOnly {
self.viewModel.callPaused
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] show in
self?.setAvatarView(show)
})
......@@ -466,7 +466,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
self.viewModel.conferenceMode
.asObservable()
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] enteredConference in
guard let call = self?.viewModel.call,
let self = self else { return }
......@@ -522,7 +522,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
.disposed(by: self.disposeBag)
self.viewModel.callForConference
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] call in
guard let self = self else { return }
// for moderator participants will be added in layoutUpdated
......@@ -546,7 +546,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
.disposed(by: self.disposeBag)
self.viewModel.callPaused
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] show in
if show {
self?.showCallOptions()
......@@ -606,12 +606,12 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
func resizeCapturedFrame() {
self.viewModel.showCapturedFrame
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] dontShow in
if dontShow && (!(self?.isCallStarted ?? false)) {
self?.isCallStarted = true
let device = UIDevice.modelName
//Reduce the cancel button for small iPhone
// Reduce the cancel button for small iPhone
switch device {
case "iPhone 5", "iPhone 5c", "iPhone 5s", "iPhone SE" :
self?.buttonsContainer.cancelButtonWidthConstraint.constant = 50
......@@ -668,7 +668,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
DispatchQueue.global(qos: .background).async {
sleep(UInt32(0.5))
DispatchQueue.main.async { [weak self] in
//guard let hidden = self?.infoContainer.isHidden else {return}
// guard let hidden = self?.infoContainer.isHidden else {return}
self?.resizeCapturedVideo(withInfoContainer: false)
self?.buttonsContainer.updateView()
if UIDevice.current.hasNotch && (UIDevice.current.orientation == .landscapeRight || UIDevice.current.orientation == .landscapeLeft) && self?.infoContainer.isHidden == false {
......@@ -685,7 +685,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
if self.viewModel.call?.state != .current {
return
}
//Don't change anything if the orientation change to portraitUpsideDown, faceUp or faceDown
// Don't change anything if the orientation change to portraitUpsideDown, faceUp or faceDown
if UIDevice.current.orientation.rawValue != 5 && UIDevice.current.orientation.rawValue != 6 && UIDevice.current.orientation.rawValue != 2 {
self.orientation = UIDevice.current.orientation
}
......@@ -707,7 +707,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
self.capturedVideoTopConstraint.constant = -15
}
} else {
//Keep the 4:3 format of the video
// Keep the 4:3 format of the video
let widthCapturedVideo = ((self.infoContainerHeightConstraint.constant - 20) / 3) * 4
self.capturedVideoHeightConstraint.constant = conference ? -UIScreen.main.bounds.height : -UIScreen.main.bounds.height + self.infoContainerHeightConstraint.constant - 20
self.capturedVideoWidthConstraint.constant = -UIScreen.main.bounds.width + widthCapturedVideo
......@@ -733,7 +733,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased, Con
self.capturedVideoTopConstraint.constant = -5
}
} else {
//Keep the 4:3 format of the video
// Keep the 4:3 format of the video
let widthCapturedVideo = ((self.infoContainerHeightConstraint.constant - 20) / 4) * 3
self.capturedVideoHeightConstraint.constant = conference ? -UIScreen.main.bounds.height : -UIScreen.main.bounds.height + self.infoContainerHeightConstraint.constant - 20
self.capturedVideoWidthConstraint.constant = -UIScreen.main.bounds.width + widthCapturedVideo
......
......@@ -27,7 +27,7 @@ import Contacts
import RxCocoa
class CallViewModel: Stateable, ViewModel {
//stateable
// stateable
private let stateSubject = PublishSubject<State>()
lazy var state: Observable<State> = {
return self.stateSubject.asObservable()
......@@ -197,9 +197,9 @@ class CallViewModel: Stateable, ViewModel {
})
.map({ [weak self] call in
let hide = !call.isExists()
//if it was conference call switch to another running call
// if it was conference call switch to another running call
if hide && call.participantsCallId.count > 1 {
//switch to another call
// switch to another call
let anotherCalls = call.participantsCallId.filter { (callID) -> Bool in
self?.callService.call(callID: callID) != nil && callID != call.callId
}
......@@ -230,7 +230,7 @@ class CallViewModel: Stateable, ViewModel {
lazy var callDuration: Driver<String> = {
let timer = Observable<Int>.interval(Durations.oneSecond.toTimeInterval(), scheduler: MainScheduler.instance)
.takeUntil(currentCall
.take(until: currentCall
.filter { call in
!call.isExists()
})
......@@ -435,8 +435,8 @@ class CallViewModel: Stateable, ViewModel {
.subscribe(onNext: { [weak self] _ in
guard let self = self else { return }
self.audioService.startAudio()
//for outgoing calls ve create audio sesion with default parameters.
//for incoming call audio session is created, ve need to override it
// for outgoing calls ve create audio sesion with default parameters.
// for incoming call audio session is created, ve need to override it
let overrideOutput = self.call?.callTypeValue == CallType.incoming.rawValue
self.audioService.setDefaultOutput(toSpeaker: !self.isAudioOnly,
override: overrideOutput)
......@@ -679,7 +679,7 @@ extension CallViewModel {
guard let uri = participant.uri else { return }
// master call
if uri.isEmpty {
//check if master call is local or remote
// check if master call is local or remote
if !self.isHostCall {
participant.displayName = call.getDisplayName()
} else {
......
......@@ -36,7 +36,7 @@ class ConferenceLayout: UIView {
self.conferenceLayoutHelper.setVideoSize(size: size)
NotificationCenter.default.rx
.notification(UIDevice.orientationDidChangeNotification)
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: {[weak self] (_) in
guard UIDevice.current.portraitOrLandscape else { return }
self?.updateViewSize()
......
......@@ -157,7 +157,7 @@ class ContactPickerViewController: UIViewController, StoryboardBased, ViewModelB
}
status
.asObservable()
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.startWith(status.value)
.subscribe(onNext: { precence in
cell.presenceIndicator?.isHidden = !precence
......
......@@ -22,7 +22,7 @@ import UIKit
import Reusable
import RxSwift
protocol ConferenceParticipantViewDelegate: class {
protocol ConferenceParticipantViewDelegate: AnyObject {
func addConferenceParticipantMenu(origin: CGPoint, displayName: String, participantId: String, callId: String?, hangup: @escaping (() -> Void))
func removeConferenceParticipantMenu()
}
......@@ -81,7 +81,7 @@ class ConferenceParticipantView: UIView {
private func bindViewToViewModel() {
self.viewModel?.removeView?
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] remove in
if remove {
self?.delegate?.removeConferenceParticipantMenu()
......@@ -90,7 +90,7 @@ class ConferenceParticipantView: UIView {
})
.disposed(by: self.disposeBag)
self.viewModel?.avatarObservable
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe({ [weak self] profileData -> Void in
let photoData = NSData(base64Encoded: profileData.element?.0 ?? "", options: NSData.Base64DecodingOptions.ignoreUnknownCharacters) as Data?
let nameData = profileData.element?.1
......
......@@ -14,7 +14,7 @@ internal enum L10n {
internal enum Account {
/// Account Status
internal static let accountStatus = L10n.tr("Localizable", "account.accountStatus")
/// Create Sip Account
/// Create a SIP Account
internal static let createSipAccount = L10n.tr("Localizable", "account.createSipAccount")
/// Enable Account
internal static let enableAccount = L10n.tr("Localizable", "account.enableAccount")
......
......@@ -73,7 +73,7 @@ class ContactViewController: UIViewController, StoryboardBased, ViewModelBased {
return (profileImage, username)
}
.startWith((self.viewModel.profileImageData.value, self.viewModel.userName.value))
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe({ [weak self] profileData -> Void in
guard let data = profileData.element?.1 else { return }
self?.stretchyHeader
......@@ -116,7 +116,7 @@ class ContactViewController: UIViewController, StoryboardBased, ViewModelBased {
self.stretchyHeader.jamiID.text = self.viewModel.conversation.hash
self.viewModel.titleName
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] name in
self?.titleView.text = name
})
......@@ -148,12 +148,12 @@ class ContactViewController: UIViewController, StoryboardBased, ViewModelBased {
let dataSource = RxTableViewSectionedReloadDataSource<SectionModel<String, ContactActions>>(configureCell: configureCell)
self.viewModel.tableSection
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.bind(to: self.tableView.rx.items(dataSource: dataSource))
.disposed(by: disposeBag)
self.tableView.rx.itemSelected
.observeOn(MainScheduler.instance)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { [weak self] indexPath in
if self?.tableView.cellForRow(at: indexPath) != nil {
switch indexPath.row {
......@@ -220,7 +220,7 @@ extension ContactViewController: UITableViewDelegate {
var titlViewThreshold: CGFloat = 0
let screenSize = UIScreen.main.bounds.size
if let height = navigationHeight {
//height for iphoneX
// height for iphoneX
if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.phone,
screenSize.height == 812.0 {
size.height -= (height - 10)
......
......@@ -95,9 +95,9 @@ final class AppCoordinator: Coordinator, StateableResponsive {
/// Starts the coordinator
func start () {
//~ By default, always present the initial loading at start
// ~ By default, always present the initial loading at start
self.stateSubject.onNext(AppState.initialLoading)
//~ Dispatch to the proper screen
// ~ Dispatch to the proper screen
self.dispatchApplication()
}
......
......@@ -21,7 +21,7 @@
import SQLite
import SwiftyBeaver
//================================================================================
// ================================================================================
// jami files structure
//
// Jami Documents folder
......@@ -38,7 +38,7 @@ import SwiftyBeaver
// │ └── ...
// ├── ring_device.crt
// └── ring_device.key
//================================================================================<