mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Improvements
This commit is contained in:
parent
14bd45a2ea
commit
83082cfe72
@ -519,10 +519,10 @@ struct FeatureRow<IconContent: View>: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Spacer()
|
Spacer()
|
||||||
|
// TODO(swiftgram): uncomment
|
||||||
Image(systemName: "chevron.right")
|
// Image(systemName: "chevron.right")
|
||||||
.font(.system(size: 12, weight: .semibold))
|
// .font(.system(size: 12, weight: .semibold))
|
||||||
.foregroundColor(.secondary)
|
// .foregroundColor(.secondary)
|
||||||
}
|
}
|
||||||
.padding()
|
.padding()
|
||||||
.background(
|
.background(
|
||||||
|
@ -170,7 +170,7 @@
|
|||||||
"SessionBackup.DeleteSingle.Text" = "%@ session will be removed from Keychain.\n\nAccount will not be logged out from Swiftgram.";
|
"SessionBackup.DeleteSingle.Text" = "%@ session will be removed from Keychain.\n\nAccount will not be logged out from Swiftgram.";
|
||||||
"SessionBackup.RemoveFromApp.Title" = "Remove account from App?";
|
"SessionBackup.RemoveFromApp.Title" = "Remove account from App?";
|
||||||
"SessionBackup.RemoveFromApp.Text" = "%@ session WILL BE REMOVED from Swiftgram! Session will remain active, so you can restore it later.";
|
"SessionBackup.RemoveFromApp.Text" = "%@ session WILL BE REMOVED from Swiftgram! Session will remain active, so you can restore it later.";
|
||||||
"SessionBackup.Notice" = "Sessions are encrypted and stored in the device Keychain. Sessions never leave your device. NB: Sessions may still be revoked by Telegram or from another device.";
|
"SessionBackup.Notice" = "Sessions are encrypted and stored in the device Keychain. Sessions never leave your device.\n\nIMPORTANT: To restore sessions on a new device or after an OS reset, you MUST enable encrypted backups, otherwise Keychain won't be transfered.\n\nNOTE: Sessions may still be revoked by Telegram or from another device.";
|
||||||
|
|
||||||
"MessageFilter.Title" = "Message Filter";
|
"MessageFilter.Title" = "Message Filter";
|
||||||
"MessageFilter.SubTitle" = "Remove distractions and reduce visibility of messages containing keywords below.\nKeywords are case-sensitive.";
|
"MessageFilter.SubTitle" = "Remove distractions and reduce visibility of messages containing keywords below.\nKeywords are case-sensitive.";
|
||||||
|
@ -5,7 +5,7 @@ public struct SGWebSettings: Codable, Equatable {
|
|||||||
public let user: SGUserSettings
|
public let user: SGUserSettings
|
||||||
|
|
||||||
public static var defaultValue: SGWebSettings {
|
public static var defaultValue: SGWebSettings {
|
||||||
return SGWebSettings(global: SGGlobalSettings(ytPip: true, qrLogin: true, storiesAvailable: false, canViewMessages: true, canEditSettings: false, canShowTelescope: false, announcementsData: nil, regdateFormat: "full", botMonkeys: [], forceReasons: [], unforceReasons: [], paymentsEnabled: true, duckyAppIconAvailable: true), user: SGUserSettings(contentReasons: [], canSendTelescope: false))
|
return SGWebSettings(global: SGGlobalSettings(ytPip: true, qrLogin: true, storiesAvailable: false, canViewMessages: true, canEditSettings: false, canShowTelescope: false, announcementsData: nil, regdateFormat: "full", botMonkeys: [], forceReasons: [], unforceReasons: [], paymentsEnabled: true, duckyAppIconAvailable: true, canGrant: false), user: SGUserSettings(contentReasons: [], canSendTelescope: false))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23,6 +23,7 @@ public struct SGGlobalSettings: Codable, Equatable {
|
|||||||
public let unforceReasons: [Int64]
|
public let unforceReasons: [Int64]
|
||||||
public let paymentsEnabled: Bool
|
public let paymentsEnabled: Bool
|
||||||
public let duckyAppIconAvailable: Bool
|
public let duckyAppIconAvailable: Bool
|
||||||
|
public let canGrant: Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
public struct SGBotMonkeys: Codable, Equatable {
|
public struct SGBotMonkeys: Codable, Equatable {
|
||||||
|
@ -730,8 +730,8 @@ final class GiftOptionsScreenComponent: Component {
|
|||||||
|
|
||||||
let optionSpacing: CGFloat = 10.0
|
let optionSpacing: CGFloat = 10.0
|
||||||
let optionWidth = (availableSize.width - sideInset * 2.0 - optionSpacing * 2.0) / 3.0
|
let optionWidth = (availableSize.width - sideInset * 2.0 - optionSpacing * 2.0) / 3.0
|
||||||
|
// MARK: Swiftgram
|
||||||
if isSelfGift || isChannelGift {
|
if isSelfGift || isChannelGift || { return true }() {
|
||||||
contentHeight += 6.0
|
contentHeight += 6.0
|
||||||
} else {
|
} else {
|
||||||
if let premiumProducts = state.premiumProducts {
|
if let premiumProducts = state.premiumProducts {
|
||||||
|
@ -961,7 +961,8 @@ private func settingsItems(showProfileId: Bool, data: PeerInfoScreenData?, conte
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if context.currentAppConfiguration.with({ $0 }).sgWebSettings.global.paymentsEnabled || context.sharedContext.immediateSGStatus.status > 1 {
|
let sgWebSettings = context.currentAppConfiguration.with({ $0 }).sgWebSettings
|
||||||
|
if sgWebSettings.global.paymentsEnabled || context.sharedContext.immediateSGStatus.status > 1 {
|
||||||
items[.swiftgram]!.append(PeerInfoScreenDisclosureItem(id: 0, label: .titleBadge(presentationData.strings.Settings_New, presentationData.theme.list.itemAccentColor), text: "Swiftgram Pro", icon: PresentationResourcesSettings.swiftgramPro, action: {
|
items[.swiftgram]!.append(PeerInfoScreenDisclosureItem(id: 0, label: .titleBadge(presentationData.strings.Settings_New, presentationData.theme.list.itemAccentColor), text: "Swiftgram Pro", icon: PresentationResourcesSettings.swiftgramPro, action: {
|
||||||
interaction.openSettings(.swiftgramPro)
|
interaction.openSettings(.swiftgramPro)
|
||||||
}))
|
}))
|
||||||
@ -1067,11 +1068,11 @@ private func settingsItems(showProfileId: Bool, data: PeerInfoScreenData?, conte
|
|||||||
interaction.openSettings(.businessSetup)
|
interaction.openSettings(.businessSetup)
|
||||||
}))
|
}))
|
||||||
// MARK: Swiftgram
|
// MARK: Swiftgram
|
||||||
/*
|
if sgWebSettings.global.canGrant {
|
||||||
items[.payment]!.append(PeerInfoScreenDisclosureItem(id: 104, label: .text(""), text: presentationData.strings.Settings_SendGift, icon: PresentationResourcesSettings.premiumGift, action: {
|
items[.payment]!.append(PeerInfoScreenDisclosureItem(id: 104, label: .text(""), text: "Telegram Gifts", icon: PresentationResourcesSettings.premiumGift, action: {
|
||||||
interaction.openSettings(.premiumGift)
|
interaction.openSettings(.premiumGift)
|
||||||
}))
|
}))
|
||||||
*/
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let settings = data.globalSettings {
|
if let settings = data.globalSettings {
|
||||||
@ -6529,8 +6530,8 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MARK: Swiftgram
|
// MARK: Swiftgram
|
||||||
if ({ return false }()) && strongSelf.peerId.namespace == Namespaces.Peer.CloudUser, !user.isDeleted && user.botInfo == nil && !user.flags.contains(.isSupport) {
|
if strongSelf.context.currentAppConfiguration.with({ $0 }).sgWebSettings.global.canGrant && strongSelf.peerId.namespace == Namespaces.Peer.CloudUser, !user.isDeleted && user.botInfo == nil && !user.flags.contains(.isSupport) {
|
||||||
items.append(.action(ContextMenuActionItem(text: presentationData.strings.Profile_SendGift, icon: { theme in
|
items.append(.action(ContextMenuActionItem(text: "Telegram Gifts", icon: { theme in
|
||||||
generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Gift"), color: theme.contextMenu.primaryColor)
|
generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Gift"), color: theme.contextMenu.primaryColor)
|
||||||
}, action: { [weak self] _, f in
|
}, action: { [weak self] _, f in
|
||||||
f(.dismissWithoutContent)
|
f(.dismissWithoutContent)
|
||||||
@ -6689,8 +6690,8 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
|
|||||||
}
|
}
|
||||||
} else if let channel = peer as? TelegramChannel {
|
} else if let channel = peer as? TelegramChannel {
|
||||||
if let cachedData = strongSelf.data?.cachedData as? CachedChannelData {
|
if let cachedData = strongSelf.data?.cachedData as? CachedChannelData {
|
||||||
if case .broadcast = channel.info, cachedData.flags.contains(.starGiftsAvailable) {
|
if case .broadcast = channel.info, cachedData.flags.contains(.starGiftsAvailable), strongSelf.context.currentAppConfiguration.with({ $0 }).sgWebSettings.global.canGrant {
|
||||||
items.append(.action(ContextMenuActionItem(text: presentationData.strings.Profile_SendGift, badge: nil, icon: { theme in
|
items.append(.action(ContextMenuActionItem(text: "Telegram Gifts", badge: nil, icon: { theme in
|
||||||
generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Gift"), color: theme.contextMenu.primaryColor)
|
generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Gift"), color: theme.contextMenu.primaryColor)
|
||||||
}, action: { [weak self] _, f in
|
}, action: { [weak self] _, f in
|
||||||
f(.dismissWithoutContent)
|
f(.dismissWithoutContent)
|
||||||
|
@ -372,6 +372,7 @@ public final class PeerInfoGiftsPaneNode: ASDisplayNode, PeerInfoPaneNode, UIScr
|
|||||||
self.panelButton = panelButton
|
self.panelButton = panelButton
|
||||||
|
|
||||||
panelButton.title = self.peerId == self.context.account.peerId ? params.presentationData.strings.PeerInfo_Gifts_Send : params.presentationData.strings.PeerInfo_Gifts_SendGift
|
panelButton.title = self.peerId == self.context.account.peerId ? params.presentationData.strings.PeerInfo_Gifts_Send : params.presentationData.strings.PeerInfo_Gifts_SendGift
|
||||||
|
panelButton.title = "Telegram Gifts"
|
||||||
|
|
||||||
panelButton.pressed = { [weak self] in
|
panelButton.pressed = { [weak self] in
|
||||||
self?.buttonPressed()
|
self?.buttonPressed()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user