#ifndef _TUI_STATE_H_
#define _TUI_STATE_H_
#include <stdint.h>

typedef enum TuiMode {
	PINPAD_TUI_MODE,
	COLDWALLET_TUI_MODE
} TuiMode;

typedef enum TuiState {
	NONE_TUI_STATE = 0x9999,
	OK_TUI_STATE = 0,
	SESSION_ON_TUI_STATE = 0x63000,
	CANCELLED_TUI_STATE = 0x5000,
	SESSION_OFF_TUI_STATE = 0x5001,
	WRONG_FP_TUI_STATE = 0x7010,
	TRY_AGAIN_FP_TUI_STATE = 0x7011,
	CONFIRMED_TUI_STATE = 0x7015,
	GET_TRANSACTION_SO_STATE = 0X7016,
	FAILED_TUI_STATE = 0x7017,
	RESTORED_TUI_STATE = 0x7018,
	TEXT_LINK_TUI_STATE = 0x7019,
	SETTING_BACKGROUND_TUI_STATE = 0x7020,
	SETTING_BACKGROUND_SESSION_ON_TUI_STATE = (SESSION_ON_TUI_STATE | SETTING_BACKGROUND_TUI_STATE),
	SETTING_TOUCHABLE_VIEW_TUI_STATE = 0x7021,
	SETTING_TOUCHABLE_VIEW_SESSION_ON_TUI_STATE = (SESSION_ON_TUI_STATE | SETTING_TOUCHABLE_VIEW_TUI_STATE),
	SETTING_DRAWABLE_VIEW_TUI_STATE = 0x7022,
	SETTING_DRAWABLE_VIEW_SESSION_ON_TUI_STATE = (SESSION_ON_TUI_STATE | SETTING_DRAWABLE_VIEW_TUI_STATE),
	REQUEST_TEXT_RESTORE_WRONG_INPUT_TUI_STATE = 0x7023,
//	INVALID_COUNT_MNEMONIC_TUI_STATE = 0x7024,
//	FAILED_CHECKSUM_MNEMONIC_TUI_STATE = 0x7025,
	INVALID_IMAGE_TUI_STATE = 0x7026,
	UPDATE_SCREEN_BACKUP_TUI_STATE = 0x7027,
	UPDATE_SCREEN_BACKUP_QUIZ_TUI_STATE = 0x7028,
	UPDATE_SCREEN_RESTORE_TUI_STATE = 0x7029,
	UPDATE_SCREEN_CONFIRM_TUI_STATE = 0x7030,
	UPDATE_SCREEN_POPUP_BACKUP_EXIT_TUI_STATE = 0x7031,
	UPDATE_SCREEN_POPUP_RESTORE_EXIT_TUI_STATE = 0x7032,
	UPDATE_SCREEN_POPUP_RESTORE_FAILED_CHECKSUM_TUI_STATE = 0x7033,
	UPDATE_SCREEN_RECOVERY_TUI_STATE = 0x7034,
	REQUEST_TEXT_BACKUP_FIRST_WRONG_INPUT_TUI_STATE = 0x7035,
	REQUEST_TEXT_BACKUP_SECOND_WRONG_INPUT_TUI_STATE = 0x7036,
	REQUEST_TEXT_BACKUP_THIRD_WRONG_INPUT_TUI_STATE = 0x7037,
	SETTING_BACKUP_QUIZ_ORDER_TUI_STATE = 0x7038,
	SETTING_BACKUP_QUIZ_ORDER_SESSION_ON_TUI_STATE = (SESSION_ON_TUI_STATE | SETTING_BACKUP_QUIZ_ORDER_TUI_STATE),
} TuiState;

#ifdef __cplusplus
extern "C" {
#endif
	void initTuiState();
	void setTuiMode(TuiMode mode);
	TuiMode getTuiMode();
	void changeState(TuiState state);
	TuiState getState();
	void setPreState(TuiState preState);
	TuiState getPreState();
	void setTuiPinMode(bool mode);
	bool isTuiPinMode();

#ifdef __cplusplus
}
#endif

#endif // _TUI_STATE_H_