1f857971dSopenharmony_ci/* 2f857971dSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3f857971dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4f857971dSopenharmony_ci * you may not use this file except in compliance with the License. 5f857971dSopenharmony_ci * You may obtain a copy of the License at 6f857971dSopenharmony_ci * 7f857971dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8f857971dSopenharmony_ci * 9f857971dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10f857971dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11f857971dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12f857971dSopenharmony_ci * See the License for the specific language governing permissions and 13f857971dSopenharmony_ci * limitations under the License. 14f857971dSopenharmony_ci */ 15f857971dSopenharmony_ci 16f857971dSopenharmony_ci#include "drag_params.h" 17f857971dSopenharmony_ci 18f857971dSopenharmony_ci#include "devicestatus_define.h" 19f857971dSopenharmony_ci#include "drag_data_packer.h" 20f857971dSopenharmony_ci#include "preview_style_packer.h" 21f857971dSopenharmony_ci 22f857971dSopenharmony_ci#undef LOG_TAG 23f857971dSopenharmony_ci#define LOG_TAG "DragParams" 24f857971dSopenharmony_ci 25f857971dSopenharmony_cinamespace OHOS { 26f857971dSopenharmony_cinamespace Msdp { 27f857971dSopenharmony_cinamespace DeviceStatus { 28f857971dSopenharmony_ci 29f857971dSopenharmony_ciStartDragParam::StartDragParam(DragData &dragData) 30f857971dSopenharmony_ci{ 31f857971dSopenharmony_ci dragDataPtr_ = &dragData; 32f857971dSopenharmony_ci} 33f857971dSopenharmony_ci 34f857971dSopenharmony_ciStartDragParam::StartDragParam(const DragData &dragData) 35f857971dSopenharmony_ci{ 36f857971dSopenharmony_ci cDragDataPtr_ = &dragData; 37f857971dSopenharmony_ci} 38f857971dSopenharmony_ci 39f857971dSopenharmony_cibool StartDragParam::Marshalling(MessageParcel &parcel) const 40f857971dSopenharmony_ci{ 41f857971dSopenharmony_ci return ( 42f857971dSopenharmony_ci (cDragDataPtr_ != nullptr) && 43f857971dSopenharmony_ci (DragDataPacker::Marshalling(*cDragDataPtr_, parcel) == RET_OK) 44f857971dSopenharmony_ci ); 45f857971dSopenharmony_ci} 46f857971dSopenharmony_ci 47f857971dSopenharmony_cibool StartDragParam::Unmarshalling(MessageParcel &parcel) 48f857971dSopenharmony_ci{ 49f857971dSopenharmony_ci return ( 50f857971dSopenharmony_ci (dragDataPtr_ != nullptr) && 51f857971dSopenharmony_ci (DragDataPacker::UnMarshalling(parcel, *dragDataPtr_) == RET_OK) 52f857971dSopenharmony_ci ); 53f857971dSopenharmony_ci} 54f857971dSopenharmony_ci 55f857971dSopenharmony_ciStopDragParam::StopDragParam(const DragDropResult &dropResult) 56f857971dSopenharmony_ci : dropResult_(dropResult) 57f857971dSopenharmony_ci{} 58f857971dSopenharmony_ci 59f857971dSopenharmony_cibool StopDragParam::Marshalling(MessageParcel &parcel) const 60f857971dSopenharmony_ci{ 61f857971dSopenharmony_ci return ( 62f857971dSopenharmony_ci parcel.WriteInt32(static_cast<int32_t>(dropResult_.result)) && 63f857971dSopenharmony_ci parcel.WriteInt32(dropResult_.mainWindow) && 64f857971dSopenharmony_ci parcel.WriteBool(dropResult_.hasCustomAnimation) && 65f857971dSopenharmony_ci parcel.WriteInt32(static_cast<int32_t>(dropResult_.dragBehavior)) 66f857971dSopenharmony_ci ); 67f857971dSopenharmony_ci} 68f857971dSopenharmony_ci 69f857971dSopenharmony_cibool StopDragParam::Unmarshalling(MessageParcel &parcel) 70f857971dSopenharmony_ci{ 71f857971dSopenharmony_ci int32_t result { -1 }; 72f857971dSopenharmony_ci if (!parcel.ReadInt32(result) || 73f857971dSopenharmony_ci (result < static_cast<int32_t>(DragResult::DRAG_SUCCESS)) || 74f857971dSopenharmony_ci (result > static_cast<int32_t>(DragResult::DRAG_EXCEPTION))) { 75f857971dSopenharmony_ci return false; 76f857971dSopenharmony_ci } 77f857971dSopenharmony_ci dropResult_.result = static_cast<DragResult>(result); 78f857971dSopenharmony_ci if (!parcel.ReadInt32(dropResult_.mainWindow) || !parcel.ReadBool(dropResult_.hasCustomAnimation)) { 79f857971dSopenharmony_ci return false; 80f857971dSopenharmony_ci } 81f857971dSopenharmony_ci int32_t dragBehavior { -1 }; 82f857971dSopenharmony_ci if (!parcel.ReadInt32(dragBehavior) || 83f857971dSopenharmony_ci (dragBehavior < static_cast<int32_t>(DragBehavior::UNKNOWN)) || 84f857971dSopenharmony_ci (dragBehavior > static_cast<int32_t>(DragBehavior::MOVE))) { 85f857971dSopenharmony_ci return false; 86f857971dSopenharmony_ci } 87f857971dSopenharmony_ci dropResult_.dragBehavior = static_cast<DragBehavior>(dragBehavior); 88f857971dSopenharmony_ci return true; 89f857971dSopenharmony_ci} 90f857971dSopenharmony_ci 91f857971dSopenharmony_ciSetDragWindowVisibleParam::SetDragWindowVisibleParam(bool visible, bool isForce) 92f857971dSopenharmony_ci : visible_(visible), isForce_(isForce) 93f857971dSopenharmony_ci{} 94f857971dSopenharmony_ci 95f857971dSopenharmony_cibool SetDragWindowVisibleParam::Marshalling(MessageParcel &parcel) const 96f857971dSopenharmony_ci{ 97f857971dSopenharmony_ci return (parcel.WriteBool(visible_) && 98f857971dSopenharmony_ci parcel.WriteBool(isForce_)); 99f857971dSopenharmony_ci} 100f857971dSopenharmony_ci 101f857971dSopenharmony_cibool SetDragWindowVisibleParam::Unmarshalling(MessageParcel &parcel) 102f857971dSopenharmony_ci{ 103f857971dSopenharmony_ci return (parcel.ReadBool(visible_) && 104f857971dSopenharmony_ci parcel.ReadBool(isForce_)); 105f857971dSopenharmony_ci} 106f857971dSopenharmony_ci 107f857971dSopenharmony_ciUpdateDragStyleParam::UpdateDragStyleParam(DragCursorStyle style, int32_t eventId) 108f857971dSopenharmony_ci : cursorStyle_(style), eventId_(eventId) 109f857971dSopenharmony_ci{} 110f857971dSopenharmony_ci 111f857971dSopenharmony_cibool UpdateDragStyleParam::Marshalling(MessageParcel &parcel) const 112f857971dSopenharmony_ci{ 113f857971dSopenharmony_ci return (parcel.WriteInt32(static_cast<int32_t>(cursorStyle_)) && 114f857971dSopenharmony_ci parcel.WriteInt32(eventId_)); 115f857971dSopenharmony_ci} 116f857971dSopenharmony_ci 117f857971dSopenharmony_cibool UpdateDragStyleParam::Unmarshalling(MessageParcel &parcel) 118f857971dSopenharmony_ci{ 119f857971dSopenharmony_ci int32_t style { -1 }; 120f857971dSopenharmony_ci if (!parcel.ReadInt32(style) || 121f857971dSopenharmony_ci (style < static_cast<int32_t>(DragCursorStyle::DEFAULT)) || 122f857971dSopenharmony_ci (style > static_cast<int32_t>(DragCursorStyle::MOVE))) { 123f857971dSopenharmony_ci return false; 124f857971dSopenharmony_ci } 125f857971dSopenharmony_ci cursorStyle_ = static_cast<DragCursorStyle>(style); 126f857971dSopenharmony_ci return parcel.ReadInt32(eventId_); 127f857971dSopenharmony_ci} 128f857971dSopenharmony_ci 129f857971dSopenharmony_ciUpdateShadowPicParam::UpdateShadowPicParam(const ShadowInfo &shadowInfo) 130f857971dSopenharmony_ci : shadowInfo_(shadowInfo) 131f857971dSopenharmony_ci{} 132f857971dSopenharmony_ci 133f857971dSopenharmony_cibool UpdateShadowPicParam::Marshalling(MessageParcel &parcel) const 134f857971dSopenharmony_ci{ 135f857971dSopenharmony_ci return ( 136f857971dSopenharmony_ci (shadowInfo_.pixelMap != nullptr) && 137f857971dSopenharmony_ci shadowInfo_.pixelMap->Marshalling(parcel) && 138f857971dSopenharmony_ci parcel.WriteInt32(shadowInfo_.x) && 139f857971dSopenharmony_ci parcel.WriteInt32(shadowInfo_.y) 140f857971dSopenharmony_ci ); 141f857971dSopenharmony_ci} 142f857971dSopenharmony_ci 143f857971dSopenharmony_cibool UpdateShadowPicParam::Unmarshalling(MessageParcel &parcel) 144f857971dSopenharmony_ci{ 145f857971dSopenharmony_ci shadowInfo_.pixelMap = std::shared_ptr<Media::PixelMap>(Media::PixelMap::Unmarshalling(parcel)); 146f857971dSopenharmony_ci return ( 147f857971dSopenharmony_ci (shadowInfo_.pixelMap != nullptr) && 148f857971dSopenharmony_ci parcel.ReadInt32(shadowInfo_.x) && 149f857971dSopenharmony_ci parcel.ReadInt32(shadowInfo_.y) 150f857971dSopenharmony_ci ); 151f857971dSopenharmony_ci} 152f857971dSopenharmony_ci 153f857971dSopenharmony_ciAddSelectedPixelMapParam::AddSelectedPixelMapParam(std::shared_ptr<OHOS::Media::PixelMap> pixelMap) 154f857971dSopenharmony_ci :pixelMap_(pixelMap) 155f857971dSopenharmony_ci{} 156f857971dSopenharmony_ci 157f857971dSopenharmony_cibool AddSelectedPixelMapParam::Marshalling(MessageParcel &parcel) const 158f857971dSopenharmony_ci{ 159f857971dSopenharmony_ci return ((pixelMap_ != nullptr) && pixelMap_->Marshalling(parcel)); 160f857971dSopenharmony_ci} 161f857971dSopenharmony_ci 162f857971dSopenharmony_cibool AddSelectedPixelMapParam::Unmarshalling(MessageParcel &parcel) 163f857971dSopenharmony_ci{ 164f857971dSopenharmony_ci pixelMap_ = std::shared_ptr<Media::PixelMap>(Media::PixelMap::Unmarshalling(parcel)); 165f857971dSopenharmony_ci return ((pixelMap_ != nullptr)); 166f857971dSopenharmony_ci} 167f857971dSopenharmony_ci 168f857971dSopenharmony_ciGetDragTargetPidReply::GetDragTargetPidReply(int32_t pid) 169f857971dSopenharmony_ci : targetPid_(pid) 170f857971dSopenharmony_ci{} 171f857971dSopenharmony_ci 172f857971dSopenharmony_cibool GetDragTargetPidReply::Marshalling(MessageParcel &parcel) const 173f857971dSopenharmony_ci{ 174f857971dSopenharmony_ci return parcel.WriteInt32(targetPid_); 175f857971dSopenharmony_ci} 176f857971dSopenharmony_ci 177f857971dSopenharmony_cibool GetDragTargetPidReply::Unmarshalling(MessageParcel &parcel) 178f857971dSopenharmony_ci{ 179f857971dSopenharmony_ci return parcel.ReadInt32(targetPid_); 180f857971dSopenharmony_ci} 181f857971dSopenharmony_ci 182f857971dSopenharmony_ciGetUdKeyReply::GetUdKeyReply(std::string &&udKey) 183f857971dSopenharmony_ci : udKey_(std::move(udKey)) 184f857971dSopenharmony_ci{} 185f857971dSopenharmony_ci 186f857971dSopenharmony_cibool GetUdKeyReply::Marshalling(MessageParcel &parcel) const 187f857971dSopenharmony_ci{ 188f857971dSopenharmony_ci return parcel.WriteString(udKey_); 189f857971dSopenharmony_ci} 190f857971dSopenharmony_ci 191f857971dSopenharmony_cibool GetUdKeyReply::Unmarshalling(MessageParcel &parcel) 192f857971dSopenharmony_ci{ 193f857971dSopenharmony_ci return parcel.ReadString(udKey_); 194f857971dSopenharmony_ci} 195f857971dSopenharmony_ci 196f857971dSopenharmony_ciGetShadowOffsetReply::GetShadowOffsetReply(const ShadowOffset &shadowOffset) 197f857971dSopenharmony_ci : shadowOffset_(shadowOffset) 198f857971dSopenharmony_ci{} 199f857971dSopenharmony_ci 200f857971dSopenharmony_cibool GetShadowOffsetReply::Marshalling(MessageParcel &parcel) const 201f857971dSopenharmony_ci{ 202f857971dSopenharmony_ci return ( 203f857971dSopenharmony_ci parcel.WriteInt32(shadowOffset_.offsetX) && 204f857971dSopenharmony_ci parcel.WriteInt32(shadowOffset_.offsetY) && 205f857971dSopenharmony_ci parcel.WriteInt32(shadowOffset_.width) && 206f857971dSopenharmony_ci parcel.WriteInt32(shadowOffset_.height) 207f857971dSopenharmony_ci ); 208f857971dSopenharmony_ci} 209f857971dSopenharmony_ci 210f857971dSopenharmony_cibool GetShadowOffsetReply::Unmarshalling(MessageParcel &parcel) 211f857971dSopenharmony_ci{ 212f857971dSopenharmony_ci return ( 213f857971dSopenharmony_ci parcel.ReadInt32(shadowOffset_.offsetX) && 214f857971dSopenharmony_ci parcel.ReadInt32(shadowOffset_.offsetY) && 215f857971dSopenharmony_ci parcel.ReadInt32(shadowOffset_.width) && 216f857971dSopenharmony_ci parcel.ReadInt32(shadowOffset_.height) 217f857971dSopenharmony_ci ); 218f857971dSopenharmony_ci} 219f857971dSopenharmony_ci 220f857971dSopenharmony_ciUpdatePreviewStyleParam::UpdatePreviewStyleParam(const PreviewStyle &previewStyle) 221f857971dSopenharmony_ci : previewStyle_(previewStyle) 222f857971dSopenharmony_ci{} 223f857971dSopenharmony_ci 224f857971dSopenharmony_cibool UpdatePreviewStyleParam::Marshalling(MessageParcel &parcel) const 225f857971dSopenharmony_ci{ 226f857971dSopenharmony_ci return (PreviewStylePacker::Marshalling(previewStyle_, parcel) == RET_OK); 227f857971dSopenharmony_ci} 228f857971dSopenharmony_ci 229f857971dSopenharmony_cibool UpdatePreviewStyleParam::Unmarshalling(MessageParcel &parcel) 230f857971dSopenharmony_ci{ 231f857971dSopenharmony_ci return (PreviewStylePacker::UnMarshalling(parcel, previewStyle_) == RET_OK); 232f857971dSopenharmony_ci} 233f857971dSopenharmony_ci 234f857971dSopenharmony_ciUpdatePreviewAnimationParam::UpdatePreviewAnimationParam( 235f857971dSopenharmony_ci const PreviewStyle &previewStyle, const PreviewAnimation &animation) 236f857971dSopenharmony_ci : previewStyle_(previewStyle), previewAnimation_(animation) 237f857971dSopenharmony_ci{} 238f857971dSopenharmony_ci 239f857971dSopenharmony_cibool UpdatePreviewAnimationParam::Marshalling(MessageParcel &parcel) const 240f857971dSopenharmony_ci{ 241f857971dSopenharmony_ci return ( 242f857971dSopenharmony_ci (PreviewStylePacker::Marshalling(previewStyle_, parcel) == RET_OK) && 243f857971dSopenharmony_ci (PreviewAnimationPacker::Marshalling(previewAnimation_, parcel) == RET_OK) 244f857971dSopenharmony_ci ); 245f857971dSopenharmony_ci} 246f857971dSopenharmony_ci 247f857971dSopenharmony_cibool UpdatePreviewAnimationParam::Unmarshalling(MessageParcel &parcel) 248f857971dSopenharmony_ci{ 249f857971dSopenharmony_ci return ( 250f857971dSopenharmony_ci (PreviewStylePacker::UnMarshalling(parcel, previewStyle_) == RET_OK) && 251f857971dSopenharmony_ci (PreviewAnimationPacker::UnMarshalling(parcel, previewAnimation_) == RET_OK) 252f857971dSopenharmony_ci ); 253f857971dSopenharmony_ci} 254f857971dSopenharmony_ci 255f857971dSopenharmony_ciRotateDragWindowSyncParam::RotateDragWindowSyncParam(const std::shared_ptr<Rosen::RSTransaction>& rsTransaction) 256f857971dSopenharmony_ci : rsTransaction_(rsTransaction) 257f857971dSopenharmony_ci{} 258f857971dSopenharmony_ci 259f857971dSopenharmony_cibool RotateDragWindowSyncParam::Marshalling(MessageParcel &parcel) const 260f857971dSopenharmony_ci{ 261f857971dSopenharmony_ci if (rsTransaction_ == nullptr) { 262f857971dSopenharmony_ci FI_HILOGE("rsTransaction_ is nullptr"); 263f857971dSopenharmony_ci return false; 264f857971dSopenharmony_ci } 265f857971dSopenharmony_ci if (!parcel.WriteParcelable(rsTransaction_.get())) { 266f857971dSopenharmony_ci FI_HILOGE("Write transaction sync id failed"); 267f857971dSopenharmony_ci return false; 268f857971dSopenharmony_ci } 269f857971dSopenharmony_ci return true; 270f857971dSopenharmony_ci} 271f857971dSopenharmony_ci 272f857971dSopenharmony_cibool RotateDragWindowSyncParam::Unmarshalling(MessageParcel &parcel) 273f857971dSopenharmony_ci{ 274f857971dSopenharmony_ci std::shared_ptr<Rosen::RSTransaction> rsTransaction(parcel.ReadParcelable<Rosen::RSTransaction>()); 275f857971dSopenharmony_ci if (rsTransaction == nullptr) { 276f857971dSopenharmony_ci FI_HILOGE("UnMarshalling rsTransaction failed"); 277f857971dSopenharmony_ci return false; 278f857971dSopenharmony_ci } 279f857971dSopenharmony_ci rsTransaction_ = rsTransaction; 280f857971dSopenharmony_ci return true; 281f857971dSopenharmony_ci} 282f857971dSopenharmony_ci 283f857971dSopenharmony_ciSetDragWindowScreenIdParam::SetDragWindowScreenIdParam(uint64_t displayId, uint64_t screenId) 284f857971dSopenharmony_ci : displayId_(displayId), screenId_(screenId) 285f857971dSopenharmony_ci{} 286f857971dSopenharmony_ci 287f857971dSopenharmony_cibool SetDragWindowScreenIdParam::Marshalling(MessageParcel &parcel) const 288f857971dSopenharmony_ci{ 289f857971dSopenharmony_ci return (parcel.WriteUint64(displayId_) && parcel.WriteUint64(screenId_)); 290f857971dSopenharmony_ci} 291f857971dSopenharmony_ci 292f857971dSopenharmony_cibool SetDragWindowScreenIdParam::Unmarshalling(MessageParcel &parcel) 293f857971dSopenharmony_ci{ 294f857971dSopenharmony_ci return (parcel.ReadUint64(displayId_) && parcel.ReadUint64(screenId_)); 295f857971dSopenharmony_ci} 296f857971dSopenharmony_ci 297f857971dSopenharmony_ciAddDraglistenerParam::AddDraglistenerParam(bool isJsCaller) 298f857971dSopenharmony_ci : isJsCaller_(isJsCaller) 299f857971dSopenharmony_ci{} 300f857971dSopenharmony_ci 301f857971dSopenharmony_cibool AddDraglistenerParam::Marshalling(MessageParcel &parcel) const 302f857971dSopenharmony_ci{ 303f857971dSopenharmony_ci return parcel.WriteBool(isJsCaller_); 304f857971dSopenharmony_ci} 305f857971dSopenharmony_ci 306f857971dSopenharmony_cibool AddDraglistenerParam::Unmarshalling(MessageParcel &parcel) 307f857971dSopenharmony_ci{ 308f857971dSopenharmony_ci return parcel.ReadBool(isJsCaller_); 309f857971dSopenharmony_ci} 310f857971dSopenharmony_ci 311f857971dSopenharmony_ciRemoveDraglistenerParam::RemoveDraglistenerParam(bool isJsCaller) 312f857971dSopenharmony_ci : isJsCaller_(isJsCaller) 313f857971dSopenharmony_ci{} 314f857971dSopenharmony_ci 315f857971dSopenharmony_cibool RemoveDraglistenerParam::Marshalling(MessageParcel &parcel) const 316f857971dSopenharmony_ci{ 317f857971dSopenharmony_ci return parcel.WriteBool(isJsCaller_); 318f857971dSopenharmony_ci} 319f857971dSopenharmony_ci 320f857971dSopenharmony_cibool RemoveDraglistenerParam::Unmarshalling(MessageParcel &parcel) 321f857971dSopenharmony_ci{ 322f857971dSopenharmony_ci return parcel.ReadBool(isJsCaller_); 323f857971dSopenharmony_ci} 324f857971dSopenharmony_ci 325f857971dSopenharmony_ciGetDragSummaryParam::GetDragSummaryParam(bool isJsCaller) 326f857971dSopenharmony_ci : isJsCaller_(isJsCaller) 327f857971dSopenharmony_ci{} 328f857971dSopenharmony_ci 329f857971dSopenharmony_cibool GetDragSummaryParam::Marshalling(MessageParcel &parcel) const 330f857971dSopenharmony_ci{ 331f857971dSopenharmony_ci return parcel.WriteBool(isJsCaller_); 332f857971dSopenharmony_ci} 333f857971dSopenharmony_ci 334f857971dSopenharmony_cibool GetDragSummaryParam::Unmarshalling(MessageParcel &parcel) 335f857971dSopenharmony_ci{ 336f857971dSopenharmony_ci return parcel.ReadBool(isJsCaller_); 337f857971dSopenharmony_ci} 338f857971dSopenharmony_ci 339f857971dSopenharmony_ciGetDragSummaryReply::GetDragSummaryReply(std::map<std::string, int64_t> &&summary) 340f857971dSopenharmony_ci : summary_(std::move(summary)) 341f857971dSopenharmony_ci{} 342f857971dSopenharmony_ci 343f857971dSopenharmony_cibool GetDragSummaryReply::Marshalling(MessageParcel &parcel) const 344f857971dSopenharmony_ci{ 345f857971dSopenharmony_ci return (SummaryPacker::Marshalling(summary_, parcel) == RET_OK); 346f857971dSopenharmony_ci} 347f857971dSopenharmony_ci 348f857971dSopenharmony_cibool GetDragSummaryReply::Unmarshalling(MessageParcel &parcel) 349f857971dSopenharmony_ci{ 350f857971dSopenharmony_ci return (SummaryPacker::UnMarshalling(parcel, summary_) == RET_OK); 351f857971dSopenharmony_ci} 352f857971dSopenharmony_ci 353f857971dSopenharmony_ciGetDragStateReply::GetDragStateReply(DragState dragState) 354f857971dSopenharmony_ci : dragState_(dragState) 355f857971dSopenharmony_ci{} 356f857971dSopenharmony_ci 357f857971dSopenharmony_cibool GetDragStateReply::Marshalling(MessageParcel &parcel) const 358f857971dSopenharmony_ci{ 359f857971dSopenharmony_ci return parcel.WriteInt32(static_cast<int32_t>(dragState_)); 360f857971dSopenharmony_ci} 361f857971dSopenharmony_ci 362f857971dSopenharmony_cibool GetDragStateReply::Unmarshalling(MessageParcel &parcel) 363f857971dSopenharmony_ci{ 364f857971dSopenharmony_ci int32_t dragState { -1 }; 365f857971dSopenharmony_ci if (!parcel.ReadInt32(dragState) || 366f857971dSopenharmony_ci (dragState < static_cast<int32_t>(DragState::ERROR)) || 367f857971dSopenharmony_ci (dragState > static_cast<int32_t>(DragState::MOTION_DRAGGING))) { 368f857971dSopenharmony_ci return false; 369f857971dSopenharmony_ci } 370f857971dSopenharmony_ci dragState_ = static_cast<DragState>(dragState); 371f857971dSopenharmony_ci return true; 372f857971dSopenharmony_ci} 373f857971dSopenharmony_ci 374f857971dSopenharmony_ciGetDragActionReply::GetDragActionReply(DragAction dragAction) 375f857971dSopenharmony_ci : dragAction_(dragAction) 376f857971dSopenharmony_ci{} 377f857971dSopenharmony_ci 378f857971dSopenharmony_cibool GetDragActionReply::Marshalling(MessageParcel &parcel) const 379f857971dSopenharmony_ci{ 380f857971dSopenharmony_ci return parcel.WriteInt32(static_cast<int32_t>(dragAction_)); 381f857971dSopenharmony_ci} 382f857971dSopenharmony_ci 383f857971dSopenharmony_cibool GetDragActionReply::Unmarshalling(MessageParcel &parcel) 384f857971dSopenharmony_ci{ 385f857971dSopenharmony_ci int32_t dragAction { -1 }; 386f857971dSopenharmony_ci if (!parcel.ReadInt32(dragAction) || 387f857971dSopenharmony_ci (dragAction < static_cast<int32_t>(DragAction::INVALID)) || 388f857971dSopenharmony_ci (dragAction > static_cast<int32_t>(DragAction::COPY))) { 389f857971dSopenharmony_ci return false; 390f857971dSopenharmony_ci } 391f857971dSopenharmony_ci dragAction_ = static_cast<DragAction>(dragAction); 392f857971dSopenharmony_ci return true; 393f857971dSopenharmony_ci} 394f857971dSopenharmony_ci 395f857971dSopenharmony_ciGetExtraInfoReply::GetExtraInfoReply(std::string &&extraInfo) 396f857971dSopenharmony_ci : extraInfo_(std::move(extraInfo)) 397f857971dSopenharmony_ci{} 398f857971dSopenharmony_ci 399f857971dSopenharmony_cibool GetExtraInfoReply::Marshalling(MessageParcel &parcel) const 400f857971dSopenharmony_ci{ 401f857971dSopenharmony_ci return parcel.WriteString(extraInfo_); 402f857971dSopenharmony_ci} 403f857971dSopenharmony_ci 404f857971dSopenharmony_cibool GetExtraInfoReply::Unmarshalling(MessageParcel &parcel) 405f857971dSopenharmony_ci{ 406f857971dSopenharmony_ci return parcel.ReadString(extraInfo_); 407f857971dSopenharmony_ci} 408f857971dSopenharmony_ci} // namespace DeviceStatus 409f857971dSopenharmony_ci} // namespace Msdp 410f857971dSopenharmony_ci} // namespace OHOS