mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-18 07:07:08 +02:00
feat: implement enableAds
& add views for options
This commit is contained in:
parent
9aafbddee3
commit
a5bd116b40
8 changed files with 67 additions and 84 deletions
Telegram
Resources/langs
SourceFiles
ayu-scripts
|
@ -3867,6 +3867,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
"ayu_EditedMarkText" = "Edited mark";
|
||||
"ayu_ShowGhostToggleInDrawer" = "Show ghost mode toggle";
|
||||
"ayu_CleanDatabase" = "Clean database";
|
||||
"ayu_WALMode" = "Enable WAL mode";
|
||||
"ayu_CleanDatabaseNotification" = "AyuGram database cleaned";
|
||||
"ayu_EnableGhostMode" = "Enable Ghost";
|
||||
"ayu_DisableGhostMode" = "Disable Ghost";
|
||||
|
@ -3878,9 +3879,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
"ayu_ForwardsRestrictedInfoDeleted" = "Forwarding of deleted message is not supported.";
|
||||
"ayu_LikelyOfflineStatus" = "offline ?";
|
||||
"ayu_GhostModeShortcut" = "Enter with Ghost";
|
||||
"ayu_SettingsWatermark" = "AyuGram developed and maintained by Radolyn Labs";
|
||||
"ayu_SettingsWatermark" = "AyuGram developed and maintained by Radolyn Labs.";
|
||||
"ayu_SettingsCustomizationHint" = "After making changes to the \"Customization\" section, you must restart the application.";
|
||||
"ayu_SettingsShowID" = "Show peer ID";
|
||||
"ayu_SettingsShowID_Hide" = "Hide";
|
||||
"ayu_SettingsShowMessageSeconds" = "Show message seconds";
|
||||
"ayu_ContextCopyID" = "Copy ID";
|
||||
"ayu_IDCopiedToast" = "ID copied to clipboard.";
|
||||
"ayu_DrawerGhostModeToggle" = "Ghost Mode";
|
||||
|
|
|
@ -9,21 +9,10 @@ namespace AyuSettings {
|
|||
|
||||
rpl::variable<bool> sendReadPacketsReactive;
|
||||
rpl::variable<bool> sendOnlinePacketsReactive;
|
||||
rpl::variable<bool> sendUploadProgressReactive;
|
||||
|
||||
rpl::variable<bool> sendOfflinePacketAfterOnlineReactive;
|
||||
rpl::variable<bool> markReadAfterSendReactive;
|
||||
|
||||
rpl::variable<bool> useScheduledMessagesReactive;
|
||||
|
||||
rpl::variable<bool> keepDeletedMessagesReactive;
|
||||
rpl::variable<bool> keepMessagesHistoryReactive;
|
||||
|
||||
rpl::variable<QString> deletedMarkReactive;
|
||||
rpl::variable<QString> editedMarkReactive;
|
||||
rpl::variable<bool> showGhostToggleInDrawerReactive;
|
||||
rpl::variable<int> showPeerIdReactive;
|
||||
rpl::variable<bool> showMessageSecondsReactive;
|
||||
|
||||
rpl::variable<bool> ghostModeEnabled;
|
||||
|
||||
|
@ -51,21 +40,10 @@ namespace AyuSettings {
|
|||
void postinitialize() {
|
||||
sendReadPacketsReactive = settings->sendReadPackets;
|
||||
sendOnlinePacketsReactive = settings->sendOnlinePackets;
|
||||
sendUploadProgressReactive = settings->sendUploadProgress;
|
||||
|
||||
sendOfflinePacketAfterOnlineReactive = settings->sendOfflinePacketAfterOnline;
|
||||
markReadAfterSendReactive = settings->markReadAfterSend;
|
||||
|
||||
useScheduledMessagesReactive = settings->useScheduledMessages;
|
||||
|
||||
keepDeletedMessagesReactive = settings->keepDeletedMessages;
|
||||
keepMessagesHistoryReactive = settings->keepMessagesHistory;
|
||||
|
||||
deletedMarkReactive = settings->deletedMark;
|
||||
editedMarkReactive = settings->editedMark;
|
||||
showGhostToggleInDrawerReactive = settings->showGhostToggleInDrawer;
|
||||
showPeerIdReactive = settings->showPeerId;
|
||||
showMessageSecondsReactive = settings->showMessageSeconds;
|
||||
|
||||
ghostModeEnabled = !settings->sendReadPackets && !settings->sendOnlinePackets;
|
||||
}
|
||||
|
@ -114,32 +92,30 @@ namespace AyuSettings {
|
|||
|
||||
void AyuGramSettings::set_sendUploadProgress(bool val) {
|
||||
sendUploadProgress = val;
|
||||
sendUploadProgressReactive = val;
|
||||
}
|
||||
|
||||
void AyuGramSettings::set_sendOfflinePacketAfterOnline(bool val) {
|
||||
sendOfflinePacketAfterOnline = val;
|
||||
sendOfflinePacketAfterOnlineReactive = val;
|
||||
}
|
||||
|
||||
void AyuGramSettings::set_markReadAfterSend(bool val) {
|
||||
markReadAfterSend = val;
|
||||
markReadAfterSendReactive = val;
|
||||
}
|
||||
|
||||
void AyuGramSettings::set_useScheduledMessages(bool val) {
|
||||
useScheduledMessages = val;
|
||||
useScheduledMessagesReactive = val;
|
||||
}
|
||||
|
||||
void AyuGramSettings::set_keepDeletedMessages(bool val) {
|
||||
keepDeletedMessages = val;
|
||||
keepDeletedMessagesReactive = val;
|
||||
}
|
||||
|
||||
void AyuGramSettings::set_keepMessagesHistory(bool val) {
|
||||
keepMessagesHistory = val;
|
||||
keepMessagesHistoryReactive = val;
|
||||
}
|
||||
|
||||
void AyuGramSettings::set_enableAds(bool val) {
|
||||
enableAds = val;
|
||||
}
|
||||
|
||||
void AyuGramSettings::set_deletedMark(QString val) {
|
||||
|
@ -154,7 +130,6 @@ namespace AyuSettings {
|
|||
|
||||
void AyuGramSettings::set_showGhostToggleInDrawer(bool val) {
|
||||
showGhostToggleInDrawer = val;
|
||||
showGhostToggleInDrawerReactive = val;
|
||||
}
|
||||
|
||||
void AyuGramSettings::set_showPeerId(int val) {
|
||||
|
@ -164,39 +139,6 @@ namespace AyuSettings {
|
|||
|
||||
void AyuGramSettings::set_showMessageSeconds(bool val) {
|
||||
showMessageSeconds = val;
|
||||
showMessageSecondsReactive = val;
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_sendReadPacketsReactive() {
|
||||
return sendReadPacketsReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_sendOnlinePacketsReactive() {
|
||||
return sendOnlinePacketsReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_sendUploadProgressReactive() {
|
||||
return sendUploadProgressReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_sendOfflinePacketAfterOnlineReactive() {
|
||||
return sendOfflinePacketAfterOnlineReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_markReadAfterSend() {
|
||||
return markReadAfterSendReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_useScheduledMessagesReactive() {
|
||||
return useScheduledMessagesReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_keepDeletedMessagesReactive() {
|
||||
return keepDeletedMessagesReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_keepMessagesHistoryReactive() {
|
||||
return keepMessagesHistoryReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<QString> get_deletedMarkReactive() {
|
||||
|
@ -207,18 +149,10 @@ namespace AyuSettings {
|
|||
return editedMarkReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_showGhostToggleInDrawerReactive() {
|
||||
return showGhostToggleInDrawerReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<int> get_showPeerId() {
|
||||
return showPeerIdReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_showMessageSeconds() {
|
||||
return showMessageSecondsReactive.value();
|
||||
}
|
||||
|
||||
rpl::producer<bool> get_ghostModeEnabled() {
|
||||
return ghostModeEnabled.value();
|
||||
}
|
||||
|
|
|
@ -27,6 +27,9 @@ namespace AyuSettings {
|
|||
keepDeletedMessages = true;
|
||||
keepMessagesHistory = true;
|
||||
|
||||
// ~ QoL toggles
|
||||
enableAds = false;
|
||||
|
||||
// ~ Customization
|
||||
deletedMark = "🧹";
|
||||
editedMark = tr::lng_edited(tr::now);
|
||||
|
@ -60,6 +63,8 @@ namespace AyuSettings {
|
|||
|
||||
QS_FIELD(bool, keepMessagesHistory)
|
||||
|
||||
QS_FIELD(bool, enableAds)
|
||||
|
||||
QS_FIELD(QString, deletedMark)
|
||||
|
||||
QS_FIELD(QString, editedMark)
|
||||
|
@ -83,6 +88,8 @@ namespace AyuSettings {
|
|||
void set_keepDeletedMessages(bool val);
|
||||
void set_keepMessagesHistory(bool val);
|
||||
|
||||
void set_enableAds(bool val);
|
||||
|
||||
void set_deletedMark(QString val);
|
||||
void set_editedMark(QString val);
|
||||
void set_showGhostToggleInDrawer(bool val);
|
||||
|
@ -96,18 +103,9 @@ namespace AyuSettings {
|
|||
|
||||
void save();
|
||||
|
||||
rpl::producer<bool> get_sendReadPacketsReactive();
|
||||
rpl::producer<bool> get_sendOnlinePacketsReactive();
|
||||
rpl::producer<bool> get_sendOfflinePacketAfterOnlineReactive();
|
||||
rpl::producer<bool> get_sendUploadProgressReactive();
|
||||
rpl::producer<bool> get_useScheduledMessagesReactive();
|
||||
rpl::producer<bool> get_keepDeletedMessagesReactive();
|
||||
rpl::producer<bool> get_keepMessagesHistoryReactive();
|
||||
rpl::producer<QString> get_deletedMarkReactive();
|
||||
rpl::producer<QString> get_editedMarkReactive();
|
||||
rpl::producer<QString> get_showGhostToggleInDrawer();
|
||||
rpl::producer<int> get_showPeerId();
|
||||
rpl::producer<bool> get_showMessageSeconds();
|
||||
|
||||
// computed fields
|
||||
rpl::producer<bool> get_ghostModeEnabled();
|
||||
|
|
|
@ -160,6 +160,26 @@ namespace Settings {
|
|||
}, container->lifetime());
|
||||
}
|
||||
|
||||
void Ayu::SetupQoLToggles(not_null<Ui::VerticalLayout *> container) {
|
||||
auto settings = &AyuSettings::getInstance();
|
||||
|
||||
AddSubsectionTitle(container, tr::ayu_QoLTogglesHeader());
|
||||
|
||||
AddButton(
|
||||
container,
|
||||
tr::ayu_EnableAds(),
|
||||
st::settingsButtonNoIcon
|
||||
)->toggleOn(
|
||||
rpl::single(settings->enableAds)
|
||||
)->toggledValue(
|
||||
) | rpl::filter([=](bool enabled) {
|
||||
return (enabled != settings->enableAds);
|
||||
}) | rpl::start_with_next([=](bool enabled) {
|
||||
settings->set_enableAds(enabled);
|
||||
AyuSettings::save();
|
||||
}, container->lifetime());
|
||||
}
|
||||
|
||||
void Ayu::SetupCustomization(not_null<Ui::VerticalLayout *> container, not_null<Window::SessionController *> controller) {
|
||||
auto settings = &AyuSettings::getInstance();
|
||||
|
||||
|
@ -187,6 +207,8 @@ namespace Settings {
|
|||
Ui::show(std::move(box));
|
||||
});
|
||||
|
||||
SetupShowPeerId(container, controller);
|
||||
|
||||
AddButton(
|
||||
container,
|
||||
tr::ayu_ShowGhostToggleInDrawer(),
|
||||
|
@ -201,7 +223,21 @@ namespace Settings {
|
|||
AyuSettings::save();
|
||||
}, container->lifetime());
|
||||
|
||||
SetupShowPeerId(container, controller);
|
||||
AddButton(
|
||||
container,
|
||||
tr::ayu_SettingsShowMessageSeconds(),
|
||||
st::settingsButtonNoIcon
|
||||
)->toggleOn(
|
||||
rpl::single(settings->showMessageSeconds)
|
||||
)->toggledValue(
|
||||
) | rpl::filter([=](bool enabled) {
|
||||
return (enabled != settings->showMessageSeconds);
|
||||
}) | rpl::start_with_next([=](bool enabled) {
|
||||
settings->set_showMessageSeconds(enabled);
|
||||
AyuSettings::save();
|
||||
}, container->lifetime());
|
||||
|
||||
AddDividerText(container, tr::ayu_SettingsCustomizationHint());
|
||||
}
|
||||
|
||||
void Ayu::SetupShowPeerId(not_null<Ui::VerticalLayout *> container, not_null<Window::SessionController *> controller) {
|
||||
|
@ -249,6 +285,11 @@ namespace Settings {
|
|||
|
||||
AddDivider(container);
|
||||
|
||||
AddSkip(container);
|
||||
SetupQoLToggles(container);
|
||||
|
||||
AddDivider(container);
|
||||
|
||||
AddSkip(container);
|
||||
SetupCustomization(container, controller);
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ namespace Settings {
|
|||
private:
|
||||
void SetupGhostEssentials(not_null<Ui::VerticalLayout *> container);
|
||||
void SetupSpyEssentials(not_null<Ui::VerticalLayout *> container);
|
||||
void SetupQoLToggles(not_null<Ui::VerticalLayout *> container);
|
||||
void SetupCustomization(not_null<Ui::VerticalLayout *> container, not_null<Window::SessionController *> controller);
|
||||
void SetupShowPeerId(not_null<Ui::VerticalLayout *> container, not_null<Window::SessionController *> controller);
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "ui/image/image_location_factory.h"
|
||||
#include "ui/text/text_utilities.h" // Ui::Text::RichLangValue.
|
||||
|
||||
#include "ayu/ayu_settings.h"
|
||||
|
||||
namespace Data {
|
||||
namespace {
|
||||
|
||||
|
@ -175,7 +177,8 @@ void SponsoredMessages::inject(
|
|||
}
|
||||
|
||||
bool SponsoredMessages::canHaveFor(not_null<History*> history) const {
|
||||
return history->peer->isChannel();
|
||||
auto settings = &AyuSettings::getInstance();
|
||||
return settings->enableAds && history->peer->isChannel();
|
||||
}
|
||||
|
||||
void SponsoredMessages::request(not_null<History*> history, Fn<void()> done) {
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
{
|
||||
"SettingsWatermark": "AyuGram developed and maintained by Radolyn Labs",
|
||||
"SettingsWatermark": "AyuGram developed and maintained by Radolyn Labs.",
|
||||
"SettingsCustomizationHint": "After making changes to the \"Customization\" section, you must restart the application.",
|
||||
"SettingsShowID": "Show peer ID",
|
||||
"SettingsShowID_Hide": "Hide",
|
||||
"SettingsShowMessageSeconds": "Show message seconds",
|
||||
"ContextCopyID": "Copy ID",
|
||||
"IDCopiedToast": "ID copied to clipboard.",
|
||||
"DrawerGhostModeToggle": "Ghost Mode"
|
||||
|
|
|
@ -38,7 +38,8 @@ data += '''
|
|||
'''
|
||||
|
||||
for k, v in strings.items():
|
||||
data += f'"{k}" = "{v}";\n'
|
||||
escaped = v.replace('"', '\\"')
|
||||
data += f'"{k}" = "{escaped}";\n'
|
||||
|
||||
with open(os.path.realpath('./Telegram/Resources/langs/lang.strings'), 'w', encoding='utf-8') as f:
|
||||
f.write(data)
|
||||
|
|
Loading…
Add table
Reference in a new issue