1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- //
- // SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
- // SPDX-License-Identifier: GPL-3.0-or-later
- //
- import Foundation
- @objc protocol AvatarEditViewDelegate {
- @objc func avatarEditViewPresentCamera(_ controller: AvatarEditView?)
- @objc func avatarEditViewPresentPhotoLibrary(_ controller: AvatarEditView?)
- @objc optional func avatarEditViewPresentEmojiAvatarPicker(_ controller: AvatarEditView?)
- @objc func avatarEditViewRemoveAvatar(_ controller: AvatarEditView?)
- }
- @objcMembers class AvatarEditView: UIView, UIImagePickerControllerDelegate, UINavigationControllerDelegate, TOCropViewControllerDelegate {
- public weak var delegate: AvatarEditViewDelegate?
- @IBOutlet var contentView: UIView!
- @IBOutlet weak var avatarImageView: AvatarImageView!
- @IBOutlet weak var nameLabel: UILabel!
- @IBOutlet weak var editView: UIView!
- @IBOutlet weak var scopeButton: UIButton!
- @IBOutlet weak var cameraButton: UIButton!
- @IBOutlet weak var photoLibraryButton: UIButton!
- @IBOutlet weak var emojiButton: UIButton!
- @IBOutlet weak var trashButton: UIButton!
- override init(frame: CGRect) {
- super.init(frame: frame)
- commonInit()
- }
- required init?(coder aDecoder: NSCoder) {
- super.init(coder: aDecoder)
- commonInit()
- }
- func commonInit() {
- Bundle.main.loadNibNamed("AvatarEditView", owner: self, options: nil)
- contentView.frame = self.bounds
- contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
- self.avatarImageView.layer.masksToBounds = true
- self.addSubview(contentView)
- }
- override func layoutSubviews() {
- self.avatarImageView.layer.cornerRadius = self.avatarImageView.frame.size.height / 2
- }
- func changeButtonState(to state: Bool) {
- self.scopeButton.isEnabled = state
- self.cameraButton.isEnabled = state
- self.photoLibraryButton.isEnabled = state
- self.emojiButton.isEnabled = state
- self.trashButton.isEnabled = state
- }
- @IBAction func cameraButtonTouchUpInside(_ sender: Any) {
- self.delegate?.avatarEditViewPresentCamera(self)
- }
- @IBAction func photoLibraryTouchUpInside(_ sender: Any) {
- self.delegate?.avatarEditViewPresentPhotoLibrary(self)
- }
- @IBAction func trashTouchUpInside(_ sender: Any) {
- self.delegate?.avatarEditViewRemoveAvatar(self)
- }
- @IBAction func emojiTouchUpInside(_ sender: Any) {
- self.delegate?.avatarEditViewPresentEmojiAvatarPicker?(self)
- }
- }
|