From 92f926fe1d2e989e7229dc63453083ae25a73c79 Mon Sep 17 00:00:00 2001 From: Iscaro Date: Thu, 6 Sep 2012 16:44:26 -0300 Subject: [PATCH] Call screen now shows contact's photo --- data/themes/default-hd.edc | 4 +- data/themes/default-sd.edc | 4 +- data/themes/images/ico_multiparty.png | Bin 2330 -> 3421 bytes data/themes/includes/answer_screen.edc | 68 +++++++++- data/themes/includes/call.edc | 223 +++++++++++++++++++++++++++++---- data/themes/includes/contacts.edc | 1 + dialer/callscreen.c | 46 ++++++- tizen/answer_daemon.c | 12 ++ utils/util.c | 4 + 9 files changed, 334 insertions(+), 28 deletions(-) diff --git a/data/themes/default-hd.edc b/data/themes/default-hd.edc index 2f48667..4b22f68 100644 --- a/data/themes/default-hd.edc +++ b/data/themes/default-hd.edc @@ -26,7 +26,6 @@ #define SIZE_TINY 16 #define CONTACT_PHOTO_SIZE 128 -#define CONTACT_HALF_PHOTO 64 #define LIST_CONTACT_HEIGHT 170 #define GROUP_HEIGHT 30 @@ -39,4 +38,7 @@ #define NOTIFICATION_BAR_HEIGHT 0 #endif +#define CALL_TEXT_OFFSET 32 +#define CALL_PHOTO_SIZE 180 + #include "default.edc" diff --git a/data/themes/default-sd.edc b/data/themes/default-sd.edc index 8ed28a6..bf229b7 100644 --- a/data/themes/default-sd.edc +++ b/data/themes/default-sd.edc @@ -26,7 +26,6 @@ #define SIZE_TINY 8 #define CONTACT_PHOTO_SIZE 64 -#define CONTACT_HALF_PHOTO 32 #define LIST_CONTACT_HEIGHT 90 #define GROUP_HEIGHT 20 @@ -39,4 +38,7 @@ #define NOTIFICATION_BAR_HEIGHT 0 #endif +#define CALL_TEXT_OFFSET 16 +#define CALL_PHOTO_SIZE 90 + #include "default.edc" diff --git a/data/themes/images/ico_multiparty.png b/data/themes/images/ico_multiparty.png index 4db977e7dbe89e9a3363528ec301c20a138cf36a..fade23b6a5ab073bb52b91a0b2642f7125d55fa8 100644 GIT binary patch literal 3421 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 + elm_icon_standard_set(photo, "no-picture"); + } + + snprintf(buf, sizeof(buf), "elm.swallow.img.%u", id); + elm_object_part_content_set(ctx->self, buf, photo); +} + static void _call_show(Callscreen *ctx, unsigned int id, const OFono_Call *c) { char *contact = _call_name_get(ctx, c); const char *type = _call_type_get(c); const char *status = _call_state_str(ofono_call_state_get(c)); + Evas_Object *photo; + + if (ofono_call_multiparty_get(c)) { + photo = elm_icon_add(ctx->self); + elm_icon_standard_set(photo, "multiparty"); + } else + photo = _call_photo_get(c, ctx->self); _call_text_set(ctx, id, "name", contact); _call_text_set(ctx, id, "phone.type", type); _call_text_set(ctx, id, "status", status); _call_text_set(ctx, id, "elapsed", ""); - + _call_photo_set(ctx, id, photo); free(contact); } @@ -478,6 +513,13 @@ static void _call_waiting_set(Callscreen *ctx, OFono_Call *c) elm_object_signal_emit(o, "hide,waiting", "call"); } else { char *name = _call_name_get(ctx, c); + Evas_Object *photo = _call_photo_get(c, o); + if (!photo) { + photo = elm_icon_add(o); + elm_icon_standard_set(photo, "no-picture"); + } + elm_object_part_content_set(o, "elm.swallow.waiting.photo", + photo); elm_object_part_text_set(o, "elm.text.waiting", name); elm_object_signal_emit(o, "show,waiting", "call"); free(name); diff --git a/tizen/answer_daemon.c b/tizen/answer_daemon.c index ef364e1..f35ce2a 100644 --- a/tizen/answer_daemon.c +++ b/tizen/answer_daemon.c @@ -122,6 +122,7 @@ static void _call_destroy(Call *c) static void _call_screen_show(Call_Screen *cs) { Call *c = cs->call; + Evas_Object *icon = NULL; INF("Show line_id=%s, name=%s, type=%s", c->line_id, c->name, c->type); @@ -137,9 +138,20 @@ static void _call_screen_show(Call_Screen *cs) else elm_object_part_text_set(cs->layout, "elm.text.name", c->name); + icon = elm_icon_add(cs->layout); + + if (strcmp("", c->img) != 0) { +#ifdef HAVE_TIZEN + elm_icon_file_set(icon, c->img, NULL); +#else + elm_image_file_set(icon, c->img, NULL); +#endif + } else + elm_icon_standard_set(icon, "no-picture"); elm_object_part_text_set(cs->layout, "elm.text.state", "Incoming..."); elm_object_part_text_set(cs->layout, "elm.text.phone.type", c->type); + elm_object_part_content_set(cs->layout, "elm.swallow.photo", icon); elm_object_signal_emit(cs->layout, "show,activecall", "gui"); evas_object_show(cs->win); #ifdef HAVE_TIZEN diff --git a/utils/util.c b/utils/util.c index 39344ff..92d15b6 100644 --- a/utils/util.c +++ b/utils/util.c @@ -113,12 +113,16 @@ Evas_Object *picture_icon_get(Evas_Object *parent, const char *picture) if (!picture || *picture == '\0') elm_icon_standard_set(icon, "no-picture"); else { +#ifdef HAVE_TIZEN + elm_icon_file_set(icon, picture, NULL); +#else char path[PATH_MAX]; const char *prefix; prefix = efreet_config_home_get(); snprintf(path, sizeof(path), "%s/%s/%s", prefix, PACKAGE_NAME, picture); elm_image_file_set(icon, path, NULL); +#endif } return icon; } -- 2.7.4