Skip to content

Commit 8180c08

Browse files
committed
Various improvements
1 parent 8336495 commit 8180c08

File tree

5 files changed

+21
-12
lines changed

5 files changed

+21
-12
lines changed

submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreen.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5471,7 +5471,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
54715471
}
54725472
let context = self.context
54735473
let peerId = self.peerId
5474-
let params = WebAppParameters(source: .settings, peerId: self.context.account.peerId, botId: bot.peer.id, botName: bot.peer.compactDisplayTitle, botVerified: bot.peer.isVerified, botAddress: bot.peer.addressName ?? "", url: nil, queryId: nil, payload: nil, buttonText: nil, keepAliveSignal: nil, forceHasSettings: bot.flags.contains(.hasSettings), fullSize: true, appSettings: appSettings)
5474+
let params = WebAppParameters(source: .settings, peerId: self.context.account.peerId, botId: bot.peer.id, botName: bot.peer.compactDisplayTitle, botVerified: bot.peer.isVerified, botAddress: bot.peer.addressName ?? "", appName: "", url: nil, queryId: nil, payload: nil, buttonText: nil, keepAliveSignal: nil, forceHasSettings: bot.flags.contains(.hasSettings), fullSize: true, appSettings: appSettings)
54755475

54765476
var openUrlImpl: ((String, Bool, Bool, @escaping () -> Void) -> Void)?
54775477
var presentImpl: ((ViewController, Any?) -> Void)?

submodules/TelegramUI/Sources/Chat/ChatControllerOpenWebApp.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ func openWebAppImpl(
128128
}
129129

130130
var presentImpl: ((ViewController, Any?) -> Void)?
131-
let params = WebAppParameters(source: .menu, peerId: chatPeer?.id ?? botPeer.id, botId: botPeer.id, botName: botName, botVerified: botVerified, botAddress: botPeer.addressName ?? "", url: url, queryId: nil, payload: nil, buttonText: buttonText, keepAliveSignal: nil, forceHasSettings: false, fullSize: fullSize, isFullscreen: isFullscreen, appSettings: appSettings)
131+
let params = WebAppParameters(source: .menu, peerId: chatPeer?.id ?? botPeer.id, botId: botPeer.id, botName: botName, botVerified: botVerified, botAddress: botPeer.addressName ?? "", appName: nil, url: url, queryId: nil, payload: nil, buttonText: buttonText, keepAliveSignal: nil, forceHasSettings: false, fullSize: fullSize, isFullscreen: isFullscreen, appSettings: appSettings)
132132

