updatePinIcon function

Future<void> updatePinIcon(
  1. dynamic context,
  2. dynamic ref,
  3. dynamic pin,
  4. dynamic color,
  5. dynamic acterIcon,
)

Implementation

Future<void> updatePinIcon(
    BuildContext context,
    WidgetRef ref,
    ActerPin pin,
    Color color,
    ActerIcon acterIcon,
    ) async {
  try {
    EasyLoading.show(status: L10n.of(context).updatingIcon);
    // Pin IconData
    final sdk = await ref.watch(sdkProvider.future);
    final displayBuilder = sdk.api.newDisplayBuilder();
    displayBuilder.color(color.value);
    displayBuilder.icon('acter-icon', acterIcon.name);

    final updateBuilder = pin.updateBuilder();
    updateBuilder.display(displayBuilder.build());

    await updateBuilder.send();
    EasyLoading.dismiss();
    ref.invalidate(pinProvider);
    if (!context.mounted) return;
  } catch (e, s) {
    _log.severe('Failed to change icon of pin', e, s);
    if (!context.mounted) {
      EasyLoading.dismiss();
      return;
    }
    EasyLoading.showError(
      L10n.of(context).updateNameFailed(e),
      duration: const Duration(seconds: 3),
    );
  }
}