Skip to content

Commit

Permalink
feat: Showing dialog to switch profile #1781
Browse files Browse the repository at this point in the history
  • Loading branch information
bibash28 committed Aug 14, 2023
1 parent 8896252 commit 650966a
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 69 deletions.
107 changes: 47 additions & 60 deletions lib/dashboard/qr_code/qr_code_scan/cubit/qr_code_scan_cubit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import 'package:beacon_flutter/beacon_flutter.dart';
import 'package:bloc/bloc.dart';
import 'package:credential_manifest/credential_manifest.dart';
import 'package:did_kit/did_kit.dart';
import 'package:dio/dio.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:json_annotation/json_annotation.dart';
Expand Down Expand Up @@ -118,17 +117,15 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {
}
} on FormatException {
log.i('Format Exception');
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString.RESPONSE_STRING_THIS_QR_CODE_IS_NOT_SUPPORTED,
),
emitError(
ResponseMessage(
ResponseString.RESPONSE_STRING_THIS_QR_CODE_IS_NOT_SUPPORTED,
),
);
} catch (e, s) {
log.e('Error -$e, stack: $s');
if (e is MessageHandler) {
emit(state.error(messageHandler: e));
emitError(e);
} else {
var message =
ResponseString.RESPONSE_STRING_SOMETHING_WENT_WRONG_TRY_AGAIN_LATER;
Expand All @@ -140,10 +137,7 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {
if (e.toString().startsWith('Exception: INIT_ISSUE')) {
message = ResponseString.RESPONSE_STRING_deviceIncompatibilityMessage;
}

emit(
state.error(messageHandler: ResponseMessage(message)),
);
emitError(ResponseMessage(message));
}
}
}
Expand All @@ -156,20 +150,20 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {
try {
await verify(uri: Uri.parse(deepLinkUrl));
} on FormatException {
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString
.RESPONSE_STRING_THIS_URL_DOSE_NOT_CONTAIN_A_VALID_MESSAGE,
),
emitError(
ResponseMessage(
ResponseString
.RESPONSE_STRING_THIS_URL_DOSE_NOT_CONTAIN_A_VALID_MESSAGE,
),
);
}
}
}

Future<void> emitError(MessageHandler messageHandler) async {
emit(state.error(messageHandler: messageHandler));
void emitError(MessageHandler messageHandler) {
emit(
state.error(message: StateMessage.error(messageHandler: messageHandler)),
);
}

Future<void> verify({required Uri uri, bool? isScan}) async {
Expand Down Expand Up @@ -264,13 +258,15 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {
} catch (e) {
log.e(e);
if (e is MessageHandler) {
emit(state.error(messageHandler: e));
emit(state.error(message: StateMessage.error(messageHandler: e)));
} else {
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString
.RESPONSE_STRING_SOMETHING_WENT_WRONG_TRY_AGAIN_LATER,
message: StateMessage.error(
messageHandler: ResponseMessage(
ResponseString
.RESPONSE_STRING_SOMETHING_WENT_WRONG_TRY_AGAIN_LATER,
),
),
),
);
Expand All @@ -291,8 +287,12 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {
.startsWith(currentOIIDC4VCType.presentationPrefix)) {
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString.RESPONSE_STRING_pleaseSwitchToCorrectOIDC4VCProfile,
message: StateMessage.error(
messageHandler: ResponseMessage(
ResponseString
.RESPONSE_STRING_pleaseSwitchToCorrectOIDC4VCProfile,
),
showDialog: true,
),
),
);
Expand Down Expand Up @@ -323,8 +323,12 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {
.startsWith(currentOIIDC4VCType.presentationPrefix)) {
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString.RESPONSE_STRING_pleaseSwitchToCorrectOIDC4VCProfile,
message: StateMessage.error(
messageHandler: ResponseMessage(
ResponseString
.RESPONSE_STRING_pleaseSwitchToCorrectOIDC4VCProfile,
),
showDialog: true,
),
),
);
Expand Down Expand Up @@ -563,14 +567,11 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {
'An error occurred while connecting to the server. $e',
);
if (e is MessageHandler) {
emit(state.error(messageHandler: e));
emitError(e);
} else {
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString
.RESPONSE_STRING_SOMETHING_WENT_WRONG_TRY_AGAIN_LATER,
),
emitError(
ResponseMessage(
ResponseString.RESPONSE_STRING_SOMETHING_WENT_WRONG_TRY_AGAIN_LATER,
),
);
}
Expand Down Expand Up @@ -683,20 +684,14 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {
goBack();
} catch (e) {
if (e is MessageHandler) {
emit(
state.error(messageHandler: e),
);
emitError(e);
} else {
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString
.RESPONSE_STRING_SOMETHING_WENT_WRONG_TRY_AGAIN_LATER, // ignore: lines_longer_than_80_chars
),
emitError(
ResponseMessage(
ResponseString.RESPONSE_STRING_SOMETHING_WENT_WRONG_TRY_AGAIN_LATER,
),
);
}
return;
}
}

