mirror of
https://gitee.com/openharmony/ability_dmsfwk
synced 2024-11-27 00:20:44 +00:00
commit
fed2b8b01a
@ -142,7 +142,7 @@ private:
|
||||
|
||||
int32_t PostStartTask(const OHOS::AAFwk::WantParams& wantParams);
|
||||
int32_t PostReplyTask(std::shared_ptr<DSchedContinueReplyCmd> cmd);
|
||||
int32_t PostCotinueAbilityTask(int32_t appVersion);
|
||||
int32_t PostCotinueAbilityTask(uint32_t appVersion);
|
||||
int32_t PostContinueSendTask(const OHOS::AAFwk::Want& want, int32_t callerUid, int32_t status,
|
||||
uint32_t accessToken);
|
||||
int32_t PostContinueDataTask(std::shared_ptr<DSchedContinueDataCmd> cmd);
|
||||
@ -150,7 +150,7 @@ private:
|
||||
int32_t PostContinueEndTask(int32_t result);
|
||||
|
||||
int32_t ExecuteContinueReq(std::shared_ptr<DistributedWantParams> wantParams);
|
||||
int32_t ExecuteContinueAbility(int32_t appVersion);
|
||||
int32_t ExecuteContinueAbility(uint32_t appVersion);
|
||||
int32_t ExecuteContinueReply();
|
||||
int32_t ExecuteContinueSend(std::shared_ptr<ContinueAbilityData> data);
|
||||
int32_t ExecuteContinueData(std::shared_ptr<DSchedContinueDataCmd> cmd);
|
||||
@ -159,7 +159,7 @@ private:
|
||||
int32_t ExecuteContinueError(int32_t result);
|
||||
|
||||
int32_t OnContinueMission(const OHOS::AAFwk::WantParams& wantParams);
|
||||
int32_t OnStartCmd(int32_t appVersion);
|
||||
int32_t OnStartCmd(uint32_t appVersion);
|
||||
int32_t OnReplyCmd(std::shared_ptr<DSchedContinueReplyCmd> cmd);
|
||||
int32_t OnStartContinuation(const OHOS::AAFwk::Want& want, int32_t callerUid, int32_t status,
|
||||
uint32_t accessToken);
|
||||
@ -182,7 +182,7 @@ private:
|
||||
const AccountInfo& accountInfo);
|
||||
int32_t CheckStartPermission(std::shared_ptr<DSchedContinueDataCmd> cmd);
|
||||
int32_t PackEndCmd(std::shared_ptr<DSchedContinueEndCmd> cmd, int32_t result);
|
||||
int32_t PackReplyCmd(std::shared_ptr<DSchedContinueReplyCmd> cmd, int32_t replyCmd, int32_t appVersion,
|
||||
int32_t PackReplyCmd(std::shared_ptr<DSchedContinueReplyCmd> cmd, int32_t replyCmd, uint32_t appVersion,
|
||||
int32_t result, const std::string reason);
|
||||
int32_t SendCommand(std::shared_ptr<DSchedContinueCmdBase> cmd);
|
||||
|
||||
|
@ -78,7 +78,7 @@ public:
|
||||
|
||||
public:
|
||||
int32_t direction_ = 0;
|
||||
int32_t appVersion_ = 0;
|
||||
uint32_t appVersion_ = 0;
|
||||
DistributedWantParams wantParams_;
|
||||
};
|
||||
|
||||
@ -112,7 +112,7 @@ public:
|
||||
|
||||
public:
|
||||
int32_t replyCmd_ = 0;
|
||||
int32_t appVersion_ = 0;
|
||||
uint32_t appVersion_ = 0;
|
||||
int32_t result_ = 0;
|
||||
std::string reason_;
|
||||
};
|
||||
|
@ -32,7 +32,7 @@ namespace DistributedSchedule {
|
||||
namespace {
|
||||
constexpr int32_t MAX_CONCURRENT_SINK = 1;
|
||||
constexpr int32_t MAX_CONCURRENT_SOURCE = 1;
|
||||
constexpr int32_t CONTINUE_TIMEOUT = 7000;
|
||||
constexpr int32_t CONTINUE_TIMEOUT = 10000;
|
||||
}
|
||||
class DSchedContinueManager {
|
||||
DECLARE_SINGLE_INSTANCE_BASE(DSchedContinueManager);
|
||||
|
@ -50,6 +50,8 @@ const std::string ERROR_CODE = "ERROR_CODE";
|
||||
const std::string PEER_UDID = "PEER_UDID";
|
||||
const std::string APP_CALLEE = "APP_CALLEE";
|
||||
const std::string APP_CALLER = "APP_CALLER";
|
||||
const std::string LOCAL_APP_VERSION = "LOCAL_APP_VERSION";
|
||||
const std::string PEER_APP_VERSION = "PEER_APP_VERSION";
|
||||
constexpr char APP_CONTINUE_DOMAIN[] = "APP_CONTINUE";
|
||||
constexpr int32_t ANONYM_MIN_LENGTH = 10;
|
||||
constexpr int32_t SUBSTR_UDID_LENGTH = 5;
|
||||
@ -168,7 +170,7 @@ public:
|
||||
bool RecvUnfocused(const std::string& func);
|
||||
bool UnfocusedGetBundleName(const std::string& func, int32_t errCode);
|
||||
bool NotifyDockUnfocused(const std::string& func, int32_t errCode);
|
||||
bool ClickIconDmsContinue(const std::string& func, int32_t errCode, std::string peerUdid,
|
||||
bool ClickIconDmsContinue(const std::string& func, int32_t errCode, std::string peerDeviceId,
|
||||
const std::string& srcBundleName, const std::string& dstBundleName);
|
||||
bool ClickIconDmsStartAbility(const std::string& func, int32_t errCode);
|
||||
bool ClickIconDmsRecvOver(const std::string& func, int32_t errCode);
|
||||
|
@ -264,13 +264,13 @@ int32_t DSchedContinue::PostStartTask(const OHOS::AAFwk::WantParams& wantParams)
|
||||
return ERR_OK;
|
||||
}
|
||||
|
||||
int32_t DSchedContinue::OnStartCmd(int32_t appVersion)
|
||||
int32_t DSchedContinue::OnStartCmd(uint32_t appVersion)
|
||||
{
|
||||
HILOGI("called");
|
||||
return PostCotinueAbilityTask(appVersion);
|
||||
}
|
||||
|
||||
int32_t DSchedContinue::PostCotinueAbilityTask(int32_t appVersion)
|
||||
int32_t DSchedContinue::PostCotinueAbilityTask(uint32_t appVersion)
|
||||
{
|
||||
DSchedContinueEventType eventType = DSHCED_CONTINUE_ABILITY_EVENT;
|
||||
HILOGI("PostCotinueAbilityTask %{public}d, continueInfo %{public}s", eventType,
|
||||
@ -279,7 +279,7 @@ int32_t DSchedContinue::PostCotinueAbilityTask(int32_t appVersion)
|
||||
HILOGE("PostCotinueAbilityTask eventHandler is nullptr");
|
||||
return INVALID_PARAMETERS_ERR;
|
||||
}
|
||||
auto data = std::make_shared<int32_t>(appVersion);
|
||||
auto data = std::make_shared<uint32_t>(appVersion);
|
||||
auto msgEvent = AppExecFwk::InnerEvent::Get(eventType, data, 0);
|
||||
if (!eventHandler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) {
|
||||
HILOGE("PostCotinueAbilityTask eventHandler send event type %{public}d fail", eventType);
|
||||
@ -498,8 +498,7 @@ int32_t DSchedContinue::ExecuteContinueReq(std::shared_ptr<DistributedWantParams
|
||||
std::string peerDeviceId = (direction_ == CONTINUE_SOURCE) ?
|
||||
continueInfo_.sinkDeviceId_ : continueInfo_.sourceDeviceId_;
|
||||
|
||||
std::string peerUdid = DtbschedmgrDeviceInfoStorage::GetInstance().GetUdidByNetworkId(peerDeviceId);
|
||||
DmsRadar::GetInstance().ClickIconDmsContinue("ContinueMission", ERR_OK, peerUdid,
|
||||
DmsRadar::GetInstance().ClickIconDmsContinue("ContinueMission", ERR_OK, peerDeviceId,
|
||||
continueInfo_.sourceBundleName_, continueInfo_.sinkBundleName_);
|
||||
|
||||
DmsUE::GetInstance().TriggerDmsContinue(continueInfo_.sinkBundleName_, continueInfo_.sinkAbilityName_,
|
||||
@ -653,15 +652,15 @@ int32_t DSchedContinue::PackStartCmd(std::shared_ptr<DSchedContinueStartCmd>& cm
|
||||
HILOGE("pack start cmd failed, the bundle is not installed on local device.");
|
||||
return ret;
|
||||
}
|
||||
cmd->appVersion_ = static_cast<int32_t>(localBundleInfo.versionCode);
|
||||
cmd->appVersion_ = localBundleInfo.versionCode;
|
||||
}
|
||||
cmd->wantParams_ = *wantParams;
|
||||
return ERR_OK;
|
||||
}
|
||||
|
||||
int32_t DSchedContinue::ExecuteContinueAbility(int32_t appVersion)
|
||||
int32_t DSchedContinue::ExecuteContinueAbility(uint32_t appVersion)
|
||||
{
|
||||
HILOGI("ExecuteContinueAbility start, appVersion: %{public}d", appVersion);
|
||||
HILOGI("ExecuteContinueAbility start, appVersion: %{public}u", appVersion);
|
||||
DmsRadar::GetInstance().SaveDataDmsContinue("ContinueAbility", ERR_OK);
|
||||
|
||||
int32_t result = GetMissionIdByBundleName();
|
||||
@ -1072,7 +1071,7 @@ int32_t DSchedContinue::ExecuteNotifyComplete(int32_t result)
|
||||
return ERR_OK;
|
||||
}
|
||||
|
||||
int32_t DSchedContinue::PackReplyCmd(std::shared_ptr<DSchedContinueReplyCmd> cmd, int32_t replyCmd, int32_t appVersion,
|
||||
int32_t DSchedContinue::PackReplyCmd(std::shared_ptr<DSchedContinueReplyCmd> cmd, int32_t replyCmd, uint32_t appVersion,
|
||||
int32_t result, const std::string reason)
|
||||
{
|
||||
if (cmd == nullptr) {
|
||||
|
@ -177,11 +177,12 @@ int32_t DSchedContinueStartCmd::Unmarshal(const std::string &jsonStr)
|
||||
direction_ = direction->valueint;
|
||||
|
||||
cJSON *appVersion = cJSON_GetObjectItemCaseSensitive(rootValue, "AppVersion");
|
||||
if (appVersion == nullptr || !cJSON_IsNumber(appVersion)) {
|
||||
if (appVersion == nullptr || !cJSON_IsNumber(appVersion) || appVersion->valueint < 0 ||
|
||||
appVersion->valueint > UINT32_MAX) {
|
||||
cJSON_Delete(rootValue);
|
||||
return INVALID_PARAMETERS_ERR;
|
||||
}
|
||||
appVersion_ = appVersion->valueint;
|
||||
appVersion_ = static_cast<uint32_t>(appVersion->valueint);
|
||||
|
||||
cJSON *wantParams = cJSON_GetObjectItemCaseSensitive(rootValue, "WantParams");
|
||||
if (wantParams == nullptr || !cJSON_IsString(wantParams) || (wantParams->valuestring == nullptr)) {
|
||||
@ -653,10 +654,10 @@ int32_t DSchedContinueReplyCmd::Unmarshal(const std::string &jsonStr)
|
||||
}
|
||||
|
||||
const char *numKeys[] = {
|
||||
"ReplyCmd", "AppVersion", "Result"
|
||||
"ReplyCmd", "Result"
|
||||
};
|
||||
int32_t *numValues[] = {
|
||||
&replyCmd_, &appVersion_, &result_
|
||||
&replyCmd_, &result_
|
||||
};
|
||||
int32_t numLength = sizeof(numKeys) / sizeof(numKeys[0]);
|
||||
for (int32_t i = 0; i < numLength; i++) {
|
||||
@ -668,6 +669,14 @@ int32_t DSchedContinueReplyCmd::Unmarshal(const std::string &jsonStr)
|
||||
*numValues[i] = item->valueint;
|
||||
}
|
||||
|
||||
cJSON *appVersion = cJSON_GetObjectItemCaseSensitive(rootValue, "AppVersion");
|
||||
if (appVersion == nullptr || !cJSON_IsNumber(appVersion) || appVersion->valueint < 0 ||
|
||||
appVersion->valueint > UINT32_MAX) {
|
||||
cJSON_Delete(rootValue);
|
||||
return INVALID_PARAMETERS_ERR;
|
||||
}
|
||||
appVersion_ = static_cast<uint32_t>(appVersion->valueint);
|
||||
|
||||
cJSON *reason = cJSON_GetObjectItemCaseSensitive(rootValue, "Reason");
|
||||
if (reason == nullptr || !cJSON_IsString(reason) || (reason->valuestring == nullptr)) {
|
||||
cJSON_Delete(rootValue);
|
||||
|
@ -86,7 +86,7 @@ int32_t DSchedContinueSourceStartState::DoContinueAbilityTask(std::shared_ptr<DS
|
||||
HILOGE("dContinue or event is null");
|
||||
return INVALID_PARAMETERS_ERR;
|
||||
}
|
||||
auto syncContinueData = event->GetSharedObject<int32_t>();
|
||||
auto syncContinueData = event->GetSharedObject<uint32_t>();
|
||||
int32_t ret = dContinue->ExecuteContinueAbility(*syncContinueData);
|
||||
if (ret != ERR_OK) {
|
||||
HILOGE("DSchedContinueSourceStartState ExecuteContinueAbility failed, ret: %{public}d", ret);
|
||||
|
@ -15,6 +15,8 @@
|
||||
|
||||
#include "dfx/distributed_radar.h"
|
||||
|
||||
#include "bundle/bundle_manager_internal.h"
|
||||
#include "dtbschedmgr_device_info_storage.h"
|
||||
#include "hisysevent.h"
|
||||
|
||||
namespace OHOS {
|
||||
@ -728,13 +730,17 @@ bool DmsRadar::NotifyDockUnfocused(const std::string& func, int32_t errCode)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DmsRadar::ClickIconDmsContinue(const std::string& func, int32_t errCode, std::string peerUdid,
|
||||
bool DmsRadar::ClickIconDmsContinue(const std::string& func, int32_t errCode, std::string peerDeviceId,
|
||||
const std::string& srcBundleName, const std::string& dstBundleName)
|
||||
{
|
||||
if (peerUdid.empty()) {
|
||||
HILOGE("peerUdid is empty.");
|
||||
return false;
|
||||
}
|
||||
std::string peerUdid = DtbschedmgrDeviceInfoStorage::GetInstance().GetUdidByNetworkId(peerDeviceId);
|
||||
|
||||
DmsBundleInfo srcBundleInfo;
|
||||
DmsBmStorage::GetInstance()->GetStorageDistributeInfo(peerDeviceId, srcBundleName, srcBundleInfo);
|
||||
|
||||
AppExecFwk::BundleInfo dstBundleInfo;
|
||||
BundleManagerInternal::GetLocalBundleInfoV9(dstBundleName, dstBundleInfo);
|
||||
|
||||
int32_t res = ERR_OK;
|
||||
StageRes stageRes = (errCode == ERR_OK) ? StageRes::STAGE_SUCC : StageRes::STAGE_FAIL;
|
||||
if (stageRes == StageRes::STAGE_SUCC) {
|
||||
@ -749,7 +755,9 @@ bool DmsRadar::ClickIconDmsContinue(const std::string& func, int32_t errCode, st
|
||||
STAGE_RES, static_cast<int32_t>(StageRes::STAGE_SUCC),
|
||||
PEER_UDID, GetAnonyUdid(peerUdid),
|
||||
APP_CALLEE, srcBundleName,
|
||||
APP_CALLER, dstBundleName);
|
||||
APP_CALLER, dstBundleName,
|
||||
LOCAL_APP_VERSION, srcBundleInfo.versionName,
|
||||
PEER_APP_VERSION, dstBundleInfo.versionName);
|
||||
} else {
|
||||
res = HiSysEventWrite(
|
||||
APP_CONTINUE_DOMAIN,
|
||||
@ -763,6 +771,8 @@ bool DmsRadar::ClickIconDmsContinue(const std::string& func, int32_t errCode, st
|
||||
PEER_UDID, GetAnonyUdid(peerUdid),
|
||||
APP_CALLEE, srcBundleName,
|
||||
APP_CALLER, dstBundleName,
|
||||
LOCAL_APP_VERSION, srcBundleInfo.versionName,
|
||||
PEER_APP_VERSION, dstBundleInfo.versionName,
|
||||
ERROR_CODE, errCode);
|
||||
}
|
||||
if (res != ERR_OK) {
|
||||
|
@ -103,7 +103,7 @@ HWTEST_F(DSchedContinueTest, DSchedContinueTest_002_1, TestSize.Level0)
|
||||
int32_t subType = CONTINUE_PULL;
|
||||
int32_t direction = CONTINUE_SINK;
|
||||
sptr<IRemoteObject> callback = nullptr;
|
||||
int32_t appVersion = 0;
|
||||
uint32_t appVersion = 0;
|
||||
auto info = DSchedContinueInfo(deviceId, bundleName, deviceId, bundleName, "");
|
||||
auto conti = std::make_shared<DSchedContinue>(subType, direction, callback, info);
|
||||
|
||||
@ -407,7 +407,7 @@ HWTEST_F(DSchedContinueTest, DSchedContinueTest_0010_1, TestSize.Level0)
|
||||
auto conti = std::make_shared<DSchedContinue>(subType, direction, callback, info);
|
||||
conti->Init();
|
||||
|
||||
int32_t appVersion = 0;
|
||||
uint32_t appVersion = 0;
|
||||
int32_t ret = conti->ExecuteContinueAbility(appVersion);
|
||||
EXPECT_NE(ret, ERR_OK);
|
||||
DTEST_LOG << "DSchedContinueTest DSchedContinueTest_0010_1 end ret:" << ret << std::endl;
|
||||
@ -644,7 +644,7 @@ HWTEST_F(DSchedContinueTest, DSchedContinueTest_0019_1, TestSize.Level0)
|
||||
|
||||
auto cmd = std::make_shared<DSchedContinueReplyCmd>();
|
||||
int32_t replyCmd = 0;
|
||||
int32_t appVersion = 0;
|
||||
uint32_t appVersion = 0;
|
||||
int32_t result = 0;
|
||||
|
||||
int32_t ret = conti->PackReplyCmd(cmd, replyCmd, appVersion, result, "");
|
||||
|
Loading…
Reference in New Issue
Block a user