1 /*
2  * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef BASE_NOTIFICATION_ANS_STANDARD_INNERKITS_BASE_INCLUDE_ANS_CONST_DEFINE_H
17 #define BASE_NOTIFICATION_ANS_STANDARD_INNERKITS_BASE_INCLUDE_ANS_CONST_DEFINE_H
18 
19 #include <vector>
20 
21 #include "uri.h"
22 
23 #include "notification_constant.h"
24 
25 namespace OHOS {
26 namespace Notification {
27 // Max active notification number
28 constexpr size_t MAX_ACTIVE_NUM = 1000;
29 constexpr uint32_t MAX_ACTIVE_NUM_PERAPP = 100;
30 constexpr uint32_t MAX_CREATE_NUM_PERSECOND = 15;
31 constexpr uint32_t MAX_UPDATE_NUM_PERSECOND = 30;
32 constexpr uint32_t MAX_CREATE_NUM_PERSECOND_PERAPP = 10;
33 constexpr uint32_t MAX_UPDATE_NUM_PERSECOND_PERAPP = 20;
34 constexpr std::chrono::seconds SINGLE_APP_FLOW_CONTRL_EXPIRE_TIME = std::chrono::seconds(1);
35 constexpr size_t MAX_SLOT_NUM = 5;
36 constexpr uint32_t MAX_ICON_SIZE = 192 * 1024;
37 constexpr uint32_t MAX_PICTURE_SIZE = 2 * 1024 * 1024;
38 constexpr uint32_t MAX_LIVE_VIEW_ICON_NUM = 6;
39 constexpr bool SUPPORT_DO_NOT_DISTRUB = true;
40 constexpr uint32_t SYSTEM_SERVICE_UID = 1000;
41 constexpr uint32_t MAX_CONVERSATIONAL_NUM = 10000;
42 constexpr uint32_t MAX_PERMIT_MIME_TYPE_NUM = 10000;
43 constexpr uint32_t MAX_ACTION_BUTTON_NUM = 3;
44 constexpr int32_t MAX_PARCELABLE_VECTOR_NUM = 10000;
45 constexpr int32_t MAX_STATUS_VECTOR_NUM = 1000;
46 constexpr uint32_t MAX_CANCELED_PARCELABLE_VECTOR_NUM = 200;
47 
48 constexpr int32_t DEFAULT_UID = 0;
49 constexpr int32_t INVALID_PROFILE_ID = -1;
50 constexpr int32_t SUBSCRIBE_USER_INIT = -1;
51 constexpr int32_t SUBSCRIBE_USER_ALL = -2;
52 constexpr int32_t DEFAULT_USER_ID = 100;
53 constexpr int32_t SUBSCRIBE_USER_SYSTEM_BEGIN = 0;
54 constexpr int32_t SUBSCRIBE_USER_SYSTEM_END = 99;
55 constexpr int32_t NOTIFICATION_MIN_COUNT = 0;
56 constexpr int32_t NOTIFICATION_MAX_COUNT = 1024;
57 constexpr int32_t DO_NOT_DISTURB_PROFILE_MIN_ID = 1;
58 constexpr int32_t DO_NOT_DISTURB_PROFILE_MAX_ID = 10;
59 
60 // Default sound for notification
61 const static Uri DEFAULT_NOTIFICATION_SOUND("file://system/etc/Light.ogg");
62 const static std::vector<int64_t> DEFAULT_NOTIFICATION_VIBRATION = {200};
63 
64 // Default path for template
65 const static std::string DEFAULT_TEMPLATE_PATH("/system/etc/notification_template/external.json");
66 const std::string CURRENT_DEVICE_TYPE = "current";
67 const std::string RING_TRUST_PKG_KEY = "RING_TRUSTLIST_PKG";
68 const std::string DOWNLOAD_TEMPLATE_NAME = "downloadTemplate";
69 
70 #ifdef DISTRIBUTED_NOTIFICATION_SUPPORTED
71 constexpr NotificationConstant::DistributedReminderPolicy DEFAULT_DISTRIBUTED_REMINDER_POLICY =
72     NotificationConstant::DistributedReminderPolicy::DEFAULT;
73 constexpr bool DEFAULT_DISTRIBUTED_ENABLE_IN_APPLICATION_INFO = false;
74 #endif
75 }  // namespace Notification
76 }  // namespace OHOS
77 
78 #endif  // BASE_NOTIFICATION_ANS_STANDARD_INNERKITS_BASE_INCLUDE_ANS_CONST_DEFINE_H
79