Skip to content

Commit fd56ac3

Browse files
committed
Merge branch 'dev' into release
2 parents 1d801c3 + 2ff07a0 commit fd56ac3

File tree

87 files changed

+1603
-1950
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+1603
-1950
lines changed

.drone.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ steps:
4040
image: hfdj/fztools
4141
pull: never
4242
commands:
43-
- git clone https://github.com/xMasterX/unleashed-extra-pack.git
44-
- cp -R unleashed-extra-pack/apps/* assets/resources/apps/
45-
- rm -rf unleashed-extra-pack
43+
- git clone https://github.com/xMasterX/all-the-plugins.git
44+
- cp -R all-the-plugins/apps/* assets/resources/apps/
45+
- rm -rf all-the-plugins
4646
- export DIST_SUFFIX=${DRONE_TAG}e
4747
- export WORKFLOW_BRANCH_OR_TAG=release-cfw
4848
- export FORCE_NO_DIRTY=yes
@@ -201,7 +201,7 @@ steps:
201201
[-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)
202202
203203
204-
[-Download latest extra apps pack-](https://github.com/xMasterX/unleashed-extra-pack/archive/refs/heads/main.zip)
204+
[-Download latest extra apps pack-](https://github.com/xMasterX/all-the-plugins/archive/refs/heads/main.zip)
205205
206206
207207
[-Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/${DRONE_TAG}/flipper-z-f7-update-${DRONE_TAG}.tgz&channel=release-cfw&version=${DRONE_TAG})
@@ -223,7 +223,7 @@ steps:
223223
commands:
224224
- wget "https://raw.githubusercontent.com/fieu/discord.sh/e1dc1a7595efad2cad8f072f0b3531c470f5b7c8/discord.sh"
225225
- chmod +x ./discord.sh
226-
- ./discord.sh --text 'New Unleashed firmware released!\n\nVersion - '${DRONE_TAG}'\n\n[-> Sponsor our project](https://boosty.to/mmxdev)\n\n[[Github - Changelog]](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/'${DRONE_TAG}')\n\n[-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)\n\n[-Download latest extra apps pack-](https://github.com/xMasterX/unleashed-extra-pack/archive/refs/heads/main.zip)\n\n[-Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/'${DRONE_TAG}'/flipper-z-f7-update-'${DRONE_TAG}'.tgz&channel=release-cfw&version='${DRONE_TAG}')\n\n[-Version without custom animations - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_no_anim/flipper-z-f7-update-'${DRONE_TAG}'n.tgz&channel=release-cfw&version='${DRONE_TAG}'n)\n\n[-Version with extra apps - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'e.tgz&channel=release-cfw&version='${DRONE_TAG}'e)'
226+
- ./discord.sh --text 'New Unleashed firmware released!\n\nVersion - '${DRONE_TAG}'\n\n[-> Sponsor our project](https://boosty.to/mmxdev)\n\n[[Github - Changelog]](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/'${DRONE_TAG}')\n\n[-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)\n\n[-Download latest extra apps pack-](https://github.com/xMasterX/all-the-plugins/archive/refs/heads/main.zip)\n\n[-Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/'${DRONE_TAG}'/flipper-z-f7-update-'${DRONE_TAG}'.tgz&channel=release-cfw&version='${DRONE_TAG}')\n\n[-Version without custom animations - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_no_anim/flipper-z-f7-update-'${DRONE_TAG}'n.tgz&channel=release-cfw&version='${DRONE_TAG}'n)\n\n[-Version with extra apps - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'e.tgz&channel=release-cfw&version='${DRONE_TAG}'e)'
227227

228228
- name: "Send extra pack build to telegram"
229229
image: appleboy/drone-telegram
@@ -281,9 +281,9 @@ steps:
281281
image: hfdj/fztools
282282
pull: never
283283
commands:
284-
- git clone https://github.com/xMasterX/unleashed-extra-pack.git
285-
- cp -R unleashed-extra-pack/apps/* assets/resources/apps/
286-
- rm -rf unleashed-extra-pack
284+
- git clone --branch dev https://github.com/xMasterX/all-the-plugins.git
285+
- cp -R all-the-plugins/apps/* assets/resources/apps/
286+
- rm -rf all-the-plugins
287287
- export DIST_SUFFIX=${DRONE_BUILD_NUMBER}e
288288
- export WORKFLOW_BRANCH_OR_TAG=dev-cfw
289289
- export FORCE_NO_DIRTY=yes

.gitmodules

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,7 @@
3333
url = https://github.com/ataradov/free-dap.git
3434
[submodule "applications/external/subbrute"]
3535
path = applications/external/subbrute
36-
url = https://github.com/derskythe/flipperzero-subbrute.git
36+
url = https://github.com/derskythe/flipperzero-subbrute.git
37+
[submodule "lib/heatshrink"]
38+
path = lib/heatshrink
39+
url = https://github.com/flipperdevices/heatshrink.git

CHANGELOG.md

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
### New changes
2-
* Plugins: Fix minesweeper freeze bugs, do some refactoring
3-
* Plugins: Update WAV Player, 16 bit support by @LTVA1
4-
* Infrared: Update universal remote assets (by @amec0e | PR #394)
5-
* OFW PR: Fixed writing gen1a magic tags with invalid BCC [(PR 2511 by AloneLiberty)](https://github.com/AloneLiberty/flipperzero-firmware/tree/nfc-magic-write-fix)
6-
* OFW: BadUSB: Script interpreter refactoring
7-
* OFW: SubGhz: fix Incorrect comparison in subghz_setting_get_hopper_frequency
8-
* OFW: Add one_wire lib to f18, separate ibutton
9-
* OFW: Improved debugging experience for external apps
10-
* OFW: SD Driver: reinit sd card on error
11-
* OFW: OTP programmer: return exit code based on error type
12-
13-
#### [🎲 Download latest extra apps pack](https://github.com/xMasterX/unleashed-extra-pack/archive/refs/heads/main.zip)
2+
* If you have copied apps into `apps` folder - remove `apps` folder on your microSD before installing this release to avoid issues!
3+
* Dev Builds: Add extra pack dev branch to avoid "bug" reports with `API mismatch`
4+
* App Loader: Add option to ignore api mismatch (warning! some apps WILL not work, please update them to avoid any issues) -> (by @Willy-JL | PR #395)
5+
* SubGHz: Add manually -> GSN protocol support
6+
* SubGHz: Add 318 and 418 MHz back to hopping list
7+
* SubGHz: Fix hopper stuck at 433.42 due to wide range signals -
8+
When we using 433.92 remote flipper in hopping mode will stuck at 433.42 and may loose signal because of that, need to avoid using close freqs in hopping, only freqs with bigger difference like 310 -> 315
9+
* Plugins: Update **TOTP (Authenticator)** [(by akopachov)](https://github.com/akopachov/flipper-zero_authenticator) -> BadBT Support
10+
* OFW: Screen streaming improvements
11+
* OFW: 1-Wire Overdrive Mode -> **Breaking API change, api was changed from 19.x to 20.x**
12+
* OFW: Disable UART IRQs by default
13+
* OFW: BadUSB: implement boot protocol
14+
* OFW: Remove hmac_sha256 from public API -> **Breaking API change, api was changed from 18.x to 19.x**
15+
**(this will make your manually copied plugins not work, update them in same way you installed them, or delete `apps` folder and then install firmware, if you using extra pack builds (with `e` in version) all apps in _Extra will be updated automatically)**
16+
17+
#### [🎲 Download latest extra apps pack](https://github.com/xMasterX/all-the-plugins/archive/refs/heads/main.zip)
1418

1519
[-> How to install firmware](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)
1620

ReadMe.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ Games:
195195

196196
### **Plugins**
197197

198-
## [- 🎲 Download Extra plugins for Unleashed](https://github.com/xMasterX/unleashed-extra-pack)
198+
## [- 🎲 Download Extra plugins for Unleashed](https://github.com/xMasterX/all-the-plugins)
199199

200200
## [- TOTP (Authenticator) config description](https://github.com/akopachov/flipper-zero_authenticator/blob/master/docs/conf-file_description.md)
201201

applications/examples/example_thermo/example_thermo.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,12 @@
1919
#include <one_wire/maxim_crc.h>
2020
#include <one_wire/one_wire_host.h>
2121

22+
#include <furi_hal_power.h>
23+
2224
#define UPDATE_PERIOD_MS 1000UL
2325
#define TEXT_STORE_SIZE 64U
2426

27+
#define DS18B20_CMD_SKIP_ROM 0xccU
2528
#define DS18B20_CMD_CONVERT 0x44U
2629
#define DS18B20_CMD_READ_SCRATCHPAD 0xbeU
2730

@@ -92,7 +95,7 @@ static void example_thermo_request_temperature(ExampleThermoContext* context) {
9295
/* After the reset, a ROM operation must follow.
9396
If there is only one device connected, the "Skip ROM" command is most appropriate
9497
(it can also be used to address all of the connected devices in some cases).*/
95-
onewire_host_skip(onewire);
98+
onewire_host_write(onewire, DS18B20_CMD_SKIP_ROM);
9699
/* After the ROM operation, a device-specific command is issued.
97100
In this case, it's a request to start measuring the temperature. */
98101
onewire_host_write(onewire, DS18B20_CMD_CONVERT);
@@ -133,7 +136,7 @@ static void example_thermo_read_temperature(ExampleThermoContext* context) {
133136
/* After the reset, a ROM operation must follow.
134137
If there is only one device connected, the "Skip ROM" command is most appropriate
135138
(it can also be used to address all of the connected devices in some cases).*/
136-
onewire_host_skip(onewire);
139+
onewire_host_write(onewire, DS18B20_CMD_SKIP_ROM);
137140

138141
/* After the ROM operation, a device-specific command is issued.
139142
This time, it will be the "Read Scratchpad" command which will
@@ -267,6 +270,9 @@ static void example_thermo_input_callback(InputEvent* event, void* ctx) {
267270

268271
/* Starts the reader thread and handles the input */
269272
static void example_thermo_run(ExampleThermoContext* context) {
273+
/* Enable power on external pins */
274+
furi_hal_power_enable_otg();
275+
270276
/* Configure the hardware in host mode */
271277
onewire_host_start(context->onewire);
272278

@@ -299,6 +305,9 @@ static void example_thermo_run(ExampleThermoContext* context) {
299305

300306
/* Reset the hardware */
301307
onewire_host_stop(context->onewire);
308+
309+
/* Disable power on external pins */
310+
furi_hal_power_disable_otg();
302311
}
303312

304313
/******************** Initialisation & startup *****************************/

applications/external/totp/application.fam

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ App(
99
"dialogs",
1010
"storage",
1111
"input",
12-
"notification"
12+
"notification",
13+
"bt"
1314
],
1415
stack_size=2 * 1024,
1516
order=20,
17+
fap_author="Alexander Kopachov (@akopachov)",
18+
fap_description="Software-based TOTP authenticator for Flipper Zero device",
19+
fap_weburl="https://github.com/akopachov/flipper-zero_authenticator",
1620
fap_category="Misc",
1721
fap_icon_assets="images",
1822
fap_icon="totp_10px.png",

applications/external/totp/cli/cli.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "commands/pin/pin.h"
1313
#include "commands/notification/notification.h"
1414
#include "commands/reset/reset.h"
15+
#include "commands/automation/automation.h"
1516

1617
static void totp_cli_print_unknown_command(const FuriString* unknown_command) {
1718
TOTP_CLI_PRINTF_ERROR(
@@ -57,6 +58,8 @@ static void totp_cli_handler(Cli* cli, FuriString* args, void* context) {
5758
totp_cli_command_pin_handle(plugin_state, args, cli);
5859
} else if(furi_string_cmp_str(cmd, TOTP_CLI_COMMAND_NOTIFICATION) == 0) {
5960
totp_cli_command_notification_handle(plugin_state, args, cli);
61+
} else if(furi_string_cmp_str(cmd, TOTP_CLI_COMMAND_AUTOMATION) == 0) {
62+
totp_cli_command_automation_handle(plugin_state, args, cli);
6063
} else if(furi_string_cmp_str(cmd, TOTP_CLI_COMMAND_RESET) == 0) {
6164
totp_cli_command_reset_handle(cli, cli_context->event_queue);
6265
} else {

applications/external/totp/cli/commands/add/add.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ void totp_cli_command_add_docopt_usage() {
6262
}
6363

6464
void totp_cli_command_add_docopt_arguments() {
65-
TOTP_CLI_PRINTF(" " TOTP_CLI_COMMAND_ADD_ARG_NAME " Token name\r\n");
65+
TOTP_CLI_PRINTF(" " TOTP_CLI_COMMAND_ADD_ARG_NAME " Token name\r\n");
6666
}
6767

6868
void totp_cli_command_add_docopt_options() {
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
#include "automation.h"
2+
#include <lib/toolbox/args.h>
3+
#include "../../../services/config/config.h"
4+
#include "../../../ui/scene_director.h"
5+
#include "../../cli_helpers.h"
6+
7+
#define TOTP_CLI_COMMAND_AUTOMATION_ARG_METHOD "automation"
8+
#define TOTP_CLI_COMMAND_AUTOMATION_METHOD_NONE "none"
9+
#define TOTP_CLI_COMMAND_AUTOMATION_METHOD_USB "usb"
10+
#ifdef TOTP_BADBT_TYPE_ENABLED
11+
#define TOTP_CLI_COMMAND_AUTOMATION_METHOD_BT "bt"
12+
#endif
13+
14+
void totp_cli_command_automation_docopt_commands() {
15+
TOTP_CLI_PRINTF(" " TOTP_CLI_COMMAND_AUTOMATION " Get or set automation method\r\n");
16+
}
17+
18+
void totp_cli_command_automation_docopt_usage() {
19+
TOTP_CLI_PRINTF(" " TOTP_CLI_COMMAND_NAME " " TOTP_CLI_COMMAND_AUTOMATION " " DOCOPT_OPTIONAL(
20+
DOCOPT_MULTIPLE(DOCOPT_ARGUMENT(TOTP_CLI_COMMAND_AUTOMATION_ARG_METHOD))) "\r\n");
21+
}
22+
23+
void totp_cli_command_automation_docopt_arguments() {
24+
TOTP_CLI_PRINTF(
25+
" " TOTP_CLI_COMMAND_AUTOMATION_ARG_METHOD
26+
" Automation method to be set. Must be one of [" TOTP_CLI_COMMAND_AUTOMATION_METHOD_NONE
27+
", " TOTP_CLI_COMMAND_AUTOMATION_METHOD_USB
28+
#ifdef TOTP_BADBT_TYPE_ENABLED
29+
", " TOTP_CLI_COMMAND_AUTOMATION_METHOD_BT
30+
#endif
31+
"]\r\n");
32+
}
33+
34+
static void totp_cli_command_automation_print_method(AutomationMethod method, char* color) {
35+
#ifdef TOTP_BADBT_TYPE_ENABLED
36+
bool has_previous_method = false;
37+
#endif
38+
if(method & AutomationMethodBadUsb) {
39+
TOTP_CLI_PRINTF_COLORFUL(color, "\"" TOTP_CLI_COMMAND_AUTOMATION_METHOD_USB "\"");
40+
#ifdef TOTP_BADBT_TYPE_ENABLED
41+
has_previous_method = true;
42+
#endif
43+
}
44+
45+
#ifdef TOTP_BADBT_TYPE_ENABLED
46+
if(method & AutomationMethodBadBt) {
47+
if(has_previous_method) {
48+
TOTP_CLI_PRINTF_COLORFUL(color, " and ");
49+
}
50+
51+
TOTP_CLI_PRINTF_COLORFUL(color, "\"" TOTP_CLI_COMMAND_AUTOMATION_METHOD_BT "\"");
52+
}
53+
#endif
54+
55+
if(method == AutomationMethodNone) {
56+
TOTP_CLI_PRINTF_COLORFUL(color, "\"" TOTP_CLI_COMMAND_AUTOMATION_METHOD_NONE "\"");
57+
}
58+
}
59+
60+
void totp_cli_command_automation_handle(PluginState* plugin_state, FuriString* args, Cli* cli) {
61+
if(!totp_cli_ensure_authenticated(plugin_state, cli)) {
62+
return;
63+
}
64+
65+
FuriString* temp_str = furi_string_alloc();
66+
bool new_method_provided = false;
67+
AutomationMethod new_method = AutomationMethodNone;
68+
bool args_valid = true;
69+
while(args_read_string_and_trim(args, temp_str)) {
70+
if(furi_string_cmpi_str(temp_str, TOTP_CLI_COMMAND_AUTOMATION_METHOD_NONE) == 0) {
71+
new_method_provided = true;
72+
new_method = AutomationMethodNone;
73+
} else if(furi_string_cmpi_str(temp_str, TOTP_CLI_COMMAND_AUTOMATION_METHOD_USB) == 0) {
74+
new_method_provided = true;
75+
new_method |= AutomationMethodBadUsb;
76+
}
77+
#ifdef TOTP_BADBT_TYPE_ENABLED
78+
else if(furi_string_cmpi_str(temp_str, TOTP_CLI_COMMAND_AUTOMATION_METHOD_BT) == 0) {
79+
new_method_provided = true;
80+
new_method |= AutomationMethodBadBt;
81+
}
82+
#endif
83+
else {
84+
args_valid = false;
85+
break;
86+
}
87+
}
88+
89+
do {
90+
if(!args_valid) {
91+
TOTP_CLI_PRINT_INVALID_ARGUMENTS();
92+
break;
93+
}
94+
95+
if(new_method_provided) {
96+
Scene previous_scene = TotpSceneNone;
97+
if(plugin_state->current_scene == TotpSceneGenerateToken ||
98+
plugin_state->current_scene == TotpSceneAppSettings) {
99+
previous_scene = plugin_state->current_scene;
100+
totp_scene_director_activate_scene(plugin_state, TotpSceneNone, NULL);
101+
}
102+
103+
plugin_state->automation_method = new_method;
104+
if(totp_config_file_update_automation_method(new_method) ==
105+
TotpConfigFileUpdateSuccess) {
106+
TOTP_CLI_PRINTF_SUCCESS("Automation method is set to ");
107+
totp_cli_command_automation_print_method(new_method, TOTP_CLI_COLOR_SUCCESS);
108+
cli_nl();
109+
} else {
110+
TOTP_CLI_PRINT_ERROR_UPDATING_CONFIG_FILE();
111+
}
112+
113+
#ifdef TOTP_BADBT_TYPE_ENABLED
114+
if(!(new_method & AutomationMethodBadBt) &&
115+
plugin_state->bt_type_code_worker_context != NULL) {
116+
totp_bt_type_code_worker_free(plugin_state->bt_type_code_worker_context);
117+
plugin_state->bt_type_code_worker_context = NULL;
118+
}
119+
#endif
120+
121+
if(previous_scene != TotpSceneNone) {
122+
totp_scene_director_activate_scene(plugin_state, previous_scene, NULL);
123+
}
124+
} else {
125+
TOTP_CLI_PRINTF_INFO("Current automation method is ");
126+
totp_cli_command_automation_print_method(
127+
plugin_state->automation_method, TOTP_CLI_COLOR_INFO);
128+
cli_nl();
129+
}
130+
} while(false);
131+
132+
furi_string_free(temp_str);
133+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#pragma once
2+
3+
#include <cli/cli.h>
4+
#include "../../../types/plugin_state.h"
5+
6+
#define TOTP_CLI_COMMAND_AUTOMATION "automation"
7+
8+
void totp_cli_command_automation_handle(PluginState* plugin_state, FuriString* args, Cli* cli);
9+
void totp_cli_command_automation_docopt_commands();
10+
void totp_cli_command_automation_docopt_usage();
11+
void totp_cli_command_automation_docopt_arguments();

applications/external/totp/cli/commands/delete/delete.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ void totp_cli_command_delete_docopt_usage() {
2424
}
2525

2626
void totp_cli_command_delete_docopt_arguments() {
27-
TOTP_CLI_PRINTF(" " TOTP_CLI_COMMAND_DELETE_ARG_INDEX " Token index in the list\r\n");
27+
TOTP_CLI_PRINTF(" " TOTP_CLI_COMMAND_DELETE_ARG_INDEX " Token index in the list\r\n");
2828
}
2929

3030
void totp_cli_command_delete_docopt_options() {

applications/external/totp/cli/commands/help/help.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "../pin/pin.h"
99
#include "../notification/notification.h"
1010
#include "../reset/reset.h"
11+
#include "../automation/automation.h"
1112

1213
void totp_cli_command_help_docopt_commands() {
1314
TOTP_CLI_PRINTF(" " TOTP_CLI_COMMAND_HELP ", " TOTP_CLI_COMMAND_HELP_ALT
@@ -31,6 +32,7 @@ void totp_cli_command_help_handle() {
3132
totp_cli_command_pin_docopt_usage();
3233
totp_cli_command_notification_docopt_usage();
3334
totp_cli_command_reset_docopt_usage();
35+
totp_cli_command_automation_docopt_usage();
3436
cli_nl();
3537
TOTP_CLI_PRINTF("Commands:\r\n");
3638
totp_cli_command_help_docopt_commands();
@@ -42,12 +44,14 @@ void totp_cli_command_help_handle() {
4244
totp_cli_command_pin_docopt_commands();
4345
totp_cli_command_notification_docopt_commands();
4446
totp_cli_command_reset_docopt_commands();
47+
totp_cli_command_automation_docopt_commands();
4548
cli_nl();
4649
TOTP_CLI_PRINTF("Arguments:\r\n");
4750
totp_cli_command_add_docopt_arguments();
4851
totp_cli_command_delete_docopt_arguments();
4952
totp_cli_command_timezone_docopt_arguments();
5053
totp_cli_command_notification_docopt_arguments();
54+
totp_cli_command_automation_docopt_arguments();
5155
cli_nl();
5256
TOTP_CLI_PRINTF("Options:\r\n");
5357
totp_cli_command_add_docopt_options();

applications/external/totp/cli/commands/notification/notification.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include "../../../ui/scene_director.h"
55
#include "../../cli_helpers.h"
66

7-
#define TOTP_CLI_COMMAND_NOTIFICATION_ARG_METHOD "method"
7+
#define TOTP_CLI_COMMAND_NOTIFICATION_ARG_METHOD "notification"
88
#define TOTP_CLI_COMMAND_NOTIFICATION_METHOD_NONE "none"
99
#define TOTP_CLI_COMMAND_NOTIFICATION_METHOD_SOUND "sound"
1010
#define TOTP_CLI_COMMAND_NOTIFICATION_METHOD_VIBRO "vibro"
@@ -23,7 +23,7 @@ void totp_cli_command_notification_docopt_usage() {
2323
void totp_cli_command_notification_docopt_arguments() {
2424
TOTP_CLI_PRINTF(
2525
" " TOTP_CLI_COMMAND_NOTIFICATION_ARG_METHOD
26-
" Notification method to be set. Must be one of [" TOTP_CLI_COMMAND_NOTIFICATION_METHOD_NONE
26+
" Notification method to be set. Must be one of [" TOTP_CLI_COMMAND_NOTIFICATION_METHOD_NONE
2727
", " TOTP_CLI_COMMAND_NOTIFICATION_METHOD_SOUND
2828
", " TOTP_CLI_COMMAND_NOTIFICATION_METHOD_VIBRO "]\r\n");
2929
}

0 commit comments

Comments
 (0)