@ -1,5 +1,6 @@
import SessionUIKit
import SessionUIKit
import SessionMessagingKit
import SessionMessagingKit
import UIKit
// TODO:
// TODO:
// • S l i g h t p a g i n g g l i t c h w h e n s c r o l l i n g u p a n d l o a d i n g m o r e c o n t e n t
// • S l i g h t p a g i n g g l i t c h w h e n s c r o l l i n g u p a n d l o a d i n g m o r e c o n t e n t
@ -465,32 +466,55 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
// MARK: U p d a t i n g
// MARK: U p d a t i n g
func updateNavBarButtons ( ) {
func updateNavBarButtons ( ) {
// B a c k b u t t o n ( t o a p p e a r o n p u s h e d s c r e e n )
let backButton = UIBarButtonItem ( title : " " , style : . plain , target : nil , action : nil )
backButton . tintColor = Colors . text
navigationItem . backBarButtonItem = backButton
navigationItem . hidesBackButton = isShowingSearchUI
if isShowingSearchUI {
if isShowingSearchUI {
navigationItem . leftBarButtonItem = nil
navigationItem . leftBarButtonItem = nil
navigationItem . rightBarButtonItems = [ ]
navigationItem . rightBarButtonItems = [ ]
} else {
}
else {
navigationItem . hidesBackButton = false
navigationItem . leftBarButtonItem = UIViewController . createOWSBackButton ( withTarget : self , selector : #selector ( handleBackPressed ) )
navigationItem . leftBarButtonItem = UIViewController . createOWSBackButton ( withTarget : self , selector : #selector ( handleBackPressed ) )
let rightBarButtonItem : UIBarButtonItem
if let contactThread : TSContactThread = thread as ? TSContactThread {
if thread is TSContactThread {
// D o n ' t s h o w t h e s e t t i n g s b u t t o n f o r m e s s a g e r e q u e s t s
if let contact : Contact = Storage . shared . getContact ( with : contactThread . contactSessionID ( ) ) , contact . isApproved , contact . didApproveMe {
let size = Values . verySmallProfilePictureSize
let size = Values . verySmallProfilePictureSize
let profilePictureView = ProfilePictureView ( )
let profilePictureView = ProfilePictureView ( )
profilePictureView . accessibilityLabel = " Settings button "
profilePictureView . size = size
profilePictureView . size = size
profilePictureView . update ( for : thread )
profilePictureView . update ( for : thread )
profilePictureView . set ( . width , to : size )
profilePictureView . set ( . width , to : size )
profilePictureView . set ( . height , to : size )
profilePictureView . set ( . height , to : size )
let tapGestureRecognizer = UITapGestureRecognizer ( target : self , action : #selector ( openSettings ) )
let tapGestureRecognizer = UITapGestureRecognizer ( target : self , action : #selector ( openSettings ) )
profilePictureView . addGestureRecognizer ( tapGestureRecognizer )
profilePictureView . addGestureRecognizer ( tapGestureRecognizer )
rightBarButtonItem = UIBarButtonItem ( customView : profilePictureView )
} else {
let rightBarButtonItem : UIBarButtonItem = UIBarButtonItem ( customView : profilePictureView )
rightBarButtonItem = UIBarButtonItem ( image : UIImage ( named : " Gear " ) , style : . plain , target : self , action : #selector ( openSettings ) )
rightBarButtonItem . accessibilityLabel = " Settings button "
rightBarButtonItem . isAccessibilityElement = true
navigationItem . rightBarButtonItem = rightBarButtonItem
}
}
else {
// N o t e : A d d i n g a n e m p t y b u t t o n b e c a u s e w i t h o u t i t t h e t i t l e a l i g n m e n t i s b u s t e d ( N o t e : T h e s i z e w a s
// t a k e n f r o m t h e l a y o u t i n s p e c t o r f o r t h e b a c k b u t t o n i n X c o d e
navigationItem . rightBarButtonItem = UIBarButtonItem ( customView : UIView ( frame : CGRect ( x : 0 , y : 0 , width : 37 , height : 44 ) ) )
}
}
else {
let rightBarButtonItem : UIBarButtonItem = UIBarButtonItem ( image : UIImage ( named : " Gear " ) , style : . plain , target : self , action : #selector ( openSettings ) )
rightBarButtonItem . accessibilityLabel = " Settings button "
rightBarButtonItem . accessibilityLabel = " Settings button "
rightBarButtonItem . isAccessibilityElement = true
rightBarButtonItem . isAccessibilityElement = true
navigationItem . rightBarButtonItem = rightBarButtonItem
navigationItem . rightBarButtonItem = rightBarButtonItem
}
}
}
}
}
private func highlightFocusedMessageIfNeeded ( ) {
private func highlightFocusedMessageIfNeeded ( ) {
if let indexPath = focusedMessageIndexPath , let cell = messagesTableView . cellForRow ( at : indexPath ) as ? VisibleMessageCell {
if let indexPath = focusedMessageIndexPath , let cell = messagesTableView . cellForRow ( at : indexPath ) as ? VisibleMessageCell {
@ -819,7 +843,7 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
let searchBar = searchController . uiSearchController . searchBar
let searchBar = searchController . uiSearchController . searchBar
searchBar . searchBarStyle = . minimal
searchBar . searchBarStyle = . minimal
searchBar . barStyle = . black
searchBar . barStyle = . black
searchBar . tintColor = Colors . accen t
searchBar . tintColor = Colors . tex t
let searchIcon = UIImage ( named : " searchbar_search " ) ! . asTintedImage ( color : Colors . searchBarPlaceholder )
let searchIcon = UIImage ( named : " searchbar_search " ) ! . asTintedImage ( color : Colors . searchBarPlaceholder )
searchBar . setImage ( searchIcon , for : . search , state : UIControl . State . normal )
searchBar . setImage ( searchIcon , for : . search , state : UIControl . State . normal )
let clearIcon = UIImage ( named : " searchbar_clear " ) ! . asTintedImage ( color : Colors . searchBarPlaceholder )
let clearIcon = UIImage ( named : " searchbar_clear " ) ! . asTintedImage ( color : Colors . searchBarPlaceholder )