mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios
This commit is contained in:
commit
330117ef3e
@ -143,6 +143,8 @@ genrule(
|
|||||||
minimum_os_version = "12.0"
|
minimum_os_version = "12.0"
|
||||||
minimum_watchos_version="9.0"
|
minimum_watchos_version="9.0"
|
||||||
|
|
||||||
|
notificationServiceExtensionVersion = "v1"
|
||||||
|
|
||||||
empty_languages = [
|
empty_languages = [
|
||||||
"ar",
|
"ar",
|
||||||
"be",
|
"be",
|
||||||
@ -1712,31 +1714,12 @@ plist_fragment(
|
|||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
""".format(
|
""".format(
|
||||||
telegram_bundle_id = telegram_bundle_id,
|
telegram_bundle_id = telegram_bundle_id
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
'''genrule(
|
|
||||||
name = "SetMinOsVersionNotificationServiceExtension",
|
|
||||||
cmd_bash =
|
|
||||||
"""
|
|
||||||
name=NotificationServiceExtension.appex
|
|
||||||
cat $(location PatchMinOSVersion.source.sh) | sed -e "s/<<<MIN_OS_VERSION>>>/10\\.0/g" | sed -e "s/<<<NAME>>>/$$name/g" > $(location SetMinOsVersionNotificationServiceExtension.sh)
|
|
||||||
""",
|
|
||||||
srcs = [
|
|
||||||
"PatchMinOSVersion.source.sh",
|
|
||||||
],
|
|
||||||
outs = [
|
|
||||||
"SetMinOsVersionNotificationServiceExtension.sh",
|
|
||||||
],
|
|
||||||
executable = True,
|
|
||||||
visibility = [
|
|
||||||
"//visibility:public",
|
|
||||||
]
|
|
||||||
)'''
|
|
||||||
|
|
||||||
ios_extension(
|
ios_extension(
|
||||||
name = "NotificationServiceExtension",
|
name = "NotificationServiceExtension" + notificationServiceExtensionVersion,
|
||||||
bundle_id = "{telegram_bundle_id}.NotificationService".format(
|
bundle_id = "{telegram_bundle_id}.NotificationService".format(
|
||||||
telegram_bundle_id = telegram_bundle_id,
|
telegram_bundle_id = telegram_bundle_id,
|
||||||
),
|
),
|
||||||
@ -1752,7 +1735,6 @@ ios_extension(
|
|||||||
":AppNameInfoPlist",
|
":AppNameInfoPlist",
|
||||||
],
|
],
|
||||||
minimum_os_version = minimum_os_version, # maintain the same minimum OS version across extensions
|
minimum_os_version = minimum_os_version, # maintain the same minimum OS version across extensions
|
||||||
#ipa_post_processor = ":SetMinOsVersionNotificationServiceExtension",
|
|
||||||
provisioning_profile = select({
|
provisioning_profile = select({
|
||||||
":disableProvisioningProfilesSetting": None,
|
":disableProvisioningProfilesSetting": None,
|
||||||
"//conditions:default": "@build_configuration//provisioning:NotificationService.mobileprovision",
|
"//conditions:default": "@build_configuration//provisioning:NotificationService.mobileprovision",
|
||||||
@ -1997,7 +1979,7 @@ ios_application(
|
|||||||
"//conditions:default": [
|
"//conditions:default": [
|
||||||
":ShareExtension",
|
":ShareExtension",
|
||||||
":NotificationContentExtension",
|
":NotificationContentExtension",
|
||||||
":NotificationServiceExtension",
|
":NotificationServiceExtension" + notificationServiceExtensionVersion,
|
||||||
":IntentsExtension",
|
":IntentsExtension",
|
||||||
":WidgetExtension",
|
":WidgetExtension",
|
||||||
":BroadcastUploadExtension",
|
":BroadcastUploadExtension",
|
||||||
|
@ -905,11 +905,7 @@ open class ItemListControllerNode: ASDisplayNode, ASGestureRecognizerDelegate {
|
|||||||
if let validLayout = self.validLayout {
|
if let validLayout = self.validLayout {
|
||||||
updatedNode.updateLayout(layout: validLayout.0, navigationBarHeight: validLayout.1, transition: .immediate)
|
updatedNode.updateLayout(layout: validLayout.0, navigationBarHeight: validLayout.1, transition: .immediate)
|
||||||
}
|
}
|
||||||
if self.rightOverlayNode.supernode != nil {
|
self.addSubnode(updatedNode)
|
||||||
self.insertSubnode(updatedNode, aboveSubnode: self.rightOverlayNode)
|
|
||||||
} else {
|
|
||||||
self.insertSubnode(updatedNode, aboveSubnode: self.listNode)
|
|
||||||
}
|
|
||||||
updatedNode.activate()
|
updatedNode.activate()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -123,7 +123,7 @@ public final class AnimatedTextComponent: Component {
|
|||||||
color: component.color
|
color: component.color
|
||||||
)),
|
)),
|
||||||
environment: {},
|
environment: {},
|
||||||
containerSize: CGSize(width: 100.0, height: 100.0)
|
containerSize: CGSize(width: availableSize.width, height: 100.0)
|
||||||
)
|
)
|
||||||
let characterFrame = CGRect(origin: CGPoint(x: size.width, y: 0.0), size: characterSize)
|
let characterFrame = CGRect(origin: CGPoint(x: size.width, y: 0.0), size: characterSize)
|
||||||
if let characterComponentView = characterView.view {
|
if let characterComponentView = characterView.view {
|
||||||
|
@ -930,6 +930,12 @@ public class ChatMessageTextBubbleContentNode: ChatMessageBubbleContentNode {
|
|||||||
return ChatMessageBubbleContentTapAction(content: .copy(pre))
|
return ChatMessageBubbleContentTapAction(content: .copy(pre))
|
||||||
} else if let code = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.Code)] as? String {
|
} else if let code = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.Code)] as? String {
|
||||||
return ChatMessageBubbleContentTapAction(content: .copy(code))
|
return ChatMessageBubbleContentTapAction(content: .copy(code))
|
||||||
|
} else if let _ = attributes[NSAttributedString.Key(rawValue: "Attribute__Blockquote")] {
|
||||||
|
if let text = self.textNode.textNode.attributeSubstring(name: "Attribute__Blockquote", index: index) {
|
||||||
|
return ChatMessageBubbleContentTapAction(content: .copy(text.1))
|
||||||
|
} else {
|
||||||
|
return ChatMessageBubbleContentTapAction(content: .none)
|
||||||
|
}
|
||||||
} else if let emoji = attributes[NSAttributedString.Key(rawValue: ChatTextInputAttributes.customEmoji.rawValue)] as? ChatTextInputTextCustomEmojiAttribute, let file = emoji.file {
|
} else if let emoji = attributes[NSAttributedString.Key(rawValue: ChatTextInputAttributes.customEmoji.rawValue)] as? ChatTextInputTextCustomEmojiAttribute, let file = emoji.file {
|
||||||
return ChatMessageBubbleContentTapAction(content: .customEmoji(file))
|
return ChatMessageBubbleContentTapAction(content: .customEmoji(file))
|
||||||
} else {
|
} else {
|
||||||
|
@ -268,6 +268,18 @@ private final class PeerInfoScreenLabeledValueItemNode: PeerInfoScreenItemNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.containerNode.shouldBegin = { [weak self] point in
|
||||||
|
guard let self else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if self.linkItemAtPoint(point) != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
self.containerNode.activated = { [weak self] gesture, _ in
|
self.containerNode.activated = { [weak self] gesture, _ in
|
||||||
guard let strongSelf = self, let item = strongSelf.item, let contextAction = item.contextAction else {
|
guard let strongSelf = self, let item = strongSelf.item, let contextAction = item.contextAction else {
|
||||||
gesture.cancel()
|
gesture.cancel()
|
||||||
|
@ -2235,6 +2235,12 @@ final class PeerInfoHeaderNode: ASDisplayNode {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if self.isSettings {
|
||||||
|
if self.subtitleNodeRawContainer.bounds.contains(self.view.convert(point, to: self.subtitleNodeRawContainer.view)) {
|
||||||
|
return self.subtitleNodeRawContainer.view
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if let result = self.buttonsContainerNode.view.hitTest(self.view.convert(point, to: self.buttonsContainerNode.view), with: event) {
|
if let result = self.buttonsContainerNode.view.hitTest(self.view.convert(point, to: self.buttonsContainerNode.view), with: event) {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
@ -396,6 +396,15 @@ final class AuthorizedApplicationContext {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if firstMessage.restrictionReason(platform: "ios", contentSettings: strongSelf.context.currentContentSettings.with { $0 }) != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if let chatPeer = firstMessage.peers[firstMessage.id.peerId] {
|
||||||
|
if EnginePeer(chatPeer).restrictionText(platform: "ios", contentSettings: strongSelf.context.currentContentSettings.with { $0 }) != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if inAppNotificationSettings.displayPreviews {
|
if inAppNotificationSettings.displayPreviews {
|
||||||
let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 }
|
||||||
strongSelf.notificationController.enqueue(ChatMessageNotificationItem(context: strongSelf.context, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, messages: messages, threadData: threadData, tapAction: {
|
strongSelf.notificationController.enqueue(ChatMessageNotificationItem(context: strongSelf.context, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, messages: messages, threadData: threadData, tapAction: {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user