* 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 FOUNDATION_ABILITY_RUNTIME_SIMULATOR_COMMON_CONFIGURATION_H
#define FOUNDATION_ABILITY_RUNTIME_SIMULATOR_COMMON_CONFIGURATION_H
#include <mutex>
#include <set>
#include <string>
#include <algorithm>
#include <unordered_map>
#include <vector>
namespace OHOS {
namespace AAFwk {
namespace GlobalConfigurationKey {
constexpr const char* SYSTEM_LANGUAGE = "ohos.system.language";
constexpr const char* SYSTEM_HOUR = "ohos.system.hour";
constexpr const char* SYSTEM_COLORMODE = "ohos.system.colorMode";
constexpr const char* INPUT_POINTER_DEVICE = "input.pointer.device";
constexpr const char* DEVICE_TYPE = "const.build.characteristics";
}
}
namespace AppExecFwk {
namespace ConfigurationInner {
constexpr const char* CONNECTION_SYMBOL = "#";
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";
constexpr const char* DEVICE_TYPE_DEFAULT = "default";
constexpr const char* DIRECTION_VERTICAL = "vertical";
constexpr const char* DIRECTION_HORIZONTAL = "horizontal";
};
class Configuration {
public:
Configuration()
{
AddItem(AppExecFwk::ConfigurationInner::APPLICATION_DISPLAYID, "0");
AddItem(AAFwk::GlobalConfigurationKey::INPUT_POINTER_DEVICE, "true");
}
Configuration(const Configuration &other)
{
configParameter_.clear();
configParameter_ = other.configParameter_;
}
Configuration& operator=(const Configuration &other)
{
if (this == &other) {
return *this;
}
configParameter_.clear();
configParameter_ = other.configParameter_;
return *this;
}
~Configuration() {}
* @brief obtain the value according to the display number and storage key.
*
* @param key The key of the item to access configura. ej : key = GlobalConfigurationKey::SYSTEM_LANGUAGE
* Means you want to change the language part
* @param value Changed value
* @return return true if the deposit is successful, otherwise return false
*/
bool AddItem(const std::string &key, const std::string &value)
{
if (key.empty() || value.empty()) {
return false;
}
configParameter_[key] = value;
return true;
}
* @brief obtain the value according to the display number and storage key.
*
* @param key The key of the item to access configura. ej : key = GlobalConfigurationKey::SYSTEM_LANGUAGE
* Means you want to change the language part
*
* @return return empty string if not found | return val if found
*/
std::string GetItem(const std::string &key) const
{
if (key.empty()) {
return ConfigurationInner::EMPTY_STRING;
}
auto iter = configParameter_.find(key);
if (iter != configParameter_.end()) {
return iter->second;
}
return ConfigurationInner::EMPTY_STRING;
}
private:
std::unordered_map<std::string, std::string> configParameter_;
};
}
}
#endif