@@ -24,6 +24,106 @@ using namespace Pinetime::Applications::Screens;
2424
2525LV_FONT_DECLARE (lv_font_navi_80)
2626
27+ namespace {
28+ constexpr std::array<std::pair<const char *, const char *>, 86 > m_iconMap = {{
29+ {" arrive-left" , " \xEE\xA4\x81 " },
30+ {" arrive-right" , " \xEE\xA4\x82 " },
31+ {" arrive-straight" , " \xEE\xA4\x80 " },
32+ {" arrive" , " \xEE\xA4\x80 " },
33+ {" close" , " \xEE\xA4\x83 " },
34+ {" continue-left" , " \xEE\xA4\x85 " },
35+ {" continue-right" , " \xEE\xA4\x86 " },
36+ {" continue-slight-left" , " \xEE\xA4\x87 " },
37+ {" continue-slight-right" , " \xEE\xA4\x88 " },
38+ {" continue-straight" , " \xEE\xA4\x84 " },
39+ {" continue-uturn" , " \xEE\xA4\x89 " },
40+ {" continue" , " \xEE\xA4\x84 " },
41+ {" depart-left" , " \xEE\xA4\x8B " },
42+ {" depart-right" , " \xEE\xA4\x8C " },
43+ {" depart-straight" , " \xEE\xA4\x8A " },
44+ {" end-of-road-left" , " \xEE\xA4\x8D " },
45+ {" end-of-road-right" , " \xEE\xA4\x8E " },
46+ {" ferry" , " \xEE\xA4\x8F " },
47+ {" flag" , " \xEE\xA4\x90 " },
48+ {" fork-left" , " \xEE\xA4\x92 " },
49+ {" fork-right" , " \xEE\xA4\x93 " },
50+ {" fork-slight-left" , " \xEE\xA4\x94 " },
51+ {" fork-slight-right" , " \xEE\xA4\x95 " },
52+ {" fork-straight" , " \xEE\xA4\x96 " },
53+ {" invalid" , " \xEE\xA4\x84 " },
54+ {" invalid-left" , " \xEE\xA4\x85 " },
55+ {" invalid-right" , " \xEE\xA4\x86 " },
56+ {" invalid-slight-left" , " \xEE\xA4\x87 " },
57+ {" invalid-slight-right" , " \xEE\xA4\x88 " },
58+ {" invalid-straight" , " \xEE\xA4\x84 " },
59+ {" invalid-uturn" , " \xEE\xA4\x89 " },
60+ {" merge-left" , " \xEE\xA4\x97 " },
61+ {" merge-right" , " \xEE\xA4\x98 " },
62+ {" merge-slight-left" , " \xEE\xA4\x99 " },
63+ {" merge-slight-right" , " \xEE\xA4\x9A " },
64+ {" merge-straight" , " \xEE\xA4\x84 " },
65+ {" new-name-left" , " \xEE\xA4\x85 " },
66+ {" new-name-right" , " \xEE\xA4\x86 " },
67+ {" new-name-sharp-left" , " \xEE\xA4\x9B " },
68+ {" new-name-sharp-right" , " \xEE\xA4\x9C " },
69+ {" new-name-slight-left" , " \xEE\xA4\x87 " },
70+ {" new-name-slight-right" , " \xEE\xA4\x88 " },
71+ {" new-name-straight" , " \xEE\xA4\x84 " },
72+ {" notification-left" , " \xEE\xA4\x85 " },
73+ {" notification-right" , " \xEE\xA4\x86 " },
74+ {" notification-sharp-left" , " \xEE\xA4\x9B " },
75+ {" notification-sharp-right" , " \xEE\xA4\xA5 " },
76+ {" notification-slight-left" , " \xEE\xA4\x87 " },
77+ {" notification-slight-right" , " \xEE\xA4\x88 " },
78+ {" notification-straight" , " \xEE\xA4\x84 " },
79+ {" off-ramp-left" , " \xEE\xA4\x9D " },
80+ {" off-ramp-right" , " \xEE\xA4\x9E " },
81+ {" off-ramp-slight-left" , " \xEE\xA4\x9F " },
82+ {" off-ramp-slight-right" , " \xEE\xA4\xA0 " },
83+ {" on-ramp-left" , " \xEE\xA4\x85 " },
84+ {" on-ramp-right" , " \xEE\xA4\x86 " },
85+ {" on-ramp-sharp-left" , " \xEE\xA4\x9B " },
86+ {" on-ramp-sharp-right" , " \xEE\xA4\xA5 " },
87+ {" on-ramp-slight-left" , " \xEE\xA4\x87 " },
88+ {" on-ramp-slight-right" , " \xEE\xA4\x88 " },
89+ {" on-ramp-straight" , " \xEE\xA4\x84 " },
90+ {" rotary" , " \xEE\xA4\xA1 " },
91+ {" rotary-left" , " \xEE\xA4\xA2 " },
92+ {" rotary-right" , " \xEE\xA4\xA3 " },
93+ {" rotary-sharp-left" , " \xEE\xA4\xA4 " },
94+ {" rotary-sharp-right" , " \xEE\xA4\xA5 " },
95+ {" rotary-slight-left" , " \xEE\xA4\xA6 " },
96+ {" rotary-slight-right" , " \xEE\xA4\xA7 " },
97+ {" rotary-straight" , " \xEE\xA4\xA8 " },
98+ {" roundabout" , " \xEE\xA4\xA1 " },
99+ {" roundabout-left" , " \xEE\xA4\xA2 " },
100+ {" roundabout-right" , " \xEE\xA4\xA3 " },
101+ {" roundabout-sharp-left" , " \xEE\xA4\xA4 " },
102+ {" roundabout-sharp-right" , " \xEE\xA4\xA5 " },
103+ {" roundabout-slight-left" , " \xEE\xA4\xA6 " },
104+ {" roundabout-slight-right" , " \xEE\xA4\xA7 " },
105+ {" roundabout-straight" , " \xEE\xA4\xA8 " },
106+ {" turn-left" , " \xEE\xA4\x85 " },
107+ {" turn-right" , " \xEE\xA4\x86 " },
108+ {" turn-sharp-left" , " \xEE\xA4\x9B " },
109+ {" turn-sharp-right" , " \xEE\xA4\xA5 " },
110+ {" turn-slight-left" , " \xEE\xA4\x87 " },
111+ {" turn-slight-right" , " \xEE\xA4\x88 " },
112+ {" turn-straight" , " \xEE\xA4\x84 " },
113+ {" updown" , " \xEE\xA4\xA9 " },
114+ {" uturn" , " \xEE\xA4\x89 " },
115+ }};
116+
117+ const char * iconForName (const std::string& icon) {
118+ for (auto iter : m_iconMap) {
119+ if (iter.first == icon) {
120+ return iter.second ;
121+ }
122+ }
123+ return " \xEE\xA4\x90 " ;
124+ }
125+ }
126+
27127/* *
28128 * Navigation watchapp
29129 *
@@ -68,27 +168,25 @@ Navigation::~Navigation() {
68168}
69169
70170bool Navigation::Refresh () {
71-
72- if (m_flag != navService.getFlag ()) {
73- m_flag = navService.getFlag ();
74- lv_label_set_text (imgFlag, iconForName (m_flag));
75- // lv_img_set_src_arr(imgFlag, iconForName(m_flag));
171+ if (flag != navService.getFlag ()) {
172+ flag = navService.getFlag ();
173+ lv_label_set_text (imgFlag, iconForName (flag));
76174 }
77175
78- if (m_narrative != navService.getNarrative ()) {
79- m_narrative = navService.getNarrative ();
80- lv_label_set_text (txtNarrative, m_narrative .data ());
176+ if (narrative != navService.getNarrative ()) {
177+ narrative = navService.getNarrative ();
178+ lv_label_set_text (txtNarrative, narrative .data ());
81179 }
82180
83- if (m_manDist != navService.getManDist ()) {
84- m_manDist = navService.getManDist ();
85- lv_label_set_text (txtManDist, m_manDist .data ());
181+ if (manDist != navService.getManDist ()) {
182+ manDist = navService.getManDist ();
183+ lv_label_set_text (txtManDist, manDist .data ());
86184 }
87185
88- if (m_progress != navService.getProgress ()) {
89- m_progress = navService.getProgress ();
90- lv_bar_set_value (barProgress, m_progress , LV_ANIM_OFF);
91- if (m_progress > 90 ) {
186+ if (progress != navService.getProgress ()) {
187+ progress = navService.getProgress ();
188+ lv_bar_set_value (barProgress, progress , LV_ANIM_OFF);
189+ if (progress > 90 ) {
92190 lv_obj_set_style_local_bg_color (barProgress, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_RED);
93191 } else {
94192 lv_obj_set_style_local_bg_color (barProgress, LV_BAR_PART_INDIC, LV_STATE_DEFAULT, LV_COLOR_ORANGE);
@@ -98,11 +196,4 @@ bool Navigation::Refresh() {
98196 return running;
99197}
100198
101- const char * Navigation::iconForName (std::string icon) {
102- for (auto iter : m_iconMap) {
103- if (iter.first == icon) {
104- return iter.second ;
105- }
106- }
107- return " \xEE\xA4\x90 " ;
108- }
199+
0 commit comments