add interface RegisterThumbnailDraw UnregisterThumbnailDraw

Signed-off-by: mayunteng_1 <mayunteng@huawei.com>
Change-Id: Ib70d71825d9471032f6804275d3c03922ef738eb
This commit is contained in:
mayunteng_1 2023-02-08 07:25:04 +00:00
parent 3245e082a6
commit 2edff8abe6
8 changed files with 58 additions and 42 deletions

View File

@ -49,9 +49,10 @@ private:
private:
void ReleaseReference();
bool IsSameHandle(napi_env env, napi_value handle, napi_ref ref);
void EmitStartThumbnailDraw(int32_t num);
void EmitNoticeThumbnailDraw(int32_t dragStates);
void EmitEndThumbnailDraw();
void EmitStartThumbnailDraw(int32_t pixmap, int32_t errCode);
void EmitNoticeThumbnailDraw(int32_t dragStates, int32_t errCode);
void EmitEndThumbnailDraw(int32_t errCode);
void EmitUnregisterThumbnailDraw(int32_t errCode);
private:
std::mutex mutex_;

View File

@ -88,18 +88,21 @@ monitorLabel:
}
}
void JsDragManager::EmitStartThumbnailDraw(int32_t pixmap)
void JsDragManager::EmitStartThumbnailDraw(int32_t pixmap, int32_t errCode)
{
(void)pixmap;
(void)errCode;
}
void JsDragManager::EmitNoticeThumbnailDraw(int32_t dragStates)
void JsDragManager::EmitNoticeThumbnailDraw(int32_t dragStates, int32_t errCode)
{
(void)dragStates;
(void)errCode;
}
void JsDragManager::EmitEndThumbnailDraw()
void JsDragManager::EmitEndThumbnailDraw(int32_t errCode)
{
(void)errCode;
}
void JsDragManager::ReleaseReference()
@ -139,19 +142,27 @@ void JsDragManager::RegisterThumbnailDraw(napi_env env, size_t argc, napi_value*
thumbnailDrawCb_[i]->ref = ref;
}
auto startCallback = std::bind(&JsDragManager::EmitStartThumbnailDraw, this,
std::placeholders::_1);
auto noticeCallback = std::bind(&JsDragManager::EmitNoticeThumbnailDraw, this, std::placeholders::_1);
auto endCallback = std::bind(&JsDragManager::EmitEndThumbnailDraw, this);
std::placeholders::_1, std::placeholders::_2);
auto noticeCallback = std::bind(&JsDragManager::EmitNoticeThumbnailDraw,
this, std::placeholders::_1, std::placeholders::_2);
auto endCallback = std::bind(&JsDragManager::EmitEndThumbnailDraw, this, std::placeholders::_1);
if (InteractionMgr->RegisterThumbnailDraw(startCallback, noticeCallback, endCallback) != RET_OK) {
ReleaseReference();
FI_HILOGE("Call register thumbnail draw failed");
}
}
void JsDragManager::EmitUnregisterThumbnailDraw(int32_t errCode)
{
}
void JsDragManager::UnregisterThumbnailDraw(napi_env env)
{
CALL_INFO_TRACE;
InteractionMgr->UnregisterThumbnailDraw();
auto callback = std::bind(&JsDragManager::EmitUnregisterThumbnailDraw, this, std::placeholders::_1);
InteractionMgr->UnregisterThumbnailDraw(callback);
ReleaseReference();
}
void JsDragManager::ResetEnv()

View File

