aboutsummaryrefslogtreecommitdiffhomepage
path: root/td/telegram/DialogFilterManager.h
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2023-03-27 11:50:40 +0300
committerlevlam <levlam@telegram.org>2023-03-27 11:50:40 +0300
commit0ff733edadf53776e1e1349d7eb153ffd0444831 (patch)
treefe8a3e71ab8d5682bb9ea0f6dd51b3bf9e98801d /td/telegram/DialogFilterManager.h
parent800258fa573d7e77bb8bfb74eec571bb139afd8c (diff)
Move recommended filters to DialogFilterManager.
Diffstat (limited to 'td/telegram/DialogFilterManager.h')
-rw-r--r--td/telegram/DialogFilterManager.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/td/telegram/DialogFilterManager.h b/td/telegram/DialogFilterManager.h
index 00ac26cf3..5d14de9d8 100644
--- a/td/telegram/DialogFilterManager.h
+++ b/td/telegram/DialogFilterManager.h
@@ -6,21 +6,45 @@
//
#pragma once
+#include "td/telegram/td_api.h"
+#include "td/telegram/telegram_api.h"
+
#include "td/actor/actor.h"
#include "td/utils/common.h"
+#include "td/utils/Promise.h"
+#include "td/utils/Status.h"
namespace td {
+class DialogFilter;
class Td;
class DialogFilterManager final : public Actor {
public:
DialogFilterManager(Td *td, ActorShared<> parent);
+ bool is_recommended_dialog_filter(const DialogFilter *dialog_filter);
+
+ void get_recommended_dialog_filters(Promise<td_api::object_ptr<td_api::recommendedChatFilters>> &&promise);
+
private:
void tear_down() final;
+ struct RecommendedDialogFilter {
+ unique_ptr<DialogFilter> dialog_filter;
+ string description;
+ };
+
+ void on_get_recommended_dialog_filters(
+ Result<vector<telegram_api::object_ptr<telegram_api::dialogFilterSuggested>>> result,
+ Promise<td_api::object_ptr<td_api::recommendedChatFilters>> &&promise);
+
+ void on_load_recommended_dialog_filters(Result<Unit> &&result, vector<RecommendedDialogFilter> &&filters,
+ Promise<td_api::object_ptr<td_api::recommendedChatFilters>> &&promise);
+
+ vector<RecommendedDialogFilter> recommended_dialog_filters_;
+
Td *td_;
ActorShared<> parent_;
};