mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-05-30 03:33:55 +02:00
Added toasts to quick dialog actions.
This commit is contained in:
parent
74b188fa46
commit
63578affa4
4 changed files with 53 additions and 7 deletions
|
@ -1195,6 +1195,15 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
"lng_settings_quick_dialog_action_delete" = "Delete";
|
"lng_settings_quick_dialog_action_delete" = "Delete";
|
||||||
"lng_settings_quick_dialog_action_disabled" = "Change folder";
|
"lng_settings_quick_dialog_action_disabled" = "Change folder";
|
||||||
|
|
||||||
|
"lng_quick_dialog_action_toast_mute_success" = "Notifications for this chat have been muted.";
|
||||||
|
"lng_quick_dialog_action_toast_unmute_success" = "Notifications enabled for this chat.";
|
||||||
|
"lng_quick_dialog_action_toast_pin_success" = "The chat has been pinned.";
|
||||||
|
"lng_quick_dialog_action_toast_unpin_success" = "The chat has been unpinned.";
|
||||||
|
"lng_quick_dialog_action_toast_read_success" = "The chat has been marked as read.";
|
||||||
|
"lng_quick_dialog_action_toast_unread_success" = "The chat has been marked as unread.";
|
||||||
|
"lng_quick_dialog_action_toast_archive_success" = "The chat has been archived.";
|
||||||
|
"lng_quick_dialog_action_toast_unarchive_success" = "The chat has been unarchived.";
|
||||||
|
|
||||||
"lng_settings_generic_subscribe" = "Subscribe to {link} to use this setting.";
|
"lng_settings_generic_subscribe" = "Subscribe to {link} to use this setting.";
|
||||||
"lng_settings_generic_subscribe_link" = "Telegram Premium";
|
"lng_settings_generic_subscribe_link" = "Telegram Premium";
|
||||||
|
|
||||||
|
|
|
@ -76,19 +76,41 @@ void PerformQuickDialogAction(
|
||||||
MuteMenu::ThreadDescriptor(history).updateMutePeriod(isMuted
|
MuteMenu::ThreadDescriptor(history).updateMutePeriod(isMuted
|
||||||
? 0
|
? 0
|
||||||
: std::numeric_limits<TimeId>::max());
|
: std::numeric_limits<TimeId>::max());
|
||||||
|
controller->showToast(isMuted
|
||||||
|
? tr::lng_quick_dialog_action_toast_unmute_success(tr::now)
|
||||||
|
: tr::lng_quick_dialog_action_toast_mute_success(tr::now));
|
||||||
} else if (action == Dialogs::Ui::QuickDialogAction::Pin) {
|
} else if (action == Dialogs::Ui::QuickDialogAction::Pin) {
|
||||||
const auto entry = (Dialogs::Entry*)(history);
|
const auto entry = (Dialogs::Entry*)(history);
|
||||||
Window::TogglePinnedThread(controller, entry, filterId);
|
const auto isPinned = entry->isPinnedDialog(filterId);
|
||||||
|
const auto onToggled = isPinned
|
||||||
|
? Fn<void()>(nullptr)
|
||||||
|
: [=] {
|
||||||
|
controller->showToast(
|
||||||
|
tr::lng_quick_dialog_action_toast_pin_success(tr::now));
|
||||||
|
};
|
||||||
|
Window::TogglePinnedThread(controller, entry, filterId, onToggled);
|
||||||
|
if (isPinned) {
|
||||||
|
controller->showToast(
|
||||||
|
tr::lng_quick_dialog_action_toast_unpin_success(tr::now));
|
||||||
|
}
|
||||||
} else if (action == Dialogs::Ui::QuickDialogAction::Read) {
|
} else if (action == Dialogs::Ui::QuickDialogAction::Read) {
|
||||||
if (Window::IsUnreadThread(history)) {
|
if (Window::IsUnreadThread(history)) {
|
||||||
Window::MarkAsReadThread(history);
|
Window::MarkAsReadThread(history);
|
||||||
|
controller->showToast(
|
||||||
|
tr::lng_quick_dialog_action_toast_read_success(tr::now));
|
||||||
} else if (history) {
|
} else if (history) {
|
||||||
peer->owner().histories().changeDialogUnreadMark(history, true);
|
peer->owner().histories().changeDialogUnreadMark(history, true);
|
||||||
|
controller->showToast(
|
||||||
|
tr::lng_quick_dialog_action_toast_unread_success(tr::now));
|
||||||
}
|
}
|
||||||
} else if (action == Dialogs::Ui::QuickDialogAction::Archive) {
|
} else if (action == Dialogs::Ui::QuickDialogAction::Archive) {
|
||||||
|
const auto isArchived = Window::IsArchived(history);
|
||||||
|
controller->showToast(isArchived
|
||||||
|
? tr::lng_quick_dialog_action_toast_unarchive_success(tr::now)
|
||||||
|
: tr::lng_quick_dialog_action_toast_archive_success(tr::now));
|
||||||
history->session().api().toggleHistoryArchived(
|
history->session().api().toggleHistoryArchived(
|
||||||
history,
|
history,
|
||||||
!Window::IsArchived(history),
|
!isArchived,
|
||||||
[] {});
|
[] {});
|
||||||
} else if (action == Dialogs::Ui::QuickDialogAction::Delete) {
|
} else if (action == Dialogs::Ui::QuickDialogAction::Delete) {
|
||||||
Window::DeleteAndLeaveHandler(controller, peer)();
|
Window::DeleteAndLeaveHandler(controller, peer)();
|
||||||
|
|
|
@ -390,7 +390,8 @@ bool PinnedLimitReached(
|
||||||
|
|
||||||
void TogglePinnedThread(
|
void TogglePinnedThread(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Dialogs::Entry*> entry) {
|
not_null<Dialogs::Entry*> entry,
|
||||||
|
Fn<void()> onToggled) {
|
||||||
if (!entry->folderKnown()) {
|
if (!entry->folderKnown()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -410,6 +411,9 @@ void TogglePinnedThread(
|
||||||
MTP_inputDialogPeer(history->peer->input)
|
MTP_inputDialogPeer(history->peer->input)
|
||||||
)).done([=] {
|
)).done([=] {
|
||||||
owner->notifyPinnedDialogsOrderUpdated();
|
owner->notifyPinnedDialogsOrderUpdated();
|
||||||
|
if (onToggled) {
|
||||||
|
onToggled();
|
||||||
|
}
|
||||||
}).send();
|
}).send();
|
||||||
if (isPinned) {
|
if (isPinned) {
|
||||||
controller->content()->dialogsToUp();
|
controller->content()->dialogsToUp();
|
||||||
|
@ -421,6 +425,9 @@ void TogglePinnedThread(
|
||||||
MTP_bool(isPinned)
|
MTP_bool(isPinned)
|
||||||
)).done([=](const MTPUpdates &result) {
|
)).done([=](const MTPUpdates &result) {
|
||||||
owner->session().api().applyUpdates(result);
|
owner->session().api().applyUpdates(result);
|
||||||
|
if (onToggled) {
|
||||||
|
onToggled();
|
||||||
|
}
|
||||||
}).send();
|
}).send();
|
||||||
} else if (const auto sublist = entry->asSublist()) {
|
} else if (const auto sublist = entry->asSublist()) {
|
||||||
const auto flags = isPinned
|
const auto flags = isPinned
|
||||||
|
@ -431,6 +438,9 @@ void TogglePinnedThread(
|
||||||
MTP_inputDialogPeer(sublist->peer()->input)
|
MTP_inputDialogPeer(sublist->peer()->input)
|
||||||
)).done([=] {
|
)).done([=] {
|
||||||
owner->notifyPinnedDialogsOrderUpdated();
|
owner->notifyPinnedDialogsOrderUpdated();
|
||||||
|
if (onToggled) {
|
||||||
|
onToggled();
|
||||||
|
}
|
||||||
}).send();
|
}).send();
|
||||||
//if (isPinned) {
|
//if (isPinned) {
|
||||||
// controller->content()->dialogsToUp();
|
// controller->content()->dialogsToUp();
|
||||||
|
@ -499,7 +509,7 @@ void Filler::addTogglePin() {
|
||||||
const auto weak = base::make_weak(entry);
|
const auto weak = base::make_weak(entry);
|
||||||
const auto pinToggle = [=] {
|
const auto pinToggle = [=] {
|
||||||
if (const auto strong = weak.get()) {
|
if (const auto strong = weak.get()) {
|
||||||
TogglePinnedThread(controller, strong, filterId);
|
TogglePinnedThread(controller, strong, filterId, nullptr);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
_addAction(
|
_addAction(
|
||||||
|
@ -3310,9 +3320,10 @@ void AddSeparatorAndShiftUp(const PeerMenuCallback &addAction) {
|
||||||
void TogglePinnedThread(
|
void TogglePinnedThread(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Dialogs::Entry*> entry,
|
not_null<Dialogs::Entry*> entry,
|
||||||
FilterId filterId) {
|
FilterId filterId,
|
||||||
|
Fn<void()> onToggled) {
|
||||||
if (!filterId) {
|
if (!filterId) {
|
||||||
return TogglePinnedThread(controller, entry);
|
return TogglePinnedThread(controller, entry, onToggled);
|
||||||
}
|
}
|
||||||
const auto history = entry->asHistory();
|
const auto history = entry->asHistory();
|
||||||
if (!history) {
|
if (!history) {
|
||||||
|
@ -3338,6 +3349,9 @@ void TogglePinnedThread(
|
||||||
Api::SaveNewFilterPinned(&owner->session(), filterId);
|
Api::SaveNewFilterPinned(&owner->session(), filterId);
|
||||||
if (isPinned) {
|
if (isPinned) {
|
||||||
controller->content()->dialogsToUp();
|
controller->content()->dialogsToUp();
|
||||||
|
if (onToggled) {
|
||||||
|
onToggled();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -202,7 +202,8 @@ void ToggleMessagePinned(
|
||||||
void TogglePinnedThread(
|
void TogglePinnedThread(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Dialogs::Entry*> entry,
|
not_null<Dialogs::Entry*> entry,
|
||||||
FilterId filterId);
|
FilterId filterId,
|
||||||
|
Fn<void()> onToggled);
|
||||||
void HidePinnedBar(
|
void HidePinnedBar(
|
||||||
not_null<Window::SessionNavigation*> navigation,
|
not_null<Window::SessionNavigation*> navigation,
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
|
|
Loading…
Add table
Reference in a new issue