Expand Down Expand Up @@ -840,24 +835,18 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {

///credential should not be empty since we have to present
if (credentialsCubit.state.credentials.isEmpty) {
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString.RESPONSE_STRING_CREDENTIAL_EMPTY_ERROR,
),
),
emitError(
ResponseMessage(ResponseString.RESPONSE_STRING_CREDENTIAL_EMPTY_ERROR),
);
isValid = false;
}

///request attribute check
if (requestAttributeExists(uri) && isValid) {
isValid = false;
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString.RESPONSE_STRING_SCAN_UNSUPPORTED_MESSAGE,
),
emitError(
ResponseMessage(
ResponseString.RESPONSE_STRING_SCAN_UNSUPPORTED_MESSAGE,
),
);
}
Expand All @@ -873,11 +862,9 @@ class QRCodeScanCubit extends Cubit<QRCodeScanState> {

///check if claims exists
if (sIOPV2Param.claims == null && isValid) {
emit(
state.error(
messageHandler: ResponseMessage(
ResponseString.RESPONSE_STRING_SCAN_UNSUPPORTED_MESSAGE,
),
emitError(
ResponseMessage(
ResponseString.RESPONSE_STRING_SCAN_UNSUPPORTED_MESSAGE,
),
);
isValid = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ class QRCodeScanState extends Equatable {
);
}

QRCodeScanState error({required MessageHandler messageHandler}) {
QRCodeScanState error({required StateMessage message}) {
return QRCodeScanState(
status: QrScanStatus.error,
message: StateMessage.error(messageHandler: messageHandler),
message: message,
isScan: isScan,
uri: uri,
isRequestVerified: isRequestVerified,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ class _QrCodeScanPageState extends State<QrCodeScanPage> {
listener: (context, state) async {
if (state.status == QrScanStatus.error) {
if (state.message != null) {
Navigator.of(context).pop();
final Route<dynamic>? currentRoute = ModalRoute.of(context);
currentRoute!.didPop(true);
}
}

Expand Down
6 changes: 3 additions & 3 deletions lib/splash/bloclisteners/blocklisteners.dart
Original file line number Diff line number Diff line change
Expand Up @@ -253,9 +253,9 @@ final qrCodeBlocListener = BlocListener<QRCodeScanCubit, QRCodeScanState>(
} catch (e) {
log.e(e);
if (e is MessageHandler) {
await context.read<QRCodeScanCubit>().emitError(e);
context.read<QRCodeScanCubit>().emitError(e);
} else {
await context.read<QRCodeScanCubit>().emitError(
context.read<QRCodeScanCubit>().emitError(
ResponseMessage(
ResponseString
.RESPONSE_STRING_SOMETHING_WENT_WRONG_TRY_AGAIN_LATER,
Expand Down Expand Up @@ -317,7 +317,7 @@ final qrCodeBlocListener = BlocListener<QRCodeScanCubit, QRCodeScanState>(
qrCodeScanCubit: context.read<QRCodeScanCubit>(),
);
} else {
await context.read<QRCodeScanCubit>().emitError(
context.read<QRCodeScanCubit>().emitError(
ResponseMessage(
ResponseString.RESPONSE_STRING_SCAN_REFUSE_HOST,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import '../token_parameters/token_parameters_class.dart';

class VerifierTokenParametersTest extends TokenParameterTest {
final verifierTokenParameters =
VerifierTokenParameters(privateKey, '', '', Uri.parse(''), []);
VerifierTokenParameters(privateKey, '', '', Uri.parse(''), [], '');

@override
void publicKeyTest() {
Expand All @@ -31,14 +31,14 @@ class VerifierTokenParametersTest extends TokenParameterTest {
@override
void algorithmIsES256Test() {
final tokenParameters =
VerifierTokenParameters(privateKey2, '', '', Uri.parse(''), []);
VerifierTokenParameters(privateKey2, '', '', Uri.parse(''), [], '');
expect(tokenParameters.alg, ES256Alg);
}

@override
void algorithmIsNotNullTest() {
final tokenParameters =
VerifierTokenParameters(keyWithAlg, '', '', Uri.parse(''), []);
VerifierTokenParameters(keyWithAlg, '', '', Uri.parse(''), [], '');
expect(tokenParameters.alg, HS256Alg);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ void main() {
'',
uri,
credentialsToBePresented,
'',
);

const nonce = '69165b47-a851-11ed-bd52-0a1628958560';
Expand Down

0 comments on commit 650966a

Please sign in to comment.