Просмотр исходного кода

Merge totp from https://github.com/akopachov/flipper-zero_authenticator

# Conflicts:
#	totp/ui/scenes/authenticate/totp_scene_authenticate.c
#	totp/ui/scenes/standby/standby.c
Willy-JL 1 год назад
Родитель
Сommit
6b22c7d004

+ 1 - 1
totp/application.fam

@@ -7,7 +7,7 @@ App(
     requires=["gui", "cli", "dialogs", "storage", "input", "notification", "bt"],
     stack_size=2 * 1024,
     order=20,
-    fap_version="5.100",
+    fap_version="5.110",
     fap_author="Alexander Kopachov (@akopachov)",
     fap_description="Software-based TOTP/HOTP authenticator for Flipper Zero device",
     fap_weburl="https://github.com/akopachov/flipper-zero_authenticator",

+ 15 - 6
totp/ui/scenes/authenticate/totp_scene_authenticate.c

@@ -1,6 +1,9 @@
 #include "totp_scene_authenticate.h"
 #include <dialogs/dialogs.h>
 #include <totp_icons.h>
+#if __has_include(<assets_icons.h>)
+#include <assets_icons.h>
+#endif
 #include "../../../types/common.h"
 #include "../../constants.h"
 #include "../../../services/config/config.h"
@@ -81,12 +84,18 @@ bool totp_scene_authenticate_handle_event(
         return true;
     }
 
-    if(event->input.type == InputTypePress && event->input.key == InputKeyBack) {
+    if(event->input.type == InputTypeShort && event->input.key == InputKeyBack) {
         return false;
     }
 
     SceneState* scene_state = plugin_state->current_scene_state;
-    if(event->input.type == InputTypePress) {
+    if((event->input.type == InputTypeLong || event->input.type == InputTypeRepeat) &&
+       event->input.key == InputKeyBack) {
+        if(scene_state->code_length > 0) {
+            scene_state->code_input[scene_state->code_length - 1] = 0;
+            scene_state->code_length--;
+        }
+    } else if(event->input.type == InputTypePress) {
         switch(event->input.key) {
         case InputKeyUp:
             if(scene_state->code_length < MAX_CODE_LENGTH) {
@@ -141,17 +150,17 @@ bool totp_scene_authenticate_handle_event(
                     SCREEN_HEIGHT_CENTER - 5,
                     AlignCenter,
                     AlignCenter);
+#if __has_include(<assets_icons.h>)
                 dialog_message_set_icon(message, &I_WarningDolphinFlip_45x42, 83, 22);
+#else
+                dialog_message_set_icon(message, &I_DolphinCommon_56x48, 72, 17);
+#endif
                 dialog_message_show(plugin_state->dialogs_app, message);
                 dialog_message_free(message);
             }
             break;
         }
         case InputKeyBack:
-            if(scene_state->code_length > 0) {
-                scene_state->code_input[scene_state->code_length - 1] = 0;
-                scene_state->code_length--;
-            }
             break;
         default:
             break;

+ 8 - 1
totp/ui/scenes/standby/standby.c

@@ -1,14 +1,21 @@
 #include "standby.h"
+#if __has_include(<assets_icons.h>)
+#include <assets_icons.h>
+#endif
 #include <totp_icons.h>
 #include "../../constants.h"
 
 #include <assets_icons.h>
 
 void totp_scene_standby_render(Canvas* const canvas) {
+#if __has_include(<assets_icons.h>)
     canvas_draw_icon(canvas, SCREEN_WIDTH - 50, SCREEN_HEIGHT - 44, &I_WarningDolphinFlip_45x42);
+#else
+    canvas_draw_icon(canvas, SCREEN_WIDTH - 56, SCREEN_HEIGHT - 48, &I_DolphinCommon_56x48);
+#endif
 
     canvas_set_font(canvas, FontPrimary);
     canvas_draw_str_aligned(canvas, 5, 10, AlignLeft, AlignTop, "CLI command");
 
     canvas_draw_str_aligned(canvas, 5, 24, AlignLeft, AlignTop, "is running now");
-}
+}

+ 1 - 1
totp/version.h

@@ -1,5 +1,5 @@
 #pragma once
 
 #define TOTP_APP_VERSION_MAJOR (5)
-#define TOTP_APP_VERSION_MINOR (10)
+#define TOTP_APP_VERSION_MINOR (11)
 #define TOTP_APP_VERSION_PATCH (0)