Skip to content

Commit c696a0a

Browse files
committed
Various fixes
1 parent 0648ffb commit c696a0a

File tree

11 files changed

+48
-18
lines changed

11 files changed

+48
-18
lines changed

Telegram/Telegram-iOS/en.lproj/Localizable.strings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13568,6 +13568,7 @@ Sorry for the inconvenience.";
1356813568

1356913569
"Notification.StarGift.Unpack" = "Unpack";
1357013570

13571+
"Notification.StarGift.Collectible" = "Collectible";
1357113572
"Notification.StarGift.Model" = "Model";
1357213573
"Notification.StarGift.Backdrop" = "Backdrop";
1357313574
"Notification.StarGift.Symbol" = "Symbol";

submodules/AccountContext/Sources/AccountContext.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ public enum ResolvedUrlSettingsSection {
190190
case autoremoveMessages
191191
case twoStepAuth
192192
case enableLog
193+
case phonePrivacy
193194
}
194195

195196
public struct ResolvedBotChoosePeerTypes: OptionSet {

submodules/PremiumUI/Sources/PremiumOptionComponent.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,7 @@ final class PremiumOptionComponent: CombinedComponent {
153153
transition: context.transition
154154
)
155155

156-
let discountPosition = CGPoint(x: insets.left + title.size.width + 6.0 + discountSize.width / 2.0, y: insets.top + title.size.height / 2.0)
157-
156+
let discountPosition = CGPoint(x: insets.left + title.size.width + 6.0 + discountSize.width / 2.0, y: insets.top + title.size.height / 2.0 - 2.0)
158157
context.add(discountBackground
159158
.position(discountPosition)
160159
)

submodules/TelegramUI/Components/Chat/ChatMessageGiftBubbleContentNode/Sources/ChatMessageGiftBubbleContentNode.swift

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,8 @@ public class ChatMessageGiftBubbleContentNode: ChatMessageBubbleContentNode {
426426
peerName = EnginePeer(channel).compactDisplayTitle
427427
}
428428
title = item.presentationData.strings.Notification_StarsGiveaway_Title
429-
text = item.presentationData.strings.Notification_StarsGiveaway_Subtitle(peerName, item.presentationData.strings.Notification_StarsGiveaway_Subtitle_Stars(Int32(count))).string
429+
let starsString = item.presentationData.strings.Notification_StarsGiveaway_Subtitle_Stars(Int32(count)).replacingOccurrences(of: " ", with: "\u{00A0}")
430+
text = item.presentationData.strings.Notification_StarsGiveaway_Subtitle(peerName, starsString).string
430431
case let .giftCode(_, fromGiveaway, unclaimed, channelId, monthsValue, _, _, _, _, giftText, giftEntities):
431432
if channelId == nil {
432433
months = monthsValue
@@ -523,15 +524,17 @@ public class ChatMessageGiftBubbleContentNode: ChatMessageBubbleContentNode {
523524
}
524525
if peerName.isEmpty {
525526
if let convertStars, convertStars > 0 {
526-
text = item.presentationData.strings.Notification_StarGift_Subtitle(item.presentationData.strings.Notification_StarGift_Subtitle_Stars(Int32(convertStars))).string
527+
let starsString = item.presentationData.strings.Notification_StarGift_Subtitle_Stars(Int32(convertStars)).replacingOccurrences(of: " ", with: "\u{00A0}")
528+
text = item.presentationData.strings.Notification_StarGift_Subtitle(starsString).string
527529
} else {
528530
text = item.presentationData.strings.Notification_StarGift_Bot_Subtitle
529531
}
530532
} else {
531533
if upgradeStars != nil {
532534
text = item.presentationData.strings.Notification_StarGift_Subtitle_Upgrade_Other(peerName).string
533535
} else if let convertStars, convertStars > 0 {
534-
let formattedString = item.presentationData.strings.Notification_StarGift_Subtitle_Other(peerName, item.presentationData.strings.Notification_StarGift_Subtitle_Other_Stars(Int32(convertStars)))
536+
let starsString = item.presentationData.strings.Notification_StarGift_Subtitle_Other_Stars(Int32(convertStars)).replacingOccurrences(of: " ", with: "\u{00A0}")
537+
let formattedString = item.presentationData.strings.Notification_StarGift_Subtitle_Other(peerName, starsString)
535538
text = formattedString.string
536539
if let starsRange = formattedString.ranges.last {
537540
entities.append(MessageTextEntity(range: starsRange.range.lowerBound ..< starsRange.range.upperBound, type: .Bold))
@@ -560,6 +563,8 @@ public class ChatMessageGiftBubbleContentNode: ChatMessageBubbleContentNode {
560563
case let .starGiftUnique(gift, isUpgrade, _, _, _, _, isRefunded, _, _, _):
561564
if case let .unique(uniqueGift) = gift {
562565
isStarGift = true
566+
567+
let isSelfGift = item.message.id.peerId == item.context.account.peerId
563568
let authorName: String
564569
if isUpgrade {
565570
if item.message.author?.id == item.context.account.peerId {
@@ -570,12 +575,14 @@ public class ChatMessageGiftBubbleContentNode: ChatMessageBubbleContentNode {
570575
} else {
571576
authorName = item.message.author.flatMap { EnginePeer($0) }?.compactDisplayTitle ?? ""
572577
}
573-
if item.message.id.peerId.isTelegramNotifications {
578+
if isSelfGift {
579+
title = item.presentationData.strings.Notification_StarGift_Self_Title
580+
} else if item.message.id.peerId.isTelegramNotifications {
574581
title = item.presentationData.strings.Notification_StarGift_TitleShort
575582
} else {
576583
title = isStoryEntity ? uniqueGift.title : item.presentationData.strings.Notification_StarGift_Title(authorName).string
577584
}
578-
text = isStoryEntity ? "**Collectible #\(uniqueGift.number)**" : "**\(uniqueGift.title) #\(uniqueGift.number)**"
585+
text = isStoryEntity ? "**\(item.presentationData.strings.Notification_StarGift_Collectible) #\(uniqueGift.number)**" : "**\(uniqueGift.title) #\(uniqueGift.number)**"
579586
ribbonTitle = isStoryEntity ? "" : item.presentationData.strings.Notification_StarGift_Gift
580587
buttonTitle = isStoryEntity ? "" : item.presentationData.strings.Notification_StarGift_View
581588
modelTitle = item.presentationData.strings.Notification_StarGift_Model

submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoData.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -952,7 +952,7 @@ func peerInfoScreenSettingsData(context: AccountContext, peerId: EnginePeer.Id,
952952
}
953953
}
954954

955-
func peerInfoScreenData(context: AccountContext, peerId: PeerId, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, isSettings: Bool, isMyProfile: Bool, hintGroupInCommon: PeerId?, existingRequestsContext: PeerInvitationImportersContext?, chatLocation: ChatLocation, chatLocationContextHolder: Atomic<ChatLocationContextHolder?>, privacySettings: Signal<AccountPrivacySettings?, NoError>) -> Signal<PeerInfoScreenData, NoError> {
955+
func peerInfoScreenData(context: AccountContext, peerId: PeerId, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, isSettings: Bool, isMyProfile: Bool, hintGroupInCommon: PeerId?, existingRequestsContext: PeerInvitationImportersContext?, chatLocation: ChatLocation, chatLocationContextHolder: Atomic<ChatLocationContextHolder?>, privacySettings: Signal<AccountPrivacySettings?, NoError>, forceHasGifts: Bool) -> Signal<PeerInfoScreenData, NoError> {
956956
return peerInfoScreenInputData(context: context, peerId: peerId, isSettings: isSettings)
957957
|> mapToSignal { inputData -> Signal<PeerInfoScreenData, NoError> in
958958
let wasUpgradedGroup = Atomic<Bool?>(value: nil)
@@ -1606,7 +1606,7 @@ func peerInfoScreenData(context: AccountContext, peerId: PeerId, strings: Presen
16061606
}
16071607

16081608
if availablePanes != nil, let cachedData = peerView.cachedData as? CachedChannelData {
1609-
if (cachedData.starGiftsCount ?? 0) > 0 || (profileGiftsState.count ?? 0) > 0 {
1609+
if (cachedData.starGiftsCount ?? 0) > 0 || (profileGiftsState.count ?? 0) > 0 || forceHasGifts {
16101610
availablePanes?.insert(.gifts, at: hasStories ? 1 : 0)
16111611
}
16121612
}

submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoPaneContainerNode.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,9 +1273,12 @@ final class PeerInfoPaneContainerNode: ASDisplayNode, ASGestureRecognizerDelegat
12731273
self.isReady.set(.single(true))
12741274
}
12751275
}
1276-
if let previousCurrentPaneKey = previousCurrentPaneKey, self.currentPaneKey != previousCurrentPaneKey {
1277-
self.currentPaneUpdated?(self.expandOnSwitch)
1278-
self.expandOnSwitch = false
1276+
if let previousCurrentPaneKey, self.currentPaneKey != previousCurrentPaneKey || self.expandOnSwitch {
1277+
if self.currentPaneKey == nil && previousCurrentPaneKey == .gifts {
1278+
} else {
1279+
self.currentPaneUpdated?(self.expandOnSwitch)
1280+
self.expandOnSwitch = false
1281+
}
12791282
}
12801283
if updateCurrentPaneStatus {
12811284
self.currentPaneStatusPromise.set(self.currentPane?.node.status ?? .single(nil))

submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreen.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4603,7 +4603,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
46034603
self.privacySettings.set(.single(nil))
46044604
}
46054605

4606-
screenData = peerInfoScreenData(context: context, peerId: peerId, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, isSettings: self.isSettings, isMyProfile: self.isMyProfile, hintGroupInCommon: hintGroupInCommon, existingRequestsContext: requestsContext, chatLocation: self.chatLocation, chatLocationContextHolder: self.chatLocationContextHolder, privacySettings: self.privacySettings.get())
4606+
screenData = peerInfoScreenData(context: context, peerId: peerId, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, isSettings: self.isSettings, isMyProfile: self.isMyProfile, hintGroupInCommon: hintGroupInCommon, existingRequestsContext: requestsContext, chatLocation: self.chatLocation, chatLocationContextHolder: self.chatLocationContextHolder, privacySettings: self.privacySettings.get(), forceHasGifts: initialPaneKey == .gifts)
46074607

46084608
var previousTimestamp: Double?
46094609
self.headerNode.displayPremiumIntro = { [weak self] sourceView, peerStatus, emojiStatusFileAndPack, white in
@@ -6497,16 +6497,13 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
64976497
}
64986498

64996499
let boostTitle: String
6500-
var isNew = false
65016500
switch channel.info {
65026501
case .group:
65036502
boostTitle = presentationData.strings.PeerInfo_Group_Boost
6504-
isNew = true
65056503
case .broadcast:
65066504
boostTitle = presentationData.strings.PeerInfo_Channel_Boost
65076505
}
6508-
6509-
items.append(.action(ContextMenuActionItem(text: boostTitle, badge: isNew ? ContextMenuActionBadge(value: presentationData.strings.Settings_New, color: .accent, style: .label) : nil, icon: { theme in
6506+
items.append(.action(ContextMenuActionItem(text: boostTitle, badge: nil, icon: { theme in
65106507
generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Boost"), color: theme.contextMenu.primaryColor)
65116508
}, action: { [weak self] _, f in
65126509
f(.dismissWithoutContent)

submodules/TelegramUI/Components/Settings/PeerNameColorScreen/Sources/UserApperanceScreen.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ final class UserAppearanceScreenComponent: Component {
402402
if case .info = action {
403403
var replaceImpl: ((ViewController) -> Void)?
404404
let controller = component.context.sharedContext.makePremiumDemoController(context: component.context, subject: .colors, forceDark: false, action: {
405-
let controller = component.context.sharedContext.makePremiumIntroController(context: component.context, source: .settings, forceDark: false, dismissed: nil)
405+
let controller = component.context.sharedContext.makePremiumIntroController(context: component.context, source: .nameColor, forceDark: false, dismissed: nil)
406406
replaceImpl?(controller)
407407
}, dismissed: nil)
408408
replaceImpl = { [weak controller] c in

submodules/TelegramUI/Sources/OpenResolvedUrl.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,18 @@ func openResolvedUrlImpl(
703703
navigationController.setViewControllers(controllers, animated: true)
704704
}
705705
}
706+
case .phonePrivacy:
707+
let privacySignal = context.engine.privacy.requestAccountPrivacySettings()
708+
let _ = (privacySignal
709+
|> deliverOnMainQueue).start(next: { info in
710+
let current: SelectivePrivacySettings = info.phoneNumber
711+
if let navigationController = navigationController {
712+
let controller = selectivePrivacySettingsController(context: context, kind: .phoneNumber, current: current, phoneDiscoveryEnabled: info.phoneDiscoveryEnabled, updated: { _, _, _, _ in
713+
})
714+
controller.navigationPresentation = .modal
715+
navigationController.pushViewController(controller)
716+
}
717+
})
706718
}
707719
case let .premiumOffer(reference):
708720
dismissInput()

submodules/TelegramUI/Sources/OpenUrl.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1014,6 +1014,8 @@ func openExternalUrlImpl(context: AccountContext, urlContext: OpenURLContext, ur
10141014
section = .twoStepAuth
10151015
case "enable_log":
10161016
section = .enableLog
1017+
case "phone_privacy":
1018+
section = .phonePrivacy
10171019
default:
10181020
break
10191021
}

0 commit comments

Comments
 (0)