From b3d7583f9b326adf9f4db4d80c2a57ad54364087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=82=E3=81=8F?= Date: Tue, 16 Aug 2022 00:53:08 +0900 Subject: [PATCH] SubGhz: update notification messages (#1602) * SubGhz: update notification messages * Assets: update default notification dolphin. SubGhz: update prohibited frequency text. * FuriHal: finalize version and region link --- .../lfrfid/scene/lfrfid_app_scene_write.cpp | 2 +- .../nfc_scene_mf_ultralight_read_auth.c | 2 +- .../nfc_scene_mf_ultralight_unlock_warn.c | 2 +- .../scenes/storage_settings_scene_benchmark.c | 2 +- .../storage_settings_scene_format_confirm.c | 2 +- .../storage_settings_scene_formatting.c | 2 +- .../scenes/storage_settings_scene_sd_info.c | 2 +- .../storage_settings_scene_unmount_confirm.c | 2 +- .../scenes/storage_settings_scene_unmounted.c | 2 +- .../subghz/scenes/subghz_scene_need_saving.c | 2 +- .../scenes/subghz_scene_receiver_info.c | 2 +- .../scenes/subghz_scene_show_error_sub.c | 2 +- .../subghz/scenes/subghz_scene_show_only_rx.c | 14 ++++++++++---- applications/subghz/subghz.c | 6 ++++++ applications/subghz/subghz_i.c | 18 +++++++++--------- assets/icons/Dolphin/DolphinCommon_56x48.png | Bin 0 -> 1416 bytes .../Dolphin/DolphinFirstStart7_61x51.png | Bin 544 -> 0 bytes .../Dolphin/DolphinFirstStart8_56x51.png | Bin 1340 -> 0 bytes 18 files changed, 37 insertions(+), 25 deletions(-) create mode 100644 assets/icons/Dolphin/DolphinCommon_56x48.png delete mode 100644 assets/icons/Dolphin/DolphinFirstStart7_61x51.png delete mode 100644 assets/icons/Dolphin/DolphinFirstStart8_56x51.png diff --git a/applications/lfrfid/scene/lfrfid_app_scene_write.cpp b/applications/lfrfid/scene/lfrfid_app_scene_write.cpp index ff7b49a4d..274ba3158 100644 --- a/applications/lfrfid/scene/lfrfid_app_scene_write.cpp +++ b/applications/lfrfid/scene/lfrfid_app_scene_write.cpp @@ -41,7 +41,7 @@ bool LfRfidAppSceneWrite::on_event(LfRfidApp* app, LfRfidApp::Event* event) { case RfidWorker::WriteResult::NotWritable: if(!card_not_supported) { auto popup = app->view_controller.get(); - popup->set_icon(72, 14, &I_DolphinFirstStart8_56x51); + popup->set_icon(72, 17, &I_DolphinCommon_56x48); popup->set_header("Still trying to write...", 64, 3, AlignCenter, AlignTop); popup->set_text( "Make sure this\ncard is writable\nand not\nprotected.", diff --git a/applications/nfc/scenes/nfc_scene_mf_ultralight_read_auth.c b/applications/nfc/scenes/nfc_scene_mf_ultralight_read_auth.c index 968157bdb..853ccb055 100644 --- a/applications/nfc/scenes/nfc_scene_mf_ultralight_read_auth.c +++ b/applications/nfc/scenes/nfc_scene_mf_ultralight_read_auth.c @@ -43,7 +43,7 @@ void nfc_scene_mf_ultralight_read_auth_set_state(Nfc* nfc, NfcSceneMfUlReadState 22, AlignLeft, AlignTop); - popup_set_icon(nfc->popup, 73, 17, &I_DolphinFirstStart8_56x51); + popup_set_icon(nfc->popup, 73, 20, &I_DolphinCommon_56x48); } scene_manager_set_scene_state(nfc->scene_manager, NfcSceneMfUltralightReadAuth, state); } diff --git a/applications/nfc/scenes/nfc_scene_mf_ultralight_unlock_warn.c b/applications/nfc/scenes/nfc_scene_mf_ultralight_unlock_warn.c index 00df98e75..58e081db9 100644 --- a/applications/nfc/scenes/nfc_scene_mf_ultralight_unlock_warn.c +++ b/applications/nfc/scenes/nfc_scene_mf_ultralight_unlock_warn.c @@ -16,7 +16,7 @@ void nfc_scene_mf_ultralight_unlock_warn_on_enter(void* context) { dialog_ex_set_header(dialog_ex, "Risky function!", 64, 4, AlignCenter, AlignTop); dialog_ex_set_text( dialog_ex, "Wrong password\ncan block your\ncard.", 4, 18, AlignLeft, AlignTop); - dialog_ex_set_icon(dialog_ex, 73, 17, &I_DolphinFirstStart8_56x51); + dialog_ex_set_icon(dialog_ex, 73, 20, &I_DolphinCommon_56x48); dialog_ex_set_center_button_text(dialog_ex, "OK"); view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewDialogEx); diff --git a/applications/storage_settings/scenes/storage_settings_scene_benchmark.c b/applications/storage_settings/scenes/storage_settings_scene_benchmark.c index 615e07f8b..ddeea4eba 100644 --- a/applications/storage_settings/scenes/storage_settings_scene_benchmark.c +++ b/applications/storage_settings/scenes/storage_settings_scene_benchmark.c @@ -122,7 +122,7 @@ void storage_settings_scene_benchmark_on_enter(void* context) { view_dispatcher_switch_to_view(app->view_dispatcher, StorageSettingsViewDialogEx); if(sd_status != FSE_OK) { - dialog_ex_set_icon(dialog_ex, 72, 14, &I_DolphinFirstStart8_56x51); + dialog_ex_set_icon(dialog_ex, 72, 17, &I_DolphinCommon_56x48); dialog_ex_set_header(dialog_ex, "SD Card Not Mounted", 64, 3, AlignCenter, AlignTop); dialog_ex_set_text( dialog_ex, "Try to reinsert\nor format SD\ncard.", 3, 19, AlignLeft, AlignTop); diff --git a/applications/storage_settings/scenes/storage_settings_scene_format_confirm.c b/applications/storage_settings/scenes/storage_settings_scene_format_confirm.c index ebf7dece4..261ef1997 100644 --- a/applications/storage_settings/scenes/storage_settings_scene_format_confirm.c +++ b/applications/storage_settings/scenes/storage_settings_scene_format_confirm.c @@ -14,7 +14,7 @@ void storage_settings_scene_format_confirm_on_enter(void* context) { FS_Error sd_status = storage_sd_status(app->fs_api); if(sd_status == FSE_NOT_READY) { - dialog_ex_set_icon(dialog_ex, 72, 14, &I_DolphinFirstStart8_56x51); + dialog_ex_set_icon(dialog_ex, 72, 17, &I_DolphinCommon_56x48); dialog_ex_set_header(dialog_ex, "SD Card Not Mounted", 64, 3, AlignCenter, AlignTop); dialog_ex_set_text( dialog_ex, "Try to reinsert\nor format SD\ncard.", 3, 19, AlignLeft, AlignTop); diff --git a/applications/storage_settings/scenes/storage_settings_scene_formatting.c b/applications/storage_settings/scenes/storage_settings_scene_formatting.c index e0d8dfca8..df5e3cc17 100755 --- a/applications/storage_settings/scenes/storage_settings_scene_formatting.c +++ b/applications/storage_settings/scenes/storage_settings_scene_formatting.c @@ -47,7 +47,7 @@ void storage_settings_scene_formatting_on_enter(void* context) { dialog_ex_set_text( dialog_ex, storage_error_get_desc(error), 64, 32, AlignCenter, AlignCenter); } else { - dialog_ex_set_icon(dialog_ex, 72, 14, &I_DolphinFirstStart8_56x51); + dialog_ex_set_icon(dialog_ex, 72, 17, &I_DolphinCommon_56x48); dialog_ex_set_header(dialog_ex, "Format\ncomplete!", 14, 15, AlignLeft, AlignTop); } dialog_ex_set_center_button_text(dialog_ex, "OK"); diff --git a/applications/storage_settings/scenes/storage_settings_scene_sd_info.c b/applications/storage_settings/scenes/storage_settings_scene_sd_info.c index 485368c55..cfb4f310d 100644 --- a/applications/storage_settings/scenes/storage_settings_scene_sd_info.c +++ b/applications/storage_settings/scenes/storage_settings_scene_sd_info.c @@ -18,7 +18,7 @@ void storage_settings_scene_sd_info_on_enter(void* context) { dialog_ex_set_result_callback(dialog_ex, storage_settings_scene_sd_info_dialog_callback); if(sd_status != FSE_OK) { - dialog_ex_set_icon(dialog_ex, 72, 14, &I_DolphinFirstStart8_56x51); + dialog_ex_set_icon(dialog_ex, 72, 17, &I_DolphinCommon_56x48); dialog_ex_set_header(dialog_ex, "SD Card Not Mounted", 64, 3, AlignCenter, AlignTop); dialog_ex_set_text( dialog_ex, "Try to reinsert\nor format SD\ncard.", 3, 19, AlignLeft, AlignTop); diff --git a/applications/storage_settings/scenes/storage_settings_scene_unmount_confirm.c b/applications/storage_settings/scenes/storage_settings_scene_unmount_confirm.c index 971870715..2b485b7f7 100644 --- a/applications/storage_settings/scenes/storage_settings_scene_unmount_confirm.c +++ b/applications/storage_settings/scenes/storage_settings_scene_unmount_confirm.c @@ -14,7 +14,7 @@ void storage_settings_scene_unmount_confirm_on_enter(void* context) { FS_Error sd_status = storage_sd_status(app->fs_api); if(sd_status == FSE_NOT_READY) { - dialog_ex_set_icon(dialog_ex, 72, 14, &I_DolphinFirstStart8_56x51); + dialog_ex_set_icon(dialog_ex, 72, 17, &I_DolphinCommon_56x48); dialog_ex_set_header(dialog_ex, "SD Card Not Mounted", 64, 3, AlignCenter, AlignTop); dialog_ex_set_text( dialog_ex, "Try to reinsert\nor format SD\ncard.", 3, 19, AlignLeft, AlignTop); diff --git a/applications/storage_settings/scenes/storage_settings_scene_unmounted.c b/applications/storage_settings/scenes/storage_settings_scene_unmounted.c index 43f44583d..486f07603 100644 --- a/applications/storage_settings/scenes/storage_settings_scene_unmounted.c +++ b/applications/storage_settings/scenes/storage_settings_scene_unmounted.c @@ -13,7 +13,7 @@ void storage_settings_scene_unmounted_on_enter(void* context) { DialogEx* dialog_ex = app->dialog_ex; dialog_ex_set_center_button_text(dialog_ex, "OK"); - dialog_ex_set_icon(dialog_ex, 72, 14, &I_DolphinFirstStart8_56x51); + dialog_ex_set_icon(dialog_ex, 72, 17, &I_DolphinCommon_56x48); if(error == FSE_OK) { dialog_ex_set_header(dialog_ex, "SD Card Unmounted", 64, 3, AlignCenter, AlignTop); diff --git a/applications/subghz/scenes/subghz_scene_need_saving.c b/applications/subghz/scenes/subghz_scene_need_saving.c index eb70223a7..53bffedc8 100644 --- a/applications/subghz/scenes/subghz_scene_need_saving.c +++ b/applications/subghz/scenes/subghz_scene_need_saving.c @@ -16,7 +16,7 @@ void subghz_scene_need_saving_on_enter(void* context) { SubGhz* subghz = context; widget_add_string_multiline_element( - subghz->widget, 64, 13, AlignCenter, AlignCenter, FontPrimary, "Exit to Sub-Ghz menu?"); + subghz->widget, 64, 13, AlignCenter, AlignCenter, FontPrimary, "Exit to Sub-GHz menu?"); widget_add_string_multiline_element( subghz->widget, 64, diff --git a/applications/subghz/scenes/subghz_scene_receiver_info.c b/applications/subghz/scenes/subghz_scene_receiver_info.c index cbda1bc7b..6f3e6fd1f 100644 --- a/applications/subghz/scenes/subghz_scene_receiver_info.c +++ b/applications/subghz/scenes/subghz_scene_receiver_info.c @@ -102,7 +102,7 @@ void subghz_scene_receiver_info_on_enter(void* context) { subghz); } } else { - widget_add_icon_element(subghz->widget, 32, 12, &I_DolphinFirstStart7_61x51); + widget_add_icon_element(subghz->widget, 37, 15, &I_DolphinCommon_56x48); widget_add_string_element( subghz->widget, 13, 8, AlignLeft, AlignBottom, FontSecondary, "Error history parse."); } diff --git a/applications/subghz/scenes/subghz_scene_show_error_sub.c b/applications/subghz/scenes/subghz_scene_show_error_sub.c index 697588d0e..74e034323 100644 --- a/applications/subghz/scenes/subghz_scene_show_error_sub.c +++ b/applications/subghz/scenes/subghz_scene_show_error_sub.c @@ -11,7 +11,7 @@ void subghz_scene_show_error_sub_on_enter(void* context) { // Setup view Popup* popup = subghz->popup; - popup_set_icon(popup, 72, 14, &I_DolphinFirstStart8_56x51); + popup_set_icon(popup, 72, 17, &I_DolphinCommon_56x48); popup_set_header(popup, string_get_cstr(subghz->error_str), 14, 15, AlignLeft, AlignTop); popup_set_timeout(popup, 1500); popup_set_context(popup, subghz); diff --git a/applications/subghz/scenes/subghz_scene_show_only_rx.c b/applications/subghz/scenes/subghz_scene_show_only_rx.c index 22e68c978..3bc08e5b4 100644 --- a/applications/subghz/scenes/subghz_scene_show_only_rx.c +++ b/applications/subghz/scenes/subghz_scene_show_only_rx.c @@ -11,12 +11,18 @@ void subghz_scene_show_only_rx_on_enter(void* context) { // Setup view Popup* popup = subghz->popup; - popup_set_icon(popup, 67, 12, &I_DolphinFirstStart7_61x51); - const char* text = "This frequency can\nonly be used for RX\nin your region"; + + const char* header_text = "Transmission is blocked"; + const char* message_text = "Transmission on\nthis frequency is\nrestricted in\nyour region"; if(!furi_hal_region_is_provisioned()) { - text = "Update Flipper to unlock frequencies allowed in your region"; + header_text = "Firmware update needed"; + message_text = "Please update\nfirmware before\nusing this feature\nflipp.dev/upd"; } - popup_set_text(popup, text, 38, 40, AlignCenter, AlignBottom); + + popup_set_header(popup, header_text, 63, 3, AlignCenter, AlignTop); + popup_set_text(popup, message_text, 0, 17, AlignLeft, AlignTop); + popup_set_icon(popup, 72, 17, &I_DolphinCommon_56x48); + popup_set_timeout(popup, 1500); popup_set_context(popup, subghz); popup_set_callback(popup, subghz_scene_show_only_rx_popup_callback); diff --git a/applications/subghz/subghz.c b/applications/subghz/subghz.c index 4eb4bbd68..61960218b 100644 --- a/applications/subghz/subghz.c +++ b/applications/subghz/subghz.c @@ -304,6 +304,12 @@ void subghz_free(SubGhz* subghz) { int32_t subghz_app(void* p) { SubGhz* subghz = subghz_alloc(); + if(!furi_hal_region_is_provisioned()) { + subghz_dialog_message_show_only_rx(subghz); + subghz_free(subghz); + return 1; + } + //Load database bool load_database = subghz_environment_load_keystore( subghz->txrx->environment, EXT_PATH("subghz/assets/keeloq_mfcodes")); diff --git a/applications/subghz/subghz_i.c b/applications/subghz/subghz_i.c index b08b658a4..de2df681c 100644 --- a/applications/subghz/subghz_i.c +++ b/applications/subghz/subghz_i.c @@ -219,17 +219,17 @@ void subghz_dialog_message_show_only_rx(SubGhz* subghz) { DialogsApp* dialogs = subghz->dialogs; DialogMessage* message = dialog_message_alloc(); - dialog_message_set_header(message, "Transmission is blocked", 63, 3, AlignCenter, AlignTop); + const char* header_text = "Transmission is blocked"; + const char* message_text = "Transmission on\nthis frequency is\nrestricted in\nyour region"; + if(!furi_hal_region_is_provisioned()) { + header_text = "Firmware update needed"; + message_text = "Please update\nfirmware before\nusing this feature\nflipp.dev/upd"; + } - dialog_message_set_text( - message, - "This frequency\nis restricted to\nreceiving only\nin your region.", - 3, - 17, - AlignLeft, - AlignTop); + dialog_message_set_header(message, header_text, 63, 3, AlignCenter, AlignTop); + dialog_message_set_text(message, message_text, 0, 17, AlignLeft, AlignTop); - dialog_message_set_icon(message, &I_DolphinFirstStart8_56x51, 72, 14); + dialog_message_set_icon(message, &I_DolphinCommon_56x48, 72, 17); dialog_message_show(dialogs, message); dialog_message_free(message); diff --git a/assets/icons/Dolphin/DolphinCommon_56x48.png b/assets/icons/Dolphin/DolphinCommon_56x48.png new file mode 100644 index 0000000000000000000000000000000000000000..089aaed83507431993a76ca25d32fdd9664c1c84 GIT binary patch literal 1416 zcmaJ>eNYr-7(dh;KXS5&nWVIBjS_NizYg|x=Pr^vz*7zxJO|P-dw2IeZq?gec9-rD zoPZchQ_6}yP{Slc4I!!28K==nodOJ_nsCY-(wOq2uZbLx!rlYU{KIi)_Wj!D_j`WN z^FGgREXdEDF)ewT&1Re7Tj(uBvlG44lnH3;I%IzsO|z`*Vr!`uv?9QOwgs{#Ld+Ki zC9n_zxxBOkx@@+IwMwAaD)#3Ik`}gun2kLe))Crfb7e+#AgzHGCc+X$b>qJuIf`S7 z?8b}I{ghw#z>uiaLknQh@LJUrqHcVYS3v97F^OZN zCe|7^J|?QzUx0Zu17e(=CM1fYFpjtLk|a4~$g}e?hGH0!VoBOT&<=s(1ct%J9~?O} z$)jW_dkX9yTX~%W*i_IM%0{ z7EmP^_pKn`<5>E(SixgJU};7`)7Hidp&+DLnizsebUk}_-GfgbN^il9b`v)f+ z{o5Zry)d<7`fHQ^uw_;+x>mcPw0&8iW69x{k92O{Q}`yFdH=5d$pbf49w1&NS)G+vhr6y}5TMsofQirRDUmKilk5=(KGouJ{H9hW=$X zgi;)vI!jl!_4H3jD(?Jz=8By|i47I&tKA1y9{nfp;_|FxKBDNWp{hN9hJ1nU?z%J6 z?>UxyzWvO}Pgc~rCZ#5%Eq+_hNS~bBdiGlT&f%%e`hHjSySR2=JuK2^+%;$R3#Wz~ z=e_mfqW23bPa0fhe)HdE5+GelU&!jS3ckUZOQ)CC5?mo zo=tzG_4|RuvPUO|mhCwA>y)1c%SWC%a4?a-x|J*?ch~+n=R7o@>p6J2dE=$stKZmK z-xoTRwET2^Wu)&1U7!Ebw!!D?x`xwQX3pMnrRwCT?`4GHt4&?|cIiI{_^XYp-np>6 xE^lPSXzOYCC4X`6tl@OB1M5_S7jml-Y~(TPp{aTIejNKZ`m*!Atyxdk{0EAy49frj literal 0 HcmV?d00001 diff --git a/assets/icons/Dolphin/DolphinFirstStart7_61x51.png b/assets/icons/Dolphin/DolphinFirstStart7_61x51.png deleted file mode 100644 index a6dd02d26fcf4e88754996db5ce6c8b0e650d87e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^wm@vm2qYMIgl$cL6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwXFy8GFUIOHC z7I;J!Gca%qfiUBxyLEqng6t)pzOL*~8D;s5^~`e*Ph((U6!vs+43W5OdePAPu!98K zgXlSPWR4u&xZnr>94m{Gk_iuHc*@8aS-en~7f|r>!u$!gr+YZ&%>Gr{C zOVgHS#W@P^E~ppCPHI(?Nl*L9Y{<|RWWe$+`JmXuJ%YCn+})YbyyHc|Hn)qaN4Idz z$mMd|bBK#A^RB}O4(S4o^8z*>&uE*Lg)>gi6DoKtXu&!@?$h{_XvN4ok{x3MNQ4x{4fSjGWfI zdxOVv4ukpG9_J(eF-NdPojWXP-vyw!2~3Im1DYqlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#24v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn|Gtf;oFfdRsx715X zOiD~nO43m-20B&qvF*KZjA*NrESfFpHX8`gOOrftYexucqiS6q^qmz?V9Vygr+LN7Bj#md6T%)s2##lY3c#mUgn)ydMy#K6+j z&BVpgz}&^f!V;#}B|o_|H#M&WrZ)wl7pMz|UQlAlEdbi=l3J8mmYU*Ll%J~r_On$c zPPaI_;xrGcHwC9#oZWEh)dxC89~84lF%1&}CLa(Jo^XL2c+yYJ1E%*PV8Tw7bKzlN zU|i?v;uunK>&lGVe1{b{+SDKZjo+D_w#~GQgX2oo#qMLTo}YKjucrd z!w!F@Ky~iIi{gQ*L34Hf2<+83tEY10Xtn0k9UGXRihh?#Q8;8bCH&4j(Xz!d8xOTj zQPJKbXO!S?Ssf_9SmU13^Q%99TwS%|x$xxH%%G~DJ$tmTB=oBNHfUS5$Z6JHNiWaT z4!zO~Ntzm(ag8?LUmWV)cg$_}y!(fA4<1Q=*)?h6ig#X<1D^&=c@pz+*P<4inZ6hA z2Oauy@3+Z}?LFRGQl4yG|I72NbeeAE8{@ODGHSP|3eH|`c1=NCawP*>^!kYXLRUg^ zb6lTTT@C$p=8^R8E&YC)Pg^4sY_*o`X?=g*K-D9|MkV^eGpBQom#uaz)iaqKv_ssc z$!K?a6emN9UY^l>{jRmYRQHPb{4HITrF-VN%i7mpwubsm?d=v#kGkPlSDM3q_T}Rw z;kuuFzUwb6JDC(ADPPJ{sb~9j&En+?mzEgs?fQB>+{EAgROR_4mo6>XB{e0oFY#@( zNLt#OMZT|32($#P`ah+oL-O_UXMv)HF-xo)CawH<>UkXV9##p4P5i1Q70uBvLFJjJ LtDnm{r-UW|7?|u3