updatePinIcon function
Future<void>
updatePinIcon( - dynamic context,
- dynamic ref,
- dynamic pin,
- dynamic color,
- dynamic acterIcon,
)
Implementation
Future<void> updatePinIcon(
BuildContext context,
WidgetRef ref,
ActerPin pin,
Color color,
ActerIcon acterIcon,
) async {
final lang = L10n.of(context);
try {
EasyLoading.show(status: lang.updatingIcon);
// Pin IconData
final sdk = await ref.watch(sdkProvider.future);
final displayBuilder = sdk.api.newDisplayBuilder();
displayBuilder.color(color.toInt());
displayBuilder.icon('acter-icon', acterIcon.name);
final updateBuilder = pin.updateBuilder();
updateBuilder.display(displayBuilder.build());
await updateBuilder.send();
EasyLoading.dismiss();
//TODO : this only fixes the case where we do the update. if the change comes from outside - another user - this will not trigger.
ref.invalidate(pinProvider);
ref.invalidate(pinListProvider);
} catch (e, s) {
_log.severe('Failed to change icon of pin', e, s);
if (!context.mounted) {
EasyLoading.dismiss();
return;
}
EasyLoading.showError(
lang.updateNameFailed(e),
duration: const Duration(seconds: 3),
);
}
}