void OnLaunched(const Watch& watch) override {
Watch& w = const_cast<Watch&>(watch);
- cb_.watch_holder_lifecycle_added_cb(reinterpret_cast<watch_h>(&w), cb_data_);
+ cb_.watch_holder_lifecycle_launched_cb(reinterpret_cast<watch_h>(&w), cb_data_);
}
void OnDead(const Watch& watch) override {
return extra_data_;
}
+void Watch::SetFaulted(bool faulted) {
+ is_faulted = faulted;
+}
+
void Watch::OnEvasAdded(const std::string& appId, const std::string& instId,
int pid, const screen_connector::EvasObject& image) {
current_image_ = image.GetRaw();
void BlockUpdate(bool enable);
private:
+ friend class WatchHolder;
void OnEvasAdded(const std::string& appId, const std::string& instId,
int pid, const screen_connector::EvasObject& image) override;
void OnEvasRemoved(const std::string& appId, const std::string& instId,
void OnEvasChanged(const std::string& appId, const std::string& instId,
int pid, const screen_connector::EvasObject& image) override;
static void OnAuxMsg(void *data, Evas_Object *o, void *ev_info);
+ void SetFaulted(bool is_faulted);
private:
int pid_ = 0;
Evas_Object* current_image_ = nullptr;
Evas_Object* bind_win_ = nullptr;
tizen_base::Bundle extra_data_;
+ bool is_faulted = false;
};
} // namespace watch_holder
int WatchHolder::OnDeadSignal(const char *endpoint, aul_app_com_result_e e,
bundle *envelope, void *user_data) {
+ WatchHolder* holder = (WatchHolder*)user_data;
+ Bundle data(envelope, false, false);
+ string appid = data.GetString(AUL_K_APPID);
+ string pid = data.GetString(AUL_K_PID);
+ string is_faulted = data.GetString(AUL_K_IS_FAULT);
+ list<shared_ptr<Watch>>::iterator it;
+ for (it = holder->stack_.begin(); it != holder->stack_.end(); ++it) {
+ if ((*it)->GetAppId() == appid &&
+ pid == to_string((*it)->GetPid())) {
+ (*it)->SetFaulted(is_faulted == "true");
+ holder->OnDead(**it);
+ break;
+ }
+ }
+ holder->stack_.erase(it);
+ LOGW("DEAD DONE (%s)", appid.c_str());
return 0;
}
} else {
holder->stack_.push_back(make_shared<Watch>(watch_appid, holder->win_, holder));
}
- LOGE("LAUNCH DONE (%s)", viewer_appid.c_str());
+ holder->OnLaunched(*holder->GetCurrent());
+ LOGI("LAUNCH DONE (%s)", viewer_appid.c_str());
return 0;
}
}
static void __watch_launched_cb(watch_h watch, void *data) {
- DbgPrint("watch launched");
+ char* appid = NULL;
+ watch_get_appid(watch, &appid);
+ DbgPrint("watch(%s) launched", appid);
}
static void __watch_dead_cb(watch_h watch, bool is_faulted, void *data) {
- DbgPrint("watch dead");
+ char* appid = NULL;
+ watch_get_appid(watch, &appid);
+ DbgPrint("watch(%s) dead (%d)", appid, is_faulted);
}
static void __watch_added_cb(watch_h watch, void *data) {
lifecycle.watch_holder_lifecycle_ambient_changed_cb = __watch_ambient_changed_cb;
lifecycle.watch_holder_lifecycle_ambient_event_cb = __watch_ambient_event_cb;
+ if (__watch_holder != NULL)
+ watch_holder_destroy(__watch_holder);
+
ret = watch_holder_create(s_info.win, lifecycle, &s_info, &__watch_holder);
if (ret != WATCH_HOLDER_ERROR_NONE) {
ErrPrint("Watch Holder Error:%d", ret);