fix Mzansi profiles QR code in offline mode

This commit is contained in:
yaso 2026-06-25 12:25:01 +02:00
parent d722251d50
commit 003c8b7c0d
3 changed files with 101 additions and 73 deletions

View file

@ -175,6 +175,8 @@ class _MihBusinessQrCodeState extends State<MihBusinessQrCode> {
} }
Widget displayBusinessQRCode(double profilePictureWidth) { Widget displayBusinessQRCode(double profilePictureWidth) {
MzansiProfileProvider profileprovider =
context.read<MzansiProfileProvider>();
return Screenshot( return Screenshot(
controller: screenshotController, controller: screenshotController,
child: Material( child: Material(
@ -193,42 +195,54 @@ class _MihBusinessQrCodeState extends State<MihBusinessQrCode> {
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
FutureBuilder( widget.business == null
future: futureImageUrl, ? MihCircleAvatar(
builder: (context, asyncSnapshot) { imageFile: profileprovider.businessProfilePicture,
if (asyncSnapshot.connectionState == width: profilePictureWidth,
ConnectionState.done && expandable: true,
asyncSnapshot.hasData) { editable: false,
if (asyncSnapshot.requireData != "" || fileNameController: TextEditingController(),
asyncSnapshot.requireData.isNotEmpty) { userSelectedfile: file,
return MihCircleAvatar( frameColor: MihColors.primary(),
imageFile: CachedNetworkImageProvider( backgroundColor: MihColors.secondary(),
asyncSnapshot.requireData), onChange: () {},
width: profilePictureWidth, )
expandable: true, : FutureBuilder(
editable: false, future: futureImageUrl,
fileNameController: TextEditingController(), builder: (context, asyncSnapshot) {
userSelectedfile: file, if (asyncSnapshot.connectionState ==
frameColor: MihColors.primary(), ConnectionState.done &&
backgroundColor: MihColors.secondary(), asyncSnapshot.hasData) {
onChange: () {}, if (asyncSnapshot.requireData != "" ||
); asyncSnapshot.requireData.isNotEmpty) {
} else { return MihCircleAvatar(
return Icon( imageFile: CachedNetworkImageProvider(
MihIcons.mihIDontKnow, asyncSnapshot.requireData),
size: profilePictureWidth, width: profilePictureWidth,
color: MihColors.primary(), expandable: true,
); editable: false,
} fileNameController: TextEditingController(),
} else { userSelectedfile: file,
return Icon( frameColor: MihColors.primary(),
MihIcons.mihRing, backgroundColor: MihColors.secondary(),
size: profilePictureWidth, onChange: () {},
color: MihColors.primary(), );
); } else {
} return Icon(
}, MihIcons.mihIDontKnow,
), size: profilePictureWidth,
color: MihColors.primary(),
);
}
} else {
return Icon(
MihIcons.mihRing,
size: profilePictureWidth,
color: MihColors.primary(),
);
}
},
),
FittedBox( FittedBox(
child: Text( child: Text(
business.Name, business.Name,

View file

@ -231,7 +231,7 @@ class _MihBusinessReviewsState extends State<MihBusinessReviews> {
); );
} }
} else { } else {
return Center(child: Text('Error')); return Center(child: Text('Error: MIH in Offline Mode'));
} }
}); });
} }

View file

@ -174,6 +174,8 @@ class _MihPersonalQrCodeState extends State<MihPersonalQrCode> {
} }
Widget displayPersonalQRCode(double profilePictureWidth) { Widget displayPersonalQRCode(double profilePictureWidth) {
MzansiProfileProvider profileProvider =
context.read<MzansiProfileProvider>();
return Screenshot( return Screenshot(
controller: screenshotController, controller: screenshotController,
child: Material( child: Material(
@ -192,42 +194,54 @@ class _MihPersonalQrCodeState extends State<MihPersonalQrCode> {
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
FutureBuilder( widget.user == null
future: futureImageUrl, ? MihCircleAvatar(
builder: (context, asyncSnapshot) { imageFile: profileProvider.userProfilePicture,
if (asyncSnapshot.connectionState == width: profilePictureWidth,
ConnectionState.done && expandable: true,
asyncSnapshot.hasData) { editable: false,
if (asyncSnapshot.requireData != "" || fileNameController: TextEditingController(),
asyncSnapshot.requireData.isNotEmpty) { userSelectedfile: file,
return MihCircleAvatar( frameColor: MihColors.primary(),
imageFile: CachedNetworkImageProvider( backgroundColor: MihColors.secondary(),
asyncSnapshot.requireData), onChange: () {},
width: profilePictureWidth, )
expandable: true, : FutureBuilder(
editable: false, future: futureImageUrl,
fileNameController: TextEditingController(), builder: (context, asyncSnapshot) {
userSelectedfile: file, if (asyncSnapshot.connectionState ==
frameColor: MihColors.primary(), ConnectionState.done &&
backgroundColor: MihColors.secondary(), asyncSnapshot.hasData) {
onChange: () {}, if (asyncSnapshot.requireData != "" ||
); asyncSnapshot.requireData.isNotEmpty) {
} else { return MihCircleAvatar(
return Icon( imageFile: CachedNetworkImageProvider(
MihIcons.mihIDontKnow, asyncSnapshot.requireData),
size: profilePictureWidth, width: profilePictureWidth,
color: MihColors.primary(), expandable: true,
); editable: false,
} fileNameController: TextEditingController(),
} else { userSelectedfile: file,
return Icon( frameColor: MihColors.primary(),
MihIcons.mihRing, backgroundColor: MihColors.secondary(),
size: profilePictureWidth, onChange: () {},
color: MihColors.primary(), );
); } else {
} return Icon(
}, MihIcons.mihIDontKnow,
), size: profilePictureWidth,
color: MihColors.primary(),
);
}
} else {
return Icon(
MihIcons.mihRing,
size: profilePictureWidth,
color: MihColors.primary(),
);
}
},
),
FittedBox( FittedBox(
child: Text( child: Text(
user.username, user.username,