mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Stars reactions improvements
This commit is contained in:
parent
cfe2953c8f
commit
0a8ba8113e
@ -94,8 +94,12 @@ private func calculateColors(context: AccountContext?, explicitColorIndex: Int?,
|
|||||||
colors = AvatarNode.repostColors
|
colors = AvatarNode.repostColors
|
||||||
} else if case .repliesIcon = icon {
|
} else if case .repliesIcon = icon {
|
||||||
colors = AvatarNode.savedMessagesColors
|
colors = AvatarNode.savedMessagesColors
|
||||||
} else if case .anonymousSavedMessagesIcon = icon {
|
} else if case let .anonymousSavedMessagesIcon(isColored) = icon {
|
||||||
colors = AvatarNode.savedMessagesColors
|
if isColored {
|
||||||
|
colors = AvatarNode.savedMessagesColors
|
||||||
|
} else {
|
||||||
|
colors = AvatarNode.grayscaleColors
|
||||||
|
}
|
||||||
} else if case .myNotesIcon = icon {
|
} else if case .myNotesIcon = icon {
|
||||||
colors = AvatarNode.savedMessagesColors
|
colors = AvatarNode.savedMessagesColors
|
||||||
} else if case .editAvatarIcon = icon, let theme {
|
} else if case .editAvatarIcon = icon, let theme {
|
||||||
@ -178,7 +182,7 @@ private enum AvatarNodeIcon: Equatable {
|
|||||||
case none
|
case none
|
||||||
case savedMessagesIcon
|
case savedMessagesIcon
|
||||||
case repliesIcon
|
case repliesIcon
|
||||||
case anonymousSavedMessagesIcon
|
case anonymousSavedMessagesIcon(isColored: Bool)
|
||||||
case myNotesIcon
|
case myNotesIcon
|
||||||
case archivedChatsIcon(hiddenByDefault: Bool)
|
case archivedChatsIcon(hiddenByDefault: Bool)
|
||||||
case editAvatarIcon
|
case editAvatarIcon
|
||||||
@ -192,7 +196,7 @@ public enum AvatarNodeImageOverride: Equatable {
|
|||||||
case image(TelegramMediaImageRepresentation)
|
case image(TelegramMediaImageRepresentation)
|
||||||
case savedMessagesIcon
|
case savedMessagesIcon
|
||||||
case repliesIcon
|
case repliesIcon
|
||||||
case anonymousSavedMessagesIcon
|
case anonymousSavedMessagesIcon(isColored: Bool)
|
||||||
case myNotesIcon
|
case myNotesIcon
|
||||||
case archivedChatsIcon(hiddenByDefault: Bool)
|
case archivedChatsIcon(hiddenByDefault: Bool)
|
||||||
case editAvatarIcon(forceNone: Bool)
|
case editAvatarIcon(forceNone: Bool)
|
||||||
@ -506,9 +510,9 @@ public final class AvatarNode: ASDisplayNode {
|
|||||||
case .repliesIcon:
|
case .repliesIcon:
|
||||||
representation = nil
|
representation = nil
|
||||||
icon = .repliesIcon
|
icon = .repliesIcon
|
||||||
case .anonymousSavedMessagesIcon:
|
case let .anonymousSavedMessagesIcon(isColored):
|
||||||
representation = nil
|
representation = nil
|
||||||
icon = .anonymousSavedMessagesIcon
|
icon = .anonymousSavedMessagesIcon(isColored: isColored)
|
||||||
case .myNotesIcon:
|
case .myNotesIcon:
|
||||||
representation = nil
|
representation = nil
|
||||||
icon = .myNotesIcon
|
icon = .myNotesIcon
|
||||||
@ -681,9 +685,9 @@ public final class AvatarNode: ASDisplayNode {
|
|||||||
case .repliesIcon:
|
case .repliesIcon:
|
||||||
representation = nil
|
representation = nil
|
||||||
icon = .repliesIcon
|
icon = .repliesIcon
|
||||||
case .anonymousSavedMessagesIcon:
|
case let .anonymousSavedMessagesIcon(isColored):
|
||||||
representation = nil
|
representation = nil
|
||||||
icon = .anonymousSavedMessagesIcon
|
icon = .anonymousSavedMessagesIcon(isColored: isColored)
|
||||||
case .myNotesIcon:
|
case .myNotesIcon:
|
||||||
representation = nil
|
representation = nil
|
||||||
icon = .myNotesIcon
|
icon = .myNotesIcon
|
||||||
|
@ -1661,7 +1661,7 @@ public class ChatListItemNode: ItemListRevealOptionsItemNode {
|
|||||||
} else if peer.id.isReplies {
|
} else if peer.id.isReplies {
|
||||||
overrideImage = .repliesIcon
|
overrideImage = .repliesIcon
|
||||||
} else if peer.id.isAnonymousSavedMessages {
|
} else if peer.id.isAnonymousSavedMessages {
|
||||||
overrideImage = .anonymousSavedMessagesIcon
|
overrideImage = .anonymousSavedMessagesIcon(isColored: true)
|
||||||
} else if peer.id == item.context.account.peerId && !displayAsMessage {
|
} else if peer.id == item.context.account.peerId && !displayAsMessage {
|
||||||
if case .savedMessagesChats = item.chatListLocation {
|
if case .savedMessagesChats = item.chatListLocation {
|
||||||
overrideImage = .myNotesIcon
|
overrideImage = .myNotesIcon
|
||||||
|
@ -1093,7 +1093,7 @@ public class ContactsPeerItemNode: ItemListRevealOptionsItemNode {
|
|||||||
} else if peer.id.isReplies, case .generalSearch = item.peerMode {
|
} else if peer.id.isReplies, case .generalSearch = item.peerMode {
|
||||||
overrideImage = .repliesIcon
|
overrideImage = .repliesIcon
|
||||||
} else if peer.id.isAnonymousSavedMessages, case .generalSearch = item.peerMode {
|
} else if peer.id.isAnonymousSavedMessages, case .generalSearch = item.peerMode {
|
||||||
overrideImage = .anonymousSavedMessagesIcon
|
overrideImage = .anonymousSavedMessagesIcon(isColored: true)
|
||||||
} else if peer.isDeleted {
|
} else if peer.isDeleted {
|
||||||
overrideImage = .deletedIcon
|
overrideImage = .deletedIcon
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ final class ReactionPreviewView: UIView {
|
|||||||
size: size,
|
size: size,
|
||||||
placeholderColor: .clear,
|
placeholderColor: .clear,
|
||||||
themeColor: .white,
|
themeColor: .white,
|
||||||
loopMode: .count(0)
|
loopMode: .forever
|
||||||
),
|
),
|
||||||
isVisibleForAnimations: true,
|
isVisibleForAnimations: true,
|
||||||
action: nil
|
action: nil
|
||||||
|
@ -85,7 +85,7 @@ private final class DeleteChatPeerActionSheetItemNode: ActionSheetItemNode {
|
|||||||
} else if chatPeer.id.isReplies {
|
} else if chatPeer.id.isReplies {
|
||||||
self.avatarNode.setPeer(context: context, theme: (context.sharedContext.currentPresentationData.with { $0 }).theme, peer: peer, overrideImage: .repliesIcon)
|
self.avatarNode.setPeer(context: context, theme: (context.sharedContext.currentPresentationData.with { $0 }).theme, peer: peer, overrideImage: .repliesIcon)
|
||||||
} else if chatPeer.id.isAnonymousSavedMessages {
|
} else if chatPeer.id.isAnonymousSavedMessages {
|
||||||
self.avatarNode.setPeer(context: context, theme: (context.sharedContext.currentPresentationData.with { $0 }).theme, peer: peer, overrideImage: .anonymousSavedMessagesIcon)
|
self.avatarNode.setPeer(context: context, theme: (context.sharedContext.currentPresentationData.with { $0 }).theme, peer: peer, overrideImage: .anonymousSavedMessagesIcon(isColored: true))
|
||||||
} else {
|
} else {
|
||||||
var overrideImage: AvatarNodeImageOverride?
|
var overrideImage: AvatarNodeImageOverride?
|
||||||
if chatPeer.isDeleted {
|
if chatPeer.isDeleted {
|
||||||
|
@ -211,10 +211,16 @@ public func mergedMessageReactions(attributes: [MessageAttribute], isTags: Bool)
|
|||||||
updatedCount += reactions[index].count
|
updatedCount += reactions[index].count
|
||||||
reactions.remove(at: index)
|
reactions.remove(at: index)
|
||||||
}
|
}
|
||||||
|
var topPeers = result.topPeers
|
||||||
|
if let index = topPeers.firstIndex(where: { $0.isMy }) {
|
||||||
|
topPeers[index].count += pendingStars.count
|
||||||
|
} else {
|
||||||
|
topPeers.append(ReactionsMessageAttribute.TopPeer(peerId: pendingStars.accountPeerId, count: pendingStars.count, isTop: false, isMy: true, isAnonymous: pendingStars.isAnonymous))
|
||||||
|
}
|
||||||
reactions.insert(MessageReaction(value: .stars, count: updatedCount, chosenOrder: -1), at: 0)
|
reactions.insert(MessageReaction(value: .stars, count: updatedCount, chosenOrder: -1), at: 0)
|
||||||
return ReactionsMessageAttribute(canViewList: current?.canViewList ?? false, isTags: current?.isTags ?? isTags, reactions: reactions, recentPeers: result.recentPeers, topPeers: result.topPeers)
|
return ReactionsMessageAttribute(canViewList: current?.canViewList ?? false, isTags: current?.isTags ?? isTags, reactions: reactions, recentPeers: result.recentPeers, topPeers: topPeers)
|
||||||
} else {
|
} else {
|
||||||
return ReactionsMessageAttribute(canViewList: current?.canViewList ?? false, isTags: current?.isTags ?? isTags, reactions: [MessageReaction(value: .stars, count: pendingStars.count, chosenOrder: -1)], recentPeers: [], topPeers: [])
|
return ReactionsMessageAttribute(canViewList: current?.canViewList ?? false, isTags: current?.isTags ?? isTags, reactions: [MessageReaction(value: .stars, count: pendingStars.count, chosenOrder: -1)], recentPeers: [], topPeers: [ReactionsMessageAttribute.TopPeer(peerId: pendingStars.accountPeerId, count: pendingStars.count, isTop: false, isMy: true, isAnonymous: pendingStars.isAnonymous)])
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return result
|
return result
|
||||||
|
@ -537,9 +537,9 @@ private final class PeerComponent: Component {
|
|||||||
let avatarFrame = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: avatarSize)
|
let avatarFrame = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: avatarSize)
|
||||||
avatarNode.frame = avatarFrame
|
avatarNode.frame = avatarFrame
|
||||||
if let peer = component.peer {
|
if let peer = component.peer {
|
||||||
avatarNode.setPeer(context: component.context, theme: component.theme, peer: peer)
|
avatarNode.setPeer(context: component.context, theme: component.theme, peer: peer, synchronousLoad: true)
|
||||||
} else {
|
} else {
|
||||||
avatarNode.setPeer(context: component.context, theme: component.theme, peer: nil, overrideImage: .anonymousSavedMessagesIcon)
|
avatarNode.setPeer(context: component.context, theme: component.theme, peer: nil, overrideImage: .anonymousSavedMessagesIcon(isColored: false), synchronousLoad: true)
|
||||||
}
|
}
|
||||||
avatarNode.updateSize(size: avatarFrame.size)
|
avatarNode.updateSize(size: avatarFrame.size)
|
||||||
|
|
||||||
@ -657,7 +657,7 @@ private final class SliderBackgroundComponent: Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func update(component: SliderBackgroundComponent, availableSize: CGSize, state: EmptyComponentState, environment: Environment<Empty>, transition: ComponentTransition) -> CGSize {
|
func update(component: SliderBackgroundComponent, availableSize: CGSize, state: EmptyComponentState, environment: Environment<Empty>, transition: ComponentTransition) -> CGSize {
|
||||||
self.sliderBackground.backgroundColor = UIColor(rgb: 0xEEEEEF)
|
self.sliderBackground.backgroundColor = component.theme.list.itemPrimaryTextColor.withMultipliedAlpha(component.theme.overallDarkAppearance ? 0.2 : 0.07)
|
||||||
self.sliderForeground.backgroundColor = UIColor(rgb: 0xFFB10D)
|
self.sliderForeground.backgroundColor = UIColor(rgb: 0xFFB10D)
|
||||||
self.topForegroundLine.backgroundColor = component.theme.list.plainBackgroundColor.cgColor
|
self.topForegroundLine.backgroundColor = component.theme.list.plainBackgroundColor.cgColor
|
||||||
self.topBackgroundLine.backgroundColor = component.theme.list.plainBackgroundColor.cgColor
|
self.topBackgroundLine.backgroundColor = component.theme.list.plainBackgroundColor.cgColor
|
||||||
@ -687,7 +687,7 @@ private final class SliderBackgroundComponent: Component {
|
|||||||
let topTextSize = self.topForegroundText.update(
|
let topTextSize = self.topForegroundText.update(
|
||||||
transition: .immediate,
|
transition: .immediate,
|
||||||
component: AnyComponent(MultilineTextComponent(
|
component: AnyComponent(MultilineTextComponent(
|
||||||
text: .plain(NSAttributedString(string: "TOP", font: Font.medium(17.0), textColor: UIColor(white: 1.0, alpha: 0.4)))
|
text: .plain(NSAttributedString(string: "TOP", font: Font.semibold(15.0), textColor: UIColor(white: 1.0, alpha: 0.4)))
|
||||||
)),
|
)),
|
||||||
environment: {},
|
environment: {},
|
||||||
containerSize: CGSize(width: availableSize.width, height: 100.0)
|
containerSize: CGSize(width: availableSize.width, height: 100.0)
|
||||||
@ -695,7 +695,7 @@ private final class SliderBackgroundComponent: Component {
|
|||||||
let _ = self.topBackgroundText.update(
|
let _ = self.topBackgroundText.update(
|
||||||
transition: .immediate,
|
transition: .immediate,
|
||||||
component: AnyComponent(MultilineTextComponent(
|
component: AnyComponent(MultilineTextComponent(
|
||||||
text: .plain(NSAttributedString(string: "TOP", font: Font.medium(17.0), textColor: UIColor(white: 0.0, alpha: 0.1)))
|
text: .plain(NSAttributedString(string: "TOP", font: Font.semibold(15.0), textColor: component.theme.overallDarkAppearance ? UIColor(white: 1.0, alpha: 0.22) : UIColor(white: 0.0, alpha: 0.2)))
|
||||||
)),
|
)),
|
||||||
environment: {},
|
environment: {},
|
||||||
containerSize: CGSize(width: availableSize.width, height: 100.0)
|
containerSize: CGSize(width: availableSize.width, height: 100.0)
|
||||||
|
@ -5094,7 +5094,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
} else if peer.id.isReplies {
|
} else if peer.id.isReplies {
|
||||||
imageOverride = .repliesIcon
|
imageOverride = .repliesIcon
|
||||||
} else if peer.id.isAnonymousSavedMessages {
|
} else if peer.id.isAnonymousSavedMessages {
|
||||||
imageOverride = .anonymousSavedMessagesIcon
|
imageOverride = .anonymousSavedMessagesIcon(isColored: true)
|
||||||
} else if peer.isDeleted {
|
} else if peer.isDeleted {
|
||||||
imageOverride = .deletedIcon
|
imageOverride = .deletedIcon
|
||||||
} else {
|
} else {
|
||||||
@ -5890,7 +5890,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||||||
} else if savedMessagesPeerId.isReplies {
|
} else if savedMessagesPeerId.isReplies {
|
||||||
imageOverride = .repliesIcon
|
imageOverride = .repliesIcon
|
||||||
} else if savedMessagesPeerId.isAnonymousSavedMessages {
|
} else if savedMessagesPeerId.isAnonymousSavedMessages {
|
||||||
imageOverride = .anonymousSavedMessagesIcon
|
imageOverride = .anonymousSavedMessagesIcon(isColored: true)
|
||||||
} else if let peer = savedMessagesPeer?.peer, peer.isDeleted {
|
} else if let peer = savedMessagesPeer?.peer, peer.isDeleted {
|
||||||
imageOverride = .deletedIcon
|
imageOverride = .deletedIcon
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user