133133
let controller = standaloneWebAppController(context: context, updatedPresentationData: updatedPresentationData, params: params, threadId: threadId, openUrl: { [weak parentController] url, concealed, forceUpdate, commit in
134134
ChatControllerImpl.botOpenUrl(context: context, peerId: chatPeer?.id ?? botPeer.id, controller: parentController as? ChatControllerImpl, url: url, concealed: concealed, forceUpdate: forceUpdate, present: { c, a in
@@ -222,7 +222,7 @@ func openWebAppImpl(
222222
} else {
223223
source = url.isEmpty ? .generic : .simple
224224
}
225-
let params = WebAppParameters(source: source, peerId: chatPeer?.id ?? botId, botId: botId, botName: botName, botVerified: botVerified, botAddress: botPeer.addressName ?? "", url: result.url, queryId: nil, payload: payload, buttonText: buttonText, keepAliveSignal: nil, forceHasSettings: false, fullSize: result.flags.contains(.fullSize), isFullscreen: result.flags.contains(.fullScreen), appSettings: appSettings)
225+
let params = WebAppParameters(source: source, peerId: chatPeer?.id ?? botId, botId: botId, botName: botName, botVerified: botVerified, botAddress: botPeer.addressName ?? "", appName: nil, url: result.url, queryId: nil, payload: payload, buttonText: buttonText, keepAliveSignal: nil, forceHasSettings: false, fullSize: result.flags.contains(.fullSize), isFullscreen: result.flags.contains(.fullScreen), appSettings: appSettings)
226226
let controller = standaloneWebAppController(context: context, updatedPresentationData: updatedPresentationData, params: params, threadId: threadId, openUrl: { [weak parentController] url, concealed, forceUpdate, commit in
227227
ChatControllerImpl.botOpenUrl(context: context, peerId: chatPeer?.id ?? botId, controller: parentController as? ChatControllerImpl, url: url, concealed: concealed, forceUpdate: forceUpdate, present: { c, a in
228228
presentImpl?(c, a)
@@ -268,7 +268,7 @@ func openWebAppImpl(
268268
return
269269
}
270270
var presentImpl: ((ViewController, Any?) -> Void)?
271-
let params = WebAppParameters(source: .button, peerId: chatPeer?.id ?? botPeer.id, botId: botPeer.id, botName: botName, botVerified: botVerified, botAddress: botPeer.addressName ?? "", url: result.url, queryId: result.queryId, payload: nil, buttonText: buttonText, keepAliveSignal: result.keepAliveSignal, forceHasSettings: false, fullSize: result.flags.contains(.fullSize), isFullscreen: result.flags.contains(.fullScreen), appSettings: appSettings)
271+
let params = WebAppParameters(source: .button, peerId: chatPeer?.id ?? botPeer.id, botId: botPeer.id, botName: botName, botVerified: botVerified, botAddress: botPeer.addressName ?? "", appName: nil, url: result.url, queryId: result.queryId, payload: nil, buttonText: buttonText, keepAliveSignal: result.keepAliveSignal, forceHasSettings: false, fullSize: result.flags.contains(.fullSize), isFullscreen: result.flags.contains(.fullScreen), appSettings: appSettings)
272272
let controller = standaloneWebAppController(context: context, updatedPresentationData: updatedPresentationData, params: params, threadId: threadId, openUrl: { [weak parentController] url, concealed, forceUpdate, commit in
273273
ChatControllerImpl.botOpenUrl(context: context, peerId: chatPeer?.id ?? botPeer.id, controller: parentController as? ChatControllerImpl, url: url, concealed: concealed, forceUpdate: forceUpdate, present: { c, a in
274274
presentImpl?(c, a)
@@ -499,7 +499,7 @@ public extension ChatControllerImpl {
499499
return
500500
}
501501
let context = strongSelf.context
502-
let params = WebAppParameters(source: .generic, peerId: peerId, botId: botPeer.id, botName: botApp.title, botVerified: botPeer.isVerified, botAddress: botPeer.addressName ?? "", url: result.url, queryId: 0, payload: payload, buttonText: "", keepAliveSignal: nil, forceHasSettings: botApp.flags.contains(.hasSettings), fullSize: result.flags.contains(.fullSize), isFullscreen: result.flags.contains(.fullScreen), appSettings: nil)
502+
let params = WebAppParameters(source: .generic, peerId: peerId, botId: botPeer.id, botName: botApp.title, botVerified: botPeer.isVerified, botAddress: botPeer.addressName ?? "", appName: botApp.shortName, url: result.url, queryId: 0, payload: payload, buttonText: "", keepAliveSignal: nil, forceHasSettings: botApp.flags.contains(.hasSettings), fullSize: result.flags.contains(.fullSize), isFullscreen: result.flags.contains(.fullScreen), appSettings: nil)
503503
var presentImpl: ((ViewController, Any?) -> Void)?
504504
let controller = standaloneWebAppController(context: strongSelf.context, updatedPresentationData: strongSelf.updatedPresentationData, params: params, threadId: strongSelf.chatLocation.threadId, openUrl: { [weak self] url, concealed, forceUpdate, commit in
505505
ChatControllerImpl.botOpenUrl(context: context, peerId: peerId, controller: self, url: url, concealed: concealed, forceUpdate: forceUpdate, present: { c, a in

submodules/TelegramUI/Sources/ChatControllerOpenAttachmentMenu.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,7 @@ extension ChatControllerImpl {
613613
payload = botPayload
614614
fromAttachMenu = false
615615
}
616-
let params = WebAppParameters(source: fromAttachMenu ? .attachMenu : .generic, peerId: peer.id, botId: bot.peer.id, botName: bot.shortName, botVerified: bot.peer.isVerified, botAddress: bot.peer.addressName ?? "", url: nil, queryId: nil, payload: payload, buttonText: nil, keepAliveSignal: nil, forceHasSettings: false, fullSize: false, isFullscreen: false)
616+
let params = WebAppParameters(source: fromAttachMenu ? .attachMenu : .generic, peerId: peer.id, botId: bot.peer.id, botName: bot.shortName, botVerified: bot.peer.isVerified, botAddress: bot.peer.addressName ?? "", appName: "", url: nil, queryId: nil, payload: payload, buttonText: nil, keepAliveSignal: nil, forceHasSettings: false, fullSize: false, isFullscreen: false)
617617
let replyMessageSubject = strongSelf.presentationInterfaceState.interfaceState.replyMessageSubject
618618
let controller = WebAppController(context: strongSelf.context, updatedPresentationData: strongSelf.updatedPresentationData, params: params, replyToMessageId: replyMessageSubject?.messageId, threadId: strongSelf.chatLocation.threadId)
619619
controller.openUrl = { [weak self] url, concealed, forceUpdate, commit in

submodules/TelegramUI/Sources/OpenUrl.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,8 @@ func openExternalUrlImpl(context: AccountContext, urlContext: OpenURLContext, ur
782782
startChannel = ""
783783
} else if queryItem.name == "profile" {
784784
profile = true
785+
} else if queryItem.name == "startapp" {
786+
startApp = ""
785787
}
786788
}
787789
}

submodules/WebUI/Sources/WebAppController.swift

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public struct WebAppParameters {
6363
let botName: String
6464
let botVerified: Bool
6565
let botAddress: String
66+
let appName: String?
6667
let url: String?
6768
let queryId: Int64?
6869
let payload: String?
@@ -80,6 +81,7 @@ public struct WebAppParameters {
8081
botName: String,
8182
botVerified: Bool,
8283
botAddress: String,
84+
appName: String?,
8385
url: String?,
8486
queryId: Int64?,
8587
payload: String?,
@@ -96,6 +98,7 @@ public struct WebAppParameters {
9698
self.botName = botName
9799
self.botVerified = botVerified
98100
self.botAddress = botAddress
101+
self.appName = appName
99102
self.url = url
100103
self.queryId = queryId
101104
self.payload = payload
@@ -2529,19 +2532,21 @@ public final class WebAppController: ViewController, AttachmentContainable {
25292532
guard let controller = self.controller else {
25302533
return
25312534
}
2535+
25322536
let _ = (self.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.Peer(id: controller.botId))
25332537
|> deliverOnMainQueue
25342538
).start(next: { [weak controller] peer in
2535-
guard let peer, let addressName = peer.addressName else {
2539+
guard let controller, let peer, let addressName = peer.addressName else {
25362540
return
25372541
}
2538-
let encodedName = peer.compactDisplayTitle.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
2539-
let encodedUsername = addressName.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
2540-
2541-
let url = URL(string: "http://64.225.73.234/?name=\(encodedName)&username=\(encodedUsername)")!
2542+
var appName: String = ""
2543+
if let name = controller.appName {
2544+
appName = "/\(name)"
2545+
}
2546+
let url = URL(string: "x-safari-https://t.me/\(addressName)\(appName)?startapp&addToHomeScreen")!
25422547
UIApplication.shared.open(url)
25432548

2544-
controller?.dismiss()
2549+
controller.dismiss()
25452550
})
25462551
}
25472552

@@ -2693,6 +2698,7 @@ public final class WebAppController: ViewController, AttachmentContainable {
26932698
fileprivate let botVerified: Bool
26942699
fileprivate let botAppSettings: BotAppSettings?
26952700
fileprivate let botAddress: String
2701+
fileprivate let appName: String?
26962702
private let url: String?
26972703
private let queryId: Int64?
26982704
private let payload: String?
@@ -2723,6 +2729,7 @@ public final class WebAppController: ViewController, AttachmentContainable {
27232729
self.botVerified = params.botVerified
27242730
self.botAppSettings = params.appSettings
27252731
self.botAddress = params.botAddress
2732+
self.appName = params.appName
27262733
self.url = params.url
27272734
self.queryId = params.queryId
27282735
self.payload = params.payload

0 commit comments

Comments
 (0)