1 /* 2 * Copyright (c) 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 SERVICES_EDM_PLUGIN_INCLUDE_SET_WATERMARK_IMAGE_PLUGIN_H 17 #define SERVICES_EDM_PLUGIN_INCLUDE_SET_WATERMARK_IMAGE_PLUGIN_H 18 19 #include "app_mgr_interface.h" 20 #include "iplugin.h" 21 #include "pixel_map.h" 22 #include "watermark_image_type.h" 23 #include "watermark_param.h" 24 25 namespace OHOS { 26 namespace EDM { 27 class SetWatermarkImagePlugin : public IPlugin { 28 public: 29 SetWatermarkImagePlugin(); 30 31 ErrCode OnHandlePolicy(std::uint32_t funcCode, MessageParcel &data, MessageParcel &reply, 32 HandlePolicyData &policyData, int32_t userId) override; 33 OnHandlePolicyDone(std::uint32_t funcCode,const std::string & adminName,bool isGlobalChanged,int32_t userId)34 void OnHandlePolicyDone(std::uint32_t funcCode, const std::string &adminName, bool isGlobalChanged, 35 int32_t userId) override{}; 36 37 ErrCode OnAdminRemove(const std::string &adminName, const std::string &policyData, const std::string &mergeData, 38 int32_t userId) override; 39 OnAdminRemoveDone(const std::string & adminName,const std::string & currentJsonData,int32_t userId)40 void OnAdminRemoveDone(const std::string &adminName, const std::string ¤tJsonData, int32_t userId) override{}; 41 OnGetPolicy(std::string & policyData,MessageParcel & data,MessageParcel & reply,int32_t userId)42 ErrCode OnGetPolicy(std::string &policyData, MessageParcel &data, MessageParcel &reply, int32_t userId) override 43 { 44 return ERR_OK; 45 }; 46 47 ErrCode GetOthersMergePolicyData(const std::string &adminName, int32_t userId, 48 std::string &othersMergePolicyData) override; 49 50 void OnOtherServiceStart(int32_t systemAbilityId) override; 51 52 void SetAllWatermarkImage(); 53 void SetProcessWatermarkOnAppStart(const std::string &bundleName, int32_t accountId, int32_t pid, bool enabled); 54 55 private: 56 ErrCode SetPolicy(MessageParcel &data, std::map<std::pair<std::string, int32_t>, WatermarkImageType> ¤tData, 57 std::map<std::pair<std::string, int32_t>, WatermarkImageType> &mergeData); 58 ErrCode CancelWatermarkImage(MessageParcel &data, 59 std::map<std::pair<std::string, int32_t>, WatermarkImageType> ¤tData, 60 std::map<std::pair<std::string, int32_t>, WatermarkImageType> &mergeData); 61 ErrCode SetSingleWatermarkImage(WatermarkParam ¶m, 62 std::map<std::pair<std::string, int32_t>, WatermarkImageType> ¤tData, 63 std::map<std::pair<std::string, int32_t>, WatermarkImageType> &mergeData); 64 bool GetWatermarkParam(WatermarkParam ¶m, MessageParcel &data); 65 bool SetWatermarkToRS(const std::string &name, std::shared_ptr<Media::PixelMap> watermarkImg); 66 void SetProcessWatermark(const std::string &bundleName, const std::string &fileName, 67 int32_t accountId, bool enabled); 68 bool SetImageUint8(const void *pixels, int32_t size, const std::string &url); 69 std::shared_ptr<Media::PixelMap> GetImageFromUrlUint8(const WatermarkImageType &imageType); 70 std::shared_ptr<Media::PixelMap> CreatePixelMapFromUint8(const uint8_t* data, size_t size, 71 int32_t width, int32_t height); 72 bool SubscribeAppState(); 73 bool UnsubscribeAppState(); 74 sptr<AppExecFwk::IAppMgr> GetAppManager(); 75 }; 76 } // namespace EDM 77 } // namespace OHOS 78 79 #endif // SERVICES_EDM_PLUGIN_INCLUDE_SET_WATERMARK_IMAGE_PLUGIN_H 80