• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 #include "adapter/preview/entrance/clipboard/clipboard_impl.h"
17 
18 #include "util/ClipboardHelper.h"
19 
20 #include "frameworks/base/utils/utils.h"
21 
22 namespace OHOS::Ace::Platform {
23 
AddPixelMapRecord(const RefPtr<PasteDataMix> & pasteData,const RefPtr<PixelMap> & pixmap)24 void ClipboardImpl::AddPixelMapRecord(const RefPtr<PasteDataMix>& pasteData, const RefPtr<PixelMap>& pixmap) {}
AddImageRecord(const RefPtr<PasteDataMix> & pasteData,const std::string & uri)25 void ClipboardImpl::AddImageRecord(const RefPtr<PasteDataMix>& pasteData, const std::string& uri) {}
AddTextRecord(const RefPtr<PasteDataMix> & pasteData,const std::string & selectedStr)26 void ClipboardImpl::AddTextRecord(const RefPtr<PasteDataMix>& pasteData, const std::string& selectedStr) {}
SetData(const RefPtr<PasteDataMix> & pasteData,CopyOptions copyOption)27 void ClipboardImpl::SetData(const RefPtr<PasteDataMix>& pasteData, CopyOptions copyOption) {}
GetData(const std::function<void (const std::string &,bool isLastRecord)> & textCallback,const std::function<void (const RefPtr<PixelMap> &,bool isLastRecord)> & pixelMapCallback,const std::function<void (const std::string &,bool isLastRecord)> & urlCallback,bool syncMode)28 void ClipboardImpl::GetData(const std::function<void(const std::string&, bool isLastRecord)>& textCallback,
29     const std::function<void(const RefPtr<PixelMap>&, bool isLastRecord)>& pixelMapCallback,
30     const std::function<void(const std::string&, bool isLastRecord)>& urlCallback, bool syncMode)
31 {}
32 
CreatePasteDataMix()33 RefPtr<PasteDataMix> ClipboardImpl::CreatePasteDataMix()
34 {
35     return AceType::MakeRefPtr<PasteDataMix>();
36 }
37 
SetData(const std::string & data,CopyOptions copyOption,bool isDragData)38 void ClipboardImpl::SetData(const std::string& data, CopyOptions copyOption, bool isDragData)
39 {
40     CHECK_NULL_VOID(taskExecutor_);
41     taskExecutor_->PostTask([data] { ClipboardHelper::SetClipboardData(data); },
42         TaskExecutor::TaskType::UI);
43 }
44 
GetData(const std::function<void (const std::string &)> & callback,bool syncMode)45 void ClipboardImpl::GetData(const std::function<void(const std::string&)>& callback, bool syncMode)
46 {
47     if (!taskExecutor_ || !callback) {
48         LOGE("Failed to get the data from clipboard.");
49         return;
50     }
51     taskExecutor_->PostTask([callback] { callback(ClipboardHelper::GetClipboardData()); },
52         TaskExecutor::TaskType::UI);
53 }
54 
HasData(const std::function<void (bool hasData)> & callback)55 void ClipboardImpl::HasData(const std::function<void(bool hasData)>& callback)
56 {
57     if (!taskExecutor_ || !callback) {
58         LOGE("Failed to know if data exists from clipboard.");
59         return;
60     }
61     taskExecutor_->PostTask([callback] { callback(!ClipboardHelper::GetClipboardData().empty()); },
62         TaskExecutor::TaskType::UI);
63 }
64 
SetPixelMapData(const RefPtr<PixelMap> & pixmap,CopyOptions copyOption)65 void ClipboardImpl::SetPixelMapData(const RefPtr<PixelMap>& pixmap, CopyOptions copyOption)
66 {
67     if (!taskExecutor_ || !callbackSetClipboardPixmapData_) {
68         LOGE("Failed to set the pixmap data to clipboard.");
69         return;
70     }
71     taskExecutor_->PostTask([callbackSetClipboardPixmapData = callbackSetClipboardPixmapData_,
72                                 pixmap] { callbackSetClipboardPixmapData(pixmap); },
73         TaskExecutor::TaskType::UI);
74 }
75 
GetPixelMapData(const std::function<void (const RefPtr<PixelMap> &)> & callback,bool syncMode)76 void ClipboardImpl::GetPixelMapData(const std::function<void(const RefPtr<PixelMap>&)>& callback, bool syncMode)
77 {
78     if (!taskExecutor_ || !callbackGetClipboardPixmapData_ || !callback) {
79         LOGE("Failed to get the pixmap data from clipboard.");
80         return;
81     }
82     taskExecutor_->PostTask([callbackGetClipboardPixmapData = callbackGetClipboardPixmapData_,
83                                 callback] { callback(callbackGetClipboardPixmapData()); },
84         TaskExecutor::TaskType::UI);
85 }
86 
Clear()87 void ClipboardImpl::Clear() {}
88 
RegisterCallbackSetClipboardPixmapData(CallbackSetClipboardPixmapData callback)89 void ClipboardImpl::RegisterCallbackSetClipboardPixmapData(CallbackSetClipboardPixmapData callback)
90 {
91     callbackSetClipboardPixmapData_ = callback;
92 }
93 
RegisterCallbackGetClipboardPixmapData(CallbackGetClipboardPixmapData callback)94 void ClipboardImpl::RegisterCallbackGetClipboardPixmapData(CallbackGetClipboardPixmapData callback)
95 {
96     callbackGetClipboardPixmapData_ = callback;
97 }
98 } // namespace OHOS::Ace::Platform
99