push registration no longer depends on notification permission, reporting effective opt-in and os permission

This commit is contained in:
2026-09-26 23:38:24 +02:00
parent e6f74ca6fe
commit 2aed3d104c
6 changed files with 129 additions and 81 deletions
+5 -16
View File
@@ -1,4 +1,3 @@
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart';
import '../model/account_data.dart';
@@ -141,21 +140,11 @@ Future<PushStatusReport> collectPushStatus({
}
Future<PushCheck> _osPermission() async {
try {
final settings = await FirebaseMessaging.instance.getNotificationSettings();
switch (settings.authorizationStatus) {
case AuthorizationStatus.authorized:
case AuthorizationStatus.provisional:
return PushCheck.ok;
case AuthorizationStatus.denied:
case AuthorizationStatus.deniedPermanently:
return PushCheck.fail;
case AuthorizationStatus.notDetermined:
return PushCheck.unknown;
}
} on Object {
return PushCheck.unknown;
}
final status = await PushRegistration.osPermissionStatus();
if (status == null) return PushCheck.unknown;
if (PushRegistration.canDisplay(status)) return PushCheck.ok;
if (!PushRegistration.isPermissionUsable(status)) return PushCheck.fail;
return PushCheck.unknown;
}
/// One line in the status checklist.