| 23 | } |
| 24 | |
| 25 | void ClientPluginEventRouter::ProcessPluginEvent(const std::shared_ptr<ClientPluginBaseEvent>& event) { |
| 26 | if (!thunder_sdk_) { |
| 27 | thunder_sdk_ = ws_->GetThunderSdk(); |
| 28 | } |
| 29 | if (ClientPluginEventType::kPluginTestEvent == event->event_type_) { |
| 30 | auto target_event = std::dynamic_pointer_cast<ClientPluginTestEvent>(event); |
| 31 | } |
| 32 | else if (ClientPluginEventType::kPluginNotifyMsgEvent == event->event_type_) { |
| 33 | auto target_event = std::dynamic_pointer_cast<ClientPluginNotifyMsgEvent>(event); |
| 34 | this->context_->NotifyAppMessage(QString::fromStdString(target_event->title_), |
| 35 | QString::fromStdString(target_event->message_), |
| 36 | [=]() { |
| 37 | if (target_event->clicked_cbk_) { |
| 38 | target_event->clicked_cbk_(); |
| 39 | } |
| 40 | } |
| 41 | ); |
| 42 | } |
| 43 | else if (ClientPluginEventType::kPluginClipboardEvent == event->event_type_) { |
| 44 | auto target_event = std::dynamic_pointer_cast<ClientPluginClipboardEvent>(event); |
| 45 | if (target_event->type_ == ClipboardType::kClipboardText) { |
| 46 | context_->SendAppMessage(MsgClientClipboard { |
| 47 | .type_ = target_event->type_, |
| 48 | .msg_ = target_event->text_msg_, |
| 49 | }); |
| 50 | } |
| 51 | else if (target_event->type_ == ClipboardType::kClipboardFiles) { |
| 52 | context_->SendAppMessage(MsgClientClipboard { |
| 53 | .type_ = target_event->type_, |
| 54 | .files_ = target_event->cp_files_, |
| 55 | }); |
| 56 | } |
| 57 | } |
| 58 | else if (ClientPluginEventType::kPluginNetworkEvent == event->event_type_) { |
| 59 | auto target_event = std::dynamic_pointer_cast<ClientPluginNetworkEvent>(event); |
| 60 | if (target_event->media_channel_) { |
| 61 | LOGI("Will post to media channel."); |
| 62 | thunder_sdk_->PostMediaMessage(target_event->buf_); |
| 63 | } |
| 64 | else { |
| 65 | thunder_sdk_->PostFileTransferMessage(target_event->buf_); |
| 66 | } |
| 67 | } |
| 68 | else if (ClientPluginEventType::kPluginFileTransBeginEvent == event->event_type_) { |
| 69 | auto target_event = std::dynamic_pointer_cast<ClientPluginFileTransferBeginEvent>(event); |
| 70 | context_->SendAppMessage(MsgClientFileTransmissionBegin { |
| 71 | .the_file_id_ = MD5::Hex(target_event->task_id_), |
| 72 | .begin_timestamp_ = (int64_t)TimeUtil::GetCurrentTimestamp(), |
| 73 | .direction_ = target_event->direction_, |
| 74 | .file_detail_ = target_event->file_path_, |
| 75 | .remote_device_id_ = settings_->remote_device_id_.empty() ? settings_->host_ : settings_->remote_device_id_, |
| 76 | }); |
| 77 | } |
| 78 | else if (ClientPluginEventType::kPluginFileTransferEndEvent == event->event_type_) { |
| 79 | auto target_event = std::dynamic_pointer_cast<ClientPluginFileTransferEndEvent>(event); |
| 80 | context_->SendAppMessage(MsgClientFileTransmissionEnd { |
| 81 | .the_file_id_ = MD5::Hex(target_event->task_id_), |
| 82 | .end_timestamp_ = (int64_t)TimeUtil::GetCurrentTimestamp(), |
no test coverage detected