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