Package-level declarations
The content types the catalogue is made of, and the wrappers they arrive in. Each entity comes in a full form (Article) and a light one (ArticleShort) — lists give you the light form, get gives you the full one.
Types
Represents an article with full detail.
Represents a single element within an article's body. Elements are ordered and typed — the type property determines which concrete subtype to expect. Elements are either text-based subtypes each carrying a value string, or image-based (ArticleImage).
An identifier for article data
An image in an article's body, or the article's own lead image.
Represents a lightweight form of an article item. This is minimal content returned by paginated endpoints can be used to display lists of articles. For more detail, download the full Article.
The state of an observed value: what the SDK currently holds, and what it is doing about it.
What kind of thing a Publication is. Editorial rather than technical — it says how a publication should be presented and grouped, not how its content is read (that is ContentType).
What a Publication publishes, which decides how its content is read.
A date window used to narrow a content search down to what was released inside it — see co.cafeyn.cgs.api.content.Issues.all.
One edition of a MultiEdition group.
Represents an issue enrichment.
An identifier for video external id
Represents an issue with full detail.
An identifier for issue data
Represents a lightweight form of an issue item. This is side-loaded content belonging attached to paginated data like ArticleShort.
Represents a lightweight form of an issue item. This is minimal content returned by paginated endpoints can be used to display lists of issues. For more detail, download the full Issue.
An identifier for language data
An identifier for media data
Represents a lightweight form of a media item. This is minimal content returned by paginated endpoints can be used to display lists of media. For more detail, download the full Media.
An identifier for media track data
The editions of a multi-edition publication group (a regional daily, typically).
The two loads a paginated list runs, tracked apart because they mean different things on screen: a first load owns the whole screen, a next-page load owns a footer.
A list that arrives one page at a time.
Everything a paginated list needs to draw itself: the items loaded so far, and what the loading is doing.
Represents a publication with full detail.
An identifier for publication data
Represents a lightweight form of a publication item. This is side-loaded content belonging attached to paginated data like IssueShort.
Represents a lightweight form of a publication item. This is minimal content returned by paginated endpoints can be used to display lists of publications. For more detail, download the full Publication.
An identifier for release frequency data
An identifier for template data
An identifier for topic data
Represents a video with full detail.
An identifier for video data
Represents a lightweight form of a video item. This is minimal content returned by paginated endpoints can be used to display lists of videos. For more detail, download the full Video.
Properties
There is another page to fetch. Drive PaginatedResource.loadNextPage off this as the user nears the end of the list; it is false while a page is already in flight, so it will not ask twice.
The error to show over the whole screen: set only when the list failed with nothing to display. A failure that still has items behind it stays null here — surface that one in place, without taking the list away.
The list came back with nothing — show an empty state, not an error. false while the first page is still loading and while it is in error, so it never flashes before the real answer.
The list has nothing yet and is fetching its first page — show a skeleton or a spinner over the whole screen.