mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Various improvements
This commit is contained in:
parent
c400ccda24
commit
194190f4fa
@ -12682,3 +12682,31 @@ Sorry for the inconvenience.";
|
|||||||
|
|
||||||
"Stars.Subscription.Terms" = "By subscribing you agree to the [Terms of Service]().";
|
"Stars.Subscription.Terms" = "By subscribing you agree to the [Terms of Service]().";
|
||||||
"Stars.Subscription.Terms_URL" = "https://telegram.org/tos/stars";
|
"Stars.Subscription.Terms_URL" = "https://telegram.org/tos/stars";
|
||||||
|
|
||||||
|
"Stars.Transaction.Reaction.Title" = "Star reaction";
|
||||||
|
"Stars.Transaction.Reaction.Post" = "Post";
|
||||||
|
|
||||||
|
"Stars.Transaction.SubscriptionFee" = "Monthly Subscription Fee";
|
||||||
|
"Stars.Transaction.Subscription.Title" = "Subscription";
|
||||||
|
"Stars.Transaction.Subscription.Active" = "If you cancel now, you can still access your subscription until %@";
|
||||||
|
"Stars.Transaction.Subscription.Cancelled" = "You have cancelled your subscription.";
|
||||||
|
"Stars.Transaction.Subscription.Renew" = "Renew Subscription";
|
||||||
|
"Stars.Transaction.Subscription.Cancel" = "Cancel Subscription";
|
||||||
|
"Stars.Transaction.Subscription.PerMonth" = "%@ / month";
|
||||||
|
"Stars.Transaction.Subscription.PerMonthUsd" = "appx. %@ per month";
|
||||||
|
"Stars.Transaction.Subscription.Subscription" = "Subscription";
|
||||||
|
"Stars.Transaction.Subscription.Subscriber" = "Subscriber";
|
||||||
|
|
||||||
|
"Stars.Transaction.Subscription.Status.Expires" = "Expires";
|
||||||
|
"Stars.Transaction.Subscription.Status.Expired" = "Expired";
|
||||||
|
"Stars.Transaction.Subscription.Status.Renews" = "Renews";
|
||||||
|
"Stars.Transaction.Subscription.Status.Subscribed" = "Subscribed";
|
||||||
|
|
||||||
|
"Stars.Transaction.Subscription.Cancelled.Title" = "Subscription cancelled";
|
||||||
|
"Stars.Transaction.Subscription.Cancelled.Text" = "You will still have access to [%1$@]() until %2$@.";
|
||||||
|
|
||||||
|
"Stars.Transaction.Subscription.Renewed.Title" = "Subscription renewed";
|
||||||
|
"Stars.Transaction.Subscription.Renewed.Text" = "You renewed your subscription to [%1$@]().";
|
||||||
|
|
||||||
|
"Stars.Intro.Transaction.SubscriptionFee.Title" = "Monthly Subscription Fee";
|
||||||
|
"Stars.Intro.Transaction.Reaction.Title" = "Star Reaction";
|
||||||
|
@ -238,9 +238,10 @@ final class StarsTransactionItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
itemTitle = title
|
itemTitle = title
|
||||||
itemSubtitle = peer.displayTitle(strings: item.presentationData.strings, displayOrder: .firstLast)
|
itemSubtitle = peer.displayTitle(strings: item.presentationData.strings, displayOrder: .firstLast)
|
||||||
} else {
|
} else {
|
||||||
if let _ = item.transaction.subscriptionPeriod {
|
if item.transaction.flags.contains(.isReaction) {
|
||||||
//TODO:localize
|
itemSubtitle = item.presentationData.strings.Stars_Intro_Transaction_Reaction_Title
|
||||||
itemSubtitle = "Monthly subscription fee"
|
} else if let _ = item.transaction.subscriptionPeriod {
|
||||||
|
itemSubtitle = item.presentationData.strings.Stars_Intro_Transaction_SubscriptionFee_Title
|
||||||
} else {
|
} else {
|
||||||
itemSubtitle = nil
|
itemSubtitle = nil
|
||||||
}
|
}
|
||||||
|
@ -405,6 +405,9 @@ private extension StarsContext.State.Transaction {
|
|||||||
if (apiFlags & (1 << 10)) != 0 {
|
if (apiFlags & (1 << 10)) != 0 {
|
||||||
flags.insert(.isGift)
|
flags.insert(.isGift)
|
||||||
}
|
}
|
||||||
|
if (apiFlags & (1 << 11)) != 0 {
|
||||||
|
flags.insert(.isReaction)
|
||||||
|
}
|
||||||
|
|
||||||
let media = extendedMedia.flatMap({ $0.compactMap { textMediaAndExpirationTimerFromApiMedia($0, PeerId(0)).media } }) ?? []
|
let media = extendedMedia.flatMap({ $0.compactMap { textMediaAndExpirationTimerFromApiMedia($0, PeerId(0)).media } }) ?? []
|
||||||
let _ = subscriptionPeriod
|
let _ = subscriptionPeriod
|
||||||
@ -450,6 +453,7 @@ public final class StarsContext {
|
|||||||
public static let isPending = Flags(rawValue: 1 << 2)
|
public static let isPending = Flags(rawValue: 1 << 2)
|
||||||
public static let isFailed = Flags(rawValue: 1 << 3)
|
public static let isFailed = Flags(rawValue: 1 << 3)
|
||||||
public static let isGift = Flags(rawValue: 1 << 4)
|
public static let isGift = Flags(rawValue: 1 << 4)
|
||||||
|
public static let isReaction = Flags(rawValue: 1 << 5)
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum Peer: Equatable {
|
public enum Peer: Equatable {
|
||||||
|
@ -197,12 +197,12 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
let count: Int64
|
let count: Int64
|
||||||
var countIsGeneric = false
|
var countIsGeneric = false
|
||||||
var countOnTop = false
|
var countOnTop = false
|
||||||
let transactionId: String?
|
var transactionId: String?
|
||||||
let date: Int32
|
let date: Int32
|
||||||
let via: String?
|
var via: String?
|
||||||
let messageId: EngineMessage.Id?
|
var messageId: EngineMessage.Id?
|
||||||
let toPeer: EnginePeer?
|
var toPeer: EnginePeer?
|
||||||
let transactionPeer: StarsContext.State.Transaction.Peer?
|
var transactionPeer: StarsContext.State.Transaction.Peer?
|
||||||
var media: [AnyMediaReference] = []
|
var media: [AnyMediaReference] = []
|
||||||
var photo: TelegramMediaWebFile?
|
var photo: TelegramMediaWebFile?
|
||||||
var transactionStatus: (String, UIColor)? = nil
|
var transactionStatus: (String, UIColor)? = nil
|
||||||
@ -211,59 +211,48 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
var isSubscriber = false
|
var isSubscriber = false
|
||||||
var isSubscriptionFee = false
|
var isSubscriptionFee = false
|
||||||
var isCancelled = false
|
var isCancelled = false
|
||||||
|
var isReaction = false
|
||||||
|
|
||||||
var delayedCloseOnOpenPeer = true
|
var delayedCloseOnOpenPeer = true
|
||||||
switch subject {
|
switch subject {
|
||||||
case let .importer(peer, pricing, importer, usdRate):
|
case let .importer(peer, pricing, importer, usdRate):
|
||||||
let usdValue = formatTonUsdValue(pricing.amount, divide: false, rate: usdRate, dateTimeFormat: environment.dateTimeFormat)
|
let usdValue = formatTonUsdValue(pricing.amount, divide: false, rate: usdRate, dateTimeFormat: environment.dateTimeFormat)
|
||||||
titleText = "Subscription"
|
titleText = strings.Stars_Transaction_Subscription_Title
|
||||||
descriptionText = "appx. \(usdValue) per month"
|
descriptionText = strings.Stars_Transaction_Subscription_PerMonthUsd(usdValue).string
|
||||||
count = pricing.amount
|
count = pricing.amount
|
||||||
countOnTop = true
|
countOnTop = true
|
||||||
transactionId = nil
|
|
||||||
date = importer.date
|
date = importer.date
|
||||||
via = nil
|
|
||||||
messageId = nil
|
|
||||||
toPeer = importer.peer.peer.flatMap(EnginePeer.init)
|
toPeer = importer.peer.peer.flatMap(EnginePeer.init)
|
||||||
transactionPeer = .peer(peer)
|
transactionPeer = .peer(peer)
|
||||||
isSubscriber = true
|
isSubscriber = true
|
||||||
case let .subscription(subscription):
|
case let .subscription(subscription):
|
||||||
titleText = "Subscription"
|
titleText = strings.Stars_Transaction_Subscription_Title
|
||||||
descriptionText = ""
|
descriptionText = ""
|
||||||
count = subscription.pricing.amount
|
count = subscription.pricing.amount
|
||||||
transactionId = nil
|
|
||||||
date = subscription.untilDate
|
date = subscription.untilDate
|
||||||
via = nil
|
|
||||||
messageId = nil
|
|
||||||
toPeer = subscription.peer
|
toPeer = subscription.peer
|
||||||
transactionPeer = .peer(subscription.peer)
|
transactionPeer = .peer(subscription.peer)
|
||||||
isSubscription = true
|
isSubscription = true
|
||||||
|
|
||||||
if subscription.flags.contains(.isCancelled) {
|
if subscription.flags.contains(.isCancelled) {
|
||||||
statusText = "You have cancelled your subscription"
|
statusText = strings.Stars_Transaction_Subscription_Cancelled
|
||||||
statusIsDestructive = true
|
statusIsDestructive = true
|
||||||
buttonText = "Renew Subscription"
|
buttonText = strings.Stars_Transaction_Subscription_Renew
|
||||||
isCancelled = true
|
isCancelled = true
|
||||||
} else {
|
} else {
|
||||||
statusText = "If you cancel now, you can still access your subscription until \(stringForMediumDate(timestamp: subscription.untilDate, strings: strings, dateTimeFormat: dateTimeFormat, withTime: false))"
|
statusText = strings.Stars_Transaction_Subscription_Active(stringForMediumDate(timestamp: subscription.untilDate, strings: strings, dateTimeFormat: dateTimeFormat, withTime: false)).string
|
||||||
buttonText = "Cancel Subscription"
|
buttonText = strings.Stars_Transaction_Subscription_Cancel
|
||||||
buttonIsDestructive = true
|
buttonIsDestructive = true
|
||||||
}
|
}
|
||||||
case let .transaction(transaction, parentPeer):
|
case let .transaction(transaction, parentPeer):
|
||||||
if let _ = transaction.subscriptionPeriod {
|
if let _ = transaction.subscriptionPeriod {
|
||||||
//TODO:localize
|
titleText = strings.Stars_Transaction_SubscriptionFee
|
||||||
titleText = "Monthly subscription fee"
|
|
||||||
descriptionText = ""
|
descriptionText = ""
|
||||||
count = transaction.count
|
count = transaction.count
|
||||||
countOnTop = false
|
|
||||||
transactionId = transaction.id
|
transactionId = transaction.id
|
||||||
via = nil
|
|
||||||
messageId = nil
|
|
||||||
date = transaction.date
|
date = transaction.date
|
||||||
if case let .peer(peer) = transaction.peer {
|
if case let .peer(peer) = transaction.peer {
|
||||||
toPeer = peer
|
toPeer = peer
|
||||||
} else {
|
|
||||||
toPeer = nil
|
|
||||||
}
|
}
|
||||||
transactionPeer = transaction.peer
|
transactionPeer = transaction.peer
|
||||||
isSubscriptionFee = true
|
isSubscriptionFee = true
|
||||||
@ -273,16 +262,24 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
count = transaction.count
|
count = transaction.count
|
||||||
countOnTop = true
|
countOnTop = true
|
||||||
transactionId = transaction.id
|
transactionId = transaction.id
|
||||||
via = nil
|
|
||||||
messageId = nil
|
|
||||||
date = transaction.date
|
date = transaction.date
|
||||||
if case let .peer(peer) = transaction.peer {
|
if case let .peer(peer) = transaction.peer {
|
||||||
toPeer = peer
|
toPeer = peer
|
||||||
} else {
|
|
||||||
toPeer = nil
|
|
||||||
}
|
}
|
||||||
transactionPeer = transaction.peer
|
transactionPeer = transaction.peer
|
||||||
isGift = true
|
isGift = true
|
||||||
|
} else if transaction.flags.contains(.isReaction) {
|
||||||
|
titleText = strings.Stars_Transaction_Reaction_Title
|
||||||
|
descriptionText = ""
|
||||||
|
messageId = transaction.paidMessageId
|
||||||
|
count = transaction.count
|
||||||
|
transactionId = transaction.id
|
||||||
|
date = transaction.date
|
||||||
|
if case let .peer(peer) = transaction.peer {
|
||||||
|
toPeer = peer
|
||||||
|
}
|
||||||
|
transactionPeer = transaction.peer
|
||||||
|
isReaction = true
|
||||||
} else {
|
} else {
|
||||||
switch transaction.peer {
|
switch transaction.peer {
|
||||||
case let .peer(peer):
|
case let .peer(peer):
|
||||||
@ -291,7 +288,6 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
} else {
|
} else {
|
||||||
titleText = transaction.title ?? peer.compactDisplayTitle
|
titleText = transaction.title ?? peer.compactDisplayTitle
|
||||||
}
|
}
|
||||||
via = nil
|
|
||||||
case .appStore:
|
case .appStore:
|
||||||
titleText = strings.Stars_Transaction_AppleTopUp_Title
|
titleText = strings.Stars_Transaction_AppleTopUp_Title
|
||||||
via = strings.Stars_Transaction_AppleTopUp_Subtitle
|
via = strings.Stars_Transaction_AppleTopUp_Subtitle
|
||||||
@ -314,7 +310,6 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
via = strings.Stars_Transaction_TelegramAds_Subtitle
|
via = strings.Stars_Transaction_TelegramAds_Subtitle
|
||||||
case .unsupported:
|
case .unsupported:
|
||||||
titleText = strings.Stars_Transaction_Unsupported_Title
|
titleText = strings.Stars_Transaction_Unsupported_Title
|
||||||
via = nil
|
|
||||||
}
|
}
|
||||||
if !transaction.media.isEmpty {
|
if !transaction.media.isEmpty {
|
||||||
var description: String = ""
|
var description: String = ""
|
||||||
@ -354,8 +349,6 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
date = transaction.date
|
date = transaction.date
|
||||||
if case let .peer(peer) = transaction.peer {
|
if case let .peer(peer) = transaction.peer {
|
||||||
toPeer = peer
|
toPeer = peer
|
||||||
} else {
|
|
||||||
toPeer = nil
|
|
||||||
}
|
}
|
||||||
transactionPeer = transaction.peer
|
transactionPeer = transaction.peer
|
||||||
media = transaction.media.map { AnyMediaReference.starsTransaction(transaction: StarsTransactionReference(peerId: parentPeer.id, id: transaction.id, isRefund: transaction.flags.contains(.isRefund)), media: $0) }
|
media = transaction.media.map { AnyMediaReference.starsTransaction(transaction: StarsTransactionReference(peerId: parentPeer.id, id: transaction.id, isRefund: transaction.flags.contains(.isRefund)), media: $0) }
|
||||||
@ -371,16 +364,11 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
titleText = receipt.invoiceMedia.title
|
titleText = receipt.invoiceMedia.title
|
||||||
descriptionText = receipt.invoiceMedia.description
|
descriptionText = receipt.invoiceMedia.description
|
||||||
count = (receipt.invoice.prices.first?.amount ?? receipt.invoiceMedia.totalAmount) * -1
|
count = (receipt.invoice.prices.first?.amount ?? receipt.invoiceMedia.totalAmount) * -1
|
||||||
via = nil
|
|
||||||
messageId = nil
|
|
||||||
transactionId = receipt.transactionId
|
transactionId = receipt.transactionId
|
||||||
date = receipt.date
|
date = receipt.date
|
||||||
if let peer = state.peerMap[receipt.botPaymentId] {
|
if let peer = state.peerMap[receipt.botPaymentId] {
|
||||||
toPeer = peer
|
toPeer = peer
|
||||||
} else {
|
|
||||||
toPeer = nil
|
|
||||||
}
|
}
|
||||||
transactionPeer = nil
|
|
||||||
photo = receipt.invoiceMedia.photo
|
photo = receipt.invoiceMedia.photo
|
||||||
delayedCloseOnOpenPeer = false
|
delayedCloseOnOpenPeer = false
|
||||||
case let .gift(message):
|
case let .gift(message):
|
||||||
@ -398,15 +386,12 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
} else {
|
} else {
|
||||||
fatalError()
|
fatalError()
|
||||||
}
|
}
|
||||||
via = nil
|
|
||||||
messageId = nil
|
|
||||||
date = message.timestamp
|
date = message.timestamp
|
||||||
if message.id.peerId.id._internalGetInt64Value() == 777000 {
|
if message.id.peerId.id._internalGetInt64Value() == 777000 {
|
||||||
toPeer = nil
|
toPeer = nil
|
||||||
} else {
|
} else {
|
||||||
toPeer = state.peerMap[message.id.peerId]
|
toPeer = state.peerMap[message.id.peerId]
|
||||||
}
|
}
|
||||||
transactionPeer = nil
|
|
||||||
isGift = true
|
isGift = true
|
||||||
delayedCloseOnOpenPeer = false
|
delayedCloseOnOpenPeer = false
|
||||||
}
|
}
|
||||||
@ -427,7 +412,7 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
let formattedAmount = presentationStringsFormattedNumber(abs(Int32(count)), dateTimeFormat.groupingSeparator)
|
let formattedAmount = presentationStringsFormattedNumber(abs(Int32(count)), dateTimeFormat.groupingSeparator)
|
||||||
let countColor: UIColor
|
let countColor: UIColor
|
||||||
if isSubscription || isSubscriber {
|
if isSubscription || isSubscriber {
|
||||||
amountText = "\(formattedAmount) / month"
|
amountText = strings.Stars_Transaction_Subscription_PerMonth(formattedAmount).string
|
||||||
countColor = theme.list.itemSecondaryTextColor
|
countColor = theme.list.itemSecondaryTextColor
|
||||||
} else if countIsGeneric {
|
} else if countIsGeneric {
|
||||||
amountText = "\(formattedAmount)"
|
amountText = "\(formattedAmount)"
|
||||||
@ -543,9 +528,9 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
} else if let toPeer {
|
} else if let toPeer {
|
||||||
let title: String
|
let title: String
|
||||||
if isSubscription {
|
if isSubscription {
|
||||||
title = "Subscription"
|
title = strings.Stars_Transaction_Subscription_Subscription
|
||||||
} else if isSubscriber {
|
} else if isSubscriber {
|
||||||
title = "Subscriber"
|
title = strings.Stars_Transaction_Subscription_Subscriber
|
||||||
} else {
|
} else {
|
||||||
title = count < 0 || countIsGeneric ? strings.Stars_Transaction_To : strings.Stars_Transaction_From
|
title = count < 0 || countIsGeneric ? strings.Stars_Transaction_To : strings.Stars_Transaction_From
|
||||||
}
|
}
|
||||||
@ -604,7 +589,7 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
}
|
}
|
||||||
tableItems.append(.init(
|
tableItems.append(.init(
|
||||||
id: "media",
|
id: "media",
|
||||||
title: strings.Stars_Transaction_Media,
|
title: isReaction ? strings.Stars_Transaction_Reaction_Post : strings.Stars_Transaction_Media,
|
||||||
component: AnyComponent(
|
component: AnyComponent(
|
||||||
Button(
|
Button(
|
||||||
content: AnyComponent(
|
content: AnyComponent(
|
||||||
@ -647,15 +632,15 @@ private final class StarsTransactionSheetContent: CombinedComponent {
|
|||||||
if isSubscription {
|
if isSubscription {
|
||||||
if isCancelled {
|
if isCancelled {
|
||||||
if date > Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970) {
|
if date > Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970) {
|
||||||
dateTitle = "Expires"
|
dateTitle = strings.Stars_Transaction_Subscription_Status_Expires
|
||||||
} else {
|
} else {
|
||||||
dateTitle = "Expired"
|
dateTitle = strings.Stars_Transaction_Subscription_Status_Expired
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dateTitle = "Renews"
|
dateTitle = strings.Stars_Transaction_Subscription_Status_Renews
|
||||||
}
|
}
|
||||||
} else if isSubscriber {
|
} else if isSubscriber {
|
||||||
dateTitle = "Subscribed"
|
dateTitle = strings.Stars_Transaction_Subscription_Status_Subscribed
|
||||||
} else {
|
} else {
|
||||||
dateTitle = strings.Stars_Transaction_Date
|
dateTitle = strings.Stars_Transaction_Date
|
||||||
}
|
}
|
||||||
@ -1223,11 +1208,11 @@ public class StarsTransactionScreen: ViewControllerComponentContainer {
|
|||||||
let text: String
|
let text: String
|
||||||
switch action {
|
switch action {
|
||||||
case .cancel:
|
case .cancel:
|
||||||
title = "Subscription cancelled"
|
title = presentationData.strings.Stars_Transaction_Subscription_Cancelled_Title
|
||||||
text = "You will still have access top [\(subscription.peer.compactDisplayTitle)]() until \(stringForMediumDate(timestamp: subscription.untilDate, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat))."
|
text = presentationData.strings.Stars_Transaction_Subscription_Cancelled_Text(subscription.peer.compactDisplayTitle, stringForMediumDate(timestamp: subscription.untilDate, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat)).string
|
||||||
case .renew:
|
case .renew:
|
||||||
title = "Subscription renewed"
|
title = presentationData.strings.Stars_Transaction_Subscription_Renewed_Title
|
||||||
text = "You renewed your subscription to [\(subscription.peer.compactDisplayTitle)]()."
|
text = presentationData.strings.Stars_Transaction_Subscription_Renewed_Text(subscription.peer.compactDisplayTitle).string
|
||||||
}
|
}
|
||||||
|
|
||||||
let controller = UndoOverlayController(presentationData: presentationData, content: .invitedToVoiceChat(context: context, peer: subscription.peer, title: title, text: text, action: nil, duration: 3.0), elevatedLayout: false, position: .bottom, action: { _ in return true })
|
let controller = UndoOverlayController(presentationData: presentationData, content: .invitedToVoiceChat(context: context, peer: subscription.peer, title: title, text: text, action: nil, duration: 3.0), elevatedLayout: false, position: .bottom, action: { _ in return true })
|
||||||
|
@ -217,11 +217,12 @@ final class StarsTransactionsListPanelComponent: Component {
|
|||||||
itemSubtitle = peer.displayTitle(strings: environment.strings, displayOrder: .firstLast)
|
itemSubtitle = peer.displayTitle(strings: environment.strings, displayOrder: .firstLast)
|
||||||
} else {
|
} else {
|
||||||
itemTitle = peer.displayTitle(strings: environment.strings, displayOrder: .firstLast)
|
itemTitle = peer.displayTitle(strings: environment.strings, displayOrder: .firstLast)
|
||||||
if item.flags.contains(.isGift) {
|
if item.flags.contains(.isReaction) {
|
||||||
|
itemSubtitle = environment.strings.Stars_Intro_Transaction_Reaction_Title
|
||||||
|
} else if item.flags.contains(.isGift) {
|
||||||
itemSubtitle = environment.strings.Stars_Intro_Transaction_Gift_Title
|
itemSubtitle = environment.strings.Stars_Intro_Transaction_Gift_Title
|
||||||
} else if let _ = item.subscriptionPeriod {
|
} else if let _ = item.subscriptionPeriod {
|
||||||
//TODO:localize
|
itemSubtitle = environment.strings.Stars_Intro_Transaction_SubscriptionFee_Title
|
||||||
itemSubtitle = "Monthly subscription fee"
|
|
||||||
} else {
|
} else {
|
||||||
itemSubtitle = nil
|
itemSubtitle = nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user