[FL-2674] Show error popup when NFC chip is not init/disconnected (#1722)
* Show error popup when NFC chip is not init/disconnected * Move to dialogs for the error message * Fix a memory leak and wrap the hal check * F7: update api_symbols.csv, add furi_hal_nfc_is_init Co-authored-by: SG <who.just.the.doctor@gmail.com> Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
parent
ed385594a3
commit
3d3c422751
@ -231,7 +231,30 @@ void nfc_show_loading_popup(void* context, bool show) {
|
||||
}
|
||||
}
|
||||
|
||||
static bool nfc_is_hal_ready() {
|
||||
if(!furi_hal_nfc_is_init()) {
|
||||
// No connection to the chip, show an error screen
|
||||
DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
|
||||
DialogMessage* message = dialog_message_alloc();
|
||||
dialog_message_set_text(
|
||||
message,
|
||||
"Error!\nNFC chip failed to start\n\n\nSend a photo of this to:\nsupport@flipperzero.one",
|
||||
0,
|
||||
0,
|
||||
AlignLeft,
|
||||
AlignTop);
|
||||
dialog_message_show(dialogs, message);
|
||||
dialog_message_free(message);
|
||||
furi_record_close(RECORD_DIALOGS);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
int32_t nfc_app(void* p) {
|
||||
if(!nfc_is_hal_ready()) return 0;
|
||||
|
||||
Nfc* nfc = nfc_alloc();
|
||||
char* args = p;
|
||||
|
||||
|
@ -33,6 +33,8 @@
|
||||
#include <nfc/scenes/nfc_scene.h>
|
||||
#include <nfc/helpers/nfc_custom_event.h>
|
||||
|
||||
#include <dialogs/dialogs.h>
|
||||
|
||||
#include "rpc/rpc_app.h"
|
||||
|
||||
#define NFC_TEXT_STORE_SIZE 128
|
||||
|
@ -1,5 +1,5 @@
|
||||
entry,status,name,type,params
|
||||
Version,+,1.3,,
|
||||
Version,+,1.4,,
|
||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||
Header,+,applications/services/cli/cli.h,,
|
||||
Header,+,applications/services/cli/cli_vcp.h,,
|
||||
@ -1096,6 +1096,7 @@ Function,+,furi_hal_nfc_field_off,void,
|
||||
Function,+,furi_hal_nfc_field_on,void,
|
||||
Function,-,furi_hal_nfc_init,void,
|
||||
Function,+,furi_hal_nfc_is_busy,_Bool,
|
||||
Function,+,furi_hal_nfc_is_init,_Bool,
|
||||
Function,+,furi_hal_nfc_listen,_Bool,"uint8_t*, uint8_t, uint8_t*, uint8_t, _Bool, uint32_t"
|
||||
Function,+,furi_hal_nfc_listen_rx,_Bool,"FuriHalNfcTxRxContext*, uint32_t"
|
||||
Function,+,furi_hal_nfc_listen_sleep,void,
|
||||
|
|
@ -39,6 +39,10 @@ bool furi_hal_nfc_is_busy() {
|
||||
return rfalNfcGetState() != RFAL_NFC_STATE_IDLE;
|
||||
}
|
||||
|
||||
bool furi_hal_nfc_is_init() {
|
||||
return rfalNfcGetState() != RFAL_NFC_STATE_NOTINIT;
|
||||
}
|
||||
|
||||
void furi_hal_nfc_field_on() {
|
||||
furi_hal_nfc_exit_sleep();
|
||||
st25r3916TxRxOn();
|
||||
|
@ -107,6 +107,12 @@ void furi_hal_nfc_init();
|
||||
*/
|
||||
bool furi_hal_nfc_is_busy();
|
||||
|
||||
/** Check if nfc is initialized
|
||||
*
|
||||
* @return true if initialized
|
||||
*/
|
||||
bool furi_hal_nfc_is_init();
|
||||
|
||||
/** NFC field on
|
||||
*/
|
||||
void furi_hal_nfc_field_on();
|
||||
|
Loading…
Reference in New Issue
Block a user