Content Options
Content Options let a community administrator disable specific creation surfaces — pictures on posts, comments, or replies, and polls on posts — independently per content type. The SDK reads this configuration automatically from the backend and hides the relevant UI affordances. No code change is required from app integrators — the change is purely backend-side.
What is controlled
The following creation affordances can be disabled individually through the backend API key configuration:
- Post pictures (
post.enablePictures = false) — hides the picture-add button in the post composer. - Post polls (
post.enablePolls = false) — hides the poll-creation button in the post composer and the poll incentive button on the current-user profile. - Comment pictures (
comment.enablePictures = false) — hides the picture-add button in the comment input. - Reply pictures (
reply.enablePictures = false) — hides the picture-add button in the reply input. Comment and reply picture gates are independent — each can be set separately.
Bridge Share / prefilled-post images (opened via deep link or the create-post initial screen) are not gated by post.enablePictures. They use a separate authorization path.
Default behavior
All flags default to true. A community that does not configure Content Options in its backend keeps today's behavior exactly — nothing is hidden.
Platform details
- Android
- iOS
- Flutter
- React Native
- Unity
The SDK reads ContentOptions from CommunityConfig.contentOptions, populated automatically from the backend configuration at startup and on each config refresh. No SDK code is required — the UI updates reactively.
The ContentOptions type structure is available for inspection if you need to observe content options in your own UI:
import com.octopuscommunity.sdk.domain.model.CommunityConfig
// ContentOptions is read from CommunityConfig.contentOptions — not constructed by app code.
val options: CommunityConfig.ContentOptions = communityConfig.contentOptions
// Post options
options.post.enablePictures // Boolean — false hides the picture-add button in the post composer
options.post.enablePolls // Boolean — false hides the poll-creation button
// Comment options
options.comment.enablePictures // Boolean — false hides the picture-add button in comments
// Reply options
options.reply.enablePictures // Boolean — false hides the picture-add button in replies
// Absent backend config defaults to all flags enabled — CommunityConfig.ContentOptions()
The SDK reads ContentOptions from CommunityConfig.contentOptions, populated automatically from the backend configuration at startup and on each config refresh. No SDK code is required — the UI updates reactively.
The ContentOptions type structure is available for inspection if you need to observe content options in your own UI:
import Octopus
// ContentOptions is read from CommunityConfig.contentOptions — not constructed by app code.
let options: ContentOptions = communityConfig.contentOptions
// Post options
options.post.enablePictures // Bool — false hides the picture-add button in the post composer
options.post.enablePolls // Bool — false hides the poll-creation button
// Comment options
options.comment.enablePictures // Bool — false hides the picture-add button in comments
// Reply options
options.reply.enablePictures // Bool — false hides the picture-add button in replies
// Absent backend config defaults to all flags enabled
ContentOptions.allEnabled
// equivalent to:
// ContentOptions(
// post: .init(enablePictures: true, enablePolls: true),
// comment: .init(enablePictures: true),
// reply: .init(enablePictures: true)
// )
Content Options are not yet available on Flutter.
Content Options are not yet available on React Native.
Content Options are not yet available on Unity.