mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
Video avatar fixes
This commit is contained in:
@@ -819,7 +819,7 @@ private func settingsEditingItems(data: PeerInfoScreenData?, state: PeerInfoStat
|
||||
let ItemAddAccountHelp = 6
|
||||
let ItemLogout = 7
|
||||
|
||||
items[.help]!.append(PeerInfoScreenCommentItem(id: ItemNameHelp, text: presentationData.strings.EditProfile_NameAndPhotoHelp))
|
||||
items[.help]!.append(PeerInfoScreenCommentItem(id: ItemNameHelp, text: presentationData.strings.EditProfile_NameAndPhotoOrVideoHelp))
|
||||
|
||||
if let cachedData = data.cachedData as? CachedUserData {
|
||||
items[.bio]!.append(PeerInfoScreenMultilineInputItem(id: ItemBio, text: state.updatingBio ?? (cachedData.about ?? ""), placeholder: presentationData.strings.UserInfo_About_Placeholder, textUpdated: { updatedText in
|
||||
@@ -2110,15 +2110,36 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD
|
||||
}))
|
||||
}
|
||||
|
||||
self.headerNode.requestOpenAvatarForEditing = { [weak self] in
|
||||
self.headerNode.requestOpenAvatarForEditing = { [weak self] confirm in
|
||||
guard let strongSelf = self else {
|
||||
return
|
||||
}
|
||||
if strongSelf.state.updatingAvatar != nil {
|
||||
strongSelf.updateAvatarDisposable.set(nil)
|
||||
strongSelf.state = strongSelf.state.withUpdatingAvatar(nil)
|
||||
if let (layout, navigationHeight) = strongSelf.validLayout {
|
||||
strongSelf.containerLayoutUpdated(layout: layout, navigationHeight: navigationHeight, transition: .immediate, additive: false)
|
||||
let proceed = {
|
||||
strongSelf.updateAvatarDisposable.set(nil)
|
||||
strongSelf.state = strongSelf.state.withUpdatingAvatar(nil)
|
||||
if let (layout, navigationHeight) = strongSelf.validLayout {
|
||||
strongSelf.containerLayoutUpdated(layout: layout, navigationHeight: navigationHeight, transition: .immediate, additive: false)
|
||||
}
|
||||
}
|
||||
if confirm {
|
||||
let controller = ActionSheetController(presentationData: strongSelf.presentationData)
|
||||
let dismissAction: () -> Void = { [weak controller] in
|
||||
controller?.dismissAnimated()
|
||||
}
|
||||
|
||||
var items: [ActionSheetItem] = []
|
||||
items.append(ActionSheetButtonItem(title: strongSelf.presentationData.strings.Settings_CancelUpload, color: .destructive, action: { [weak self] in
|
||||
dismissAction()
|
||||
proceed()
|
||||
}))
|
||||
controller.setItemGroups([
|
||||
ActionSheetItemGroup(items: items),
|
||||
ActionSheetItemGroup(items: [ActionSheetButtonItem(title: strongSelf.presentationData.strings.Common_Cancel, action: { dismissAction() })])
|
||||
])
|
||||
strongSelf.controller?.present(controller, in: .window(.root), with: ViewControllerPresentationArguments(presentationAnimation: .modalSheet))
|
||||
} else {
|
||||
proceed()
|
||||
}
|
||||
} else {
|
||||
strongSelf.openAvatarForEditing()
|
||||
@@ -2140,7 +2161,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD
|
||||
}
|
||||
switch key {
|
||||
case .edit:
|
||||
(strongSelf.controller?.parent as? TabBarController)?.updateIsTabBarHidden(true, transition: .animated(duration: 0.2, curve: .easeInOut))
|
||||
(strongSelf.controller?.parent as? TabBarController)?.updateIsTabBarHidden(true, transition: .animated(duration: 0.3, curve: .linear))
|
||||
strongSelf.state = strongSelf.state.withIsEditing(true)
|
||||
var updateOnCompletion = false
|
||||
if strongSelf.headerNode.isAvatarExpanded {
|
||||
@@ -2166,7 +2187,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD
|
||||
})
|
||||
strongSelf.controller?.navigationItem.setLeftBarButton(UIBarButtonItem(title: strongSelf.presentationData.strings.Common_Cancel, style: .plain, target: strongSelf, action: #selector(strongSelf.editingCancelPressed)), animated: true)
|
||||
case .done, .cancel:
|
||||
(strongSelf.controller?.parent as? TabBarController)?.updateIsTabBarHidden(false, transition: .animated(duration: 0.2, curve: .easeInOut))
|
||||
(strongSelf.controller?.parent as? TabBarController)?.updateIsTabBarHidden(false, transition: .animated(duration: 0.3, curve: .linear))
|
||||
strongSelf.view.endEditing(true)
|
||||
if case .done = key {
|
||||
guard let data = strongSelf.data else {
|
||||
@@ -3880,13 +3901,13 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD
|
||||
|
||||
if let item = item, case let .image(image) = item {
|
||||
if index > 0 {
|
||||
let title: String
|
||||
let setMainTitle: String
|
||||
if image.2.isEmpty {
|
||||
title = self.presentationData.strings.ProfilePhoto_SetMainPhoto
|
||||
setMainTitle = self.presentationData.strings.ProfilePhoto_SetMainPhoto
|
||||
} else {
|
||||
title = self.presentationData.strings.ProfilePhoto_SetMainVideo
|
||||
setMainTitle = self.presentationData.strings.ProfilePhoto_SetMainVideo
|
||||
}
|
||||
items.append(ActionSheetButtonItem(title: title, color: .accent, action: { [weak self] in
|
||||
items.append(ActionSheetButtonItem(title: setMainTitle, color: .accent, action: { [weak self] in
|
||||
dismissAction()
|
||||
self?.setMainAvatar(item)
|
||||
}))
|
||||
@@ -3897,7 +3918,14 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD
|
||||
self?.editAvatarItem(item)
|
||||
}))
|
||||
|
||||
items.append(ActionSheetButtonItem(title: self.presentationData.strings.GroupInfo_SetGroupPhotoDelete, color: .destructive, action: { [weak self] in
|
||||
|
||||
let deleteTitle: String
|
||||
if image.2.isEmpty {
|
||||
deleteTitle = self.presentationData.strings.GroupInfo_SetGroupPhotoDelete
|
||||
} else {
|
||||
deleteTitle = self.presentationData.strings.Settings_RemoveVideo
|
||||
}
|
||||
items.append(ActionSheetButtonItem(title: deleteTitle, color: .destructive, action: { [weak self] in
|
||||
dismissAction()
|
||||
self?.deleteAvatar(item)
|
||||
}))
|
||||
|
||||
Reference in New Issue
Block a user