123b3eb3cSopenharmony_ci/*
223b3eb3cSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
323b3eb3cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
423b3eb3cSopenharmony_ci * you may not use this file except in compliance with the License.
523b3eb3cSopenharmony_ci * You may obtain a copy of the License at
623b3eb3cSopenharmony_ci *
723b3eb3cSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
823b3eb3cSopenharmony_ci *
923b3eb3cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1023b3eb3cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1123b3eb3cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1223b3eb3cSopenharmony_ci * See the License for the specific language governing permissions and
1323b3eb3cSopenharmony_ci * limitations under the License.
1423b3eb3cSopenharmony_ci */
1523b3eb3cSopenharmony_ci
1623b3eb3cSopenharmony_ci#include "interaction_impl.h"
1723b3eb3cSopenharmony_ci
1823b3eb3cSopenharmony_ci#include "interaction_manager.h"
1923b3eb3cSopenharmony_ci#include "start_drag_listener_impl.h"
2023b3eb3cSopenharmony_ci
2123b3eb3cSopenharmony_ciusing namespace OHOS::Msdp::DeviceStatus;
2223b3eb3cSopenharmony_ci
2323b3eb3cSopenharmony_cinamespace OHOS::Ace {
2423b3eb3cSopenharmony_ci    Msdp::DeviceStatus::DragCursorStyle TranslateDragCursorStyle(OHOS::Ace::DragCursorStyleCore style);
2523b3eb3cSopenharmony_ci    Msdp::DeviceStatus::DragResult TranslateDragResult(DragRet dragResult);
2623b3eb3cSopenharmony_ci    Msdp::DeviceStatus::PreviewStyle TranslatePreviewStyle(const OHOS::Ace::PreviewStyle& previewStyle);
2723b3eb3cSopenharmony_ci    DragRet TranslateDragResult(Msdp::DeviceStatus::DragResult dragResult);
2823b3eb3cSopenharmony_ci    Msdp::DeviceStatus::DragBehavior TranslateDragBehavior(OHOS::Ace::DragBehavior dragBehavior);
2923b3eb3cSopenharmony_ci    OHOS::Ace::DragBehavior TranslateDragBehavior(Msdp::DeviceStatus::DragBehavior dragBehavior);
3023b3eb3cSopenharmony_ci
3123b3eb3cSopenharmony_ciInteractionInterface* InteractionInterface::GetInstance()
3223b3eb3cSopenharmony_ci{
3323b3eb3cSopenharmony_ci    static InteractionImpl instance;
3423b3eb3cSopenharmony_ci    return &instance;
3523b3eb3cSopenharmony_ci}
3623b3eb3cSopenharmony_ci
3723b3eb3cSopenharmony_ciint32_t InteractionImpl::UpdateShadowPic(const OHOS::Ace::ShadowInfoCore& shadowInfo)
3823b3eb3cSopenharmony_ci{
3923b3eb3cSopenharmony_ci    auto pixelMap = shadowInfo.pixelMap;
4023b3eb3cSopenharmony_ci    if (!pixelMap) {
4123b3eb3cSopenharmony_ci        Msdp::DeviceStatus::ShadowInfo msdpShadowInfo { nullptr, shadowInfo.x, shadowInfo.y };
4223b3eb3cSopenharmony_ci        return InteractionManager::GetInstance()->UpdateShadowPic(msdpShadowInfo);
4323b3eb3cSopenharmony_ci    }
4423b3eb3cSopenharmony_ci    Msdp::DeviceStatus::ShadowInfo msdpShadowInfo { shadowInfo.pixelMap->GetPixelMapSharedPtr(), shadowInfo.x,
4523b3eb3cSopenharmony_ci        shadowInfo.y };
4623b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->UpdateShadowPic(msdpShadowInfo);
4723b3eb3cSopenharmony_ci}
4823b3eb3cSopenharmony_ci
4923b3eb3cSopenharmony_ciint32_t InteractionImpl::SetDragWindowVisible(bool visible)
5023b3eb3cSopenharmony_ci{
5123b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->SetDragWindowVisible(visible);
5223b3eb3cSopenharmony_ci}
5323b3eb3cSopenharmony_ci
5423b3eb3cSopenharmony_ciint32_t InteractionImpl::SetMouseDragMonitorState(bool state)
5523b3eb3cSopenharmony_ci{
5623b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->SetMouseDragMonitorState(state);
5723b3eb3cSopenharmony_ci}
5823b3eb3cSopenharmony_ci
5923b3eb3cSopenharmony_ciint32_t InteractionImpl::StartDrag(const DragDataCore& dragData,
6023b3eb3cSopenharmony_ci    std::function<void(const OHOS::Ace::DragNotifyMsg&)> callback)
6123b3eb3cSopenharmony_ci{
6223b3eb3cSopenharmony_ci    std::function<void(const Msdp::DeviceStatus::DragNotifyMsg&)> callbackCore
6323b3eb3cSopenharmony_ci        = [=](const Msdp::DeviceStatus::DragNotifyMsg& dragNotifyMsg) {
6423b3eb3cSopenharmony_ci        OHOS::Ace::DragNotifyMsg msg { dragNotifyMsg.displayX, dragNotifyMsg.displayY, dragNotifyMsg.targetPid,
6523b3eb3cSopenharmony_ci            TranslateDragResult(dragNotifyMsg.result), TranslateDragBehavior(dragNotifyMsg.dragBehavior) };
6623b3eb3cSopenharmony_ci        if (callback) {
6723b3eb3cSopenharmony_ci            callback(msg);
6823b3eb3cSopenharmony_ci        }
6923b3eb3cSopenharmony_ci    };
7023b3eb3cSopenharmony_ci    Msdp::DeviceStatus::DragData msdpDragData { {}, dragData.buffer, dragData.udKey, dragData.extraInfo,
7123b3eb3cSopenharmony_ci    dragData.filterInfo, dragData.sourceType, dragData.dragNum, dragData.pointerId, dragData.displayX,
7223b3eb3cSopenharmony_ci    dragData.displayY, dragData.displayId, dragData.mainWindow, dragData.hasCanceledAnimation,
7323b3eb3cSopenharmony_ci    dragData.hasCoordinateCorrected, dragData.summarys };
7423b3eb3cSopenharmony_ci    for (auto& shadowInfo: dragData.shadowInfos) {
7523b3eb3cSopenharmony_ci        if (shadowInfo.pixelMap) {
7623b3eb3cSopenharmony_ci            msdpDragData.shadowInfos.push_back({ shadowInfo.pixelMap->GetPixelMapSharedPtr(),
7723b3eb3cSopenharmony_ci                shadowInfo.x, shadowInfo.y });
7823b3eb3cSopenharmony_ci        } else {
7923b3eb3cSopenharmony_ci            msdpDragData.shadowInfos.push_back({ nullptr, shadowInfo.x, shadowInfo.y });
8023b3eb3cSopenharmony_ci        }
8123b3eb3cSopenharmony_ci    }
8223b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->StartDrag(msdpDragData,
8323b3eb3cSopenharmony_ci        std::make_shared<StartDragListenerImpl>(callbackCore));
8423b3eb3cSopenharmony_ci}
8523b3eb3cSopenharmony_ci
8623b3eb3cSopenharmony_ciint32_t InteractionImpl::UpdateDragStyle(OHOS::Ace::DragCursorStyleCore style, const int32_t eventId)
8723b3eb3cSopenharmony_ci{
8823b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->UpdateDragStyle(TranslateDragCursorStyle(style), eventId);
8923b3eb3cSopenharmony_ci}
9023b3eb3cSopenharmony_ci
9123b3eb3cSopenharmony_ciint32_t InteractionImpl::UpdatePreviewStyle(const OHOS::Ace::PreviewStyle& previewStyle)
9223b3eb3cSopenharmony_ci{
9323b3eb3cSopenharmony_ci    Msdp::DeviceStatus::PreviewStyle msdpPreviewStyle = TranslatePreviewStyle(previewStyle);
9423b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->UpdatePreviewStyle(msdpPreviewStyle);
9523b3eb3cSopenharmony_ci}
9623b3eb3cSopenharmony_ci
9723b3eb3cSopenharmony_ciint32_t InteractionImpl::UpdatePreviewStyleWithAnimation(const OHOS::Ace::PreviewStyle& previewStyle,
9823b3eb3cSopenharmony_ci    const OHOS::Ace::PreviewAnimation& animation)
9923b3eb3cSopenharmony_ci{
10023b3eb3cSopenharmony_ci    Msdp::DeviceStatus::PreviewStyle msdpPreviewStyle = TranslatePreviewStyle(previewStyle);
10123b3eb3cSopenharmony_ci    Msdp::DeviceStatus::PreviewAnimation msdpAnimation { animation.duration, animation.curveName, animation.curve };
10223b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->UpdatePreviewStyleWithAnimation(msdpPreviewStyle, msdpAnimation);
10323b3eb3cSopenharmony_ci}
10423b3eb3cSopenharmony_ci
10523b3eb3cSopenharmony_ciint32_t InteractionImpl::StopDrag(DragDropRet result)
10623b3eb3cSopenharmony_ci{
10723b3eb3cSopenharmony_ci    Msdp::DeviceStatus::DragDropResult dragDropResult { TranslateDragResult(result.result), result.hasCustomAnimation,
10823b3eb3cSopenharmony_ci    result.mainWindow, TranslateDragBehavior(result.dragBehavior) };
10923b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->StopDrag(dragDropResult);
11023b3eb3cSopenharmony_ci}
11123b3eb3cSopenharmony_ci
11223b3eb3cSopenharmony_ciint32_t InteractionImpl::GetUdKey(std::string& udKey)
11323b3eb3cSopenharmony_ci{
11423b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->GetUdKey(udKey);
11523b3eb3cSopenharmony_ci}
11623b3eb3cSopenharmony_ci
11723b3eb3cSopenharmony_ciint32_t InteractionImpl::GetShadowOffset(ShadowOffsetData& shadowOffsetData)
11823b3eb3cSopenharmony_ci{
11923b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->GetShadowOffset(
12023b3eb3cSopenharmony_ci        shadowOffsetData.offsetX, shadowOffsetData.offsetY, shadowOffsetData.width, shadowOffsetData.height);
12123b3eb3cSopenharmony_ci}
12223b3eb3cSopenharmony_ci
12323b3eb3cSopenharmony_ciint32_t InteractionImpl::GetDragSummary(std::map<std::string, int64_t>& summary)
12423b3eb3cSopenharmony_ci{
12523b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->GetDragSummary(summary);
12623b3eb3cSopenharmony_ci}
12723b3eb3cSopenharmony_ci
12823b3eb3cSopenharmony_ciint32_t InteractionImpl::GetDragExtraInfo(std::string& extraInfo)
12923b3eb3cSopenharmony_ci{
13023b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->GetExtraInfo(extraInfo);
13123b3eb3cSopenharmony_ci}
13223b3eb3cSopenharmony_ci
13323b3eb3cSopenharmony_ciint32_t InteractionImpl::EnterTextEditorArea(bool enable)
13423b3eb3cSopenharmony_ci{
13523b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->EnterTextEditorArea(enable);
13623b3eb3cSopenharmony_ci}
13723b3eb3cSopenharmony_ci
13823b3eb3cSopenharmony_ciint32_t InteractionImpl::AddPrivilege()
13923b3eb3cSopenharmony_ci{
14023b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->AddPrivilege();
14123b3eb3cSopenharmony_ci}
14223b3eb3cSopenharmony_ci
14323b3eb3cSopenharmony_ciint32_t InteractionImpl::RegisterCoordinationListener(std::function<void()> dragOutCallback)
14423b3eb3cSopenharmony_ci{
14523b3eb3cSopenharmony_ci    std::function<void(Msdp::CoordinationMessage)> callback
14623b3eb3cSopenharmony_ci        = [dragOutCallback](Msdp::CoordinationMessage dragNotifyMsg) {
14723b3eb3cSopenharmony_ci        if (dragOutCallback && dragNotifyMsg == Msdp::CoordinationMessage::COORDINATION_SUCCESS) {
14823b3eb3cSopenharmony_ci            dragOutCallback();
14923b3eb3cSopenharmony_ci        }
15023b3eb3cSopenharmony_ci    };
15123b3eb3cSopenharmony_ci    if (consumer_) {
15223b3eb3cSopenharmony_ci        UnRegisterCoordinationListener();
15323b3eb3cSopenharmony_ci    }
15423b3eb3cSopenharmony_ci    consumer_ = std::make_shared<CoordinationListenerImpl>(callback);
15523b3eb3cSopenharmony_ci    return InteractionManager::GetInstance()->RegisterCoordinationListener(consumer_);
15623b3eb3cSopenharmony_ci}
15723b3eb3cSopenharmony_ci
15823b3eb3cSopenharmony_ciint32_t InteractionImpl::UnRegisterCoordinationListener()
15923b3eb3cSopenharmony_ci{
16023b3eb3cSopenharmony_ci    CHECK_NULL_RETURN(consumer_, 0);
16123b3eb3cSopenharmony_ci    auto ret = InteractionManager::GetInstance()->UnregisterCoordinationListener(consumer_);
16223b3eb3cSopenharmony_ci    consumer_ = nullptr;
16323b3eb3cSopenharmony_ci    return ret;
16423b3eb3cSopenharmony_ci}
16523b3eb3cSopenharmony_ci
16623b3eb3cSopenharmony_ciMsdp::DeviceStatus::DragCursorStyle TranslateDragCursorStyle(OHOS::Ace::DragCursorStyleCore style)
16723b3eb3cSopenharmony_ci{
16823b3eb3cSopenharmony_ci    switch (style) {
16923b3eb3cSopenharmony_ci        case OHOS::Ace::DragCursorStyleCore::DEFAULT:
17023b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragCursorStyle::DEFAULT;
17123b3eb3cSopenharmony_ci        case OHOS::Ace::DragCursorStyleCore::FORBIDDEN:
17223b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragCursorStyle::FORBIDDEN;
17323b3eb3cSopenharmony_ci        case OHOS::Ace::DragCursorStyleCore::COPY:
17423b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragCursorStyle::COPY;
17523b3eb3cSopenharmony_ci        case OHOS::Ace::DragCursorStyleCore::MOVE:
17623b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragCursorStyle::MOVE;
17723b3eb3cSopenharmony_ci        default:
17823b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragCursorStyle::DEFAULT;
17923b3eb3cSopenharmony_ci    }
18023b3eb3cSopenharmony_ci}
18123b3eb3cSopenharmony_ci
18223b3eb3cSopenharmony_ciMsdp::DeviceStatus::DragResult TranslateDragResult(DragRet dragResult)
18323b3eb3cSopenharmony_ci{
18423b3eb3cSopenharmony_ci    switch (dragResult) {
18523b3eb3cSopenharmony_ci        case DragRet::DRAG_SUCCESS:
18623b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragResult::DRAG_SUCCESS;
18723b3eb3cSopenharmony_ci        case DragRet::DRAG_FAIL:
18823b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragResult::DRAG_FAIL;
18923b3eb3cSopenharmony_ci        case DragRet::DRAG_CANCEL:
19023b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragResult::DRAG_CANCEL;
19123b3eb3cSopenharmony_ci        default:
19223b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragResult::DRAG_SUCCESS;
19323b3eb3cSopenharmony_ci    }
19423b3eb3cSopenharmony_ci}
19523b3eb3cSopenharmony_ci
19623b3eb3cSopenharmony_ciMsdp::DeviceStatus::PreviewStyle TranslatePreviewStyle(const OHOS::Ace::PreviewStyle& previewStyle)
19723b3eb3cSopenharmony_ci{
19823b3eb3cSopenharmony_ci    Msdp::DeviceStatus::PreviewStyle msdpPreviewStyle;
19923b3eb3cSopenharmony_ci    for (auto& previewType: previewStyle.types) {
20023b3eb3cSopenharmony_ci        switch (previewType) {
20123b3eb3cSopenharmony_ci            case OHOS::Ace::PreviewType::FOREGROUND_COLOR:
20223b3eb3cSopenharmony_ci                msdpPreviewStyle.types.push_back(Msdp::DeviceStatus::PreviewType::FOREGROUND_COLOR);
20323b3eb3cSopenharmony_ci                break;
20423b3eb3cSopenharmony_ci            case OHOS::Ace::PreviewType::OPACITY:
20523b3eb3cSopenharmony_ci                msdpPreviewStyle.types.push_back(Msdp::DeviceStatus::PreviewType::OPACITY);
20623b3eb3cSopenharmony_ci                break;
20723b3eb3cSopenharmony_ci            case OHOS::Ace::PreviewType::RADIUS:
20823b3eb3cSopenharmony_ci                msdpPreviewStyle.types.push_back(Msdp::DeviceStatus::PreviewType::RADIUS);
20923b3eb3cSopenharmony_ci                break;
21023b3eb3cSopenharmony_ci            case OHOS::Ace::PreviewType::SCALE:
21123b3eb3cSopenharmony_ci                msdpPreviewStyle.types.push_back(Msdp::DeviceStatus::PreviewType::SCALE);
21223b3eb3cSopenharmony_ci                break;
21323b3eb3cSopenharmony_ci            default:
21423b3eb3cSopenharmony_ci                msdpPreviewStyle.types.push_back(Msdp::DeviceStatus::PreviewType::FOREGROUND_COLOR);
21523b3eb3cSopenharmony_ci                break;
21623b3eb3cSopenharmony_ci        }
21723b3eb3cSopenharmony_ci    }
21823b3eb3cSopenharmony_ci    msdpPreviewStyle.foregroundColor = previewStyle.foregroundColor;
21923b3eb3cSopenharmony_ci    msdpPreviewStyle.opacity = previewStyle.opacity;
22023b3eb3cSopenharmony_ci    msdpPreviewStyle.radius = previewStyle.radius;
22123b3eb3cSopenharmony_ci    msdpPreviewStyle.scale = previewStyle.scale;
22223b3eb3cSopenharmony_ci    return msdpPreviewStyle;
22323b3eb3cSopenharmony_ci}
22423b3eb3cSopenharmony_ci
22523b3eb3cSopenharmony_ciDragRet TranslateDragResult(Msdp::DeviceStatus::DragResult dragResult)
22623b3eb3cSopenharmony_ci{
22723b3eb3cSopenharmony_ci    switch (dragResult) {
22823b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragResult::DRAG_SUCCESS:
22923b3eb3cSopenharmony_ci            return DragRet::DRAG_SUCCESS;
23023b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragResult::DRAG_FAIL:
23123b3eb3cSopenharmony_ci            return DragRet::DRAG_FAIL;
23223b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragResult::DRAG_CANCEL:
23323b3eb3cSopenharmony_ci            return DragRet::DRAG_CANCEL;
23423b3eb3cSopenharmony_ci        default:
23523b3eb3cSopenharmony_ci            return DragRet::DRAG_SUCCESS;
23623b3eb3cSopenharmony_ci    }
23723b3eb3cSopenharmony_ci}
23823b3eb3cSopenharmony_ci
23923b3eb3cSopenharmony_ciint32_t InteractionImpl::GetDragState(DragState& dragState) const
24023b3eb3cSopenharmony_ci{
24123b3eb3cSopenharmony_ci    Msdp::DeviceStatus::DragState state;
24223b3eb3cSopenharmony_ci    int32_t ret = InteractionManager::GetInstance()->GetDragState(state);
24323b3eb3cSopenharmony_ci    switch (state) {
24423b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragState::ERROR:
24523b3eb3cSopenharmony_ci            dragState = DragState::ERROR;
24623b3eb3cSopenharmony_ci            break;
24723b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragState::START:
24823b3eb3cSopenharmony_ci            dragState = DragState::START;
24923b3eb3cSopenharmony_ci            break;
25023b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragState::STOP:
25123b3eb3cSopenharmony_ci            dragState = DragState::STOP;
25223b3eb3cSopenharmony_ci            break;
25323b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragState::CANCEL:
25423b3eb3cSopenharmony_ci            dragState = DragState::CANCEL;
25523b3eb3cSopenharmony_ci            break;
25623b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragState::MOTION_DRAGGING:
25723b3eb3cSopenharmony_ci            dragState = DragState::MOTION_DRAGGING;
25823b3eb3cSopenharmony_ci            break;
25923b3eb3cSopenharmony_ci        default:
26023b3eb3cSopenharmony_ci            dragState = DragState::ERROR;
26123b3eb3cSopenharmony_ci            LOGW("unknow msdp drag state: %d", state);
26223b3eb3cSopenharmony_ci            break;
26323b3eb3cSopenharmony_ci    }
26423b3eb3cSopenharmony_ci    return ret;
26523b3eb3cSopenharmony_ci}
26623b3eb3cSopenharmony_ci
26723b3eb3cSopenharmony_ciMsdp::DeviceStatus::DragBehavior TranslateDragBehavior(OHOS::Ace::DragBehavior dragBehavior)
26823b3eb3cSopenharmony_ci{
26923b3eb3cSopenharmony_ci    switch (dragBehavior) {
27023b3eb3cSopenharmony_ci        case OHOS::Ace::DragBehavior::COPY:
27123b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragBehavior::COPY;
27223b3eb3cSopenharmony_ci        case OHOS::Ace::DragBehavior::MOVE:
27323b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragBehavior::MOVE;
27423b3eb3cSopenharmony_ci        default:
27523b3eb3cSopenharmony_ci            return Msdp::DeviceStatus::DragBehavior::UNKNOWN;
27623b3eb3cSopenharmony_ci    }
27723b3eb3cSopenharmony_ci}
27823b3eb3cSopenharmony_ciOHOS::Ace::DragBehavior TranslateDragBehavior(Msdp::DeviceStatus::DragBehavior dragBehavior)
27923b3eb3cSopenharmony_ci{
28023b3eb3cSopenharmony_ci    switch (dragBehavior) {
28123b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragBehavior::COPY:
28223b3eb3cSopenharmony_ci            return OHOS::Ace::DragBehavior::COPY;
28323b3eb3cSopenharmony_ci        case Msdp::DeviceStatus::DragBehavior::MOVE:
28423b3eb3cSopenharmony_ci            return OHOS::Ace::DragBehavior::MOVE;
28523b3eb3cSopenharmony_ci        default:
28623b3eb3cSopenharmony_ci            return OHOS::Ace::DragBehavior::UNKNOWN;
28723b3eb3cSopenharmony_ci    }
28823b3eb3cSopenharmony_ci}
28923b3eb3cSopenharmony_ci
29023b3eb3cSopenharmony_ci} // namespace OHOS::Ace