element-ios/Riot/Modules/Room/RoomInfo/RoomInfoList/Views/RoomInfoBasicView.swift

82 lines
3.2 KiB
Swift
Raw Normal View History

2020-09-18 15:55:41 +00:00
//
// Copyright 2020 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
import UIKit
import Reusable
class RoomInfoBasicView: UIView {
2020-09-18 15:55:41 +00:00
@IBOutlet private weak var mainStackView: UIStackView!
2020-09-18 15:55:41 +00:00
@IBOutlet private weak var avatarImageView: MXKImageView!
2020-09-21 11:07:12 +00:00
@IBOutlet private weak var shadowView: UIView! {
didSet {
let shadowPath = UIBezierPath(roundedRect: shadowView.bounds, cornerRadius: 0)
let layer = CALayer()
layer.shadowPath = shadowPath.cgPath
layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.12).cgColor
layer.shadowOpacity = 1
layer.shadowRadius = 25
layer.shadowOffset = CGSize(width: 0, height: 4)
layer.bounds = shadowView.bounds
layer.position = shadowView.center
shadowView.layer.addSublayer(layer)
}
}
2020-09-18 15:55:41 +00:00
@IBOutlet private weak var badgeImageView: UIImageView!
@IBOutlet private weak var roomNameLabel: UILabel!
@IBOutlet private weak var roomAddressLabel: UILabel!
@IBOutlet private weak var roomTopicLabel: UILabel!
2020-09-18 15:55:41 +00:00
2020-09-23 09:46:33 +00:00
func configure(withViewData viewData: RoomInfoBasicViewData) {
let avatarImage = AvatarGenerator.generateAvatar(forMatrixItem: viewData.roomId, withDisplayName: viewData.roomDisplayName)
if let avatarUrl = viewData.avatarUrl {
avatarImageView.enableInMemoryCache = true
avatarImageView.setImageURI(avatarUrl,
withType: nil,
andImageOrientation: .up,
toFitViewSize: avatarImageView.frame.size,
with: MXThumbnailingMethodCrop,
previewImage: avatarImage,
mediaManager: viewData.mediaManager)
} else {
avatarImageView.image = avatarImage
}
badgeImageView.image = viewData.encryptionImage
roomNameLabel.text = viewData.roomDisplayName
roomAddressLabel.text = viewData.mainRoomAlias
roomAddressLabel.isHidden = (roomAddressLabel.text?.count ?? 0) == 0
roomTopicLabel.text = viewData.roomTopic
roomTopicLabel.isHidden = (roomTopicLabel.text?.count ?? 0) == 0
2020-09-18 15:55:41 +00:00
}
2020-09-18 15:55:41 +00:00
}
extension RoomInfoBasicView: NibLoadable {}
2020-09-18 15:55:41 +00:00
extension RoomInfoBasicView: Themable {
2020-09-18 15:55:41 +00:00
func update(theme: Theme) {
backgroundColor = theme.headerBackgroundColor
2020-09-18 15:55:41 +00:00
roomNameLabel.textColor = theme.textPrimaryColor
roomAddressLabel.textColor = theme.textSecondaryColor
roomTopicLabel.textColor = theme.textSecondaryColor
2020-09-18 15:55:41 +00:00
}
}