1 /* 2 * Copyright (c) 2025 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 #ifndef OHOS_ABILITY_RUNTIME_ETS_APPLICATION_CONTEXT_UTILS_H 17 #define OHOS_ABILITY_RUNTIME_ETS_APPLICATION_CONTEXT_UTILS_H 18 19 #include "ani.h" 20 #include "ability_manager_client.h" 21 #include "ani_common_util.h" 22 #include "ani_common_want.h" 23 #include "application_context.h" 24 #include "ets_context_utils.h" 25 #include "ets_error_utils.h" 26 27 namespace OHOS { 28 namespace AbilityRuntime { 29 class EtsApplicationContextUtils { 30 public: EtsApplicationContextUtils(std::weak_ptr<ApplicationContext> && applicationContext)31 explicit EtsApplicationContextUtils(std::weak_ptr<ApplicationContext> &&applicationContext) 32 : applicationContext_(std::move(applicationContext)) 33 { 34 } 35 virtual ~EtsApplicationContextUtils() = default; 36 static void RestartApp(ani_env *env, ani_object aniObj, ani_object wantObj); 37 static void SetFont(ani_env *env, ani_object aniObj, ani_string font); 38 static void SetColorMode(ani_env *env, ani_object aniObj, ani_enum_item colorMode); 39 static void SetLanguage(ani_env *env, ani_object aniObj, ani_string language); 40 static void SetFontSizeScale(ani_env *env, ani_object aniObj, ani_double fontSizeScale); 41 static void ClearUpApplicationData(ani_env *env, ani_object aniObj, ani_object callback); 42 static void GetRunningProcessInformation(ani_env *env, ani_object aniObj, ani_object callback); 43 static void killAllProcesses(ani_env *env, ani_object aniObj, ani_boolean clearPageStack, ani_object callback); 44 static void PreloadUIExtensionAbility(ani_env *env, ani_object aniObj, ani_object wantObj, ani_object callback); 45 static void SetSupportedProcessCacheSync(ani_env *env, ani_object aniObj, ani_boolean value); 46 static void Clean(ani_env *env, ani_object object); 47 static EtsApplicationContextUtils* GeApplicationContext(ani_env *env, ani_object aniObj); 48 static ani_object SetApplicationContext(ani_env* aniEnv, 49 const std::shared_ptr<ApplicationContext> &applicationContext); 50 static ani_object CreateEtsApplicationContext(ani_env* aniEnv, 51 const std::shared_ptr<ApplicationContext> &applicationContext); 52 static void BindApplicationContextFunc(ani_env* aniEnv); 53 protected: 54 std::weak_ptr<ApplicationContext> applicationContext_; 55 private: 56 void OnRestartApp(ani_env *env, ani_object aniObj, ani_object wantObj); 57 void OnSetFont(ani_env *env, ani_object aniObj, ani_string font); 58 void OnSetColorMode(ani_env *env, ani_object aniObj, ani_enum_item colorMode); 59 void OnSetLanguage(ani_env *env, ani_object aniObj, ani_string language); 60 void OnSetFontSizeScale(ani_env *env, ani_object aniObj, ani_double fontSizeScale); 61 void OnClearUpApplicationData(ani_env *env, ani_object aniObj, ani_object callback); 62 void OnGetRunningProcessInformation(ani_env *env, ani_object aniObj, ani_object callback); 63 void OnkillAllProcesses(ani_env *env, ani_object aniObj, ani_boolean clearPageStack, ani_object callback); 64 void OnPreloadUIExtensionAbility(ani_env *env, ani_object aniObj, ani_object wantObj, ani_object callback); 65 void OnSetSupportedProcessCacheSync(ani_env *env, ani_object aniObj, ani_boolean value); 66 }; 67 } // namespace AbilityRuntime 68 } // namespace OHOS 69 #endif // OHOS_ABILITY_RUNTIME_ETS_APPLICATION_CONTEXT_UTILS_H