mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 22:21:36 -04:00
@@ -157,6 +157,10 @@ class ApplicationContext {
|
||||
return this.__context_impl__.setLanguage(language);
|
||||
}
|
||||
|
||||
setFont(font) {
|
||||
return this.__context_impl__.setFont(font);
|
||||
}
|
||||
|
||||
setAutoStartup(info, callback) {
|
||||
return this.__context_impl__.setAutoStartup(info, callback);
|
||||
}
|
||||
|
||||
@@ -502,6 +502,19 @@ void ApplicationContext::SetLanguage(const std::string &language)
|
||||
}
|
||||
}
|
||||
|
||||
void ApplicationContext::SetFont(const std::string &font)
|
||||
{
|
||||
TAG_LOGD(AAFwkTag::APPKIT, "font:%{public}s.", font.c_str());
|
||||
#ifdef SUPPORT_GRAPHICS
|
||||
// Notify Window
|
||||
AppExecFwk::Configuration config;
|
||||
config.AddItem(AppExecFwk::ConfigurationInner::APPLICATION_FONT, font);
|
||||
if (appFontCallback_ != nullptr) {
|
||||
appFontCallback_(config);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void ApplicationContext::ClearUpApplicationData()
|
||||
{
|
||||
if (contextImpl_ != nullptr) {
|
||||
@@ -538,6 +551,11 @@ void ApplicationContext::RegisterAppConfigUpdateObserver(AppConfigUpdateCallback
|
||||
appConfigChangeCallback_ = appConfigChangeCallback;
|
||||
}
|
||||
|
||||
void ApplicationContext::RegisterAppFontObserver(AppConfigUpdateCallback appFontCallback)
|
||||
{
|
||||
appFontCallback_ = appFontCallback;
|
||||
}
|
||||
|
||||
std::string ApplicationContext::GetAppRunningUniqueId() const
|
||||
{
|
||||
TAG_LOGD(AAFwkTag::APPKIT, "GetAppRunningUniqueId is %{public}s.", appRunningUniqueId_.c_str());
|
||||
|
||||
@@ -666,6 +666,34 @@ napi_value JsApplicationContextUtils::OnSetLanguage(napi_env env, NapiCallbackIn
|
||||
return CreateJsUndefined(env);
|
||||
}
|
||||
|
||||
napi_value JsApplicationContextUtils::SetFont(napi_env env, napi_callback_info info)
|
||||
{
|
||||
GET_NAPI_INFO_WITH_NAME_AND_CALL(env, info, JsApplicationContextUtils, OnSetFont, APPLICATION_CONTEXT_NAME);
|
||||
}
|
||||
|
||||
napi_value JsApplicationContextUtils::OnSetFont(napi_env env, NapiCallbackInfo& info)
|
||||
{
|
||||
// only support one params
|
||||
if (info.argc == ARGC_ZERO) {
|
||||
TAG_LOGE(AAFwkTag::APPKIT, "Not enough params");
|
||||
ThrowInvalidParamError(env, "Not enough params.");
|
||||
return CreateJsUndefined(env);
|
||||
}
|
||||
auto applicationContext = applicationContext_.lock();
|
||||
if (!applicationContext) {
|
||||
TAG_LOGW(AAFwkTag::APPKIT, "applicationContext is already released");
|
||||
return CreateJsUndefined(env);
|
||||
}
|
||||
std::string font;
|
||||
if (!ConvertFromJsValue(env, info.argv[INDEX_ZERO], font)) {
|
||||
TAG_LOGE(AAFwkTag::APPKIT, "Parse font failed");
|
||||
ThrowInvalidParamError(env, "Parse param font failed, font must be string.");
|
||||
return CreateJsUndefined(env);
|
||||
}
|
||||
applicationContext->SetFont(font);
|
||||
return CreateJsUndefined(env);
|
||||
}
|
||||
|
||||
napi_value JsApplicationContextUtils::PreloadUIExtensionAbility(napi_env env, napi_callback_info info)
|
||||
{
|
||||
GET_NAPI_INFO_WITH_NAME_AND_CALL(
|
||||
@@ -1515,6 +1543,7 @@ void JsApplicationContextUtils::BindNativeApplicationContext(napi_env env, napi_
|
||||
BindNativeFunction(env, object, "killAllProcesses", MD_NAME, JsApplicationContextUtils::KillProcessBySelf);
|
||||
BindNativeFunction(env, object, "setColorMode", MD_NAME, JsApplicationContextUtils::SetColorMode);
|
||||
BindNativeFunction(env, object, "setLanguage", MD_NAME, JsApplicationContextUtils::SetLanguage);
|
||||
BindNativeFunction(env, object, "setFont", MD_NAME, JsApplicationContextUtils::SetFont);
|
||||
BindNativeFunction(env, object, "clearUpApplicationData", MD_NAME,
|
||||
JsApplicationContextUtils::ClearUpApplicationData);
|
||||
BindNativeFunction(env, object, "preloadUIExtensionAbility", MD_NAME,
|
||||
@@ -1525,10 +1554,8 @@ void JsApplicationContextUtils::BindNativeApplicationContext(napi_env env, napi_
|
||||
JsApplicationContextUtils::GetRunningProcessInformation);
|
||||
BindNativeFunction(env, object, "getCurrentAppCloneIndex", MD_NAME,
|
||||
JsApplicationContextUtils::GetCurrentAppCloneIndex);
|
||||
BindNativeFunction(env, object, "getGroupDir", MD_NAME,
|
||||
JsApplicationContextUtils::GetGroupDir);
|
||||
BindNativeFunction(env, object, "restartApp", MD_NAME,
|
||||
JsApplicationContextUtils::RestartApp);
|
||||
BindNativeFunction(env, object, "getGroupDir", MD_NAME, JsApplicationContextUtils::GetGroupDir);
|
||||
BindNativeFunction(env, object, "restartApp", MD_NAME, JsApplicationContextUtils::RestartApp);
|
||||
BindNativeFunction(env, object, "setSupportedProcessCache", MD_NAME,
|
||||
JsApplicationContextUtils::SetSupportedProcessCacheSelf);
|
||||
}
|
||||
|
||||
@@ -200,10 +200,19 @@ void OHOSApplication::SetApplicationContext(
|
||||
abilityRuntimeContext_->RegisterAppConfigUpdateObserver([applicationWptr](const Configuration &config) {
|
||||
std::shared_ptr<OHOSApplication> applicationSptr = applicationWptr.lock();
|
||||
if (applicationSptr == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::APPKIT, "application is nullptr.");
|
||||
return;
|
||||
}
|
||||
applicationSptr->OnConfigurationUpdated(config);
|
||||
});
|
||||
abilityRuntimeContext_->RegisterAppFontObserver([applicationWptr](const Configuration &config) {
|
||||
std::shared_ptr<OHOSApplication> applicationSptr = applicationWptr.lock();
|
||||
if (applicationSptr == nullptr) {
|
||||
TAG_LOGE(AAFwkTag::APPKIT, "application is nullptr.");
|
||||
return;
|
||||
}
|
||||
applicationSptr->OnFontUpdated(config);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -537,6 +546,22 @@ void OHOSApplication::OnConfigurationUpdated(Configuration config)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @brief Will be Called when the application font of the device changes.
|
||||
*
|
||||
* @param config Indicates the new Configuration object.
|
||||
*/
|
||||
void OHOSApplication::OnFontUpdated(Configuration config)
|
||||
{
|
||||
#ifdef SUPPORT_GRAPHICS
|
||||
// Notify Window
|
||||
TAG_LOGD(AAFwkTag::APPKIT, "Update configuration for all window.");
|
||||
auto diffConfiguration = std::make_shared<AppExecFwk::Configuration>(config);
|
||||
Rosen::Window::UpdateConfigurationForAll(diffConfiguration);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @brief Called when the system has determined to trim the memory, for example,
|
||||
|
||||
@@ -43,6 +43,7 @@ constexpr const char* EMPTY_STRING = "";
|
||||
constexpr const char* APPLICATION_DIRECTION = "ohos.application.direction";
|
||||
constexpr const char* APPLICATION_DENSITYDPI = "ohos.application.densitydpi";
|
||||
constexpr const char* APPLICATION_DISPLAYID = "ohos.application.displayid";
|
||||
constexpr const char* APPLICATION_FONT = "ohos.application.font";
|
||||
|
||||
constexpr const char* COLOR_MODE_LIGHT = "light";
|
||||
constexpr const char* COLOR_MODE_DARK = "dark";
|
||||
|
||||
@@ -91,6 +91,7 @@ public:
|
||||
void SwitchArea(int mode) override;
|
||||
void SetColorMode(int32_t colorMode);
|
||||
void SetLanguage(const std::string &language);
|
||||
void SetFont(const std::string &font);
|
||||
void ClearUpApplicationData();
|
||||
int GetArea() override;
|
||||
std::shared_ptr<AppExecFwk::Configuration> GetConfiguration() const override;
|
||||
@@ -110,6 +111,7 @@ public:
|
||||
bool GetApplicationInfoUpdateFlag() const;
|
||||
void SetApplicationInfoUpdateFlag(bool flag);
|
||||
void RegisterAppConfigUpdateObserver(AppConfigUpdateCallback appConfigChangeCallback);
|
||||
void RegisterAppFontObserver(AppConfigUpdateCallback appFontCallback);
|
||||
|
||||
std::string GetAppRunningUniqueId() const;
|
||||
void SetAppRunningUniqueId(const std::string &appRunningUniqueId);
|
||||
@@ -128,6 +130,7 @@ private:
|
||||
std::recursive_mutex applicationStateCallbackLock_;
|
||||
bool applicationInfoUpdateFlag_ = false;
|
||||
AppConfigUpdateCallback appConfigChangeCallback_ = nullptr;
|
||||
AppConfigUpdateCallback appFontCallback_ = nullptr;
|
||||
std::string appRunningUniqueId_;
|
||||
int32_t appIndex_ = 0;
|
||||
int32_t appMode_ = 0;
|
||||
|
||||
@@ -157,12 +157,19 @@ public:
|
||||
void SetColorMode(int colorMode);
|
||||
|
||||
/**
|
||||
* @brief Set color mode
|
||||
* @brief Set language
|
||||
*
|
||||
* @param colorMode color mode.
|
||||
* @param language language.
|
||||
*/
|
||||
void SetLanguage(std::string language);
|
||||
|
||||
/**
|
||||
* @brief Set font
|
||||
*
|
||||
* @param Font font.
|
||||
*/
|
||||
void SetFont(std::string font);
|
||||
|
||||
/**
|
||||
* @brief clear the application data by app self
|
||||
*/
|
||||
|
||||
@@ -94,6 +94,7 @@ public:
|
||||
napi_value OnGetRunningProcessInformation(napi_env env, NapiCallbackInfo& info);
|
||||
napi_value OnSetColorMode(napi_env env, NapiCallbackInfo& info);
|
||||
napi_value OnSetLanguage(napi_env env, NapiCallbackInfo& info);
|
||||
napi_value OnSetFont(napi_env env, NapiCallbackInfo& info);
|
||||
napi_value OnClearUpApplicationData(napi_env env, NapiCallbackInfo& info);
|
||||
napi_value OnRestartApp(napi_env env, NapiCallbackInfo& info);
|
||||
napi_value OnSetSupportedProcessCacheSelf(napi_env env, NapiCallbackInfo& info);
|
||||
@@ -114,6 +115,7 @@ public:
|
||||
static napi_value KillProcessBySelf(napi_env env, napi_callback_info info);
|
||||
static napi_value SetColorMode(napi_env env, napi_callback_info info);
|
||||
static napi_value SetLanguage(napi_env env, napi_callback_info info);
|
||||
static napi_value SetFont(napi_env env, napi_callback_info info);
|
||||
static napi_value ClearUpApplicationData(napi_env env, napi_callback_info info);
|
||||
static napi_value GetRunningProcessInformation(napi_env env, napi_callback_info info);
|
||||
static napi_value CreateJsApplicationContext(napi_env env);
|
||||
|
||||
@@ -176,6 +176,14 @@ public:
|
||||
* @param config Indicates the new Configuration object.
|
||||
*/
|
||||
virtual void OnConfigurationUpdated(Configuration config);
|
||||
|
||||
/**
|
||||
*
|
||||
* @brief Will be Called when the application font of the device changes.
|
||||
*
|
||||
* @param config Indicates the new Configuration object.
|
||||
*/
|
||||
virtual void OnFontUpdated(Configuration config);
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user