• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2023 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_DISTRIBUTED_NOTIFICATION_BUNDLE_ICON_BOX_H
17 #define BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_BUNDLE_ICON_BOX_H
18 
19 #include <string>
20 #include "tlv_box.h"
21 #include "box_base.h"
22 
23 namespace OHOS {
24 namespace Notification {
25 
26 enum IconSyncType {
27     REPORT_SAVED_ICON = 0,
28     UPDATE_BUNDLE_ICON,
29     REQUEST_BUNDLE_ICON,
30     REMOVE_BUNDLE_ICON,
31 };
32 
33 class BundleIconBox : public BoxBase {
34 public:
35     const static int32_t MAX_ICON_NUM = 10;
36     const static int32_t MAX_BUNDLE_NUM = 20;
37 
38     BundleIconBox();
39     BundleIconBox(std::shared_ptr<TlvBox> box);
40     bool SetMessageType(int32_t messageType);
41     bool SetIconSyncType(int32_t type);
42     bool SetDataLength(int32_t length);
43     bool SetBundleList(const std::vector<std::string>& bundleList);
44     bool SetBundlesIcon(const std::unordered_map<std::string, std::string>& bundles);
45     bool SetLocalDeviceId(const std::string& deviceId);
46     bool SetBundlesInfo(const std::vector<std::pair<std::string, std::string>>& bundles);
47 
48     bool GetIconSyncType(int32_t& type);
49     bool GetDataLength(int32_t& length);
50     bool GetBundleList(std::vector<std::string>& bundleList);
51     bool GetBundlesIcon(std::unordered_map<std::string, std::string>& bundles);
52     bool GetLocalDeviceId(std::string& deviceId) const;
53     bool GetBundlesInfo(std::vector<std::string>& bundles, std::vector<std::string>& labels);
54 };
55 }  // namespace Notification
56 }  // namespace OHOS
57 #endif // BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_BUNDLE_ICON_BOX_H
58