!15424 add window params

Merge pull request !15424 from jerry/master
This commit is contained in:
openharmony_ci
2025-07-04 02:23:57 +00:00
committed by Gitee
4 changed files with 18 additions and 30 deletions
@@ -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(),
+5 -13
View File
@@ -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;