mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-07 09:20:08 +00:00
Various improvements
This commit is contained in:
parent
deed7905b6
commit
d3f42e6cb0
@ -42,7 +42,6 @@ public enum PremiumIntroSource {
|
|||||||
case folderTags
|
case folderTags
|
||||||
case animatedEmoji
|
case animatedEmoji
|
||||||
case messageEffects
|
case messageEffects
|
||||||
case paidMessages
|
|
||||||
case todo
|
case todo
|
||||||
case auth(String)
|
case auth(String)
|
||||||
}
|
}
|
||||||
@ -82,7 +81,6 @@ public enum PremiumDemoSubject {
|
|||||||
case folderTags
|
case folderTags
|
||||||
case business
|
case business
|
||||||
case messageEffects
|
case messageEffects
|
||||||
case paidMessages
|
|
||||||
case todo
|
case todo
|
||||||
|
|
||||||
case businessLocation
|
case businessLocation
|
||||||
|
|||||||
@ -1098,26 +1098,7 @@ private final class DemoSheetContent: CombinedComponent {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
availableItems[.paidMessages] = DemoPagerComponent.Item(
|
|
||||||
AnyComponentWithIdentity(
|
|
||||||
id: PremiumDemoScreen.Subject.paidMessages,
|
|
||||||
component: AnyComponent(
|
|
||||||
PageComponent(
|
|
||||||
content: AnyComponent(PhoneDemoComponent(
|
|
||||||
context: component.context,
|
|
||||||
position: .top,
|
|
||||||
videoFile: configuration.videos["paid_messages"],
|
|
||||||
decoration: .badgeStars
|
|
||||||
)),
|
|
||||||
title: strings.Premium_PaidMessages,
|
|
||||||
text: strings.Premium_PaidMessagesInfo,
|
|
||||||
textColor: textColor
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
availableItems[.todo] = DemoPagerComponent.Item(
|
availableItems[.todo] = DemoPagerComponent.Item(
|
||||||
AnyComponentWithIdentity(
|
AnyComponentWithIdentity(
|
||||||
id: PremiumDemoScreen.Subject.todo,
|
id: PremiumDemoScreen.Subject.todo,
|
||||||
@ -1234,8 +1215,6 @@ private final class DemoSheetContent: CombinedComponent {
|
|||||||
text = strings.Premium_FolderTagsStandaloneInfo
|
text = strings.Premium_FolderTagsStandaloneInfo
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
text = strings.Premium_MessageEffectsInfo
|
text = strings.Premium_MessageEffectsInfo
|
||||||
case .paidMessages:
|
|
||||||
text = strings.Premium_PaidMessagesInfo
|
|
||||||
case .todo:
|
case .todo:
|
||||||
text = strings.Premium_TodoInfo
|
text = strings.Premium_TodoInfo
|
||||||
default:
|
default:
|
||||||
@ -1322,8 +1301,6 @@ private final class DemoSheetContent: CombinedComponent {
|
|||||||
case .emojiStatus:
|
case .emojiStatus:
|
||||||
buttonText = strings.Premium_EmojiStatus_Proceed
|
buttonText = strings.Premium_EmojiStatus_Proceed
|
||||||
buttonAnimationName = "premium_unlock"
|
buttonAnimationName = "premium_unlock"
|
||||||
case .paidMessages:
|
|
||||||
buttonText = strings.Premium_PaidMessages_Proceed
|
|
||||||
case .todo:
|
case .todo:
|
||||||
buttonText = strings.Premium_PaidMessages_Proceed
|
buttonText = strings.Premium_PaidMessages_Proceed
|
||||||
default:
|
default:
|
||||||
@ -1515,7 +1492,6 @@ public class PremiumDemoScreen: ViewControllerComponentContainer {
|
|||||||
case business
|
case business
|
||||||
case folderTags
|
case folderTags
|
||||||
case messageEffects
|
case messageEffects
|
||||||
case paidMessages
|
|
||||||
case todo
|
case todo
|
||||||
|
|
||||||
case businessLocation
|
case businessLocation
|
||||||
@ -1575,8 +1551,6 @@ public class PremiumDemoScreen: ViewControllerComponentContainer {
|
|||||||
return .folderTags
|
return .folderTags
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
return .messageEffects
|
return .messageEffects
|
||||||
case .paidMessages:
|
|
||||||
return .paidMessages
|
|
||||||
case .todo:
|
case .todo:
|
||||||
return .todo
|
return .todo
|
||||||
case .businessLocation:
|
case .businessLocation:
|
||||||
|
|||||||
@ -539,8 +539,6 @@ private final class PremiumGiftScreenContentComponent: CombinedComponent {
|
|||||||
demoSubject = .messagePrivacy
|
demoSubject = .messagePrivacy
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
demoSubject = .messageEffects
|
demoSubject = .messageEffects
|
||||||
case .paidMessages:
|
|
||||||
demoSubject = .paidMessages
|
|
||||||
case .business:
|
case .business:
|
||||||
demoSubject = .business
|
demoSubject = .business
|
||||||
default:
|
default:
|
||||||
|
|||||||
@ -303,12 +303,6 @@ public enum PremiumSource: Equatable {
|
|||||||
} else {
|
} else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
case .paidMessages:
|
|
||||||
if case .messageEffects = rhs {
|
|
||||||
return true
|
|
||||||
} else {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
case .todo:
|
case .todo:
|
||||||
if case .todo = rhs {
|
if case .todo = rhs {
|
||||||
return true
|
return true
|
||||||
@ -368,7 +362,6 @@ public enum PremiumSource: Equatable {
|
|||||||
case messageTags
|
case messageTags
|
||||||
case folderTags
|
case folderTags
|
||||||
case messageEffects
|
case messageEffects
|
||||||
case paidMessages
|
|
||||||
case todo
|
case todo
|
||||||
case auth(String)
|
case auth(String)
|
||||||
|
|
||||||
@ -464,8 +457,6 @@ public enum PremiumSource: Equatable {
|
|||||||
return "folder_tags"
|
return "folder_tags"
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
return "effects"
|
return "effects"
|
||||||
case .paidMessages:
|
|
||||||
return "paid_messages"
|
|
||||||
case .todo:
|
case .todo:
|
||||||
return "todo"
|
return "todo"
|
||||||
case .auth:
|
case .auth:
|
||||||
@ -498,7 +489,6 @@ public enum PremiumPerk: CaseIterable {
|
|||||||
case business
|
case business
|
||||||
case folderTags
|
case folderTags
|
||||||
case messageEffects
|
case messageEffects
|
||||||
case paidMessages
|
|
||||||
case todo
|
case todo
|
||||||
|
|
||||||
case businessLocation
|
case businessLocation
|
||||||
@ -535,7 +525,7 @@ public enum PremiumPerk: CaseIterable {
|
|||||||
.folderTags,
|
.folderTags,
|
||||||
.business,
|
.business,
|
||||||
.messageEffects,
|
.messageEffects,
|
||||||
.paidMessages
|
.todo
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -609,8 +599,6 @@ public enum PremiumPerk: CaseIterable {
|
|||||||
return "folder_tags"
|
return "folder_tags"
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
return "effects"
|
return "effects"
|
||||||
case .paidMessages:
|
|
||||||
return "paid_messages"
|
|
||||||
case .todo:
|
case .todo:
|
||||||
return "todo"
|
return "todo"
|
||||||
case .business:
|
case .business:
|
||||||
@ -682,8 +670,6 @@ public enum PremiumPerk: CaseIterable {
|
|||||||
return strings.Premium_Business
|
return strings.Premium_Business
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
return strings.Premium_MessageEffects
|
return strings.Premium_MessageEffects
|
||||||
case .paidMessages:
|
|
||||||
return strings.Premium_PaidMessages
|
|
||||||
case .todo:
|
case .todo:
|
||||||
return strings.Premium_Todo
|
return strings.Premium_Todo
|
||||||
case .businessLocation:
|
case .businessLocation:
|
||||||
@ -753,8 +739,6 @@ public enum PremiumPerk: CaseIterable {
|
|||||||
return strings.Premium_BusinessInfo
|
return strings.Premium_BusinessInfo
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
return strings.Premium_MessageEffectsInfo
|
return strings.Premium_MessageEffectsInfo
|
||||||
case .paidMessages:
|
|
||||||
return strings.Premium_PaidMessagesInfo
|
|
||||||
case .todo:
|
case .todo:
|
||||||
return strings.Premium_TodoInfo
|
return strings.Premium_TodoInfo
|
||||||
case .businessLocation:
|
case .businessLocation:
|
||||||
@ -824,8 +808,6 @@ public enum PremiumPerk: CaseIterable {
|
|||||||
return "Premium/Perk/Business"
|
return "Premium/Perk/Business"
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
return "Premium/Perk/MessageEffects"
|
return "Premium/Perk/MessageEffects"
|
||||||
case .paidMessages:
|
|
||||||
return "Premium/Perk/PaidMessages"
|
|
||||||
case .todo:
|
case .todo:
|
||||||
return "Premium/Perk/Todo"
|
return "Premium/Perk/Todo"
|
||||||
case .businessLocation:
|
case .businessLocation:
|
||||||
@ -866,7 +848,6 @@ struct PremiumIntroConfiguration {
|
|||||||
.colors,
|
.colors,
|
||||||
.wallpapers,
|
.wallpapers,
|
||||||
.profileBadge,
|
.profileBadge,
|
||||||
.paidMessages,
|
|
||||||
.messagePrivacy,
|
.messagePrivacy,
|
||||||
.advancedChatManagement,
|
.advancedChatManagement,
|
||||||
.noAds,
|
.noAds,
|
||||||
@ -2171,8 +2152,6 @@ private final class PremiumIntroScreenContentComponent: CombinedComponent {
|
|||||||
demoSubject = .messagePrivacy
|
demoSubject = .messagePrivacy
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
demoSubject = .messageEffects
|
demoSubject = .messageEffects
|
||||||
case .paidMessages:
|
|
||||||
demoSubject = .paidMessages
|
|
||||||
case .todo:
|
case .todo:
|
||||||
demoSubject = .todo
|
demoSubject = .todo
|
||||||
case .business:
|
case .business:
|
||||||
|
|||||||
@ -843,24 +843,6 @@ public class PremiumLimitsListScreen: ViewController {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
availableItems[.paidMessages] = DemoPagerComponent.Item(
|
|
||||||
AnyComponentWithIdentity(
|
|
||||||
id: PremiumDemoScreen.Subject.paidMessages,
|
|
||||||
component: AnyComponent(
|
|
||||||
PageComponent(
|
|
||||||
content: AnyComponent(PhoneDemoComponent(
|
|
||||||
context: context,
|
|
||||||
position: .top,
|
|
||||||
videoFile: videos["paid_messages"],
|
|
||||||
decoration: .badgeStars
|
|
||||||
)),
|
|
||||||
title: strings.Premium_PaidMessages,
|
|
||||||
text: strings.Premium_PaidMessagesInfo,
|
|
||||||
textColor: textColor
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
availableItems[.todo] = DemoPagerComponent.Item(
|
availableItems[.todo] = DemoPagerComponent.Item(
|
||||||
AnyComponentWithIdentity(
|
AnyComponentWithIdentity(
|
||||||
|
|||||||
@ -363,7 +363,7 @@ public func incomingMessagePrivacyScreen(context: AccountContext, value: GlobalP
|
|||||||
openPremiumInfo: {
|
openPremiumInfo: {
|
||||||
var replaceImpl: ((ViewController) -> Void)?
|
var replaceImpl: ((ViewController) -> Void)?
|
||||||
let controller = context.sharedContext.makePremiumDemoController(context: context, subject: .messagePrivacy, forceDark: false, action: {
|
let controller = context.sharedContext.makePremiumDemoController(context: context, subject: .messagePrivacy, forceDark: false, action: {
|
||||||
let controller = context.sharedContext.makePremiumIntroController(context: context, source: .paidMessages, forceDark: false, dismissed: nil)
|
let controller = context.sharedContext.makePremiumIntroController(context: context, source: .messageEffects, forceDark: false, dismissed: nil)
|
||||||
replaceImpl?(controller)
|
replaceImpl?(controller)
|
||||||
}, dismissed: nil)
|
}, dismissed: nil)
|
||||||
replaceImpl = { [weak controller] c in
|
replaceImpl = { [weak controller] c in
|
||||||
|
|||||||
@ -1165,15 +1165,20 @@ private enum StatsEntry: ItemListNodeEntry {
|
|||||||
detailText = "\(fromDateString) – \(toDateString)"
|
detailText = "\(fromDateString) – \(toDateString)"
|
||||||
}
|
}
|
||||||
} else if case .fragment = transaction.peer {
|
} else if case .fragment = transaction.peer {
|
||||||
title = NSAttributedString(string: presentationData.strings.Monetization_Transaction_Withdrawal("Fragment").string, font: font, textColor: theme.list.itemPrimaryTextColor)
|
if transaction.flags.contains(.isRefund) {
|
||||||
labelColor = theme.list.itemDestructiveColor
|
title = NSAttributedString(string: presentationData.strings.Monetization_Transaction_Refund, font: font, textColor: theme.list.itemPrimaryTextColor)
|
||||||
if transaction.flags.contains(.isPending) {
|
|
||||||
detailText = presentationData.strings.Monetization_Transaction_Pending
|
|
||||||
} else if transaction.flags.contains(.isFailed) {
|
|
||||||
detailText = stringForMediumCompactDate(timestamp: transaction.date, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, withTime: false) + " – \(presentationData.strings.Monetization_Transaction_Failed)"
|
|
||||||
detailColor = .destructive
|
|
||||||
} else {
|
|
||||||
detailText = stringForMediumCompactDate(timestamp: transaction.date, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat)
|
detailText = stringForMediumCompactDate(timestamp: transaction.date, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat)
|
||||||
|
} else {
|
||||||
|
title = NSAttributedString(string: presentationData.strings.Monetization_Transaction_Withdrawal("Fragment").string, font: font, textColor: theme.list.itemPrimaryTextColor)
|
||||||
|
labelColor = theme.list.itemDestructiveColor
|
||||||
|
if transaction.flags.contains(.isPending) {
|
||||||
|
detailText = presentationData.strings.Monetization_Transaction_Pending
|
||||||
|
} else if transaction.flags.contains(.isFailed) {
|
||||||
|
detailText = stringForMediumCompactDate(timestamp: transaction.date, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, withTime: false) + " – \(presentationData.strings.Monetization_Transaction_Failed)"
|
||||||
|
detailColor = .destructive
|
||||||
|
} else {
|
||||||
|
detailText = stringForMediumCompactDate(timestamp: transaction.date, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if transaction.flags.contains(.isRefund) {
|
} else if transaction.flags.contains(.isRefund) {
|
||||||
title = NSAttributedString(string: presentationData.strings.Monetization_Transaction_Refund, font: font, textColor: theme.list.itemPrimaryTextColor)
|
title = NSAttributedString(string: presentationData.strings.Monetization_Transaction_Refund, font: font, textColor: theme.list.itemPrimaryTextColor)
|
||||||
|
|||||||
@ -145,20 +145,28 @@ private final class SheetContent: CombinedComponent {
|
|||||||
explorerUrl = nil
|
explorerUrl = nil
|
||||||
showPeer = true
|
showPeer = true
|
||||||
} else if case .fragment = component.transaction.peer {
|
} else if case .fragment = component.transaction.peer {
|
||||||
labelColor = theme.list.itemDestructiveColor
|
if component.transaction.flags.contains(.isRefund) {
|
||||||
amountString = tonAmountAttributedString(formatTonAmountText(component.transaction.count.amount.value, dateTimeFormat: dateTimeFormat), integralFont: integralFont, fractionalFont: fractionalFont, color: labelColor, decimalSeparator: dateTimeFormat.decimalSeparator).mutableCopy() as! NSMutableAttributedString
|
labelColor = theme.list.itemDisclosureActions.constructive.fillColor
|
||||||
dateString = stringForFullDate(timestamp: component.transaction.date, strings: strings, dateTimeFormat: dateTimeFormat)
|
titleString = strings.Monetization_TransactionInfo_Refund
|
||||||
|
amountString = tonAmountAttributedString(formatTonAmountText(component.transaction.count.amount.value, dateTimeFormat: dateTimeFormat, showPlus: true), integralFont: integralFont, fractionalFont: fractionalFont, color: labelColor, decimalSeparator: dateTimeFormat.decimalSeparator).mutableCopy() as! NSMutableAttributedString
|
||||||
if component.transaction.flags.contains(.isPending) {
|
dateString = stringForFullDate(timestamp: component.transaction.date, strings: strings, dateTimeFormat: dateTimeFormat)
|
||||||
titleString = strings.Monetization_TransactionInfo_Pending
|
|
||||||
buttonTitle = strings.Common_OK
|
buttonTitle = strings.Common_OK
|
||||||
} else if component.transaction.flags.contains(.isFailed) {
|
|
||||||
titleString = strings.Monetization_TransactionInfo_Failed
|
|
||||||
buttonTitle = strings.Common_OK
|
|
||||||
titleColor = theme.list.itemDestructiveColor
|
|
||||||
} else {
|
} else {
|
||||||
titleString = strings.Monetization_TransactionInfo_Withdrawal("Fragment").string
|
labelColor = theme.list.itemDestructiveColor
|
||||||
buttonTitle = strings.Monetization_TransactionInfo_ViewInExplorer
|
amountString = tonAmountAttributedString(formatTonAmountText(component.transaction.count.amount.value, dateTimeFormat: dateTimeFormat), integralFont: integralFont, fractionalFont: fractionalFont, color: labelColor, decimalSeparator: dateTimeFormat.decimalSeparator).mutableCopy() as! NSMutableAttributedString
|
||||||
|
dateString = stringForFullDate(timestamp: component.transaction.date, strings: strings, dateTimeFormat: dateTimeFormat)
|
||||||
|
|
||||||
|
if component.transaction.flags.contains(.isPending) {
|
||||||
|
titleString = strings.Monetization_TransactionInfo_Pending
|
||||||
|
buttonTitle = strings.Common_OK
|
||||||
|
} else if component.transaction.flags.contains(.isFailed) {
|
||||||
|
titleString = strings.Monetization_TransactionInfo_Failed
|
||||||
|
buttonTitle = strings.Common_OK
|
||||||
|
titleColor = theme.list.itemDestructiveColor
|
||||||
|
} else {
|
||||||
|
titleString = strings.Monetization_TransactionInfo_Withdrawal("Fragment").string
|
||||||
|
buttonTitle = strings.Monetization_TransactionInfo_ViewInExplorer
|
||||||
|
}
|
||||||
}
|
}
|
||||||
explorerUrl = component.transaction.transactionUrl
|
explorerUrl = component.transaction.transactionUrl
|
||||||
} else if component.transaction.flags.contains(.isRefund) {
|
} else if component.transaction.flags.contains(.isRefund) {
|
||||||
|
|||||||
@ -2720,10 +2720,8 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
|||||||
mappedSource = .messageEffects
|
mappedSource = .messageEffects
|
||||||
case .animatedEmoji:
|
case .animatedEmoji:
|
||||||
mappedSource = .animatedEmoji
|
mappedSource = .animatedEmoji
|
||||||
case .paidMessages:
|
|
||||||
mappedSource = .paidMessages
|
|
||||||
case .todo:
|
case .todo:
|
||||||
mappedSource = .paidMessages
|
mappedSource = .todo
|
||||||
case let .auth(price):
|
case let .auth(price):
|
||||||
mappedSource = .auth(price)
|
mappedSource = .auth(price)
|
||||||
}
|
}
|
||||||
@ -2800,8 +2798,6 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
|||||||
mappedSubject = .folderTags
|
mappedSubject = .folderTags
|
||||||
case .messageEffects:
|
case .messageEffects:
|
||||||
mappedSubject = .messageEffects
|
mappedSubject = .messageEffects
|
||||||
case .paidMessages:
|
|
||||||
mappedSubject = .paidMessages
|
|
||||||
case .todo:
|
case .todo:
|
||||||
mappedSubject = .todo
|
mappedSubject = .todo
|
||||||
case .business:
|
case .business:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user