diff --git a/src/W800_SDK_v1.00.10/app/gfx/gfx_task.c b/src/W800_SDK_v1.00.10/app/gfx/gfx_task.c index f4d5da6..4da66c0 100644 --- a/src/W800_SDK_v1.00.10/app/gfx/gfx_task.c +++ b/src/W800_SDK_v1.00.10/app/gfx/gfx_task.c @@ -10,6 +10,7 @@ #include "watch_face.h" #include "menu_screen.h" #include "compass_screen.h" +#include "find_phone_screen.h" #include "settings_screen.h" #include "watch_peripherals.h" #include "watch_settings.h" @@ -33,6 +34,7 @@ static void _perform_deferred_display_wake_up(uint8_t deferred_time_in_ms); WatchFace_t watchFace; MenuScreen_t menuScreen; CompassScreen_t compassScreen; +FindPhoneScreen_t findPhoneScreen; SettingsScreen_t settingsScreen; static struct @@ -234,7 +236,11 @@ static void setBLEEnabledCb(bool *enabled, SettingMode_e mode) if(!ble_modem_off()) APP_LOG_ERROR("Failed to stop BLE modem with service"); else + { watch_face_set_bluetooth_indicator(&watchFace, BLUETOOTH_STATE_OFF); + find_phone_screen_notify_BLE_connection_state(&findPhoneScreen, false); + } + } } } @@ -392,9 +398,11 @@ static void ble_service_state_change_cb(ble_service_state_e ble_service_state) { case BLE_SERVICE_MODE_CONNECTED: watch_face_set_bluetooth_indicator(&watchFace, BLUETOOTH_STATE_CONNECTED); + find_phone_screen_notify_BLE_connection_state(&findPhoneScreen, true); break; case BLE_SERVICE_MODE_ADVERTISING: watch_face_set_bluetooth_indicator(&watchFace, BLUETOOTH_STATE_ON); + find_phone_screen_notify_BLE_connection_state(&findPhoneScreen, false); break; case BLE_SERVICE_MODE_SUBSCRIBED: _is_ble_device_subscribed = true; @@ -448,6 +456,11 @@ static void scan_result_cb(void) tls_mem_free(buffer); } +static void sendFindPhoneBLECommandCb(bool findPhone) +{ + gadget_bridge_send_find_phone(findPhone); +} + extern LCDConfig_t LCDConfig; void gfx_task(void *param) @@ -505,6 +518,10 @@ void gfx_task(void *param) watch_face_init(&watchFace); menu_screen_init(&menuScreen); compass_screen_init(&compassScreen); + + find_phone_screen_init(&findPhoneScreen); + find_phone_screen_register_BLE_command_send_cb(&findPhoneScreen, &(sendFindPhoneBLECommandCb)); + settings_screen_init(&settingsScreen); settings_screen_register_API_interface(&settingsScreen, &settingsScreenAPIInterface); diff --git a/src/W800_SDK_v1.00.10/app/gfx/menu_screen.c b/src/W800_SDK_v1.00.10/app/gfx/menu_screen.c index 378ace4..4f6bf08 100644 --- a/src/W800_SDK_v1.00.10/app/gfx/menu_screen.c +++ b/src/W800_SDK_v1.00.10/app/gfx/menu_screen.c @@ -4,6 +4,7 @@ #include "settings_screen.h" #include "watch_face.h" #include "compass_screen.h" +#include "find_phone_screen.h" #include "translation.h" #define array_size(array) (sizeof(array)/sizeof(array[0])) @@ -22,14 +23,21 @@ static void menu_item_cb(lv_event_t *e) lv_scr_load_anim(watchFace.display, LV_SCR_LOAD_ANIM_MOVE_LEFT, 400, 0, true); } break; - case 1: + case 2: { extern CompassScreen_t compassScreen; compass_screen_create(&compassScreen); lv_scr_load_anim(compassScreen.display, LV_SCR_LOAD_ANIM_MOVE_LEFT, 400, 0, true); } break; - case 7: + case 3: + { + extern FindPhoneScreen_t findPhoneScreen; + find_phone_screen_create(&findPhoneScreen); + lv_scr_load_anim(findPhoneScreen.display, LV_SCR_LOAD_ANIM_MOVE_LEFT, 400, 0, true); + } + break; + case 4: { extern SettingsScreen_t settingsScreen; settings_screen_create(&settingsScreen); @@ -90,6 +98,7 @@ void menu_screen_create(MenuScreen_t * const menuScreen) //We declare all the needed assets by the menu screen: LV_IMG_DECLARE(watch_menu_clock_icon) LV_IMG_DECLARE(watch_menu_dialer_icon) + LV_IMG_DECLARE(watch_menu_lost_phone_icon) LV_IMG_DECLARE(watch_menu_mail_icon) LV_IMG_DECLARE(watch_menu_contacts_icon) LV_IMG_DECLARE(watch_menu_alarm_icon) @@ -121,13 +130,15 @@ void menu_screen_create(MenuScreen_t * const menuScreen) lv_obj_set_style_pad_right(scroll_item_container, 15, LV_PART_SCROLLBAR); menu_screen_add_item(scroll_item_container, 0, &watch_menu_clock_icon, translation_get_word(TRANSLATION_WATCH), &(menu_item_cb)); - menu_screen_add_item(scroll_item_container, 1, &watch_menu_compass_icon, translation_get_word(TRANSLATION_COMPASS), &(menu_item_cb)); - menu_screen_add_item(scroll_item_container, 2, &watch_menu_alarm_icon, translation_get_word(TRANSLATION_ALARM), &(menu_item_cb)); + menu_screen_add_item(scroll_item_container, 1, &watch_menu_alarm_icon, translation_get_word(TRANSLATION_ALARM), &(menu_item_cb)); + menu_screen_add_item(scroll_item_container, 2, &watch_menu_compass_icon, translation_get_word(TRANSLATION_COMPASS), &(menu_item_cb)); + menu_screen_add_item(scroll_item_container, 3, &watch_menu_lost_phone_icon, translation_get_word(TRANSLATION_FIND_MY_PHONE), &(menu_item_cb)); + /* menu_screen_add_item(scroll_item_container, 3, &watch_menu_messages_icon, "Text messages", &(menu_item_cb)); menu_screen_add_item(scroll_item_container, 4, &watch_menu_mail_icon, "Mails", &(menu_item_cb)); menu_screen_add_item(scroll_item_container, 5, &watch_menu_dialer_icon, "Phone", &(menu_item_cb)); - menu_screen_add_item(scroll_item_container, 6, &watch_menu_contacts_icon, "Contacts", &(menu_item_cb)); - menu_screen_add_item(scroll_item_container, 7, &watch_menu_settings_icon, translation_get_word(TRANSLATION_SETTINGS), &(menu_item_cb)); + menu_screen_add_item(scroll_item_container, 6, &watch_menu_contacts_icon, "Contacts", &(menu_item_cb));*/ + menu_screen_add_item(scroll_item_container, 4, &watch_menu_settings_icon, translation_get_word(TRANSLATION_SETTINGS), &(menu_item_cb)); //We register the event callback to handle the cleanup lv_obj_add_event_cb(menuScreen->display, &(cleanup_event_cb), LV_EVENT_DELETE, menuScreen); diff --git a/src/W800_SDK_v1.00.10/app/translation/translation.c b/src/W800_SDK_v1.00.10/app/translation/translation.c index 03092ec..08defed 100644 --- a/src/W800_SDK_v1.00.10/app/translation/translation.c +++ b/src/W800_SDK_v1.00.10/app/translation/translation.c @@ -24,6 +24,11 @@ static const char * const translation_dictionary[][TRANSLATED_LANGUAGES_COUNT] = [TRANSLATION_GERMAN] = "Kompass", [TRANSLATION_ENGLISH]= "Compass" }, + [TRANSLATION_FIND_MY_PHONE] = { + [TRANSLATION_FRENCH] = "Trouver mon tel", + [TRANSLATION_GERMAN] = "Handy finden", + [TRANSLATION_ENGLISH]= "Find my phone" + }, [TRANSLATION_ALTIMETER] = { [TRANSLATION_FRENCH] = "Altimetre", [TRANSLATION_GERMAN] = "Hohenmesser", @@ -169,6 +174,21 @@ static const char * const translation_dictionary[][TRANSLATED_LANGUAGES_COUNT] = [TRANSLATION_GERMAN] = "", [TRANSLATION_ENGLISH]= "", }, + [TRANSLATION_PHONE_NOT_CONNECTED] = { + [TRANSLATION_FRENCH] = "Mobile\nnon\ncon-\nnecte !", + [TRANSLATION_GERMAN] = "Keine\nVerbind-\nung zum\nHandy !", + [TRANSLATION_ENGLISH]= "Phone\nnot\ncon-\nnected !", + }, + [TRANSLATION_FIND_MY_PHONE_BTN] = { + [TRANSLATION_FRENCH] = "Trouver\nMon\nMobile !", + [TRANSLATION_GERMAN] = "Mein\nHandy\nSuchen !", + [TRANSLATION_ENGLISH]= "Find\nMy\nPhone !", + }, + [TRANSLATION_FOUND_MY_PHONE_BTN] = { + [TRANSLATION_FRENCH] = "Je l'ai\nTrouver !", + [TRANSLATION_GERMAN] = "Ich\nHabe Es\nGefu-\nnden !", + [TRANSLATION_ENGLISH]= "Found\nIt !", + } }; const char *translation_get_word(TranslationWord_e word) diff --git a/src/W800_SDK_v1.00.10/app/translation/translation.h b/src/W800_SDK_v1.00.10/app/translation/translation.h index db7ad2d..eb6d0c7 100644 --- a/src/W800_SDK_v1.00.10/app/translation/translation.h +++ b/src/W800_SDK_v1.00.10/app/translation/translation.h @@ -12,12 +12,15 @@ typedef enum TranslationLanguage typedef enum TranslationWord { + /* Menu apps title translations */ TRANSLATION_MENU = 0, TRANSLATION_WATCH, TRANSLATION_ALARM, TRANSLATION_COMPASS, + TRANSLATION_FIND_MY_PHONE, TRANSLATION_ALTIMETER, TRANSLATION_SETTINGS, + /* Settings screen text translations */ TRANSLATION_TIME_AND_DATE, TRANSLATION_DISPLAY, TRANSLATION_NOTIFICATIONS, @@ -45,6 +48,10 @@ typedef enum TranslationWord TRANSLATION_BATTERY_VOLTAGE, TRANSLATION_FACTORY_RESET, TRANSLATION_RESET, + /* Find my phone app translation */ + TRANSLATION_PHONE_NOT_CONNECTED, + TRANSLATION_FIND_MY_PHONE_BTN, + TRANSLATION_FOUND_MY_PHONE_BTN } TranslationWord_e; const char * translation_get_word(TranslationWord_e word);