Skip to content
This repository was archived by the owner on Oct 2, 2021. It is now read-only.

Commit 5c6029e

Browse files
Improvement - Show Main Avatar
show main avatar in chat room and profile, also load large thumbnail for room list avatars
1 parent 0a459f1 commit 5c6029e

File tree

10 files changed

+45
-25
lines changed

10 files changed

+45
-25
lines changed

iGap/Controller/Custom Master Controllers/NavigationController/IGNavigationItem.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ class IGNavigationItem: UINavigationItem {
385385
let avatarViewFrame = CGRect(x: 0, y: 0, width: 40, height:40)
386386

387387
let avatarView = IGAvatarView(frame: avatarViewFrame)
388-
avatarView.setRoom(room)
388+
avatarView.setRoom(room, showMainAvatar: true)
389389
rightViewContainer!.addSubview(avatarView)
390390

391391
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) {

iGap/Controller/View Controllers/Channel and Group Info/IGChannelInfoTableViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ class IGChannelInfoTableViewController: UITableViewController , UIGestureRecogni
712712
channelNameLabel.text = room?.title
713713
ChannelDescriptionLabel.text = room?.channelRoom?.roomDescription
714714
if let channelRoom = room {
715-
channelImage.setRoom(channelRoom)
715+
channelImage.setRoom(channelRoom, showMainAvatar: true)
716716
}
717717
if let channelType = room?.channelRoom?.type {
718718
switch channelType {

iGap/Controller/View Controllers/Channel and Group Info/IGGroupInfoTableViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,7 @@ class IGGroupInfoTableViewController: UITableViewController , UIGestureRecognize
589589
groupNameLabel.text = room?.title
590590
groupDescriptionLabel.text = room?.groupRoom?.roomDescription
591591
if let groupRoom = room {
592-
groupAvatarView.setRoom(groupRoom)
592+
groupAvatarView.setRoom(groupRoom, showMainAvatar: true)
593593
}
594594
if let groupType = room?.groupRoom?.type {
595595
switch groupType {

iGap/Controller/View Controllers/Chat and User Info/IGRegistredUserInfoTableViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class IGRegistredUserInfoTableViewController: UITableViewController , UIGestureR
4242
super.viewDidLoad()
4343
if user != nil {
4444
requestToGetAvatarList()
45-
self.avatarView.setUser(user!)
45+
self.avatarView.setUser(user!, showMainAvatar: true)
4646
self.displayNameLabel.text = user!.displayName
4747
if let phone = user?.phone {
4848
if phone == 0 {
@@ -299,7 +299,7 @@ class IGRegistredUserInfoTableViewController: UITableViewController , UIGestureR
299299
func handleTap(recognizer:UITapGestureRecognizer) {
300300
if recognizer.state == .ended {
301301
if let userAvatar = user?.avatar {
302-
showAvatar( avatar: userAvatar)
302+
showAvatar(avatar: userAvatar)
303303
}
304304
}
305305
}

iGap/Controller/View Controllers/Setting/IGSettingAddContactViewController.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@ class IGSettingAddContactViewController: UIViewController, UIGestureRecognizerDe
4444
}
4545

4646
private func makeView(){
47-
btnChooseCountry.removeUnderline()
48-
4947
btnChooseCountry.layer.cornerRadius = 5
5048
btnChooseCountry.layer.borderWidth = 1
5149
btnChooseCountry.layer.borderColor = UIColor.iGapColor().cgColor

iGap/Controller/View Controllers/Setting/IGSettingTableViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class IGSettingTableViewController: UITableViewController , NVActivityIndicatorV
5050
let realm = try! Realm()
5151
let predicate = NSPredicate(format: "id = %lld", currentUserId!)
5252
if let userInDb = realm.objects(IGRegisteredUser.self).filter(predicate).first {
53-
userAvatarView.setUser(userInDb)
53+
userAvatarView.setUser(userInDb, showMainAvatar: true)
5454
usernameLabel.text = userInDb.displayName
5555
user = userInDb
5656
userAvatarView.avatarImageView?.isUserInteractionEnabled = true

iGap/General/IGGlobal.swift

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -564,28 +564,52 @@ extension UIImageView {
564564
}
565565
}
566566

567-
func setImage(avatar: IGAvatar) {
568-
if let smallThumbnail = avatar.file?.smallThumbnail {
567+
func setImage(avatar: IGAvatar, showMain: Bool = false) {
568+
569+
var file : IGFile!
570+
var previewType : IGFile.PreviewType!
571+
572+
if showMain {
573+
574+
file = avatar.file
575+
previewType = IGFile.PreviewType.originalFile
576+
577+
} else {
578+
579+
if let largeThumbnail = avatar.file?.largeThumbnail {
580+
file = largeThumbnail
581+
previewType = IGFile.PreviewType.largeThumbnail
582+
} else {
583+
file = avatar.file?.smallThumbnail
584+
previewType = IGFile.PreviewType.smallThumbnail
585+
}
586+
}
587+
588+
if file != nil {
569589
do {
570-
if smallThumbnail.attachedImage != nil {
571-
self.image = smallThumbnail.attachedImage
590+
if file.attachedImage != nil {
591+
self.image = file.attachedImage
572592
} else {
593+
573594
var image: UIImage?
574-
let path = smallThumbnail.path()
595+
let path = file.path()
575596
if IGGlobal.isFileExist(path: path) {
576597
image = UIImage(contentsOfFile: path!.path)
577598
}
578599

579600
if image != nil {
580601
self.image = image
581602
} else {
603+
if showMain {
604+
setImage(avatar: avatar) // call this method again for load thumbnail before load main image
605+
}
582606
throw NSError(domain: "asa", code: 1234, userInfo: nil)
583607
}
584608
}
585609
} catch {
586-
IGDownloadManager.sharedManager.download(file: smallThumbnail, previewType:.smallThumbnail, completion: { (attachment) -> Void in
610+
IGDownloadManager.sharedManager.download(file: file, previewType: previewType, completion: { (attachment) -> Void in
587611
DispatchQueue.main.async {
588-
let path = smallThumbnail.path()
612+
let path = file.path()
589613
if let data = try? Data(contentsOf: path!) {
590614
if let image = UIImage(data: data) {
591615
self.image = image
@@ -597,9 +621,7 @@ extension UIImageView {
597621
})
598622
}
599623
}
600-
601624
}
602-
603625
}
604626

605627
//MARK: -

iGap/Libraries/Chat Screen/Controller/IGMessageViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2522,7 +2522,7 @@ extension IGMessageViewController: IGMessageGeneralCollectionViewCellDelegate {
25222522
return self
25232523
}
25242524

2525-
func didTapOnAttachment(cellMessage: IGRoomMessage, cell: IGMessageGeneralCollectionViewCell, imageView: IGImageView) {
2525+
func didTapOnAttachment(cellMessage: IGRoomMessage, cell: IGMessageGeneralCollectionViewCell, imageView: IGImageView?) {
25262526

25272527
var finalMessage = cellMessage
25282528
var roomMessageLists = self.messagesWithMedia

iGap/Libraries/Chat Screen/View/IGMessageGeneralCollectionViewCell.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import UIKit
1313

1414
protocol IGMessageGeneralCollectionViewCellDelegate {
1515
func didTapAndHoldOnMessage(cellMessage: IGRoomMessage, cell: IGMessageGeneralCollectionViewCell)
16-
func didTapOnAttachment(cellMessage: IGRoomMessage, cell: IGMessageGeneralCollectionViewCell, imageView: IGImageView)
16+
func didTapOnAttachment(cellMessage: IGRoomMessage, cell: IGMessageGeneralCollectionViewCell, imageView: IGImageView?)
1717
func didTapOnForwardedAttachment(cellMessage: IGRoomMessage, cell: IGMessageGeneralCollectionViewCell)
1818
func didTapOnOriginalMessageWhenReply(cellMessage: IGRoomMessage, cell: IGMessageGeneralCollectionViewCell)
1919
func didTapOnSenderAvatar(cellMessage: IGRoomMessage, cell: IGMessageGeneralCollectionViewCell)

iGap/VIew/ReusableViews/IGAvatarView.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,15 @@ class IGAvatarView: UIView {
7171
self.initialLettersLabel!.text = ""
7272
}
7373

74-
func setUser(_ user: IGRegisteredUser) {
74+
func setUser(_ user: IGRegisteredUser, showMainAvatar: Bool = false) {
7575
self.avatarImageView!.image = nil
7676
self.initialLettersLabel!.text = user.initials
7777

7878
let color = UIColor(hexString: user.color)
7979
self.initialLettersView!.backgroundColor = color
8080

8181
if let avatar = user.avatar {
82-
self.avatarImageView!.setImage(avatar: avatar)
82+
self.avatarImageView!.setImage(avatar: avatar, showMain: showMainAvatar)
8383
}
8484

8585
if self.frame.size.width < 40 {
@@ -92,7 +92,7 @@ class IGAvatarView: UIView {
9292

9393
}
9494

95-
func setRoom(_ room: IGRoom) {
95+
func setRoom(_ room: IGRoom, showMainAvatar: Bool = false) {
9696

9797
if room.isInvalidated {
9898
return
@@ -107,16 +107,16 @@ class IGAvatarView: UIView {
107107
switch room.type {
108108
case .chat:
109109
if let avatar = room.chatRoom?.peer?.avatar {
110-
self.avatarImageView!.setImage(avatar: avatar)
110+
self.avatarImageView!.setImage(avatar: avatar, showMain: showMainAvatar)
111111

112112
}
113113
case .group:
114114
if let avatar = room.groupRoom?.avatar {
115-
self.avatarImageView!.setImage(avatar: avatar)
115+
self.avatarImageView!.setImage(avatar: avatar, showMain: showMainAvatar)
116116
}
117117
case .channel:
118118
if let avatar = room.channelRoom?.avatar {
119-
self.avatarImageView!.setImage(avatar: avatar)
119+
self.avatarImageView!.setImage(avatar: avatar, showMain: showMainAvatar)
120120
}
121121
}
122122

0 commit comments

Comments
 (0)