chore: migrate to new version + fixed several critical bugs

- Migrated project to latest Telegram iOS base (v12.3.2+)
- Fixed circular dependency between GhostModeManager and MiscSettingsManager
- Fixed multiple Bazel build configuration errors (select() default conditions)
- Fixed duplicate type definitions in PeerInfoScreen
- Fixed swiftmodule directory resolution in build scripts
- Added Ghostgram Settings tab in main Settings menu with all 5 features
- Cleared sensitive credentials from config.json (template-only now)
- Excluded bazel-cache from version control
This commit is contained in:
ichmagmaus 812
2026-02-23 23:04:32 +01:00
parent 703e291bcb
commit db53826061
1017 changed files with 62323 additions and 40545 deletions
@@ -1578,7 +1578,8 @@ func _internal_upgradeStarGift(account: Account, formId: Int64?, reference: Star
prepaidUpgradeHash: nil,
upgradeSeparate: false,
dropOriginalDetailsStars: dropOriginalDetailsStars,
number: nil
number: nil,
isRefunded: false
))
}
}
@@ -2533,6 +2534,7 @@ public final class ProfileGiftsContext {
case upgradeSeparate
case dropOriginalDetailsStars
case number
case isRefunded
}
public let gift: TelegramCore.StarGift
@@ -2556,7 +2558,8 @@ public final class ProfileGiftsContext {
public let upgradeSeparate: Bool
public let dropOriginalDetailsStars: Int64?
public let number: Int32?
public let isRefunded: Bool
fileprivate let _fromPeerId: EnginePeer.Id?
public enum DecodingError: Error {
@@ -2584,7 +2587,8 @@ public final class ProfileGiftsContext {
prepaidUpgradeHash: String?,
upgradeSeparate: Bool,
dropOriginalDetailsStars: Int64?,
number: Int32?
number: Int32?,
isRefunded: Bool
) {
self.gift = gift
self.reference = reference
@@ -2608,6 +2612,7 @@ public final class ProfileGiftsContext {
self.upgradeSeparate = upgradeSeparate
self.dropOriginalDetailsStars = dropOriginalDetailsStars
self.number = number
self.isRefunded = isRefunded
}
public init(from decoder: Decoder) throws {
@@ -2641,6 +2646,7 @@ public final class ProfileGiftsContext {
self.upgradeSeparate = try container.decodeIfPresent(Bool.self, forKey: .upgradeSeparate) ?? false
self.dropOriginalDetailsStars = try container.decodeIfPresent(Int64.self, forKey: .dropOriginalDetailsStars)
self.number = try container.decodeIfPresent(Int32.self, forKey: .number)
self.isRefunded = try container.decodeIfPresent(Bool.self, forKey: .isRefunded) ?? false
}
public func encode(to encoder: Encoder) throws {
@@ -2667,6 +2673,8 @@ public final class ProfileGiftsContext {
try container.encode(self.upgradeSeparate, forKey: .upgradeSeparate)
try container.encodeIfPresent(self.dropOriginalDetailsStars, forKey: .dropOriginalDetailsStars)
try container.encodeIfPresent(self.number, forKey: .number)
try container.encode(self.isRefunded, forKey: .isRefunded)
}
public func withGift(_ gift: TelegramCore.StarGift) -> StarGift {
@@ -2691,7 +2699,8 @@ public final class ProfileGiftsContext {
prepaidUpgradeHash: self.prepaidUpgradeHash,
upgradeSeparate: self.upgradeSeparate,
dropOriginalDetailsStars: self.dropOriginalDetailsStars,
number: self.number
number: self.number,
isRefunded: self.isRefunded
)
}
@@ -2717,7 +2726,8 @@ public final class ProfileGiftsContext {
prepaidUpgradeHash: self.prepaidUpgradeHash,
upgradeSeparate: self.upgradeSeparate,
dropOriginalDetailsStars: self.dropOriginalDetailsStars,
number: self.number
number: self.number,
isRefunded: self.isRefunded
)
}
@@ -2743,7 +2753,8 @@ public final class ProfileGiftsContext {
prepaidUpgradeHash: self.prepaidUpgradeHash,
upgradeSeparate: self.upgradeSeparate,
dropOriginalDetailsStars: self.dropOriginalDetailsStars,
number: self.number
number: self.number,
isRefunded: self.isRefunded
)
}
fileprivate func withFromPeer(_ fromPeer: EnginePeer?) -> StarGift {
@@ -2768,7 +2779,8 @@ public final class ProfileGiftsContext {
prepaidUpgradeHash: self.prepaidUpgradeHash,
upgradeSeparate: self.upgradeSeparate,
dropOriginalDetailsStars: self.dropOriginalDetailsStars,
number: self.number
number: self.number,
isRefunded: self.isRefunded
)
}
@@ -2794,7 +2806,8 @@ public final class ProfileGiftsContext {
prepaidUpgradeHash: self.prepaidUpgradeHash,
upgradeSeparate: self.upgradeSeparate,
dropOriginalDetailsStars: self.dropOriginalDetailsStars,
number: self.number
number: self.number,
isRefunded: self.isRefunded
)
}
}
@@ -3063,6 +3076,7 @@ extension ProfileGiftsContext.State.StarGift {
self.upgradeSeparate = (flags & (1 << 17)) != 0
self.dropOriginalDetailsStars = dropOriginalDetailsStars
self.number = number
self.isRefunded = (flags & (1 << 9)) != 0
}
}
}
@@ -580,7 +580,7 @@ public class GiftAuctionsManager {
}
public extension GiftAuctionContext.State {
func getPlace(myBid: Int64?, myBidDate: Int32?) -> Int32? {
func getPlace(myBid: Int64?, myBidDate: Int32?) -> (place: Int32, isApproximate: Bool)? {
guard case let .ongoing(_, _, _, _, bidLevels, _, _, _, _, _, _, _) = self.auctionState else {
return nil
}
@@ -592,7 +592,7 @@ public extension GiftAuctionContext.State {
let levels = bidLevels
guard !levels.isEmpty else {
return 1
return (1, false)
}
func isWorse(than level: GiftAuctionContext.State.BidLevel) -> Bool {
@@ -614,7 +614,7 @@ public extension GiftAuctionContext.State {
}
}
if lowerIndex == -1 {
return 1
return (1, false)
}
let lowerPosition = levels[lowerIndex].position
@@ -626,14 +626,14 @@ public extension GiftAuctionContext.State {
nextPosition = lowerPosition
}
if nextPosition == lowerPosition + 1 {
return lowerPosition + 1
return (lowerPosition + 1, false)
} else {
return nextPosition
return (lowerPosition, true)
}
}
var place: Int32? {
return self.getPlace(myBid: nil, myBidDate: nil)
return self.getPlace(myBid: nil, myBidDate: nil)?.place
}
var startDate: Int32 {
@@ -1644,7 +1644,7 @@ func _internal_sendStarsPaymentForm(account: Account, formId: Int64, source: Bot
case .giftCode, .stars, .starsGift, .starsChatSubscription, .starGift, .starGiftUpgrade, .starGiftTransfer, .premiumGift, .starGiftResale, .starGiftPrepaidUpgrade, .starGiftDropOriginalDetails, .starGiftAuctionBid:
receiptMessageId = nil
}
} else if case let .starGiftUnique(gift, _, _, savedToProfile, canExportDate, transferStars, _, _, peerId, _, savedId, _, canTransferDate, canResaleDate, dropOriginalDetailsStars, _, _) = action.action, case let .Id(messageId) = message.id {
} else if case let .starGiftUnique(gift, _, _, savedToProfile, canExportDate, transferStars, isRefunded, _, peerId, _, savedId, _, canTransferDate, canResaleDate, dropOriginalDetailsStars, _, _) = action.action, case let .Id(messageId) = message.id {
let reference: StarGiftReference
if let peerId, let savedId {
reference = .peer(peerId: peerId, id: savedId)
@@ -1672,7 +1672,8 @@ func _internal_sendStarsPaymentForm(account: Account, formId: Int64, source: Bot
prepaidUpgradeHash: nil,
upgradeSeparate: false,
dropOriginalDetailsStars: dropOriginalDetailsStars,
number: nil
number: nil,
isRefunded: isRefunded
)
}
}