mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-17 20:00:38 +00:00
Various improvements
This commit is contained in:
parent
24cb5668a6
commit
9bb789dc75
@ -12571,7 +12571,7 @@ Sorry for the inconvenience.";
|
|||||||
"WebBrowser.AutoLogin.Info" = "Use your Telegram account to automatically log in to websites opened in the in-app browser.";
|
"WebBrowser.AutoLogin.Info" = "Use your Telegram account to automatically log in to websites opened in the in-app browser.";
|
||||||
|
|
||||||
"WebBrowser.ClearCookies" = "Clear Cookies";
|
"WebBrowser.ClearCookies" = "Clear Cookies";
|
||||||
"WebBrowser.ClearCookies.Info" = "Delete all cookies and cache in the Telegram in-app browser. This action will sign you out of most websites.";
|
"WebBrowser.ClearCookies.Info" = "Delete all cookies in the Telegram in-app browser. This action will sign you out of most websites.";
|
||||||
"WebBrowser.ClearCookies.Succeed" = "Cookies cleared.";
|
"WebBrowser.ClearCookies.Succeed" = "Cookies cleared.";
|
||||||
|
|
||||||
"WebBrowser.Exceptions.Title" = "NEVER OPEN IN THE IN-APP BROWSER";
|
"WebBrowser.Exceptions.Title" = "NEVER OPEN IN THE IN-APP BROWSER";
|
||||||
|
|||||||
@ -250,7 +250,7 @@ private func webBrowserSettingsControllerEntries(context: AccountContext, presen
|
|||||||
|
|
||||||
if settings.defaultWebBrowser == nil {
|
if settings.defaultWebBrowser == nil {
|
||||||
entries.append(.clearCookies(presentationData.theme, presentationData.strings.WebBrowser_ClearCookies))
|
entries.append(.clearCookies(presentationData.theme, presentationData.strings.WebBrowser_ClearCookies))
|
||||||
entries.append(.clearCache(presentationData.theme, presentationData.strings.WebBrowser_ClearCache))
|
// entries.append(.clearCache(presentationData.theme, presentationData.strings.WebBrowser_ClearCache))
|
||||||
entries.append(.clearCookiesInfo(presentationData.theme, presentationData.strings.WebBrowser_ClearCookies_Info))
|
entries.append(.clearCookiesInfo(presentationData.theme, presentationData.strings.WebBrowser_ClearCookies_Info))
|
||||||
|
|
||||||
entries.append(.exceptionsHeader(presentationData.theme, presentationData.strings.WebBrowser_Exceptions_Title))
|
entries.append(.exceptionsHeader(presentationData.theme, presentationData.strings.WebBrowser_Exceptions_Title))
|
||||||
|
|||||||
@ -178,10 +178,10 @@ final class MonetizationBalanceItemNode: ListViewItemNode, ItemListItemNode {
|
|||||||
if let stats = item.stats as? RevenueStats {
|
if let stats = item.stats as? RevenueStats {
|
||||||
let cryptoValue = formatTonAmountText(stats.balances.availableBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator)
|
let cryptoValue = formatTonAmountText(stats.balances.availableBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator)
|
||||||
amountString = tonAmountAttributedString(cryptoValue, integralFont: integralFont, fractionalFont: fractionalFont, color: item.presentationData.theme.list.itemPrimaryTextColor)
|
amountString = tonAmountAttributedString(cryptoValue, integralFont: integralFont, fractionalFont: fractionalFont, color: item.presentationData.theme.list.itemPrimaryTextColor)
|
||||||
value = stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, rate: stats.usdRate))"
|
value = stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))"
|
||||||
} else if let stats = item.stats as? StarsRevenueStats {
|
} else if let stats = item.stats as? StarsRevenueStats {
|
||||||
amountString = NSAttributedString(string: presentationStringsFormattedNumber(Int32(stats.balances.availableBalance), item.presentationData.dateTimeFormat.groupingSeparator), font: integralFont, textColor: item.presentationData.theme.list.itemPrimaryTextColor)
|
amountString = NSAttributedString(string: presentationStringsFormattedNumber(Int32(stats.balances.availableBalance), item.presentationData.dateTimeFormat.groupingSeparator), font: integralFont, textColor: item.presentationData.theme.list.itemPrimaryTextColor)
|
||||||
value = stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, divide: false, rate: stats.usdRate))"
|
value = stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, divide: false, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))"
|
||||||
isStars = true
|
isStars = true
|
||||||
} else {
|
} else {
|
||||||
fatalError()
|
fatalError()
|
||||||
|
|||||||
@ -774,7 +774,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
formatTonAmountText(stats.balances.availableBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
formatTonAmountText(stats.balances.availableBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
||||||
item.presentationData.strings.Monetization_StarsProceeds_Available,
|
item.presentationData.strings.Monetization_StarsProceeds_Available,
|
||||||
(stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, rate: stats.usdRate))", .generic),
|
(stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.ton
|
.ton
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -784,7 +784,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
formatTonAmountText(stats.balances.currentBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
formatTonAmountText(stats.balances.currentBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
||||||
item.presentationData.strings.Monetization_StarsProceeds_Current,
|
item.presentationData.strings.Monetization_StarsProceeds_Current,
|
||||||
(stats.balances.currentBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.currentBalance, rate: stats.usdRate))", .generic),
|
(stats.balances.currentBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.currentBalance, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.ton
|
.ton
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -794,7 +794,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
formatTonAmountText(stats.balances.overallRevenue, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
formatTonAmountText(stats.balances.overallRevenue, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
||||||
item.presentationData.strings.Monetization_StarsProceeds_Total,
|
item.presentationData.strings.Monetization_StarsProceeds_Total,
|
||||||
(stats.balances.overallRevenue == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.overallRevenue, rate: stats.usdRate))", .generic),
|
(stats.balances.overallRevenue == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.overallRevenue, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.ton
|
.ton
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -804,7 +804,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
presentationStringsFormattedNumber(Int32(additionalStats.balances.availableBalance), item.presentationData.dateTimeFormat.groupingSeparator),
|
presentationStringsFormattedNumber(Int32(additionalStats.balances.availableBalance), item.presentationData.dateTimeFormat.groupingSeparator),
|
||||||
" ",
|
" ",
|
||||||
(additionalStats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(additionalStats.balances.availableBalance, divide: false, rate: additionalStats.usdRate))", .generic),
|
(additionalStats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(additionalStats.balances.availableBalance, divide: false, rate: additionalStats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.stars
|
.stars
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -814,7 +814,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
presentationStringsFormattedNumber(Int32(additionalStats.balances.currentBalance), item.presentationData.dateTimeFormat.groupingSeparator),
|
presentationStringsFormattedNumber(Int32(additionalStats.balances.currentBalance), item.presentationData.dateTimeFormat.groupingSeparator),
|
||||||
" ",
|
" ",
|
||||||
(additionalStats.balances.currentBalance == 0 ? "" : "≈\(formatTonUsdValue(additionalStats.balances.currentBalance, divide: false, rate: additionalStats.usdRate))", .generic),
|
(additionalStats.balances.currentBalance == 0 ? "" : "≈\(formatTonUsdValue(additionalStats.balances.currentBalance, divide: false, rate: additionalStats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.stars
|
.stars
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -824,7 +824,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
presentationStringsFormattedNumber(Int32(additionalStats.balances.overallRevenue), item.presentationData.dateTimeFormat.groupingSeparator),
|
presentationStringsFormattedNumber(Int32(additionalStats.balances.overallRevenue), item.presentationData.dateTimeFormat.groupingSeparator),
|
||||||
" ",
|
" ",
|
||||||
(additionalStats.balances.overallRevenue == 0 ? "" : "≈\(formatTonUsdValue(additionalStats.balances.overallRevenue, divide: false, rate: additionalStats.usdRate))", .generic),
|
(additionalStats.balances.overallRevenue == 0 ? "" : "≈\(formatTonUsdValue(additionalStats.balances.overallRevenue, divide: false, rate: additionalStats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.stars
|
.stars
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -838,7 +838,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
formatTonAmountText(stats.balances.availableBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
formatTonAmountText(stats.balances.availableBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
||||||
item.presentationData.strings.Monetization_Overview_Available,
|
item.presentationData.strings.Monetization_Overview_Available,
|
||||||
(stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, rate: stats.usdRate))", .generic),
|
(stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.ton
|
.ton
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
formatTonAmountText(stats.balances.currentBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
formatTonAmountText(stats.balances.currentBalance, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
||||||
item.presentationData.strings.Monetization_Overview_Current,
|
item.presentationData.strings.Monetization_Overview_Current,
|
||||||
(stats.balances.currentBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.currentBalance, rate: stats.usdRate))", .generic),
|
(stats.balances.currentBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.currentBalance, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.ton
|
.ton
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -858,7 +858,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
formatTonAmountText(stats.balances.overallRevenue, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
formatTonAmountText(stats.balances.overallRevenue, decimalSeparator: item.presentationData.dateTimeFormat.decimalSeparator),
|
||||||
item.presentationData.strings.Monetization_Overview_Total,
|
item.presentationData.strings.Monetization_Overview_Total,
|
||||||
(stats.balances.overallRevenue == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.overallRevenue, rate: stats.usdRate))", .generic),
|
(stats.balances.overallRevenue == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.overallRevenue, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.ton
|
.ton
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -873,7 +873,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
presentationStringsFormattedNumber(Int32(stats.balances.availableBalance), item.presentationData.dateTimeFormat.groupingSeparator),
|
presentationStringsFormattedNumber(Int32(stats.balances.availableBalance), item.presentationData.dateTimeFormat.groupingSeparator),
|
||||||
item.presentationData.strings.Monetization_StarsProceeds_Available,
|
item.presentationData.strings.Monetization_StarsProceeds_Available,
|
||||||
(stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, rate: stats.usdRate))", .generic),
|
(stats.balances.availableBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.availableBalance, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.stars
|
.stars
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -883,7 +883,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
presentationStringsFormattedNumber(Int32(stats.balances.currentBalance), item.presentationData.dateTimeFormat.groupingSeparator),
|
presentationStringsFormattedNumber(Int32(stats.balances.currentBalance), item.presentationData.dateTimeFormat.groupingSeparator),
|
||||||
item.presentationData.strings.Monetization_StarsProceeds_Current,
|
item.presentationData.strings.Monetization_StarsProceeds_Current,
|
||||||
(stats.balances.currentBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.currentBalance, rate: stats.usdRate))", .generic),
|
(stats.balances.currentBalance == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.currentBalance, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.stars
|
.stars
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -893,7 +893,7 @@ class StatsOverviewItemNode: ListViewItemNode {
|
|||||||
item.presentationData,
|
item.presentationData,
|
||||||
presentationStringsFormattedNumber(Int32(stats.balances.overallRevenue), item.presentationData.dateTimeFormat.groupingSeparator),
|
presentationStringsFormattedNumber(Int32(stats.balances.overallRevenue), item.presentationData.dateTimeFormat.groupingSeparator),
|
||||||
item.presentationData.strings.Monetization_StarsProceeds_Total,
|
item.presentationData.strings.Monetization_StarsProceeds_Total,
|
||||||
(stats.balances.overallRevenue == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.overallRevenue, rate: stats.usdRate))", .generic),
|
(stats.balances.overallRevenue == 0 ? "" : "≈\(formatTonUsdValue(stats.balances.overallRevenue, rate: stats.usdRate, dateTimeFormat: item.presentationData.dateTimeFormat))", .generic),
|
||||||
.stars
|
.stars
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import TelegramPresentationData
|
||||||
|
|
||||||
let walletAddressLength: Int = 48
|
let walletAddressLength: Int = 48
|
||||||
|
|
||||||
@ -9,9 +10,20 @@ public func formatTonAddress(_ address: String) -> String {
|
|||||||
return address
|
return address
|
||||||
}
|
}
|
||||||
|
|
||||||
public func formatTonUsdValue(_ value: Int64, divide: Bool = true, rate: Double) -> String {
|
public func formatTonUsdValue(_ value: Int64, divide: Bool = true, rate: Double, dateTimeFormat: PresentationDateTimeFormat) -> String {
|
||||||
|
let decimalSeparator = dateTimeFormat.decimalSeparator
|
||||||
let normalizedValue: Double = divide ? Double(value) / 1000000000 : Double(value)
|
let normalizedValue: Double = divide ? Double(value) / 1000000000 : Double(value)
|
||||||
let formattedValue = String(format: "%0.2f", normalizedValue * rate)
|
var formattedValue = String(format: "%0.2f", normalizedValue * rate)
|
||||||
|
formattedValue = formattedValue.replacingOccurrences(of: ".", with: decimalSeparator)
|
||||||
|
if let dotIndex = formattedValue.firstIndex(of: decimalSeparator.first!) {
|
||||||
|
let integerPartString = formattedValue[..<dotIndex]
|
||||||
|
if let integerPart = Int32(integerPartString) {
|
||||||
|
let modifiedIntegerPart = presentationStringsFormattedNumber(integerPart, dateTimeFormat.groupingSeparator)
|
||||||
|
|
||||||
|
let resultString = "$\(modifiedIntegerPart)\(formattedValue[dotIndex...])"
|
||||||
|
return resultString
|
||||||
|
}
|
||||||
|
}
|
||||||
return "$\(formattedValue)"
|
return "$\(formattedValue)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -168,7 +168,7 @@ final class StarsBalanceComponent: Component {
|
|||||||
|
|
||||||
let subtitleText: String
|
let subtitleText: String
|
||||||
if let rate = component.rate {
|
if let rate = component.rate {
|
||||||
subtitleText = "≈\(formatStarsUsdValue(component.count, rate: rate))"
|
subtitleText = "≈\(formatTonUsdValue(component.count, divide: false, rate: rate, dateTimeFormat: component.dateTimeFormat))"
|
||||||
} else {
|
} else {
|
||||||
subtitleText = component.strings.Stars_Intro_YourBalance
|
subtitleText = component.strings.Stars_Intro_YourBalance
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import AccountContext
|
|||||||
import MultilineTextComponent
|
import MultilineTextComponent
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import PresentationDataUtils
|
import PresentationDataUtils
|
||||||
|
import TelegramStringFormatting
|
||||||
|
|
||||||
final class StarsOverviewItemComponent: Component {
|
final class StarsOverviewItemComponent: Component {
|
||||||
let theme: PresentationTheme
|
let theme: PresentationTheme
|
||||||
@ -80,7 +81,7 @@ final class StarsOverviewItemComponent: Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let valueString = presentationStringsFormattedNumber(Int32(component.value), component.dateTimeFormat.groupingSeparator)
|
let valueString = presentationStringsFormattedNumber(Int32(component.value), component.dateTimeFormat.groupingSeparator)
|
||||||
let usdValueString = formatStarsUsdValue(component.value, rate: component.rate)
|
let usdValueString = formatTonUsdValue(component.value, divide: false, rate: component.rate, dateTimeFormat: component.dateTimeFormat)
|
||||||
|
|
||||||
let valueSize = self.value.update(
|
let valueSize = self.value.update(
|
||||||
transition: .immediate,
|
transition: .immediate,
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
import Foundation
|
|
||||||
|
|
||||||
func formatStarsUsdValue(_ value: Int64, rate: Double) -> String {
|
|
||||||
let formattedValue = String(format: "%0.2f", (Double(value)) * rate)
|
|
||||||
return "$\(formattedValue)"
|
|
||||||
}
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"app": "10.14.3",
|
"app": "10.15",
|
||||||
"xcode": "15.2",
|
"xcode": "15.2",
|
||||||
"bazel": "7.1.1",
|
"bazel": "7.1.1",
|
||||||
"macos": "13.0"
|
"macos": "13.0"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user