build method
Implementation
@override
Widget build(BuildContext context, UpgradeBaseState state) {
if (Upgrader().debugLogging) {
print('UpgradeCard: build UpgradeCard');
}
return FutureBuilder(
future: state.initialized,
builder: (BuildContext context, AsyncSnapshot<bool> processed) {
if (processed.connectionState == ConnectionState.done &&
processed.data != null &&
processed.data!) {
assert(Upgrader().messages != null);
if (Upgrader().shouldDisplayUpgrade()) {
final title = Upgrader().messages!.message(UpgraderMessage.title);
final message = Upgrader().message();
final releaseNotes = Upgrader().releaseNotes;
final shouldDisplayReleaseNotes =
Upgrader().shouldDisplayReleaseNotes();
if (Upgrader().debugLogging) {
print('UpgradeCard: will display');
print('UpgradeCard: showDialog title: $title');
print('UpgradeCard: showDialog message: $message');
print(
'UpgradeCard: shouldDisplayReleaseNotes: $shouldDisplayReleaseNotes');
print('UpgradeCard: showDialog releaseNotes: $releaseNotes');
}
Widget? notes;
if (shouldDisplayReleaseNotes && releaseNotes != null) {
notes = Padding(
padding: EdgeInsets.only(top: 15.0),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text('Release Notes:',
style: TextStyle(fontWeight: FontWeight.bold)),
Text(
releaseNotes,
maxLines: 15,
overflow: TextOverflow.ellipsis,
),
],
));
}
return Card(
color: Colors.white,
margin: margin,
child: AlertStyleWidget(
title: Text(title ?? ''),
content: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(message),
Padding(
padding: EdgeInsets.only(top: 15.0),
child: Text(Upgrader()
.messages!
.message(UpgraderMessage.prompt) ??
'')),
if (notes != null) notes,
],
),
actions: <Widget>[
if (Upgrader().showIgnore)
TextButton(
child: Text(Upgrader().messages!.message(
UpgraderMessage.buttonTitleIgnore) ??
''),
onPressed: () {
// Save the date/time as the last time alerted.
Upgrader().saveLastAlerted();
Upgrader().onUserIgnored(context, false);
state.forceUpdateState();
}),
if (Upgrader().showLater)
TextButton(
child: Text(Upgrader().messages!.message(
UpgraderMessage.buttonTitleLater) ??
''),
onPressed: () {
// Save the date/time as the last time alerted.
Upgrader().saveLastAlerted();
Upgrader().onUserLater(context, false);
state.forceUpdateState();
}),
TextButton(
child: Text(Upgrader().messages!.message(
UpgraderMessage.buttonTitleUpdate) ??
''),
onPressed: () {
// Save the date/time as the last time alerted.
Upgrader().saveLastAlerted();
Upgrader().onUserUpdated(context, false);
state.forceUpdateState();
}),
]));
} else {
if (Upgrader().debugLogging) {
print('UpgradeCard: will not display');
}
}
}
return Container(width: 0.0, height: 0.0);
});
}