disablePushNotifications method

void disablePushNotifications()

Disables push notifications for the currently authenticated user.

This method requires a user to be logged in via connectWithCredential or connectWithToken and have a notificationToken provided in the config. It sends a request to the Telnyx backend to stop sending push notifications to the associated device token.

Implementation

void disablePushNotifications() {
  final config = _storedCredentialConfig ?? _storedTokenConfig;
  if (config != null && config.notificationToken != null) {
    final uuid = const Uuid().v4();
    final disablePushParams = DisablePushParams(
      user: config is CredentialConfig ? config.sipUser : null,
      loginToken: config is TokenConfig ? config.sipToken : null,
      userVariables: PushUserVariables(
        pushNotificationToken: config.notificationToken!,
        pushNotificationProvider:
            defaultTargetPlatform == TargetPlatform.android
                ? 'android'
                : 'ios',
      ),
    );
    final disablePushMessage = DisablePushMessage(
      id: uuid,
      method: SocketMethod.disablePush,
      params: disablePushParams,
      jsonrpc: JsonRPCConstant.jsonrpc,
    );

    final String jsonDisablePushMessage = jsonEncode(disablePushMessage);
    txSocket.send(jsonDisablePushMessage);
  } else {
    GlobalLogger().e(
      'No user or associated notification token found - we cannot disable push notifications',
    );
  }
}