import "dart:io"; import "package:flutter_riverpod/flutter_riverpod.dart"; import "package:nexus/controllers/client.dart"; import "package:nexus/controllers/unified_push_distributors.dart"; class UnifiedPushAllowedController extends AsyncNotifier { @override Future build() async { final distributors = await ref.watch( UnifiedPushDistributorsController.provider.future, ); if (distributors.isEmpty) { return "No valid distributors found. ${Platform.isLinux ? "Try installing KUnifiedPush" : Platform.isAndroid ? "Try installing Google Play Services or NTFY" : "Your platform is not currently supported by UnifiedPush"}."; } final capabilities = await ref .read(ClientController.provider.notifier) .getCapabilities(); if (capabilities.webpush?.vapid == null) { return "Your homeserver does not support MSC4174 (Web Push), and therefore cannot send notifications to Nexus."; } return null; } static final provider = AsyncNotifierProvider.autoDispose( UnifiedPushAllowedController.new, ); }