Update Ghostgram features

This commit is contained in:
ichmagmaus 812
2026-03-07 18:15:32 +01:00
parent 1a3303b059
commit 24a7ec39d9
902 changed files with 148302 additions and 62355 deletions
+5 -1
View File
@@ -1,5 +1,9 @@
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
sgdeps = [
"//Swiftgram/SGSimpleSettings:SGSimpleSettings"
]
swift_library(
name = "ShareController",
module_name = "ShareController",
@@ -9,7 +13,7 @@ swift_library(
copts = [
"-warnings-as-errors",
],
deps = [
deps = sgdeps + [
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",
"//submodules/AsyncDisplayKit:AsyncDisplayKit",
"//submodules/Postbox:Postbox",
@@ -1,4 +1,5 @@
import Foundation
import SGSimpleSettings
import UIKit
import Display
import AsyncDisplayKit
@@ -453,7 +454,14 @@ public final class ShareController: ViewController {
public var parentNavigationController: NavigationController?
public convenience init(context: AccountContext, subject: ShareControllerSubject, presetText: String? = nil, preferredAction: ShareControllerPreferredAction = .default, showInChat: ((Message) -> Void)? = nil, fromForeignApp: Bool = false, segmentedValues: [ShareControllerSegmentedValue]? = nil, externalShare: Bool = true, immediateExternalShare: Bool = false, switchableAccounts: [AccountWithInfo] = [], immediatePeerId: PeerId? = nil, updatedPresentationData: (initial: PresentationData, signal: Signal<PresentationData, NoError>)? = nil, forceTheme: PresentationTheme? = nil, forcedActionTitle: String? = nil, shareAsLink: Bool = false, collectibleItemInfo: TelegramCollectibleItemInfo? = nil) {
public convenience init(context: AccountContext, subject: ShareControllerSubject, presetText: String? = nil, preferredAction: ShareControllerPreferredAction = .default, showInChat: ((Message) -> Void)? = nil, fromForeignApp: Bool = false, segmentedValues: [ShareControllerSegmentedValue]? = nil, externalShare: Bool = true, immediateExternalShare: Bool = false, immediateExternalShareOverridingSGBehaviour: Bool? = nil, switchableAccounts: [AccountWithInfo] = [], immediatePeerId: PeerId? = nil, updatedPresentationData: (initial: PresentationData, signal: Signal<PresentationData, NoError>)? = nil, forceTheme: PresentationTheme? = nil, forcedActionTitle: String? = nil, shareAsLink: Bool = false, collectibleItemInfo: TelegramCollectibleItemInfo? = nil) {
var immediateExternalShare = immediateExternalShare
if SGSimpleSettings.shared.forceSystemSharing {
immediateExternalShare = true
}
if let immediateExternalShareOverridingSGBehaviour = immediateExternalShareOverridingSGBehaviour {
immediateExternalShare = immediateExternalShareOverridingSGBehaviour
}
self.init(
environment: ShareControllerAppEnvironment(sharedContext: context.sharedContext),
currentContext: ShareControllerAppAccountContext(context: context),
@@ -1092,7 +1100,7 @@ public final class ShareController: ViewController {
var restrictedText: String?
for attribute in message.attributes {
if let attribute = attribute as? RestrictedContentMessageAttribute {
restrictedText = attribute.platformText(platform: "ios", contentSettings: strongSelf.currentContext.contentSettings) ?? ""
restrictedText = attribute.platformText(platform: "ios", contentSettings: strongSelf.currentContext.contentSettings, chatId: message.author?.id.id._internalGetInt64Value()) ?? ""
}
}
@@ -1,3 +1,4 @@
import SGSimpleSettings
import Foundation
import UIKit
import AsyncDisplayKit
@@ -163,7 +164,7 @@ final class SharePeersContainerNode: ASDisplayNode, ShareContentContainerNode {
self.peersValue.set(.single(peers))
let canShareStory = controllerInteraction.shareStory != nil
let canShareStory = controllerInteraction.shareStory != nil && SGSimpleSettings.shared.showRepostToStoryV2
let items: Signal<[SharePeerEntry], NoError> = combineLatest(self.peersValue.get(), self.foundPeers.get(), self.tick.get(), self.themePromise.get())
|> map { [weak controllerInteraction] initialPeers, foundPeers, _, theme -> [SharePeerEntry] in
@@ -326,6 +327,30 @@ final class SharePeersContainerNode: ASDisplayNode, ShareContentContainerNode {
}
self.contentTitleNode.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.debugTapGesture(_:))))
// MARK: Swiftgram
self.isAccessibilityElement = false
self.contentTitleNode.isAccessibilityElement = true
self.contentTitleNode.accessibilityLabel = strings.ShareMenu_ShareTo
self.contentTitleNode.accessibilityTraits = .header
self.contentSubtitleNode.isAccessibilityElement = true
self.contentSubtitleNode.accessibilityLabel = strings.ShareMenu_SelectChats
self.searchButtonNode.isAccessibilityElement = true
self.searchButtonNode.accessibilityLabel = strings.Common_Search
self.searchButtonNode.accessibilityTraits = .button
self.shareButtonNode.isAccessibilityElement = true
self.shareButtonNode.accessibilityLabel = "System Share Menu"
self.shareButtonNode.accessibilityTraits = .button
self.contentTitleAccountNode.isAccessibilityElement = true
self.contentTitleAccountNode.accessibilityLabel = strings.Shortcut_SwitchAccount
self.contentTitleAccountNode.accessibilityTraits = .button
//
}
deinit {
@@ -701,6 +726,7 @@ final class SharePeersContainerNode: ASDisplayNode, ShareContentContainerNode {
})
}
self.contentSubtitleNode.attributedText = NSAttributedString(string: subtitleText, font: subtitleFont, textColor: self.theme.actionSheet.secondaryTextColor)
self.contentSubtitleNode.accessibilityLabel = subtitleText
}
self.contentGridNode.forEachItemNode { itemNode in
if let itemNode = itemNode as? ShareControllerPeerGridItemNode {