mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-15 13:35:19 +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
|
||||
} else if case .repliesIcon = icon {
|
||||
colors = AvatarNode.savedMessagesColors
|
||||
} else if case .anonymousSavedMessagesIcon = icon {
|
||||
colors = AvatarNode.savedMessagesColors
|
||||
} else if case let .anonymousSavedMessagesIcon(isColored) = icon {
|
||||
if isColored {
|
||||
colors = AvatarNode.savedMessagesColors
|
||||
} else {
|
||||
colors = AvatarNode.grayscaleColors
|
||||
}
|
||||
} else if case .myNotesIcon = icon {
|
||||
colors = AvatarNode.savedMessagesColors
|
||||
} else if case .editAvatarIcon = icon, let theme {
|
||||
@ -178,7 +182,7 @@ private enum AvatarNodeIcon: Equatable {
|
||||
case none
|
||||
case savedMessagesIcon
|
||||
case repliesIcon
|
||||
case anonymousSavedMessagesIcon
|
||||
case anonymousSavedMessagesIcon(isColored: Bool)
|
||||
case myNotesIcon
|
||||
case archivedChatsIcon(hiddenByDefault: Bool)
|
||||
case editAvatarIcon
|
||||
@ -192,7 +196,7 @@ public enum AvatarNodeImageOverride: Equatable {
|
||||
case image(TelegramMediaImageRepresentation)
|
||||
case savedMessagesIcon
|
||||
case repliesIcon
|
||||
case anonymousSavedMessagesIcon
|
||||
case anonymousSavedMessagesIcon(isColored: Bool)
|
||||
case myNotesIcon
|
||||
case archivedChatsIcon(hiddenByDefault: Bool)
|
||||
case editAvatarIcon(forceNone: Bool)
|
||||
@ -506,9 +510,9 @@ public final class AvatarNode: ASDisplayNode {
|
||||
case .repliesIcon:
|
||||
representation = nil
|
||||
icon = .repliesIcon
|
||||
case .anonymousSavedMessagesIcon:
|
||||
case let .anonymousSavedMessagesIcon(isColored):
|
||||
representation = nil
|
||||
icon = .anonymousSavedMessagesIcon
|
||||
icon = .anonymousSavedMessagesIcon(isColored: isColored)
|
||||
case .myNotesIcon:
|
||||
representation = nil
|
||||
icon = .myNotesIcon
|
||||
@ -681,9 +685,9 @@ public final class AvatarNode: ASDisplayNode {
|
||||
case .repliesIcon:
|
||||
representation = nil
|
||||
icon = .repliesIcon
|
||||
case .anonymousSavedMessagesIcon:
|
||||
case let .anonymousSavedMessagesIcon(isColored):
|
||||
representation = nil
|
||||
icon = .anonymousSavedMessagesIcon
|
||||
icon = .anonymousSavedMessagesIcon(isColored: isColored)
|
||||
case .myNotesIcon:
|
||||
representation = nil
|
||||
icon = .myNotesIcon
|
||||
|
@ -1661,7 +1661,7 @@ public class ChatListItemNode: ItemListRevealOptionsItemNode {
|
||||
} else if peer.id.isReplies {
|
||||
overrideImage = .repliesIcon
|
||||
} else if peer.id.isAnonymousSavedMessages {
|
||||
overrideImage = .anonymousSavedMessagesIcon
|
||||
overrideImage = .anonymousSavedMessagesIcon(isColored: true)
|
||||
} else if peer.id == item.context.account.peerId && !displayAsMessage {
|
||||
if case .savedMessagesChats = item.chatListLocation {
|
||||
overrideImage = .myNotesIcon
|
||||
|
@ -1093,7 +1093,7 @@ public class ContactsPeerItemNode: ItemListRevealOptionsItemNode {
|
||||
} else if peer.id.isReplies, case .generalSearch = item.peerMode {
|
||||
overrideImage = .repliesIcon
|
||||
} else if peer.id.isAnonymousSavedMessages, case .generalSearch = item.peerMode {
|
||||
overrideImage = .anonymousSavedMessagesIcon
|
||||
overrideImage = .anonymousSavedMessagesIcon(isColored: true)
|
||||
} else if peer.isDeleted {
|
||||
overrideImage = .deletedIcon
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ final class ReactionPreviewView: UIView {
|
||||
size: size,
|
||||
placeholderColor: .clear,
|
||||
themeColor: .white,
|
||||
loopMode: .count(0)
|
||||
loopMode: .forever
|
||||
),
|
||||
isVisibleForAnimations: true,
|
||||
action: nil
|
||||
|
@ -85,7 +85,7 @@ private final class DeleteChatPeerActionSheetItemNode: ActionSheetItemNode {
|
||||
} else if chatPeer.id.isReplies {
|
||||
self.avatarNode.setPeer(context: context, theme: (context.sharedContext.currentPresentationData.with { $0 }).theme, peer: peer, overrideImage: .repliesIcon)
|
||||
} 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 {
|
||||
var overrideImage: AvatarNodeImageOverride?
|
||||
if chatPeer.isDeleted {
|
||||
|
@ -211,10 +211,16 @@ public func mergedMessageReactions(attributes: [MessageAttribute], isTags: Bool)
|
||||
updatedCount += reactions[index].count
|
||||
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)
|
||||
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 {
|
||||
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 {
|
||||
return result
|
||||
|
@ -537,9 +537,9 @@ private final class PeerComponent: Component {
|
||||
let avatarFrame = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: avatarSize)
|
||||
avatarNode.frame = avatarFrame
|
||||
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 {
|
||||
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)
|
||||
|
||||
@ -657,7 +657,7 @@ private final class SliderBackgroundComponent: Component {
|
||||
}
|
||||
|
||||
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.topForegroundLine.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(
|
||||
transition: .immediate,
|
||||
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: {},
|
||||
containerSize: CGSize(width: availableSize.width, height: 100.0)
|
||||
@ -695,7 +695,7 @@ private final class SliderBackgroundComponent: Component {
|
||||
let _ = self.topBackgroundText.update(
|
||||
transition: .immediate,
|
||||
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: {},
|
||||
containerSize: CGSize(width: availableSize.width, height: 100.0)
|
||||
|
@ -5094,7 +5094,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
||||
} else if peer.id.isReplies {
|
||||
imageOverride = .repliesIcon
|
||||
} else if peer.id.isAnonymousSavedMessages {
|
||||
imageOverride = .anonymousSavedMessagesIcon
|
||||
imageOverride = .anonymousSavedMessagesIcon(isColored: true)
|
||||
} else if peer.isDeleted {
|
||||
imageOverride = .deletedIcon
|
||||
} else {
|
||||
@ -5890,7 +5890,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
||||
} else if savedMessagesPeerId.isReplies {
|
||||
imageOverride = .repliesIcon
|
||||
} else if savedMessagesPeerId.isAnonymousSavedMessages {
|
||||
imageOverride = .anonymousSavedMessagesIcon
|
||||
imageOverride = .anonymousSavedMessagesIcon(isColored: true)
|
||||
} else if let peer = savedMessagesPeer?.peer, peer.isDeleted {
|
||||
imageOverride = .deletedIcon
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user