#include <bundle_cpp.h>
#include <aul_app_com.h>
+#include "watch_holder_base.hh"
#include "watch.hh"
-#include "common.hh"
#include "ambient_listener.hh"
namespace watch_holder {
-class EXPORT_API WatchHolder : public Watch::IEvent, public AmbientListener {
+class EXPORT_API WatchHolder : public WatchHolderBase {
public:
WatchHolder(Evas_Object* win);
virtual ~WatchHolder();
- int Launch(std::string appid, bool background, bundle* extra);
- void EnableRendering();
- void DisableRendering(int timeout);
- const std::list<std::shared_ptr<Watch>>& GetStack() const;
- std::shared_ptr<Watch> GetCurrent() const;
- virtual void OnLaunched(const Watch& watch) = 0;
- virtual void OnDead(const Watch& watch) = 0;
- virtual void OnAmbientChanged(bool enter, tizen_base::Bundle& extra) override;
- virtual void OnAmbientEvent(EventType ev, std::string sender,
- tizen_base::Bundle extra) override;
- protected:
- virtual std::shared_ptr<Watch> CreateWatch(std::string appid,
- Evas_Object* viewer_win, Watch::IEvent* listener, bool mock = false);
- virtual std::shared_ptr<Watch> CreateWatch(int rid, std::string id,
- std::string appid, Evas_Object* viewer_win, Watch::IEvent* listener,
- bool mock = false);
- virtual std::shared_ptr<Watch> CreateWatch(std::string appid,
- Evas_Object* viewer_win, tizen_base::Bundle extra,
- Watch::IEvent* listener, bool mock = false);
- virtual std::shared_ptr<Watch> CreateWatch(int rid, std::string id,
- std::string appid, Evas_Object* viewer_win, tizen_base::Bundle extra,
- Watch::IEvent* listener, bool mock = false);
+ std::shared_ptr<Watch> Cast(std::shared_ptr<WatchBase> w_base);
+ const Watch& Cast(const WatchBase& w_base);
- private:
- static int OnDeadSignal(const char *endpoint, aul_app_com_result_e e,
- bundle *envelope, void *user_data);
- static int OnLaunchSignal(const char *endpoint,
- aul_app_com_result_e res, bundle *envelope, void *user_data);
+ protected:
+ std::shared_ptr<WatchBase> CreateWatch(std::string appid,
+ bool mock = false) override;
+ std::shared_ptr<WatchBase> CreateWatch(int rid, std::string id,
+ std::string appid, bool mock = false) override;
+ std::shared_ptr<WatchBase> CreateWatch(std::string appid,
+ tizen_base::Bundle extra, bool mock = false) override;
+ std::shared_ptr<WatchBase> CreateWatch(int rid, std::string id,
+ std::string appid, tizen_base::Bundle extra, bool mock = false) override;
private:
- std::string appid_;
- Evas_Object* win_;
- std::map<std::string, tizen_base::Bundle> extra_map_;
- std::list<std::shared_ptr<Watch>> stack_;
- aul_app_com_connection_h launch_signal_conn_ = nullptr;
- aul_app_com_connection_h dead_signal_conn_ = nullptr;
- aul_app_com_connection_h ambient_changed_signal_conn_ = nullptr;
+ Evas_Object* viewer_win_;
};
} // namespace watch_holder