constexpr int SUB_TXT_WIDTH = 208;
constexpr int MAIN_TXT_WIDTH_SIMPLE = 208;
constexpr int MAIN_TXT_WIDTH_INCOM = 190;
- constexpr int SLIDE_LABEL_DURATION_KOEFF = 20;
+ constexpr int SLIDE_LABEL_DURATION_KOEFF = 8;
constexpr LayoutTheme LAYOUT_CALLER_INFO_WIDGET
{"layout", "callui", "call_info"};
constexpr EdjePart PART_SWL_CALLER_ID {"caller_id"};
constexpr EdjePart PART_SWL_2LINE {"text_2line"};
- const TString STR_LABEL_CALLER_ID_ENABLE{
+ const TString STR_LABEL_CID_ENABLE{
"<align=center><color=#ffffff99><font_size=24>%s</color></font_size></align>"};
- const TString STR_LABEL_CALLER_ID_DISABLE{
+ const TString STR_LABEL_CID_DISABLE{
"<align=center><color=#ffffff99><font_size=24>%s</color></font_size></align>"};
int getTextBlockActualWidth(const Evas_Object *obj)
{
+ if (!obj) {
+ LOG_RETURN_VALUE(RES_INVALID_ARGUMENTS, 0, "Evas object is NULL");
+ }
int resWidth = 0;
evas_object_textblock_size_native_get(obj, &resWidth, NULL);
return resWidth;
}
}
- Result CallInfoPresenter::update(CallMode mode,
- const ICallManagerSRef &cm)
+ Result CallInfoPresenter::update(CallMode mode, const ICallManagerSRef &cm)
{
m_needModifyCallStatus = false;
if (mode != m_mode || mode == CallMode::DURING) {
}
if (m_incomCallInfo->isVoiceMailNumber() ||
- m_incomCallInfo->isEmergency()){
+ m_incomCallInfo->isEmergency()) {
return "";
}
std::string CallInfoPresenter::getDuringCallSubText() const
{
if (m_activeCallInfo) {
- auto confMemberCount = m_activeCallInfo->getConferenceMemberCount();
+ auto confMemberCount =
+ m_activeCallInfo->getConferenceMemberCount();
if (m_heldCallInfo) {
return STR_CALL_ON_HOLD.translate();
} else if (confMemberCount > 1) {
format(confMemberCount);
}
} else if (m_heldCallInfo) {
- auto confMemberCount = m_heldCallInfo->getConferenceMemberCount();
+ auto confMemberCount =
+ m_heldCallInfo->getConferenceMemberCount();
if (confMemberCount > 1) {
return TString{STR_WITH_PD_PEOPLE.translate()}.
format(confMemberCount);
FAIL_RETURN_VALUE(RES_FAIL, "", "end is NULL!");
}
- auto confMemberCount = m_endCallInfo->getConferenceMemberCount();
+ auto confMemberCount =
+ m_endCallInfo->getConferenceMemberCount();
if (confMemberCount > 1) {
return TString{STR_WITH_PD_PEOPLE.translate()}.
format(confMemberCount);
Result CallInfoPresenter::createLabel(const std::string &text)
{
- TString tmp;
- if (m_callerId) {
- tmp = impl::STR_LABEL_CALLER_ID_ENABLE.format(text.c_str());
- } else {
- tmp = impl::STR_LABEL_CALLER_ID_DISABLE.format(text.c_str());
- }
+ auto *eo = elm_label_add(*m_widget);
+ if (!eo) {
+ LOG_RETURN(RES_FAIL, "elm_label_add() failed!");
+ }
+ m_label = makeShared<StyledWidget>(eo, true);
+ m_label->setStyle(impl::STYLE_SLIDING_LABEL);
+ m_label->setText((m_callerId) ?
+ impl::STR_LABEL_CID_ENABLE.format(text.c_str()) :
+ impl::STR_LABEL_CID_DISABLE.format(text.c_str()));
+
+ elm_label_slide_mode_set(*m_label,
+ ELM_LABEL_SLIDE_MODE_AUTO);
+ elm_label_wrap_width_set(*m_label,
+ ELM_SCALE_SIZE(impl::SUB_TXT_WIDTH));
+
double duration = (static_cast<double>(text.size())) /
impl::SLIDE_LABEL_DURATION_KOEFF;
+ elm_label_slide_duration_set(*m_label, duration);
+ elm_label_slide_go(*m_label);
+
+ m_widget->setContent(*m_label, impl::PART_SWL_2LINE);
- auto label = makeShared<StyledWidget>(elm_label_add(*m_widget), true);
- if (!label) {
- LOG_RETURN(RES_FAIL, "Create label failed!");
+ return RES_OK;
+ }
+
+ Result CallInfoPresenter::createCallerIdImage(const std::string &imagePath)
+ {
+ auto *eo = elm_image_add(*m_widget);
+ if (!eo) {
+ LOG_RETURN(RES_FAIL, "elm_image_add() failed");
}
- label->setStyle(impl::STYLE_SLIDING_LABEL);
- label->setText(tmp);
+ auto callerId = makeShared<StyledWidget>(eo, true);
+ elm_image_file_set(*callerId, imagePath.c_str(), NULL);
+ elm_image_aspect_fixed_set(*callerId, EINA_TRUE);
+ elm_image_fill_outside_set(*callerId, EINA_TRUE);
- elm_label_slide_mode_set(*label, ELM_LABEL_SLIDE_MODE_AUTO);
- elm_label_wrap_width_set(*label,
- ELM_SCALE_SIZE(impl::SUB_TXT_WIDTH));
- elm_label_slide_duration_set(*label, duration);
- elm_label_slide_go(*label);
+ auto window = callerId->getWindow();
+ if (!window) {
+ LOG_RETURN(RES_FAIL, "Window is NULL!");
+ }
+ int w = 0, h = 0;
+ window->getScreenSize(&w, &h);
+ evas_object_size_hint_min_set(*callerId, w, h);
- m_widget->setContent(*label, impl::PART_SWL_2LINE);
+ m_widget->setContent(*callerId, impl::PART_SWL_CALLER_ID);
- m_label = label;
+ m_callerId = callerId;
return RES_OK;
}
Result CallInfoPresenter::updateCallerId()
{
m_callerId.reset();
- m_widget->emit(impl::SIGN_CALLER_ID_DISABLE, impl::SRC_CALLER_ID);
+ m_widget->emit(impl::SIGN_CALLER_ID_DISABLE,impl::SRC_CALLER_ID);
if (m_mode == CallMode::INCOMING) {
auto contactInfo = m_incomCallInfo->getContactInfo();
if (!contactInfo) {
- ILOG("No contact info");
- return RES_OK;
+ LOG_RETURN(RES_OK, "No contact info");
}
auto callerIdPath = contactInfo->getImagePath();
if (callerIdPath.empty()) {
- ILOG("No caller id content to set");
- return RES_OK;
- }
-
- auto callerId = makeShared<StyledWidget>(
- elm_image_add(*m_widget), true);
- if (!callerId) {
- LOG_RETURN(RES_FAIL, "Create callerId failed!");
- }
-
- elm_image_file_set(*callerId, callerIdPath.c_str(), NULL);
- elm_image_aspect_fixed_set(*callerId, EINA_TRUE);
- elm_image_fill_outside_set(*callerId, EINA_TRUE);
-
- auto window = callerId->getWindow();
- if (!window) {
- LOG_RETURN(RES_FAIL, "Window is NULL!");
+ LOG_RETURN(RES_OK, "No caller id content to set");
}
- int w = 0, h = 0;
- window->getScreenSize(&w, &h);
- ILOG("size w[%d] h[%d]", w, h);
- evas_object_size_hint_min_set(*callerId, w, h);
- m_widget->setContent(*callerId,
- impl::PART_SWL_CALLER_ID);
+ FAIL_RETURN(createCallerIdImage(callerIdPath),
+ "createCallerIdImage() failed");
m_widget->emit(impl::SIGN_CALLER_ID_ENABLE, impl::SRC_CALLER_ID);
-
- m_callerId = callerId;
}
return RES_OK;
if (!subTxt.empty()) {
m_isSubTxtEnable = true;
-
- TString tmp;
- if (m_callerId) {
- tmp = impl::STR_LABEL_CALLER_ID_ENABLE.format(subTxt.c_str());
- } else {
- tmp = impl::STR_LABEL_CALLER_ID_DISABLE.format(subTxt.c_str());
- }
- FAIL_RETURN(createLabel(tmp), "createLabel() failed");
+ FAIL_RETURN(createLabel(subTxt), "createLabel() failed");
}
return RES_OK;
if (tempEo) {
int lineWidth = m_incomCallInfo ?
- impl::MAIN_TXT_WIDTH_INCOM : impl::MAIN_TXT_WIDTH_SIMPLE;
+ impl::MAIN_TXT_WIDTH_INCOM :
+ impl::MAIN_TXT_WIDTH_SIMPLE;
bool isMainTxtSingleLine =
(impl::getTextBlockActualWidth(tempEo) <= lineWidth);
- m_widget->emit(impl::SIGN_CALLER_ID_DISABLE, impl::SRC_TXT_1LINE);
+ m_widget->emit(impl::SIGN_CALLER_ID_DISABLE,
+ impl::SRC_TXT_1LINE);
if (info->isEmergency()) {
- m_widget->emit(impl::SIGN_EMERGENCY_MODE, impl::SRC_TXT_1LINE);
+ m_widget->emit(impl::SIGN_EMERGENCY_MODE,
+ impl::SRC_TXT_1LINE);
}
if (m_mode == CallMode::INCOMING) {
if (m_callerId) {
- m_widget->emit(impl::SIGN_CALLER_ID_ENABLE, impl::SRC_TXT_1LINE);
+ m_widget->emit(impl::SIGN_CALLER_ID_ENABLE,
+ impl::SRC_TXT_1LINE);
} else {
- m_widget->emit(impl::SIGN_CALLER_ID_DISABLE, impl::SRC_TXT_1LINE);
+ m_widget->emit(impl::SIGN_CALLER_ID_DISABLE,
+ impl::SRC_TXT_1LINE);
}
if (isMainTxtSingleLine) {
- m_widget->emit(impl::SIGN_INCOM_1LINE, impl::SRC_TOP_PAD);
+ m_widget->emit(impl::SIGN_INCOM_1LINE,
+ impl::SRC_TOP_PAD);
} else {
- m_widget->emit(impl::SIGN_INCOM_2LINE, impl::SRC_TOP_PAD);
+ m_widget->emit(impl::SIGN_INCOM_2LINE,
+ impl::SRC_TOP_PAD);
}
} else {
if (isMainTxtSingleLine) {
if (m_isSubTxtEnable) {
- m_widget->emit(impl::SIGN_1LINE_2TXT, impl::SRC_TOP_PAD);
+ m_widget->emit(impl::SIGN_1LINE_2TXT,
+ impl::SRC_TOP_PAD);
} else {
- m_widget->emit(impl::SIGN_1LINE, impl::SRC_TOP_PAD);
+ m_widget->emit(impl::SIGN_1LINE,
+ impl::SRC_TOP_PAD);
}
} else {
if (m_isSubTxtEnable) {
- m_widget->emit(impl::SIGN_2LINE_2TXT, impl::SRC_TOP_PAD);
+ m_widget->emit(impl::SIGN_2LINE_2TXT,
+ impl::SRC_TOP_PAD);
} else {
- m_widget->emit(impl::SIGN_2LINE, impl::SRC_TOP_PAD);
+ m_widget->emit(impl::SIGN_2LINE,
+ impl::SRC_TOP_PAD);
}
}
}
build();
if (!m_callStatus) {
- LOG_RETURN(RES_FAIL, "CallStatus::Builder()::build() failed!");
+ LOG_RETURN(RES_FAIL, "CallStatus::build() failed!");
}
return RES_OK;