@ -25,9 +25,9 @@ namespace OHOS {
namespace Msdp {
namespace DeviceStatus {
struct ThumbnailDrawCallback {
std::function<void(int32_t)> startDrag;
std::function<void(int32_t)> notice;
std::function<void(void)> endDrag;
std::function<void(int32_t, int32_t)> startCallback;
std::function<void(int32_t, int32_t)> noticeCallback;
std::function<void(int32_t)> endCallback;
};
class DragManagerImpl {
@ -39,9 +39,9 @@ public:
int32_t GetDragTargetPid();
int32_t StartDrag(const DragData &dragData, std::function<void(int32_t&)> callback);
int32_t StopDrag(int32_t result);
int32_t RegisterThumbnailDraw(std::function<void(int32_t)> startDrag,
std::function<void(int32_t)> notice, std::function<void(void)> endDrag);
int32_t UnregisterThumbnailDraw();
int32_t RegisterThumbnailDraw(std::function<void(int32_t, int32_t)> startCallback,
std::function<void(int32_t, int32_t)> noticeCallback, std::function<void(int32_t)> endCallback);
int32_t UnregisterThumbnailDraw(std::function<void(int32_t)> callback);
private:
std::mutex mtx_;
std::function<void(int32_t&)> stopCallback_;

View File

@ -45,9 +45,9 @@ public:
int32_t StartDrag(const DragData &dragData, std::function<void(int32_t&)> callback);
int32_t StopDrag(int32_t result);
int32_t GetDragTargetPid();
int32_t RegisterThumbnailDraw(std::function<void(int32_t)> startDrag,
std::function<void(int32_t)> notice, std::function<void(void)> endDrag);
int32_t UnregisterThumbnailDraw();
int32_t RegisterThumbnailDraw(std::function<void(int32_t, int32_t)> startCallback,
std::function<void(int32_t, int32_t)> noticeCallback, std::function<void(int32_t)> endCallback);
int32_t UnregisterThumbnailDraw(std::function<void(int32_t)> callback);
private:
void InitMsgHandler();

View File

@ -70,8 +70,8 @@ int32_t DragManagerImpl::StopDrag(int32_t result)
return DeviceStatusClient::GetInstance().StopDrag(result);
}
int32_t DragManagerImpl::RegisterThumbnailDraw(std::function<void(int32_t)> startDrag,
std::function<void(int32_t)> notice, std::function<void(void)> endDrag)
int32_t DragManagerImpl::RegisterThumbnailDraw(std::function<void(int32_t, int32_t)> startCallback,
std::function<void(int32_t, int32_t)> noticeCallback, std::function<void(int32_t)> endCallback)
{
CALL_DEBUG_ENTER;
auto ret = DeviceStatusClient::GetInstance().RegisterThumbnailDraw();
@ -80,28 +80,32 @@ int32_t DragManagerImpl::RegisterThumbnailDraw(std::function<void(int32_t)> star
return ret;
}
hasRegisterThumbnailDraw_ = true;
thumbnailDrawCallback_.startDrag = startDrag;
thumbnailDrawCallback_.notice = notice;
thumbnailDrawCallback_.endDrag = endDrag;
thumbnailDrawCallback_.startCallback = startCallback;
thumbnailDrawCallback_.noticeCallback = noticeCallback;
thumbnailDrawCallback_.endCallback = endCallback;
return ret;
}
int32_t DragManagerImpl::UnregisterThumbnailDraw()
int32_t DragManagerImpl::UnregisterThumbnailDraw(std::function<void(int32_t)> callback)
{
CALL_DEBUG_ENTER;
int32_t ret;
if (!hasRegisterThumbnailDraw_) {
FI_HILOGE("Have not registered thumbnail draw");
ret = RET_ERR;
callback(ret);
return RET_ERR;
}
auto ret = DeviceStatusClient::GetInstance().UnregisterThumbnailDraw();
ret = DeviceStatusClient::GetInstance().UnregisterThumbnailDraw();
if (ret != RET_OK) {
FI_HILOGE("Unregister thumbnail draw failed");
return ret;
}
hasRegisterThumbnailDraw_ = false;
thumbnailDrawCallback_.startDrag = nullptr;
thumbnailDrawCallback_.notice = nullptr;
thumbnailDrawCallback_.endDrag = nullptr;
thumbnailDrawCallback_.startCallback = nullptr;
thumbnailDrawCallback_.noticeCallback = nullptr;
thumbnailDrawCallback_.endCallback = nullptr;
callback(ret);
return ret;
}

View File

@ -85,15 +85,15 @@ int32_t InteractionManager::StopDrag(int32_t result)
return InteractionMgrImpl.StopDrag(result);
}
int32_t InteractionManager::RegisterThumbnailDraw(std::function<void(int32_t)> startDrag,
std::function<void(int32_t)> notice, std::function<void(void)> endDrag)
int32_t InteractionManager::RegisterThumbnailDraw(std::function<void(int32_t, int32_t)> startCallback,
std::function<void(int32_t, int32_t)> noticeCallback, std::function<void(int32_t)> endCallback)
{
return InteractionMgrImpl.RegisterThumbnailDraw(startDrag, notice, endDrag);
return InteractionMgrImpl.RegisterThumbnailDraw(startCallback, noticeCallback, endCallback);
}
int32_t InteractionManager::UnregisterThumbnailDraw()
int32_t InteractionManager::UnregisterThumbnailDraw(std::function<void(int32_t)> callback)
{
return InteractionMgrImpl.UnregisterThumbnailDraw();
return InteractionMgrImpl.UnregisterThumbnailDraw(callback);
}
int32_t InteractionManager::GetDragTargetPid()

View File

@ -211,15 +211,15 @@ int32_t InteractionManagerImpl::GetDragTargetPid()
return dragManagerImpl_.GetDragTargetPid();
}
int32_t InteractionManagerImpl::RegisterThumbnailDraw(std::function<void(int32_t)> startDrag,
std::function<void(int32_t)> notice, std::function<void(void)> endDrag)
int32_t InteractionManagerImpl::RegisterThumbnailDraw(std::function<void(int32_t, int32_t)> startCallback,
std::function<void(int32_t, int32_t)> noticeCallback, std::function<void(int32_t)> endCallback)
{
return dragManagerImpl_.RegisterThumbnailDraw(startDrag, notice, endDrag);
return dragManagerImpl_.RegisterThumbnailDraw(startCallback, noticeCallback, endCallback);
}
int32_t InteractionManagerImpl::UnregisterThumbnailDraw()
int32_t InteractionManagerImpl::UnregisterThumbnailDraw(std::function<void(int32_t)> callback)
{
return dragManagerImpl_.UnregisterThumbnailDraw();
return dragManagerImpl_.UnregisterThumbnailDraw(callback);
}
} // namespace DeviceStatus
} // namespace Msdp

View File

@ -135,15 +135,15 @@ public:
* @return 0
* @since 10
*/
int32_t RegisterThumbnailDraw(std::function<void(int32_t)> startDrag,
std::function<void(int32_t)> notice, std::function<void(void)> endDrag);
int32_t RegisterThumbnailDraw(std::function<void(int32_t, int32_t)> startCallback,
std::function<void(int32_t, int32_t)> noticeCallback, std::function<void(int32_t)> endCallback);
/**
* @brief
* @return 0
* @since 10
*/
int32_t UnregisterThumbnailDraw();
int32_t UnregisterThumbnailDraw(std::function<void(int32_t)> callback);
private:
InteractionManager() = default;