Simplified signature of ResolveQuickDialogLottieIconName.

This commit is contained in:
23rd 2025-03-21 13:43:28 +03:00
parent efc7cc4980
commit 47506d70ed
3 changed files with 32 additions and 36 deletions

View file

@ -1944,13 +1944,14 @@ bool InnerWidget::addQuickActionRipple(
if (!history) {
return false;
}
const auto type = ResolveQuickDialogLabel(history, action, _filterId);
if (type == Dialogs::Ui::QuickDialogActionLabel::Disabled) {
return false;
}
const auto key = history->peer->id.value;
const auto context = ensureQuickAction(key);
auto name = ResolveQuickDialogLottieIconName(
history->peer,
action,
_filterId);
auto name = ResolveQuickDialogLottieIconName(type);
context->icon = Lottie::MakeIcon({
.name = std::move(name),
.sizeOverride = Size(st::dialogsQuickActionSize),
@ -5156,8 +5157,11 @@ void InnerWidget::prepareQuickAction(
Expects(key != 0);
const auto context = ensureQuickAction(key);
const auto peer = session().data().peer(PeerId(key));
auto name = ResolveQuickDialogLottieIconName(peer, action, _filterId);
auto name = ResolveQuickDialogLottieIconName(
ResolveQuickDialogLabel(
session().data().history(PeerId(key)),
action,
_filterId));
context->icon = Lottie::MakeIcon({
.name = std::move(name),
.sizeOverride = Size(st::dialogsQuickActionSize),

View file

@ -95,35 +95,29 @@ void PerformQuickDialogAction(
}
}
QString ResolveQuickDialogLottieIconName(
not_null<PeerData*> peer,
Ui::QuickDialogAction action,
FilterId filterId) {
if (action == Dialogs::Ui::QuickDialogAction::Mute) {
const auto history = peer->owner().history(peer);
const auto isMuted = rpl::variable<bool>(
MuteMenu::ThreadDescriptor(history).isMutedValue()).current();
return isMuted ? u"swipe_unmute"_q : u"swipe_mute"_q;
} else if (action == Dialogs::Ui::QuickDialogAction::Pin) {
const auto history = peer->owner().history(peer);
const auto entry = (Dialogs::Entry*)(history);
return entry->isPinnedDialog(filterId)
? u"swipe_unpin"_q
: u"swipe_pin"_q;
} else if (action == Dialogs::Ui::QuickDialogAction::Read) {
const auto history = peer->owner().history(peer);
return Window::IsUnreadThread(history)
? u"swipe_read"_q
: u"swipe_unread"_q;
} else if (action == Dialogs::Ui::QuickDialogAction::Archive) {
const auto history = peer->owner().history(peer);
return Window::IsArchived(history)
? u"swipe_unarchive"_q
: u"swipe_archive"_q;
} else if (action == Dialogs::Ui::QuickDialogAction::Delete) {
QString ResolveQuickDialogLottieIconName(Ui::QuickDialogActionLabel action) {
switch (action) {
case Ui::QuickDialogActionLabel::Mute:
return u"swipe_mute"_q;
case Ui::QuickDialogActionLabel::Unmute:
return u"swipe_unmute"_q;
case Ui::QuickDialogActionLabel::Pin:
return u"swipe_pin"_q;
case Ui::QuickDialogActionLabel::Unpin:
return u"swipe_unpin"_q;
case Ui::QuickDialogActionLabel::Read:
return u"swipe_read"_q;
case Ui::QuickDialogActionLabel::Unread:
return u"swipe_unread"_q;
case Ui::QuickDialogActionLabel::Archive:
return u"swipe_archive"_q;
case Ui::QuickDialogActionLabel::Unarchive:
return u"swipe_unarchive"_q;
case Ui::QuickDialogActionLabel::Delete:
return u"swipe_delete"_q;
default:
return u"swipe_disabled"_q;
}
return u"swipe_disabled"_q;
}
Ui::QuickDialogActionLabel ResolveQuickDialogLabel(

View file

@ -32,9 +32,7 @@ void PerformQuickDialogAction(
FilterId filterId);
[[nodiscard]] QString ResolveQuickDialogLottieIconName(
not_null<PeerData*> peer,
Ui::QuickDialogAction action,
FilterId filterId);
Ui::QuickDialogActionLabel action);
[[nodiscard]] Ui::QuickDialogActionLabel ResolveQuickDialogLabel(
not_null<History*> history,