char* value;
bundle_get_str(ctx.get()->GetRaw(), "TEST_KEY", &value);
EXPECT_STREQ(value, "TEST_VALUE");
+}
+
+TEST_F(WC, ApplyAllowedList)
+{
+ std::list<std::unique_ptr<Complication::ProviderInfo>> allowed_list;
+ allowed_list.emplace_back(std::unique_ptr<Complication::ProviderInfo>(
+ new Complication::ProviderInfo(providerId, ShortText)));
+
+ int ret = WC::complication->ApplyAllowedList(std::move(allowed_list));
+ EXPECT_EQ(ret, WATCHFACE_COMPLICATION_ERROR_NONE);
+
+ std::list<std::unique_ptr<Bundle>> const& list = complication->GetCandidates();
+ EXPECT_EQ(1, list.size());
+}
+
+TEST_F(WC, ClearAllowedList)
+{
+ std::list<std::unique_ptr<Complication::ProviderInfo>> allowed_list;
+ allowed_list.emplace_back(std::unique_ptr<Complication::ProviderInfo>(
+ new Complication::ProviderInfo(providerId, ShortText)));
+
+ int ret = WC::complication->ClearAllowedList();
+ EXPECT_EQ(ret, WATCHFACE_COMPLICATION_ERROR_NONE);
+
+ std::list<std::unique_ptr<Bundle>> const& list = complication->GetCandidates();
+ EXPECT_EQ(true, list.size() > 0);
}
\ No newline at end of file
if (ret != WATCHFACE_COMPLICATION_ERROR_NONE)
return ret;
- subscribe_id_ = gdbus_.get()->SubscribeSignal(
- IGDBus::Complication, cur_provider_id_, -1, this);
- if (subscribe_id_ == 0)
- return WATCHFACE_COMPLICATION_ERROR_IO_ERROR;
- LOGI("subscribe signal %d %d ", subscribe_id_, cur_type_);
+ gdbus_.get()->UnSubscribeSignal(subscribe_id_);
+ if (cur_type_ == NoData) {
+ subscribe_id_ = 0;
+ } else {
+ subscribe_id_ = gdbus_.get()->SubscribeSignal(
+ IGDBus::Complication, cur_provider_id_, -1, this);
+ if (subscribe_id_ == 0)
+ return WATCHFACE_COMPLICATION_ERROR_IO_ERROR;
+ LOGI("subscribe signal %d %d ", subscribe_id_, cur_type_);
+ }
return ret;
}
LOGI("cur idx %d, cur provider %s, cur type %d", impl_->cur_data_idx_,
impl_->cur_provider_id_.c_str(), impl_->cur_type_);
- impl_->gdbus_.get()->UnSubscribeSignal(impl_->subscribe_id_);
- if (impl_->cur_type_ == NoData) {
- impl_->subscribe_id_ = 0;
- } else {
- ret = impl_->UpdateProviderInfo();
- LOGI("subscribe signal %d", impl_->subscribe_id_);
- }
-
- return ret;
+ return impl_->UpdateProviderInfo();
}
const char* Complication::GetCurProviderId() {
std::string provider_appid = DBManager::GetProviderAppId(
impl_->cur_provider_id_.c_str());
if (provider_appid.empty()) {
- LOGE("Can not find provider info from DB");
+ LOGE("Can not find provider info from DB : provider_id(%s)",
+ impl_->cur_provider_id_.c_str());
return WATCHFACE_COMPLICATION_ERROR_PROVIDER_NOT_AVAILABLE;
}
&& strtol(temp_type, NULL, 10) == cur_type_) {
cur_data_idx_ = idx;
LOGI("find cur idx %d", idx);
- break;
+ return WATCHFACE_COMPLICATION_ERROR_NONE;
}
}
idx++;
}
- return ret;
+ return WATCHFACE_COMPLICATION_ERROR_NOT_EXIST;
}
int Complication::ApplyAllowedList(
std::list<std::unique_ptr<ProviderInfo>> allowed_list) {
impl_->allowed_list_ = std::move(allowed_list);
impl_->candidates_list_.clear();
- return impl_->UpdateProviderInfo();
+ int ret = impl_->UpdateProviderInfo();
+
+ /*
+ * If current selected provider id is not included in allowed list,
+ * clear all selected provider info
+ */
+ if (ret == WATCHFACE_COMPLICATION_ERROR_NOT_EXIST) {
+ impl_->cur_data_idx_ = -1;
+ return WATCHFACE_COMPLICATION_ERROR_NONE;
+ }
+ return ret;
}
int Complication::ClearAllowedList() {
impl_->allowed_list_.clear();
+ impl_->UpdateProviderInfo();
return WATCHFACE_COMPLICATION_ERROR_NONE;
}