cb_.watch_holder_lifecycle_removed_cb(reinterpret_cast<watch_h>(&w), cb_data_);
}
+ void OnAmbientChanged(bool enter, tizen_base::Bundle& extra) override {
+ cb_.watch_holder_lifecycle_ambient_changed_cb(enter, extra.GetHandle(), cb_data_);
+ }
+
watch_holder_lifecycle_st cb_;
void* cb_data_;
};
void (*watch_holder_lifecycle_removed_cb)(watch_h watch, void *data);
void (*watch_holder_lifecycle_updated_cb)(watch_h watch, Evas_Object *image, void *data);
void (*watch_holder_lifecycle_bound_cb)(watch_h watch, void *data);
+ void (*watch_holder_lifecycle_ambient_changed_cb)(bool enter, bundle *extra, void *data);
} watch_holder_lifecycle_st;
typedef void (*watch_holder_foreach_cb)(watch_h watch, void *data);
using namespace std;
namespace watch_holder {
-WatchHolder::~WatchHolder() = default;
+WatchHolder::~WatchHolder() {
+ if (dead_signal_conn_)
+ aul_app_com_leave(dead_signal_conn_);
+ if (launch_signal_conn_)
+ aul_app_com_leave(launch_signal_conn_);
+};
+
WatchHolder::WatchHolder(Evas_Object* win) : win_(win) {
if (aul_app_com_create("watch.dead", nullptr,
OnDeadSignal, this, &dead_signal_conn_) != AUL_R_OK) {
return stack_.back();
}
+void WatchHolder::OnAmbientChanged(bool enter, Bundle& extra) {
+}
+
int WatchHolder::OnDeadSignal(const char *endpoint, aul_app_com_result_e e,
bundle *envelope, void *user_data) {
return 0;
#include "watch.hh"
#include "common.hh"
+#include "ambient_listener.hh"
namespace watch_holder {
-class EXPORT_API WatchHolder : public Watch::IEvent {
+class EXPORT_API WatchHolder : public Watch::IEvent, public AmbientListener {
public:
WatchHolder(Evas_Object* win);
virtual ~WatchHolder() = 0;
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;
private:
static int OnDeadSignal(const char *endpoint, aul_app_com_result_e e,
std::list<std::shared_ptr<Watch>> stack_;
aul_app_com_connection_h launch_signal_conn_;
aul_app_com_connection_h dead_signal_conn_;
+ aul_app_com_connection_h ambient_changed_signal_conn_;
};
} // namespace watch_holder
return stack_.back();
}
+void WatchMirror::OnAmbientChanged(bool enter, Bundle& extra) {
+}
+
void WatchMirror::OnChanged(const ISharableWatch& watch) {
}
#include "common.hh"
#include "watch.hh"
+#include "ambient_listener.hh"
namespace watch_holder {
-class EXPORT_API WatchMirror : public Watch::IEvent {
+class EXPORT_API WatchMirror : public Watch::IEvent, public AmbientListener {
public:
WatchMirror(Evas_Object* win);
int Listen();
virtual void OnAdded(const ISharableWatch& watch);
virtual void OnUpdated(const ISharableWatch& watch);
virtual void OnRemoved(const ISharableWatch& watch);
+ virtual void OnAmbientChanged(bool enter, tizen_base::Bundle& extra) override;
private:
std::string GetUUID(std::string rid) const;
DbgPrint("watch bound");
}
+static void __watch_ambient_changed_cb(bool enter, bundle *extra, void *data) {
+ DbgPrint("watch ambient changed (%d)", enter);
+}
+
static void _app_control(app_control_h service, void *data)
{
char *widget_id = NULL;
lifecycle.watch_holder_lifecycle_removed_cb = __watch_removed_cb;
lifecycle.watch_holder_lifecycle_updated_cb = __watch_updated_cb;
lifecycle.watch_holder_lifecycle_bound_cb = __watch_bound_cb;
+ lifecycle.watch_holder_lifecycle_ambient_changed_cb = __watch_ambient_changed_cb;
ret = watch_holder_create(s_info.win, lifecycle, &s_info, &__watch_holder);
if (ret != WATCH_HOLDER_ERROR_NONE) {