1 
2 #pragma once
3 
4 #include <string>
5 #include <string_view>
6 
7 namespace pixel_modem {
8 
9 // Used to set boolean parameters to true / false
10 inline constexpr std::string_view kTruthString = "true";
11 inline constexpr std::string_view kFalseString = "false";
12 
13 /**
14  * @brief Interface for interacting with Android System Properties.
15  */
16 class AndroidPropertyManager {
17  public:
18   virtual ~AndroidPropertyManager() = default;
19   virtual bool GetBoolProperty(const std::string& key, bool default_value) = 0;
20   virtual std::string GetProperty(const std::string& key,
21                                   const std::string& default_value) = 0;
22   virtual int GetIntProperty(const std::string& key, int default_value) = 0;
23   virtual bool SetProperty(const std::string& key,
24                            const std::string& value) = 0;
25 };
26 
27 }  // namespace pixel_modem
28