zinongli 11 месяцев назад
Родитель
Сommit
4b038cbe83
3 измененных файлов с 45 добавлено и 16 удалено
  1. 3 0
      api/metroflip/metroflip_api.h
  2. 3 0
      api/metroflip/metroflip_api_table_i.h
  3. 39 16
      api/suica/suica_drawings.h

+ 3 - 0
api/metroflip/metroflip_api.h

@@ -143,6 +143,9 @@ extern const Icon I_Suica_CrackingEgg;
 extern const Icon I_Suica_DashLine;
 extern const Icon I_Suica_EmptyArrowDown;
 extern const Icon I_Suica_EmptyArrowRight;
+extern const Icon I_Suica_EntrySlider1;
+extern const Icon I_Suica_EntrySlider2;
+extern const Icon I_Suica_EntrySlider3;
 extern const Icon I_Suica_FilledArrowDown;
 extern const Icon I_Suica_FilledArrowRight;
 extern const Icon I_Suica_GinzaG;

+ 3 - 0
api/metroflip/metroflip_api_table_i.h

@@ -81,6 +81,9 @@ static constexpr auto metroflip_api_table = sort(create_array_t<sym_entry>(
     API_VARIABLE(I_Suica_DashLine, Icon),
     API_VARIABLE(I_Suica_EmptyArrowDown, Icon),
     API_VARIABLE(I_Suica_EmptyArrowRight, Icon),
+    API_VARIABLE(I_Suica_EntrySlider1, Icon),
+    API_VARIABLE(I_Suica_EntrySlider2, Icon),
+    API_VARIABLE(I_Suica_EntrySlider3, Icon),
     API_VARIABLE(I_Suica_FilledArrowDown, Icon),
     API_VARIABLE(I_Suica_FilledArrowRight, Icon),
     API_VARIABLE(I_Suica_GinzaG, Icon),

+ 39 - 16
api/suica/suica_drawings.h

@@ -476,14 +476,15 @@ static void suica_draw_vending_machine_page_2(
     SuicaHistory history,
     SuicaHistoryViewModel* model) {
     FuriString* buffer = furi_string_alloc();
-    
+
     if(model->animator_tick > 42) {
         // 6 steps of animation
         model->animator_tick = 0;
     }
 
     // Draw Thank You Banner
-    canvas_draw_icon(canvas, 49 - model->animator_tick, -9 + model->animator_tick, &I_Suica_VendingThankYou);
+    canvas_draw_icon(
+        canvas, 49 - model->animator_tick, -9 + model->animator_tick, &I_Suica_VendingThankYou);
     canvas_set_color(canvas, ColorWhite);
     canvas_draw_box(canvas, 50, 0, 128, 64);
     canvas_draw_box(canvas, 0, 0, 42, 64);
@@ -516,7 +517,7 @@ static void suica_draw_vending_machine_page_2(
     canvas_draw_str(canvas, 75, 45, furi_string_get_cstr(buffer));
 
     // Animate Vending Machine Flap
-    
+
     switch(model->animator_tick % 7) {
     case 0:
         canvas_draw_icon(canvas, 44, 40, &I_Suica_VendingFlapHollow);
@@ -848,32 +849,54 @@ static void suica_history_draw_callback(Canvas* canvas, void* model) {
         my_model->history.month,
         my_model->history.day);
     canvas_set_font(canvas, FontPrimary);
-    canvas_draw_str(canvas, 34, 8, furi_string_get_cstr(buffer));
+    canvas_draw_str(canvas, 36, 8, furi_string_get_cstr(buffer));
 
     // Entry Num
-    furi_string_printf(buffer, "%02d/%02d", my_model->entry, my_model->size);
-    canvas_set_font(canvas, FontPrimary);
-    canvas_draw_str(canvas, 99, 8, furi_string_get_cstr(buffer));
+    canvas_draw_box(canvas, 106, 0, 13, 9);
+
+    furi_string_printf(buffer, "%02d", my_model->entry);
+    canvas_set_font(canvas, FontKeyboard);
+    canvas_set_color(canvas, ColorWhite);
+    canvas_draw_str(canvas, 107, 8, furi_string_get_cstr(buffer));
+    canvas_set_color(canvas, ColorBlack);
+
+    switch(my_model->page) {
+    case 0:
+        canvas_draw_icon(canvas, 100, 0, &I_Suica_EntrySlider1);
+        break;
+    case 1:
+        canvas_draw_icon(canvas, 100, 0, &I_Suica_EntrySlider2);
+        break;
+    case 2:
+        canvas_draw_icon(canvas, 100, 0, &I_Suica_EntrySlider3);
+        break;
+    default:
+        break;
+    }
+    
+    canvas_set_color(canvas, ColorWhite);
+    if (my_model->entry == 1) {
+        canvas_draw_box(canvas, 99, 0, 6, 9);
+    } else if (my_model->entry == my_model->size) {
+        canvas_draw_box(canvas, 120, 0, 6, 9);
+    }
+    canvas_set_color(canvas, ColorBlack);
+
 
     // Frame
     canvas_draw_line(canvas, 0, 9, 26, 9);
     canvas_draw_line(canvas, 27, 9, 29, 7);
     canvas_draw_line(canvas, 29, 0, 29, 6);
 
-    canvas_draw_line(canvas, 31, 0, 31, 7);
-    canvas_draw_line(canvas, 33, 9, 31, 7);
-    canvas_draw_line(canvas, 90, 9, 34, 9);
-    canvas_draw_line(canvas, 91, 9, 94, 6);
-    canvas_draw_line(canvas, 94, 0, 94, 6);
-
+    canvas_draw_line(canvas, 33, 0, 31, 7);
+    canvas_draw_line(canvas, 35, 9, 33, 7);
+    canvas_draw_line(canvas, 92, 9, 36, 9);
+    canvas_draw_line(canvas, 93, 9, 96, 6);
     canvas_draw_line(canvas, 96, 0, 96, 6);
-    canvas_draw_line(canvas, 99, 9, 96, 6);
-    canvas_draw_line(canvas, 100, 9, 128, 9);
 
     furi_string_free(buffer);
 }
 
-
 static void suica_view_history_timer_callback(void* context) {
     Metroflip* app = (Metroflip*)context;
     view_dispatcher_send_custom_event(app->view_dispatcher, 0);