Skip to content
Snippets Groups Projects
Commit 1502b520 authored by Kateryna Kostiuk's avatar Kateryna Kostiuk
Browse files

UI/UX: fix flickering when open conversation

Change-Id: I0f1b69aa3c6734574396aaa7f7d0134486a7a269
parent 09dbb3b5
No related branches found
No related tags found
No related merge requests found
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="Safe area layout guides" 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"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
<scenes> <scenes>
...@@ -17,20 +16,6 @@ ...@@ -17,20 +16,6 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/> <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="yc2-Jn-6vm">
<rect key="frame" x="0.0" y="-80" width="375" height="747"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="MessageCell" id="Cd7-Fm-IM5">
<rect key="frame" x="0.0" y="50" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Cd7-Fm-IM5" id="TOb-Hu-RG9">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</tableViewCellContentView>
</tableViewCell>
</prototypes>
</tableView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5cj-ge-3dv"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5cj-ge-3dv">
<rect key="frame" x="0.0" y="20" width="375" height="60"/> <rect key="frame" x="0.0" y="20" width="375" height="60"/>
<color key="backgroundColor" red="0.88391119240000005" green="0.82437592739999999" blue="0.76125866170000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="backgroundColor" red="0.88391119240000005" green="0.82437592739999999" blue="0.76125866170000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
...@@ -84,26 +69,22 @@ ...@@ -84,26 +69,22 @@
<viewLayoutGuide key="safeArea" id="mrp-Ty-hZO"/> <viewLayoutGuide key="safeArea" id="mrp-Ty-hZO"/>
<constraints> <constraints>
<constraint firstItem="ehB-ol-cdx" firstAttribute="leading" secondItem="lhx-ny-Zct" secondAttribute="leading" id="AUO-95-xlZ"/> <constraint firstItem="ehB-ol-cdx" firstAttribute="leading" secondItem="lhx-ny-Zct" secondAttribute="leading" id="AUO-95-xlZ"/>
<constraint firstItem="XRu-HM-jhQ" firstAttribute="bottom" secondItem="yc2-Jn-6vm" secondAttribute="bottom" id="D1h-vM-lOK"/>
<constraint firstAttribute="trailing" secondItem="6Wq-EJ-CAF" secondAttribute="trailing" id="EuA-fk-PFm"/> <constraint firstAttribute="trailing" secondItem="6Wq-EJ-CAF" secondAttribute="trailing" id="EuA-fk-PFm"/>
<constraint firstItem="04J-Zf-h3H" firstAttribute="trailing" secondItem="ehB-ol-cdx" secondAttribute="trailing" id="HZL-ep-59G"/> <constraint firstItem="04J-Zf-h3H" firstAttribute="trailing" secondItem="ehB-ol-cdx" secondAttribute="trailing" id="HZL-ep-59G"/>
<constraint firstAttribute="bottom" secondItem="6Wq-EJ-CAF" secondAttribute="bottom" id="QKw-Wp-ff0"/> <constraint firstAttribute="bottom" secondItem="6Wq-EJ-CAF" secondAttribute="bottom" id="QKw-Wp-ff0"/>
<constraint firstItem="yc2-Jn-6vm" firstAttribute="leading" secondItem="lhx-ny-Zct" secondAttribute="leading" id="RmT-dh-QdK"/> <constraint firstItem="XRu-HM-jhQ" firstAttribute="trailing" secondItem="mrp-Ty-hZO" secondAttribute="trailing" id="Y0a-P4-lvO"/>
<constraint firstAttribute="trailing" secondItem="yc2-Jn-6vm" secondAttribute="trailing" id="Vbp-Qr-Bjn"/>
<constraint firstItem="XRu-HM-jhQ" firstAttribute="centerX" secondItem="yc2-Jn-6vm" secondAttribute="centerX" id="Y16-31-gDX"/>
<constraint firstItem="5cj-ge-3dv" firstAttribute="leading" secondItem="ehB-ol-cdx" secondAttribute="leading" id="ZMK-xT-VM8"/> <constraint firstItem="5cj-ge-3dv" firstAttribute="leading" secondItem="ehB-ol-cdx" secondAttribute="leading" id="ZMK-xT-VM8"/>
<constraint firstItem="yc2-Jn-6vm" firstAttribute="top" secondItem="mrp-Ty-hZO" secondAttribute="top" constant="-100" id="a1b-Sx-HXo"/>
<constraint firstItem="5cj-ge-3dv" firstAttribute="trailing" secondItem="ehB-ol-cdx" secondAttribute="trailing" id="adg-fs-d5i"/> <constraint firstItem="5cj-ge-3dv" firstAttribute="trailing" secondItem="ehB-ol-cdx" secondAttribute="trailing" id="adg-fs-d5i"/>
<constraint firstItem="5cj-ge-3dv" firstAttribute="top" secondItem="ehB-ol-cdx" secondAttribute="top" id="bMn-Xz-w1J"/> <constraint firstItem="5cj-ge-3dv" firstAttribute="top" secondItem="ehB-ol-cdx" secondAttribute="top" id="bMn-Xz-w1J"/>
<constraint firstItem="XRu-HM-jhQ" firstAttribute="leading" secondItem="mrp-Ty-hZO" secondAttribute="leading" id="bNX-ei-rzA"/>
<constraint firstItem="5cj-ge-3dv" firstAttribute="bottom" secondItem="ehB-ol-cdx" secondAttribute="bottom" id="bi2-5t-Ueh"/> <constraint firstItem="5cj-ge-3dv" firstAttribute="bottom" secondItem="ehB-ol-cdx" secondAttribute="bottom" id="bi2-5t-Ueh"/>
<constraint firstItem="04J-Zf-h3H" firstAttribute="top" secondItem="5cj-ge-3dv" secondAttribute="top" id="e8r-Nh-OCt"/> <constraint firstItem="04J-Zf-h3H" firstAttribute="top" secondItem="5cj-ge-3dv" secondAttribute="top" id="e8r-Nh-OCt"/>
<constraint firstItem="04J-Zf-h3H" firstAttribute="leading" secondItem="ehB-ol-cdx" secondAttribute="leading" id="f4Y-Wq-YiD"/> <constraint firstItem="04J-Zf-h3H" firstAttribute="leading" secondItem="ehB-ol-cdx" secondAttribute="leading" id="f4Y-Wq-YiD"/>
<constraint firstAttribute="trailing" secondItem="ehB-ol-cdx" secondAttribute="trailing" id="hsT-qM-JJP"/> <constraint firstAttribute="trailing" secondItem="ehB-ol-cdx" secondAttribute="trailing" id="hsT-qM-JJP"/>
<constraint firstAttribute="bottom" secondItem="yc2-Jn-6vm" secondAttribute="bottom" id="m6U-Gp-jhl"/>
<constraint firstItem="5cj-ge-3dv" firstAttribute="top" secondItem="mrp-Ty-hZO" secondAttribute="top" id="ucp-wl-kSP"/> <constraint firstItem="5cj-ge-3dv" firstAttribute="top" secondItem="mrp-Ty-hZO" secondAttribute="top" id="ucp-wl-kSP"/>
<constraint firstItem="6Wq-EJ-CAF" firstAttribute="top" secondItem="lhx-ny-Zct" secondAttribute="top" id="v3Q-NK-vb1"/> <constraint firstItem="6Wq-EJ-CAF" firstAttribute="top" secondItem="lhx-ny-Zct" secondAttribute="top" id="v3Q-NK-vb1"/>
<constraint firstItem="XRu-HM-jhQ" firstAttribute="width" secondItem="yc2-Jn-6vm" secondAttribute="width" id="vBi-yc-6H9"/>
<constraint firstItem="6Wq-EJ-CAF" firstAttribute="leading" secondItem="lhx-ny-Zct" secondAttribute="leading" id="was-ym-C9C"/> <constraint firstItem="6Wq-EJ-CAF" firstAttribute="leading" secondItem="lhx-ny-Zct" secondAttribute="leading" id="was-ym-C9C"/>
<constraint firstItem="XRu-HM-jhQ" firstAttribute="bottom" secondItem="mrp-Ty-hZO" secondAttribute="bottom" id="yKt-l3-Hu5"/>
</constraints> </constraints>
</view> </view>
<connections> <connections>
...@@ -112,7 +93,6 @@ ...@@ -112,7 +93,6 @@
<outlet property="currentCallButton" destination="ehB-ol-cdx" id="hXv-aJ-8DN"/> <outlet property="currentCallButton" destination="ehB-ol-cdx" id="hXv-aJ-8DN"/>
<outlet property="currentCallLabel" destination="5cj-ge-3dv" id="HaN-nP-GKW"/> <outlet property="currentCallLabel" destination="5cj-ge-3dv" id="HaN-nP-GKW"/>
<outlet property="spinnerView" destination="6Wq-EJ-CAF" id="XKK-Rh-rmd"/> <outlet property="spinnerView" destination="6Wq-EJ-CAF" id="XKK-Rh-rmd"/>
<outlet property="tableView" destination="yc2-Jn-6vm" id="neM-4t-MpC"/>
</connections> </connections>
</viewController> </viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="lOF-r3-fSY" userLabel="First Responder" sceneMemberID="firstResponder"/> <placeholder placeholderIdentifier="IBFirstResponder" id="lOF-r3-fSY" userLabel="First Responder" sceneMemberID="firstResponder"/>
...@@ -120,9 +100,4 @@ ...@@ -120,9 +100,4 @@
<point key="canvasLocation" x="844" y="-1179.7601199400301"/> <point key="canvasLocation" x="844" y="-1179.7601199400301"/>
</scene> </scene>
</scenes> </scenes>
<resources>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document> </document>
...@@ -74,6 +74,7 @@ class ConversationViewController: UIViewController, ...@@ -74,6 +74,7 @@ class ConversationViewController: UIViewController,
@IBOutlet weak var callButtonHeightConstraint: NSLayoutConstraint! @IBOutlet weak var callButtonHeightConstraint: NSLayoutConstraint!
var bottomAnchor: NSLayoutConstraint? var bottomAnchor: NSLayoutConstraint?
var keyboardDismissTapRecognizer: UITapGestureRecognizer! var keyboardDismissTapRecognizer: UITapGestureRecognizer!
var swiftUIViewAdded: Bool = false
private lazy var locationManager: CLLocationManager = { return CLLocationManager() }() private lazy var locationManager: CLLocationManager = { return CLLocationManager() }()
...@@ -104,10 +105,10 @@ class ConversationViewController: UIViewController, ...@@ -104,10 +105,10 @@ class ConversationViewController: UIViewController,
object: nil) object: nil)
keyboardDismissTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard)) keyboardDismissTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
self.addSwiftUIView()
} }
private func addSwiftUIView() { private func addSwiftUIView() {
swiftUIViewAdded = true
let transferHelper = TransferHelper(dataTransferService: self.viewModel.dataTransferService, let transferHelper = TransferHelper(dataTransferService: self.viewModel.dataTransferService,
conversationViewModel: self.viewModel) conversationViewModel: self.viewModel)
let swiftUIModel = MessagesListVM(injectionBag: self.viewModel.injectionBag, let swiftUIModel = MessagesListVM(injectionBag: self.viewModel.injectionBag,
...@@ -171,6 +172,9 @@ class ConversationViewController: UIViewController, ...@@ -171,6 +172,9 @@ class ConversationViewController: UIViewController,
swiftUIView.didMove(toParent: self) swiftUIView.didMove(toParent: self)
self.view.backgroundColor = UIColor.systemBackground self.view.backgroundColor = UIColor.systemBackground
self.view.sendSubviewToBack(swiftUIView.view) self.view.sendSubviewToBack(swiftUIView.view)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {[weak self] in
self?.messagesLoadingFinished()
}
} }
@objc @objc
...@@ -729,7 +733,9 @@ class ConversationViewController: UIViewController, ...@@ -729,7 +733,9 @@ class ConversationViewController: UIViewController,
self.navigationController?.navigationBar.layer.shadowOffset = CGSize(width: 0.0, height: 0.5) self.navigationController?.navigationBar.layer.shadowOffset = CGSize(width: 0.0, height: 0.5)
self.navigationController?.navigationBar.layer.shadowOpacity = 0.1 self.navigationController?.navigationBar.layer.shadowOpacity = 0.1
self.textFieldShouldEndEditing = false self.textFieldShouldEndEditing = false
self.messagesLoadingFinished() if !self.swiftUIViewAdded {
self.addSwiftUIView()
}
} }
override func viewWillDisappear(_ animated: Bool) { override func viewWillDisappear(_ animated: Bool) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment