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 62337 additions and 40559 deletions
@@ -205,8 +205,6 @@ final class GreetingMessageListItemComponent: Component {
},
openStarsTopup: { _ in
},
dismissNotice: { _ in
},
editPeer: { _ in
},
openWebApp: { _ in
@@ -195,7 +195,7 @@ final class AutomaticBusinessMessageSetupScreenComponent: Component {
if self.isOn {
if !self.hasAccessToAllChatsByDefault && self.additionalPeerList.categories.isEmpty && self.additionalPeerList.peers.isEmpty {
self.environment?.controller()?.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: presentationData), title: nil, text: presentationData.strings.BusinessMessageSetup_ErrorNoRecipients_Text, actions: [
self.environment?.controller()?.present(textAlertController(context: component.context, title: nil, text: presentationData.strings.BusinessMessageSetup_ErrorNoRecipients_Text, actions: [
TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {
}),
TextAlertAction(type: .defaultAction, title: presentationData.strings.BusinessMessageSetup_ErrorNoRecipients_ResetAction, action: {
@@ -223,7 +223,7 @@ final class AutomaticBusinessMessageSetupScreenComponent: Component {
}
if let errorText {
self.environment?.controller()?.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: presentationData), title: nil, text: errorText, actions: [
self.environment?.controller()?.present(textAlertController(context: component.context, title: nil, text: errorText, actions: [
TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {
}),
TextAlertAction(type: .defaultAction, title: presentationData.strings.BusinessMessageSetup_ErrorScheduleTime_ResetAction, action: {
@@ -4,6 +4,7 @@ import Display
import ComponentFlow
import ListSectionComponent
import TelegramPresentationData
import PresentationDataUtils
import AppBundle
import AccountContext
import ViewControllerComponent
@@ -185,7 +186,7 @@ final class BusinessLinksSetupScreenComponent: Component {
errorText = presentationData.strings.Business_Links_ErrorTooManyLinks
}
environment.controller()?.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: presentationData), title: nil, text: errorText, actions: [
environment.controller()?.present(textAlertController(context: component.context, title: nil, text: errorText, actions: [
TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {
})
]), in: .window(.root))
@@ -219,8 +219,6 @@ final class QuickReplySetupScreenComponent: Component {
},
openStarsTopup: { _ in
},
dismissNotice: { _ in
},
editPeer: { [weak listNode] _ in
guard let listNode, let parentView = listNode.parentView else {
return
@@ -798,8 +796,7 @@ final class QuickReplySetupScreenComponent: Component {
}
))) : nil,
rightButtons: rightButtons,
backTitle: isModal ? nil : strings.Common_Back,
backPressed: { [weak self] in
backPressed: isModal ? nil :{ [weak self] in
guard let self else {
return
}
@@ -818,14 +815,15 @@ final class QuickReplySetupScreenComponent: Component {
strings: strings,
statusBarHeight: statusBarHeight,
sideInset: insets.left,
isSearchActive: self.isSearchDisplayControllerActive,
isSearchEnabled: !self.isEditing,
search: ChatListNavigationBar.Search(isEnabled: !self.isEditing),
activeSearch: self.isSearchDisplayControllerActive ? ChatListNavigationBar.ActiveSearch(isExternal: false) : nil,
primaryContent: headerContent,
secondaryContent: nil,
secondaryTransition: 0.0,
storySubscriptions: nil,
storiesIncludeHidden: false,
uploadProgress: [:],
headerPanels: nil,
tabsNode: nil,
tabsNodeIsSearch: false,
accessoryPanelContainer: nil,
@@ -1022,8 +1020,9 @@ final class QuickReplySetupScreenComponent: Component {
let searchBarTheme = SearchBarNodeTheme(theme: environment.theme, hasSeparator: false)
searchBarNode = SearchBarNode(
theme: searchBarTheme,
presentationTheme: environment.theme,
strings: environment.strings,
fieldStyle: .modern,
fieldStyle: .glass,
displayBackground: false
)
searchBarNode.placeholderString = NSAttributedString(string: environment.strings.Common_Search, font: Font.regular(17.0), textColor: searchBarTheme.placeholder)