fcm_service/domain/android_config/
mod.rs1mod android_notification;
2mod light_settings;
3mod notification_priority;
4mod proxy;
5mod visibility;
6
7use serde::{Deserialize, Serialize};
8
9pub use self::{
10 android_notification::AndroidNotification,
11 light_settings::{Color, LightSettings},
12 notification_priority::NotificationPriority,
13 proxy::Proxy,
14 visibility::Visibility,
15};
16use crate::FcmOptions;
17#[derive(Serialize, Deserialize, Debug, Clone)]
18#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
19pub enum Priority {
20 Normal,
21 High,
22}
23
24#[derive(Clone, Debug, Serialize, Deserialize, Default)]
26pub struct AndroidConfig {
27 collapse_key: Option<String>,
28 priority: Option<Priority>,
29 ttl: Option<String>,
30 restricted_package_name: Option<String>,
31 notification: Option<AndroidNotification>,
32 fcm_options: Option<FcmOptions>,
33 direct_boot_ok: Option<bool>,
34}
35
36impl AndroidConfig {
37 #[must_use]
38 pub fn new() -> Self {
39 Self {
40 ..Default::default()
41 }
42 }
43
44 #[must_use]
45 pub fn collapse_key(&self) -> Option<&String> {
46 self.collapse_key.as_ref()
47 }
48
49 #[must_use]
50 pub fn priority(&self) -> Option<&Priority> {
51 self.priority.as_ref()
52 }
53
54 #[must_use]
55 pub fn ttl(&self) -> Option<&String> {
56 self.ttl.as_ref()
57 }
58
59 #[must_use]
60 pub fn restricted_package_name(&self) -> Option<&String> {
61 self.restricted_package_name.as_ref()
62 }
63
64 #[must_use]
65 pub fn notification(&self) -> Option<&AndroidNotification> {
66 self.notification.as_ref()
67 }
68 #[must_use]
69 pub fn fcm_option(&self) -> Option<&FcmOptions> {
70 self.fcm_options.as_ref()
71 }
72
73 #[must_use]
74 pub fn direct_boot_ok(&self) -> Option<bool> {
75 self.direct_boot_ok
76 }
77
78 pub fn set_restricted_package_name(&mut self, restricted_package_name: Option<String>) {
79 self.restricted_package_name = restricted_package_name;
80 }
81
82 pub fn set_notification(&mut self, notification: Option<AndroidNotification>) {
83 self.notification = notification;
84 }
85
86 pub fn set_fcm_option(&mut self, fcm_option: Option<FcmOptions>) {
87 self.fcm_options = fcm_option;
88 }
89
90 pub fn set_direct_boot_ok(&mut self, direct_boot_ok: Option<bool>) {
91 self.direct_boot_ok = direct_boot_ok;
92 }
93
94 pub fn set_collapse_key(&mut self, collapse_key: Option<String>) {
95 self.collapse_key = collapse_key;
96 }
97
98 pub fn set_priority(&mut self, priority: Option<Priority>) {
99 self.priority = priority;
100 }
101
102 pub fn set_ttl(&mut self, ttl: Option<String>) {
103 self.ttl = ttl;
104 }
105}