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. Publications and issues also come in a reference form (PublicationReference, IssueReference): the few fields another item carries about the one it belongs to, such as IssueShort.publication.
Types
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: the minimal content lists return, enough to display lists of articles. For more detail, get the full Article from Articles.get.
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
Builds domain models for the previews and tests of lib/ui.
An identifier for issue data
Represents a lightweight form of an issue item: the few fields an ArticleShort carries about the issue it belongs to.
Represents a lightweight form of an issue item: the minimal content lists return, enough to display lists of issues. For more detail, get the full Issue from Issues.get.
An identifier for language data
An identifier for media data
Represents a lightweight form of a media item: the minimal content lists return, enough to display lists of media. For more detail, get the full Media from Medias.get.
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.
An identifier for a profile
Represents a publication with full detail.
An identifier for publication data
Represents a lightweight form of a publication item: the few fields another item carries about a publication, as in IssueShort.publication or Media.publications.
Represents a lightweight form of a publication item: the minimal content lists return, enough to display lists of publications. For more detail, get the full Publication from Publications.get.
An identifier for release frequency data
An identifier for template data
An identifier for topic data
An identifier for video data
Represents a lightweight form of a video item: the minimal content lists return, enough to display lists of videos. For more detail, get the full Video from Videos.get.
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 the next page is in flight, so it will not ask twice. It also reads true while the first page is loading, a call PaginatedResource.loadNextPage ignores.
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.