explicit listener for ClientStateController in notifs
This commit is contained in:
parent
5d994bf2bb
commit
721349ca21
1 changed files with 12 additions and 5 deletions
|
|
@ -128,19 +128,26 @@ class UnifiedPushController extends AsyncNotifier<bool> {
|
||||||
onUnregistered: deregister,
|
onUnregistered: deregister,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
ref.listen(
|
||||||
|
ClientStateController.provider.select((value) => value?.deviceId),
|
||||||
|
(_, _) => register(),
|
||||||
|
);
|
||||||
|
|
||||||
if (registered) {
|
if (registered) {
|
||||||
// Needs to be registered every startup
|
// Needs to be registered every startup
|
||||||
await register(true);
|
await register();
|
||||||
}
|
}
|
||||||
|
|
||||||
return registered;
|
return registered;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> register([bool alreadyRegistered = false]) async {
|
Future<void> register() async {
|
||||||
state = .loading();
|
state = .loading();
|
||||||
try {
|
try {
|
||||||
final clientState = ref.watch(ClientStateController.provider);
|
final deviceId = ref.read(
|
||||||
if (clientState?.deviceId == null) return;
|
ClientStateController.provider.select((value) => value?.deviceId),
|
||||||
|
);
|
||||||
|
if (deviceId == null) return;
|
||||||
|
|
||||||
final capabilities = await ref
|
final capabilities = await ref
|
||||||
.read(ClientController.provider.notifier)
|
.read(ClientController.provider.notifier)
|
||||||
|
|
@ -157,7 +164,7 @@ class UnifiedPushController extends AsyncNotifier<bool> {
|
||||||
}
|
}
|
||||||
|
|
||||||
await UnifiedPush.register(
|
await UnifiedPush.register(
|
||||||
instance: clientState!.deviceId!,
|
instance: deviceId,
|
||||||
vapid: capabilities.webpush?.vapid,
|
vapid: capabilities.webpush?.vapid,
|
||||||
);
|
);
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue