mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 12:43:16 -04:00
@@ -232,15 +232,15 @@ bool UnwrapStartOptions(napi_env env, napi_value param, AAFwk::StartOptions &sta
|
||||
}
|
||||
}
|
||||
|
||||
Rosen::StartAnimationOptions animationOptions;
|
||||
if (Rosen::ConvertStartAnimationOptionsFromJsValue(env, param, animationOptions)) {
|
||||
startOptions.animationOptions_ = std::make_shared<Rosen::StartAnimationOptions>(animationOptions);
|
||||
}
|
||||
|
||||
Rosen::StartAnimationSystemOptions animationSystemOptions;
|
||||
if (Rosen::ConvertStartAnimationSystemOptionsFromJsValue(env, param, animationSystemOptions)) {
|
||||
startOptions.animationSystemOptions_ =
|
||||
std::make_shared<Rosen::StartAnimationSystemOptions>(animationSystemOptions);
|
||||
bool hasWindowCreateParams = false;
|
||||
napi_has_named_property(env, param, "windowCreateParams", &hasWindowCreateParams);
|
||||
if (hasWindowCreateParams) {
|
||||
napi_value windowJsObject = nullptr;
|
||||
napi_get_named_property(env, param, "windowCreateParams", &windowJsObject);
|
||||
Rosen::WindowCreateParams windowCreateParams;
|
||||
if (Rosen::ConvertWindowCreateParamsFromJsValue(env, windowJsObject, windowCreateParams)) {
|
||||
startOptions.windowCreateParams_ = std::make_shared<Rosen::WindowCreateParams>(windowCreateParams);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -24,8 +24,7 @@
|
||||
|
||||
namespace OHOS {
|
||||
namespace Rosen {
|
||||
struct StartAnimationOptions;
|
||||
struct StartAnimationSystemOptions;
|
||||
struct WindowCreateParams;
|
||||
}
|
||||
|
||||
namespace AbilityRuntime {
|
||||
@@ -61,8 +60,7 @@ public:
|
||||
std::shared_ptr<StartWindowOption> startWindowOption = nullptr;
|
||||
std::vector<AppExecFwk::SupportWindowMode> supportWindowModes_;
|
||||
std::string requestId_;
|
||||
std::shared_ptr<Rosen::StartAnimationOptions> animationOptions_ = nullptr;
|
||||
std::shared_ptr<Rosen::StartAnimationSystemOptions> animationSystemOptions_ = nullptr;
|
||||
std::shared_ptr<Rosen::WindowCreateParams> windowCreateParams_ = nullptr;
|
||||
|
||||
StartOptions() = default;
|
||||
~StartOptions() = default;
|
||||
|
||||
@@ -1360,10 +1360,9 @@ int UIAbilityLifecycleManager::NotifySCBPendingActivation(sptr<SessionInfo> &ses
|
||||
return ERR_INVALID_VALUE;
|
||||
}
|
||||
TAG_LOGD(AAFwkTag::ABILITYMGR, "windowTop=%{public}d,windowHeight=%{public}d,"
|
||||
"windowWidth=%{public}d,windowMode=%{public}d,supportWindowModes.size=%{public}zu,specifiedFlag=%{public}s",
|
||||
"windowMode=%{public}d,supportWindowModes.size=%{public}zu,specifiedFlag=%{public}s",
|
||||
(sessionInfo->want).GetIntParam(Want::PARAM_RESV_WINDOW_TOP, 0),
|
||||
(sessionInfo->want).GetIntParam(Want::PARAM_RESV_WINDOW_HEIGHT, 0),
|
||||
(sessionInfo->want).GetIntParam(Want::PARAM_RESV_WINDOW_WIDTH, 0),
|
||||
(sessionInfo->want).GetIntParam(Want::PARAM_RESV_WINDOW_MODE, 0),
|
||||
(sessionInfo->supportWindowModes).size(), sessionInfo->specifiedFlag.c_str());
|
||||
bool hasStartWindowOption = (sessionInfo->startWindowOption != nullptr);
|
||||
@@ -1371,8 +1370,7 @@ int UIAbilityLifecycleManager::NotifySCBPendingActivation(sptr<SessionInfo> &ses
|
||||
std::string backgroundColor =
|
||||
hasStartWindowOption ? sessionInfo->startWindowOption->startWindowBackgroundColor : "";
|
||||
sessionInfo->hideStartWindow = abilityRequest.hideStartWindow;
|
||||
sessionInfo->animationOptions = abilityRequest.startOptions.animationOptions_;
|
||||
sessionInfo->animationSystemOptions = abilityRequest.startOptions.animationSystemOptions_;
|
||||
sessionInfo->windowCreateParams = abilityRequest.startOptions.windowCreateParams_;
|
||||
TAG_LOGI(AAFwkTag::ABILITYMGR, "appCloneIndex:%{public}d, instanceKey:%{public}s, "
|
||||
"hasStartWindow:%{public}d, backgroundColor:%{public}s, hideStartWindow: %{public}d",
|
||||
(sessionInfo->want).GetIntParam(Want::PARAM_APP_CLONE_INDEX_KEY, 0), sessionInfo->instanceKey.c_str(),
|
||||
|
||||
@@ -51,8 +51,7 @@ StartOptions::StartOptions(const StartOptions &other)
|
||||
startWindowOption = other.startWindowOption;
|
||||
supportWindowModes_ = other.supportWindowModes_;
|
||||
requestId_ = other.requestId_;
|
||||
animationOptions_ = other.animationOptions_;
|
||||
animationSystemOptions_ = other.animationSystemOptions_;
|
||||
windowCreateParams_ = other.windowCreateParams_;
|
||||
}
|
||||
|
||||
StartOptions &StartOptions::operator=(const StartOptions &other)
|
||||
@@ -83,8 +82,7 @@ StartOptions &StartOptions::operator=(const StartOptions &other)
|
||||
startWindowOption = other.startWindowOption;
|
||||
supportWindowModes_ = other.supportWindowModes_;
|
||||
requestId_ = other.requestId_;
|
||||
animationOptions_ = other.animationOptions_;
|
||||
animationSystemOptions_ = other.animationSystemOptions_;
|
||||
windowCreateParams_ = other.windowCreateParams_;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
@@ -123,8 +121,7 @@ bool StartOptions::ReadFromParcel(Parcel &parcel)
|
||||
supportWindowModes_.emplace_back(AppExecFwk::SupportWindowMode(parcel.ReadInt32()));
|
||||
}
|
||||
requestId_ = parcel.ReadString();
|
||||
animationOptions_.reset(parcel.ReadParcelable<Rosen::StartAnimationOptions>());
|
||||
animationSystemOptions_.reset(parcel.ReadParcelable<Rosen::StartAnimationSystemOptions>());
|
||||
windowCreateParams_.reset(parcel.ReadParcelable<Rosen::WindowCreateParams>());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -190,13 +187,8 @@ bool StartOptions::Marshalling(Parcel &parcel) const
|
||||
|
||||
bool StartOptions::MarshallingTwo(Parcel &parcel) const
|
||||
{
|
||||
if (!parcel.WriteParcelable(animationOptions_.get())) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "Write animationOptions_ failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!parcel.WriteParcelable(animationSystemOptions_.get())) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "Write animationSystemOptions failed");
|
||||
if (!parcel.WriteParcelable(windowCreateParams_.get())) {
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "Write windowCreateParams_ failed");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user