onSasKeysExchanged method
void
onSasKeysExchanged( - dynamic event
)
Implementation
void onSasKeysExchanged(VerificationEvent event) {
_log.info('emitter sas.keys_exchanged');
if (keysExchanged) {
return; // skip 2nd occurrence of this event when other clicked match
}
setState(() => keysExchanged = true);
// close dialog from previous stage, ex: sas.started
final nav = Navigator.of(context, rootNavigator: true);
if (nav.canPop()) nav.pop();
if (isVerifier) {
// open sas.keys_exchanged dialog
showModalBottomSheet(
context: context,
builder: (BuildContext context) => SasKeysExchangedView(
sender: event.sender(),
isVerifier: isVerifier,
emojis: event.emojis(),
onCancel: (BuildContext context) async {
await event.cancelSasVerification();
},
onMatch: (BuildContext context) async {
_log.info('sas.keys_exchanged - match');
await event.confirmSasVerification();
},
onMismatch: (BuildContext context) async {
_log.info('sas.keys_exchanged - mismatch');
await event.mismatchSasVerification();
},
),
isDismissible: false,
);
} else {
// fetch emojis
event.getEmojis().then((emojis) {
if (!context.mounted) return;
// open sas.keys_exchanged dialog
showModalBottomSheet(
// ignore: use_build_context_synchronously
context: context,
builder: (BuildContext context) => SasKeysExchangedView(
sender: event.sender(),
isVerifier: isVerifier,
emojis: emojis,
onCancel: (BuildContext context) async {
await event.cancelSasVerification();
},
onMatch: (BuildContext context) async {
_log.info('sas.keys_exchanged - match');
await event.confirmSasVerification();
},
onMismatch: (BuildContext context) async {
_log.info('sas.keys_exchanged - mismatch');
await event.mismatchSasVerification();
},
),
isDismissible: false,
);
});
}
}