diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 602acb977..5b0784284 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -5472,6 +5472,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "ayu_ContextMenuElementsHeader" = "Context Menu Elements"; "ayu_DrawerElementsHeader" = "Drawer Elements"; "ayu_TrayElementsHeader" = "Tray Elements"; +"ayu_SettingsSpoofWebviewAsAndroid" = "Spoof Client as Android"; +"ayu_SettingsBiggerWindow" = "Bigger Window"; +"ayu_SettingsIncreaseWebviewHeight" = "Increase Content Height"; +"ayu_SettingsIncreaseWebviewWidth" = "Increase Content Width"; "ayu_ExportDataTitle" = "Export AyuGram Database?"; "ayu_ExportDataDescription" = "It will be exported to the public folder, to Saved Attachments."; "ayu_ExportDataConfirm" = "Yes, export"; @@ -5667,10 +5671,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "ayu_MessageShotShowReactions" = "Show reactions"; "ayu_MessageShotShowColorfulReplies" = "Show colorful replies"; "ayu_SendAsSticker" = "Send as Sticker"; -"ayu_AyuForwardStatusForwarding" = "Forwarding messages…"; -"ayu_AyuForwardStatusLoadingMedia" = "Loading media…"; -"ayu_AyuForwardForwardingDescription" = "Please keep this window open while AyuGram is forwarding your messages."; -"ayu_AyuForwardLoadingMediaDescription" = "Please keep this window open while AyuGram is downloading media from your messages."; +"ayu_AyuForwardStatusPreparing" = "Forwarding messages"; +"ayu_AyuForwardStatusLoadingMedia" = "Loading media"; +"ayu_AyuForwardStatusForwarding" = "Forwarding messages"; +"ayu_AyuForwardStatusFinished" = "Done"; +"ayu_AyuForwardStatusSentCount" = "sent %1$d of %2$d"; +"ayu_AyuForwardStatusChunkCount" = "chunk %1$d of %2$d"; "ayu_ExpireMediaContextMenuText" = "Burn"; "ayu_ExpiringVoiceMessageNote" = "This voice message can be played as many times as you want."; "ayu_ExpiringVideoMessageNote" = "This video message can be played as many times as you want."; diff --git a/Telegram/SourceFiles/ayu/ayu_settings.cpp b/Telegram/SourceFiles/ayu/ayu_settings.cpp index b6ec7f765..56b6b83ac 100644 --- a/Telegram/SourceFiles/ayu/ayu_settings.cpp +++ b/Telegram/SourceFiles/ayu/ayu_settings.cpp @@ -214,6 +214,10 @@ AyuGramSettings::AyuGramSettings() { collapseSimilarChannels = true; hideSimilarChannels = false; + spoofWebviewAsAndroid = false; + increaseWebviewHeight = false; + increaseWebviewWidth = false; + disableNotificationsDelay = false; localPremium = false; @@ -341,6 +345,18 @@ void AyuGramSettings::set_hideSimilarChannels(bool val) { hideSimilarChannels = val; } +void AyuGramSettings::set_spoofWebviewAsAndroid(bool val) { + spoofWebviewAsAndroid = val; +} + +void AyuGramSettings::set_increaseWebviewHeight(bool val) { + increaseWebviewHeight = val; +} + +void AyuGramSettings::set_increaseWebviewWidth(bool val) { + increaseWebviewWidth = val; +} + void AyuGramSettings::set_disableNotificationsDelay(bool val) { disableNotificationsDelay = val; } diff --git a/Telegram/SourceFiles/ayu/ayu_settings.h b/Telegram/SourceFiles/ayu/ayu_settings.h index 09b414291..ab2b85149 100644 --- a/Telegram/SourceFiles/ayu/ayu_settings.h +++ b/Telegram/SourceFiles/ayu/ayu_settings.h @@ -37,6 +37,10 @@ public: bool collapseSimilarChannels; bool hideSimilarChannels; + bool spoofWebviewAsAndroid; + bool increaseWebviewHeight; + bool increaseWebviewWidth; + bool disableNotificationsDelay; bool localPremium; @@ -95,6 +99,10 @@ public: void set_collapseSimilarChannels(bool val); void set_hideSimilarChannels(bool val); + void set_spoofWebviewAsAndroid(bool val); + void set_increaseWebviewHeight(bool val); + void set_increaseWebviewWidth(bool val); + void set_disableNotificationsDelay(bool val); void set_localPremium(bool val); @@ -149,6 +157,9 @@ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT( disableCustomBackgrounds, collapseSimilarChannels, hideSimilarChannels, + spoofWebviewAsAndroid, + increaseWebviewHeight, + increaseWebviewWidth, disableNotificationsDelay, localPremium, appIcon, diff --git a/Telegram/SourceFiles/ayu/ui/ayu_styles.style b/Telegram/SourceFiles/ayu/ui/ayu_styles.style index 9cdeedf12..658cb0553 100644 --- a/Telegram/SourceFiles/ayu/ui/ayu_styles.style +++ b/Telegram/SourceFiles/ayu/ui/ayu_styles.style @@ -27,6 +27,9 @@ recentStickersLimitPadding: margins(22px, 4px, 22px, 8px); imageViewPadding: margins(22px, 10px, 22px, 10px); imageViewInnerPadding: margins(16px, 16px, 16px, 16px); +botWebViewPanelHeightIncreased: 782px; +botWebViewPanelWidthIncreased: 512px; + stickerRoundingSize: 5px; messageShotPadding: 4px; diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp index e674841d4..9c1b010f7 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp @@ -1249,6 +1249,50 @@ void SetupNerdSettings(not_null container, not_nulllifetime()); } +void SetupWebviewSettings(not_null container) { + auto settings = &AyuSettings::getInstance(); + + AddSubsectionTitle(container, rpl::single(QString("Webview"))); + + AddButtonWithIcon( + container, + tr::ayu_SettingsSpoofWebviewAsAndroid(), + st::settingsButtonNoIcon + )->toggleOn( + rpl::single(settings->spoofWebviewAsAndroid) + )->toggledValue( + ) | rpl::filter( + [=](bool enabled) + { + return (enabled != settings->spoofWebviewAsAndroid); + }) | start_with_next( + [=](bool enabled) + { + settings->set_spoofWebviewAsAndroid(enabled); + AyuSettings::save(); + }, + container->lifetime()); + + std::vector checkboxes = { + NestedEntry{ + tr::ayu_SettingsIncreaseWebviewHeight(tr::now), settings->increaseWebviewHeight, [=](bool enabled) + { + settings->set_increaseWebviewHeight(enabled); + AyuSettings::save(); + } + }, + NestedEntry{ + tr::ayu_SettingsIncreaseWebviewWidth(tr::now), settings->increaseWebviewWidth, [=](bool enabled) + { + settings->set_increaseWebviewWidth(enabled); + AyuSettings::save(); + } + } + }; + + AddCollapsibleToggle(container, tr::ayu_SettingsBiggerWindow(), checkboxes, false); +} + void SetupCustomization(not_null container, not_null controller) { AddSubsectionTitle(container, tr::ayu_CustomizationHeader()); @@ -1318,6 +1362,12 @@ void SetupAyuGramSettings(not_null container, AddSkip(container); AddDividerText(container, tr::ayu_SettingsCustomizationHint()); + AddSkip(container); + SetupWebviewSettings(container); + AddSkip(container); + + AddDivider(container); + AddSkip(container); SetupSendConfirmations(container); AddSkip(container); diff --git a/Telegram/SourceFiles/inline_bots/bot_attach_web_view.cpp b/Telegram/SourceFiles/inline_bots/bot_attach_web_view.cpp index eb938ed26..31f66f0ff 100644 --- a/Telegram/SourceFiles/inline_bots/bot_attach_web_view.cpp +++ b/Telegram/SourceFiles/inline_bots/bot_attach_web_view.cpp @@ -59,6 +59,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include +// AyuGram includes +#include "ayu/ayu_settings.h" + + namespace InlineBots { namespace { @@ -431,6 +435,11 @@ void BotAction::handleKeyPress(not_null e) { } } +QString WebviewPlatform() { + const auto settings = &AyuSettings::getInstance(); + return settings->spoofWebviewAsAndroid ? "android" : "tdesktop"; +} + } // namespace MenuBotIcon::MenuBotIcon( @@ -901,7 +910,7 @@ void AttachWebView::request(const WebViewButton &button) { MTP_bytes(button.url), MTP_string(_startCommand), MTP_dataJSON(MTP_bytes(Window::Theme::WebViewParams().json)), - MTP_string("tdesktop"), + MTP_string(WebviewPlatform()), action.mtpReplyTo(), (action.options.sendAs ? action.options.sendAs->input @@ -1222,7 +1231,7 @@ void AttachWebView::requestSimple(const WebViewButton &button) { MTP_bytes(button.url), MTP_string(button.startCommand), MTP_dataJSON(MTP_bytes(Window::Theme::WebViewParams().json)), - MTP_string("tdesktop") + MTP_string(WebviewPlatform()) )).done([=](const MTPWebViewResult &result) { _requestId = 0; const auto &data = result.data(); @@ -1300,7 +1309,7 @@ void AttachWebView::requestMenu( MTP_string(url), MTPstring(), // start_param MTP_dataJSON(MTP_bytes(Window::Theme::WebViewParams().json)), - MTP_string("tdesktop"), + MTP_string(WebviewPlatform()), action.mtpReplyTo(), (action.options.sendAs ? action.options.sendAs->input @@ -1430,7 +1439,7 @@ void AttachWebView::requestAppView(bool allowWrite) { MTP_inputBotAppID(MTP_long(app->id), MTP_long(app->accessHash)), MTP_string(_startCommand), MTP_dataJSON(MTP_bytes(Window::Theme::WebViewParams().json)), - MTP_string("tdesktop") + MTP_string(WebviewPlatform()) )).done([=](const MTPWebViewResult &result) { _requestId = 0; const auto &data = result.data(); diff --git a/Telegram/SourceFiles/ui/chat/attach/attach_bot_webview.cpp b/Telegram/SourceFiles/ui/chat/attach/attach_bot_webview.cpp index 5e9dde92e..246b0a3e9 100644 --- a/Telegram/SourceFiles/ui/chat/attach/attach_bot_webview.cpp +++ b/Telegram/SourceFiles/ui/chat/attach/attach_bot_webview.cpp @@ -35,6 +35,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include +// AyuGram includes +#include "ayu/ayu_settings.h" +#include "styles/style_ayu_styles.h" + + namespace Ui::BotWebView { namespace { @@ -324,7 +329,17 @@ Panel::Panel( , _widget(std::make_unique()) , _allowClipboardRead(allowClipboardRead) { _widget->setWindowFlag(Qt::WindowStaysOnTopHint, false); - _widget->setInnerSize(st::botWebViewPanelSize); + + const auto settings = &AyuSettings::getInstance(); + auto size = QSize(st::botWebViewPanelSize); + if (settings->increaseWebviewHeight) { + size.setHeight(st::botWebViewPanelHeightIncreased); + } + if (settings->increaseWebviewWidth) { + size.setWidth(st::botWebViewPanelWidthIncreased); + } + + _widget->setInnerSize(size); _widget->closeRequests( ) | rpl::start_with_next([=] {