diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 90397d2..b298535 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -12,9 +12,9 @@ dependencies: mtrust_sec_kit: path: ../ mtrust_urp_types: ^6.0.0 - mtrust_urp_ble_strategy: ^9.0.0-8 - mtrust_urp_virtual_strategy: ^9.0.0-8 - mtrust_urp_ui: ^9.0.0-8 + mtrust_urp_ble_strategy: ^9.0.0-12 + mtrust_urp_virtual_strategy: ^9.0.0-12 + mtrust_urp_ui: ^9.0.0-12 liquid_flutter: ^19.0.0 dev_dependencies: diff --git a/lib/src/sec_reader.dart b/lib/src/sec_reader.dart index ec24f1c..5164473 100644 --- a/lib/src/sec_reader.dart +++ b/lib/src/sec_reader.dart @@ -340,15 +340,19 @@ class SECReader extends CmdWrapper { if(e.errorCode == 4) { final publicKey = await getPublicKey(); final oldToken = await requestToken(); - final newToken = await getToken(oldToken, publicKey); - if(newToken == null) { - throw SecReaderException( - message: 'Failed to get new tooken!', - type: SecReaderExceptionType.tokenFailed, - ); + try { + final newToken = await getToken(oldToken, publicKey); + if(newToken == null) { + throw SecReaderException( + message: 'Failed to get new token!', + type: SecReaderExceptionType.tokenFailed, + ); + } + await setToken(newToken); + return prime(payload); + } catch (e) { + rethrow; } - await setToken(newToken); - return prime(payload); } else { rethrow; } diff --git a/lib/src/ui/sec_widget.dart b/lib/src/ui/sec_widget.dart index 98b28fd..ba5aff9 100644 --- a/lib/src/ui/sec_widget.dart +++ b/lib/src/ui/sec_widget.dart @@ -66,7 +66,6 @@ class SecWidget extends StatelessWidget { if (stateType == LdSubmitStateType.error) { var message = controller.state.error?.message ?? 'Unknown error'; - final moreInfo = controller.state.error?.moreInfo; if(controller.state.error?.exception.runtimeType == SecReaderException) { final error = controller.state.error?.exception @@ -75,6 +74,12 @@ class SecWidget extends StatelessWidget { message = SecLocalizations.of(context).tokenFailed; } } + if(controller.state.error?.exception.runtimeType + == ApiException) { + final error = controller.state.error?.exception + as ApiException; + message = error.errorMessage; + } return LdAutoSpace( crossAxisAlignment: CrossAxisAlignment.center, children: [ @@ -85,10 +90,6 @@ class SecWidget extends StatelessWidget { LdTextP( message, ), - if(moreInfo != null) - LdTextP( - moreInfo, - ), Expanded( child: SecReaderVisualization( ledColor: Colors.red, diff --git a/pubspec.yaml b/pubspec.yaml index 348af6d..ca56dae 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -13,14 +13,14 @@ dependencies: sdk: flutter intl: ^0.19.0 liquid_flutter: ^19.0.0 - mtrust_urp_core: ^9.0.0-8 + mtrust_urp_core: ^9.0.0-12 mtrust_urp_types: ^6.0.0 - mtrust_urp_ui: ^9.0.0-8 + mtrust_urp_ui: ^9.0.0-12 dev_dependencies: flutter_test: sdk: flutter golden_toolkit: ^0.15.0 - mtrust_urp_virtual_strategy: ^9.0.0-8 + mtrust_urp_virtual_strategy: ^9.0.0-12 very_good_analysis: ^5.1.0 flutter: uses-material-design: true