Added the find my phone app/feature with it's related translation in english, french and german

This commit is contained in:
Th3maz1ng 2023-05-01 21:01:28 +02:00
parent 8a636a238c
commit 99263462ad
4 changed files with 61 additions and 6 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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)

View File

@ -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);