#include <set>
#include "hs-helper.h"
#include "hs-config.h"
+#include "hs-clientmanager.h"
struct app_recover_info {
std::string recover_type;
- std::string area;
bool visibility;
+ std::string after;
};
-class HS_AppRecover {
+class HS_AppRecover : public listener_interface {
public:
- HS_AppRecover() = default;
+ HS_AppRecover() : listener_interface(std::string("hs_apprecover")) {}
~HS_AppRecover() = default;
HS_AppRecover(HS_AppRecover const &) = delete;
HS_AppRecover &operator=(HS_AppRecover const &) = delete;
HS_AppRecover(HS_AppRecover &&) = delete;
HS_AppRecover &operator=(HS_AppRecover &&) = delete;
- void startRecovery(afb_api_t api, recover_map &map);
- bool registerRecoveredApp(std::string &appid);
+ static HS_AppRecover* instance(void);
+ int init(afb_api_t api);
+ void setRecoverMap(recover_map &map) {recover_app_map.swap(map);}
+ void startRecovery(afb_api_t api);
+ void screenUpdated(struct json_object *obj);
+ void notify(afb_api_t api, std::string appid = "");
private:
+ void startApplication(afb_api_t api, const std::string &appid);
+ void updateLastmode(std::set<std::string> &set);
+ bool isHomescreenApp(const std::string &appid) const;
+ const std::string key_ids = "ids";
+ static HS_AppRecover* me;
std::map<std::string, struct app_recover_info> m_recover_apps_list;
std::set<std::string> m_recovering_set;
+ std::map<std::string, std::set<std::string>> m_wait_recover_set;
+ std::set<std::string> m_lastmode_list;
+ recover_map recover_app_map;
};
#endif // HOMESCREEN_APPRECOVER_H
\ No newline at end of file