> ## Documentation Index
> Fetch the complete documentation index at: https://learn.social.plus/llms.txt
> Use this file to discover all available pages before exploring further.

# Channel Notification Settings

> Read and update push notification settings for a single chat channel.

Channel notification settings control whether the signed-in user receives push notifications for one channel.

## API surface

| Platform   | Manager                                                    | Read            | Enable     | Disable     |
| ---------- | ---------------------------------------------------------- | --------------- | ---------- | ----------- |
| TypeScript | `Client.notifications().channel(channelId)`                | `getSettings()` | `enable()` | `disable()` |
| iOS        | `channelRepository.notificationManagerForChannel(withId:)` | `getSettings()` | `enable()` | `disable()` |
| Android    | `AmityCoreClient.notifications().channel(channelId)`       | `getSettings()` | `enable()` | `disable()` |
| Flutter    | `AmityCoreClient.notifications().channel(channelId)`       | `getSettings()` | `enable()` | `disable()` |

## Parameters

| Name        | Platform                          | Type                | Required | Description                                                     |
| ----------- | --------------------------------- | ------------------- | -------- | --------------------------------------------------------------- |
| `channelId` | TypeScript, iOS, Android, Flutter | `String` / `string` | Yes      | ID of the channel whose push setting should be read or updated. |

## Get channel settings

Read channel notification settings before rendering a channel-level push toggle.

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { Client } from '@amityco/ts-sdk';

  const settings = await Client.notifications()
    .channel(channelId)
    .getSettings();

  const isEnabled = settings.isEnabled;
  ```

  ```swift iOS theme={null}
  let notificationManager = channelRepository.notificationManagerForChannel(withId: channelId)
  let settings = try await notificationManager.getSettings()

  let isEnabled = settings.isEnabled
  ```

  ```kotlin Android theme={null}
  AmityCoreClient.notifications()
      .channel(channelId)
      .getSettings()
      .doOnSuccess { settings: AmityChannelNotificationSettings ->
          val isEnabled = settings.isEnabled()
      }
      .doOnError { error ->
          // Handle error.
      }
      .subscribe()
  ```

  ```dart Flutter theme={null}
  final settings = await AmityCoreClient
      .notifications()
      .channel(channelId)
      .getSettings();

  final isEnabled = settings.isEnabled;
  ```
</CodeGroup>

## Update channel settings

Enable or disable notifications for a channel after the user changes that channel's push preference.

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { Client } from '@amityco/ts-sdk';

  await Client.notifications()
    .channel(channelId)
    .enable();

  await Client.notifications()
    .channel(channelId)
    .disable();
  ```

  ```swift iOS theme={null}
  let notificationManager = channelRepository.notificationManagerForChannel(withId: channelId)

  try await notificationManager.enable()
  try await notificationManager.disable()
  ```

  ```kotlin Android theme={null}
  AmityCoreClient.notifications()
      .channel(channelId)
      .enable()
      .doOnComplete {
          // Channel push notifications enabled.
      }
      .doOnError { error ->
          // Handle error.
      }
      .subscribe()

  AmityCoreClient.notifications()
      .channel(channelId)
      .disable()
      .doOnComplete {
          // Channel push notifications disabled.
      }
      .doOnError { error ->
          // Handle error.
      }
      .subscribe()
  ```

  ```dart Flutter theme={null}
  await AmityCoreClient
      .notifications()
      .channel(channelId)
      .enable();

  await AmityCoreClient
      .notifications()
      .channel(channelId)
      .disable();
  ```
</CodeGroup>

## Related

<CardGroup cols={2}>
  <Card title="User Settings" href="./user-settings">
    Configure account-wide push preferences.
  </Card>

  <Card title="Community Settings" href="./community-settings">
    Configure push settings for social community events.
  </Card>
</CardGroup>
