mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 22:21:36 -04:00
be9784b63a
Signed-off-by: zhangyuhang72 <zhangyuhang72@huawei.com> Change-Id: Icac060d7a4867b4abbbc6aa8019d4c8badef8e5a
104 lines
4.8 KiB
C++
104 lines
4.8 KiB
C++
/*
|
|
* Copyright (c) 2023 Huawei Device Co., Ltd.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef OHOS_ABILITY_RUNTIME_APP_UTILS_H
|
|
#define OHOS_ABILITY_RUNTIME_APP_UTILS_H
|
|
|
|
#include <string>
|
|
|
|
#include "nocopyable.h"
|
|
|
|
namespace OHOS {
|
|
namespace AAFwk {
|
|
constexpr const int32_t DEFAULT_MAX_EXT_PER_PROC = 10;
|
|
constexpr const int32_t DEFAULT_MAX_EXT_PER_DEV = 100;
|
|
constexpr const int32_t DEFAULT_INVALID_VALUE = -1;
|
|
constexpr const int32_t DEFAULT_MAX_CHILD_PROCESS = 0;
|
|
template<typename T>
|
|
class DeviceConfiguration {
|
|
public:
|
|
bool isLoaded = false;
|
|
T value;
|
|
};
|
|
|
|
class AppUtils {
|
|
public:
|
|
static AppUtils &GetInstance();
|
|
~AppUtils();
|
|
bool IsLauncher(const std::string &bundleName) const;
|
|
bool IsLauncherAbility(const std::string &abilityName) const;
|
|
bool IsInheritWindowSplitScreenMode();
|
|
bool IsSupportAncoApp();
|
|
int32_t GetTimeoutUnitTimeRatio();
|
|
bool IsSelectorDialogDefaultPossion();
|
|
bool IsStartSpecifiedProcess();
|
|
bool IsUseMultiRenderProcess();
|
|
bool IsLimitMaximumOfRenderProcess();
|
|
bool IsGrantPersistUriPermission();
|
|
bool IsStartOptionsWithAnimation();
|
|
bool IsMultiProcessModel();
|
|
bool IsStartOptionsWithProcessOptions();
|
|
bool EnableMoveUIAbilityToBackgroundApi();
|
|
bool IsLaunchEmbededUIAbility();
|
|
bool IsSupportNativeChildProcess();
|
|
bool IsAllowResidentInExtremeMemory(const std::string& bundleName, const std::string& abilityName = "");
|
|
bool IsAllowNativeChildProcess(const std::string& bundleName);
|
|
int32_t GetLimitMaximumExtensionsPerProc();
|
|
int32_t GetLimitMaximumExtensionsPerDevice();
|
|
std::string GetCacheExtensionTypeList();
|
|
bool IsAllowStartAbilityWithoutCallerToken(const std::string& bundleName, const std::string& abilityName);
|
|
std::string GetBrokerDelegateBundleName();
|
|
int32_t GetCollaboratorBrokerUID();
|
|
int32_t GetCollaboratorBrokerReserveUID();
|
|
int32_t MaxChildProcess();
|
|
|
|
private:
|
|
void LoadResidentProcessInExtremeMemory();
|
|
void LoadAllowNativeChildProcessApps();
|
|
void LoadStartAbilityWithoutCallerToken();
|
|
AppUtils();
|
|
volatile bool isSceneBoard_ = false;
|
|
volatile DeviceConfiguration<bool> isInheritWindowSplitScreenMode_ = {false, true};
|
|
volatile DeviceConfiguration<bool> isSupportAncoApp_ = {false, false};
|
|
volatile DeviceConfiguration<int32_t> timeoutUnitTimeRatio_ = {false, 1};
|
|
volatile DeviceConfiguration<bool> isSelectorDialogDefaultPossion_ = {false, true};
|
|
volatile DeviceConfiguration<bool> isStartSpecifiedProcess_ = {false, false};
|
|
volatile DeviceConfiguration<bool> isUseMultiRenderProcess_ = {false, true};
|
|
volatile DeviceConfiguration<bool> isLimitMaximumOfRenderProcess_ = {false, true};
|
|
volatile DeviceConfiguration<bool> isGrantPersistUriPermission_ = {false, false};
|
|
volatile DeviceConfiguration<bool> isStartOptionsWithAnimation_ = {false, false};
|
|
volatile DeviceConfiguration<bool> isMultiProcessModel_ = {false, false};
|
|
volatile DeviceConfiguration<bool> isStartOptionsWithProcessOptions_ = {false, false};
|
|
volatile DeviceConfiguration<bool> enableMoveUIAbilityToBackgroundApi_ = {false, true};
|
|
volatile DeviceConfiguration<bool> isLaunchEmbededUIAbility_ = {false, false};
|
|
volatile DeviceConfiguration<bool> isSupportNativeChildProcess_ = {false, false};
|
|
DeviceConfiguration<std::vector<std::pair<std::string, std::string>>>
|
|
residentProcessInExtremeMemory_ = {false, {}};
|
|
DeviceConfiguration<std::vector<std::string>>
|
|
allowStartNativeProcessApps_ = {false, {}};
|
|
volatile DeviceConfiguration<int32_t> limitMaximumExtensionsPerProc_ = {false, DEFAULT_MAX_EXT_PER_PROC};
|
|
volatile DeviceConfiguration<int32_t> limitMaximumExtensionsPerDevice_ = {false, DEFAULT_MAX_EXT_PER_DEV};
|
|
DeviceConfiguration<std::vector<std::pair<std::string, std::string>>>
|
|
startAbilityWithoutCallerToken_ = {false, {}};
|
|
DeviceConfiguration<std::string> brokerDelegateBundleName_ = {false, ""};
|
|
volatile DeviceConfiguration<int32_t> collaboratorBrokerUid_ = {false, DEFAULT_INVALID_VALUE};
|
|
volatile DeviceConfiguration<int32_t> collaboratorBrokerReserveUid_ = {false, DEFAULT_INVALID_VALUE};
|
|
volatile DeviceConfiguration<int32_t> maxChildProcess_ = {false, DEFAULT_MAX_CHILD_PROCESS};
|
|
DISALLOW_COPY_AND_MOVE(AppUtils);
|
|
};
|
|
} // namespace AAFwk
|
|
} // namespace OHOS
|
|
#endif // OHOS_ABILITY_RUNTIME_APP_UTILS_H
|