1 /* 2 * Copyright (C) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "cloud_media_asset_callback.h" 17 18 #include <string> 19 20 #include "cloud_media_asset_download_operation.h" 21 #include "cloud_media_asset_types.h" 22 #include "media_log.h" 23 24 using namespace std; 25 26 namespace OHOS { 27 namespace Media { OnDownloadProcess(const DownloadProgressObj & progress)28void MediaCloudDownloadCallback::OnDownloadProcess(const DownloadProgressObj& progress) 29 { 30 if (!operation_ || operation_->GetTaskStatus() == CloudMediaAssetTaskStatus::IDLE) { 31 MEDIA_ERR_LOG("operation is nullptr or taskStatus is IDLE"); 32 return; 33 } 34 switch (progress.state) { 35 case DownloadProgressObj::Status::COMPLETED: { 36 if (progress.downloadErrorType == static_cast<int32_t>(DownloadProgressObj::DownloadErrorType::NO_ERROR)) { 37 operation_->HandleSuccessCallback(progress); 38 } 39 break; 40 } 41 case DownloadProgressObj::Status::FAILED: { 42 operation_->HandleFailedCallback(progress); 43 break; 44 } 45 case DownloadProgressObj::Status::STOPPED: { 46 operation_->HandleStoppedCallback(progress); 47 break; 48 } 49 default: { 50 return; 51 } 52 } 53 } 54 } // namespace Media 55 } // namespace OHOS 56