Add OnAmbientChanged feature 94/225894/2
authorhyunho <hhstark.kang@samsung.com>
Tue, 25 Feb 2020 07:46:32 +0000 (16:46 +0900)
committerHyunho Kang <hhstark.kang@samsung.com>
Tue, 25 Feb 2020 07:56:02 +0000 (07:56 +0000)
Change-Id: I5b5263e12d489dcb1b101eee44ea7b5f8ca17d69
Signed-off-by: hyunho <hhstark.kang@samsung.com>
watch-holder/api/watch_holder.cc
watch-holder/api/watch_holder.h
watch-holder/src/watch_holder.cc
watch-holder/src/watch_holder.hh
watch-holder/src/watch_mirror.cc
watch-holder/src/watch_mirror.hh
widget_viewer_sdk/src/main.c

index fb677280dd1ce6fcd5b04fe9ba2f6e2cba98b6c2..45985246bb85b8f5ef06784a571c0908fef5cefb 100644 (file)
@@ -61,6 +61,10 @@ struct watch_holder_s : public WatchHolder {
     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_;
 };
index 0bc204bc68f46f34359d38c2eb58708bf528a778..09d1dd319c6abe81e8a24328167a917a6b554093 100644 (file)
@@ -36,6 +36,7 @@ typedef struct {
        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);
index c003ba2f43a919177b1e6245986cbd2c682e5e8a..a5ce772aef73ca38891fd11b2782b50f9a05bc9a 100644 (file)
@@ -33,7 +33,13 @@ using namespace tizen_base;
 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) {
@@ -89,6 +95,9 @@ std::shared_ptr<Watch> WatchHolder::GetCurrent() const {
   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;
index dbc2b942a9e7bb0ee0c73c5edac062ecfc0ce279..5ab3bef62bf9eabad1b71c4e47e4632e1a25e1b7 100644 (file)
 
 #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;
@@ -41,6 +42,7 @@ class EXPORT_API WatchHolder : public Watch::IEvent {
   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,
@@ -54,6 +56,7 @@ class EXPORT_API WatchHolder : public Watch::IEvent {
   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
index 0631a0ab3d3685f8672b04fd3721a9cc29168b68..a1fa6cbe1ce3aae0836c4ef12f75aae819711e50 100644 (file)
@@ -76,6 +76,9 @@ std::shared_ptr<ISharableWatch> WatchMirror::GetCurrent() const {
   return stack_.back();
 }
 
+void WatchMirror::OnAmbientChanged(bool enter, Bundle& extra) {
+}
+
 void WatchMirror::OnChanged(const ISharableWatch& watch) {
 }
 
index 4b74a04a5e80320c8ed7e4ca5d3e1bacaf730a54..e5eef527286614da7eb1f0d7aa88aef8b1d8d5ca 100644 (file)
 
 #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();
@@ -41,6 +42,7 @@ class EXPORT_API WatchMirror : public Watch::IEvent {
   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;
index b1567a1d441095a446d5ad9d961efe2b8dd3a941..763aa5484c5c853e26a7d7e09cc0adce80c72341 100644 (file)
@@ -812,6 +812,10 @@ static void __watch_bound_cb(watch_h watch, void *data) {
        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;
@@ -862,6 +866,7 @@ static void _app_control(app_control_h service, void *data)
                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) {