int Complication::SetCandidates(
std::list<std::unique_ptr<Bundle>> candidates_list) {
- UpdateCandidatesInfo();
- return WATCHFACE_COMPLICATION_ERROR_NONE;
+ return UpdateCandidatesInfo();
}
std::list<std::unique_ptr<Bundle>> const& Complication::GetCandidates() const {
}
int Complication::Impl::UpdateLastDataFields() {
+ int ret;
+
last_provider_id_ = cur_provider_id_;
last_type_ = cur_type_;
last_data_idx_ = cur_data_idx_;
- LoadPeriod();
- LoadLabel();
- return WATCHFACE_COMPLICATION_ERROR_NONE;
+ ret = LoadPeriod();
+ if (ret != WATCHFACE_COMPLICATION_ERROR_NONE)
+ return ret;
+ ret = LoadLabel();
+ return ret;;
}
int Complication::Impl::LoadLabel() {
if (ret != WATCHFACE_COMPLICATION_ERROR_NONE)
return ret;
- impl_->UpdateLastDataFields();
+ ret = impl_->UpdateLastDataFields();
+ if (ret != WATCHFACE_COMPLICATION_ERROR_NONE)
+ return ret;
+
LOGI("update last data idx : %d", impl_->last_data_idx_);
return WATCHFACE_COMPLICATION_ERROR_NONE;
}
impl_->cur_provider_id_, impl_->cur_type_);
if (idx != -1) {
impl_->cur_data_idx_ = idx;
- impl_->UpdateLastDataFields();
+ ret = impl_->UpdateLastDataFields();
}
- return WATCHFACE_COMPLICATION_ERROR_NONE;
+ return ret;
}
int Complication::ApplyAllowedList(
return WATCHFACE_COMPLICATION_ERROR_NO_DATA;
bundle_raw* raw_data = NULL;
- int raw_len;
- bundle_encode(const_cast<Bundle*>(cur_data)->GetRaw(), &raw_data, &raw_len);
+ int raw_len, ret;
+ ret = bundle_encode(const_cast<Bundle*>(cur_data)->GetRaw(), &raw_data, &raw_len);
+ if (ret != BUNDLE_ERROR_NONE) {
+ if (ret == BUNDLE_ERROR_OUT_OF_MEMORY) {
+ return WATCHFACE_COMPLICATION_ERROR_OUT_OF_MEMORY;
+ } else {
+ LOGE("bundle encode fail");
+ return WATCHFACE_COMPLICATION_ERROR_NO_DATA;
+ }
+ }
try {
- int ret = EditablesManager::GetInst().StoreSetting(impl_->id_, raw_data);
+ ret = EditablesManager::GetInst().StoreSetting(impl_->id_, raw_data);
free(raw_data);
if (ret != WATCHFACE_COMPLICATION_ERROR_NONE)
LOGI("Empty context");
return WATCHFACE_COMPLICATION_ERROR_NONE;
}
- impl_->last_context_data_.reset(new Bundle((impl_->context_data_.get())->GetRaw()));
+
+ try {
+ impl_->last_context_data_.reset(new Bundle((impl_->context_data_.get())->GetRaw()));
+ } catch (Exception &ex) {
+ LOGE("%s %d", ex.what(), ex.GetErrorCode());
+ return ex.GetErrorCode();
+ }
return WATCHFACE_COMPLICATION_ERROR_NONE;
}
return ret;
ReceivedEditable& re = static_cast<ReceivedEditable&>(ed);
- re.SetCurDataIdx(cur_data_idx);
+ ret = re.SetCurDataIdx(cur_data_idx);
+ if (ret != WATCHFACE_COMPLICATION_ERROR_NONE)
+ return ret;
Bundle *context = re.GetContext().get();
try {
extern "C" EXPORT_API int watchface_editor_edit_preview(
watchface_editable_h handle,
int cur_data_idx) {
+ int ret;
+
if (handle == NULL) {
LOGE("Invalid parameter");
return WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER;
}
IEditable* ed = static_cast<IEditable*>(handle);
- ed->SetCurDataIdx(cur_data_idx);
+ ret = ed->SetCurDataIdx(cur_data_idx);
+ if (ret != WATCHFACE_COMPLICATION_ERROR_NONE)
+ return ret;
+
return __stub->EditPreview(*ed, cur_data_idx);
}
return WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER;
}
+ bundle* tmp;
IEditable* ed = static_cast<IEditable*>(handle);
const std::list<std::unique_ptr<Bundle>>& list = ed->GetCandidates();
const std::list<std::unique_ptr<Bundle>>::const_iterator it
= list.begin();
auto nx = std::next(it, nth);
- *data = bundle_dup(((*nx).get())->GetRaw());
+ tmp = bundle_dup(((*nx).get())->GetRaw());
+ if (tmp == NULL)
+ return WATCHFACE_COMPLICATION_ERROR_OUT_OF_MEMORY;
+ *data = tmp;
return WATCHFACE_COMPLICATION_ERROR_NONE;
}
if (handle == NULL || setup_appid == NULL)
return WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER;
+ char* tmp;
IEditable* ed = static_cast<IEditable*>(handle);
std::string appid = ed->GetSetupAppId();
if (appid.empty())
return WATCHFACE_COMPLICATION_ERROR_NO_DATA;
- *setup_appid = strdup(appid.c_str());
+ tmp = strdup(appid.c_str());
+ if (tmp == NULL)
+ return WATCHFACE_COMPLICATION_ERROR_OUT_OF_MEMORY;
+
+ *setup_appid = tmp;
return WATCHFACE_COMPLICATION_ERROR_NONE;
}
if (complication == NULL || provider_id == NULL)
return WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER;
- char *val = NULL;
+ char* val = NULL;
+ char* tmp;
bundle_get_str(const_cast<bundle*>(complication),
Complication::GetProviderIdKey(), &val);
- if (val != NULL)
- *provider_id = strdup(val);
- else
+ if (val != NULL) {
+ tmp = strdup(val);
+ if (tmp == NULL)
+ return WATCHFACE_COMPLICATION_ERROR_OUT_OF_MEMORY;
+ *provider_id = tmp;
+ } else {
return WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER;
+ }
return WATCHFACE_COMPLICATION_ERROR_NONE;
}