import 'package:flutter_app_badger/flutter_app_badger.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:matrix/matrix.dart';

import 'package:fluffychat/utils/platform_infos.dart';

extension IosBadgeClientExtension on Client {
  void updateIosBadge() {
    if (PlatformInfos.isIOS) {
      // Workaround for iOS not clearing notifications with fcm_shared_isolate
      if (!rooms.any((r) =>
          r.membership == Membership.invite || (r.notificationCount > 0))) {
        // ignore: unawaited_futures
        FlutterLocalNotificationsPlugin().cancelAll();
        FlutterAppBadger.removeBadge();
      }
    }
  }
}