Quiblo wiki

Using Quiblo

The phone app

Browsing, searching, favourites, the player and its gestures.

# Browsing

Five destinations: Live, Movies, Series, Favourites and Sources, with Settings reachable from the top bar. The first four can each be switched off per profile — see Tabs — and Sources always stays, because it is the only way to the screen that adds a playlist.

Movies and Series default to poster grids, because artwork is how a title is recognised. Live is a list — a channel's artwork is a small wide logo, and a grid of those is unreadable.

Each browse screen offers a category filter, a search field and a list/grid toggle. Filtering and searching happen in SQL rather than in memory, which is what keeps search responsive across a twenty-thousand-entry playlist.

Those search fields each answer for one kind: searching under Movies searches films. The single search across all three kinds is on the television today, and the phone is the side of that pair still to be brought over.

What you see here depends on who is watching: favourites, resume points, the shelves you have hidden and the tabs you have switched off all belong to the profile. Sources and passwords belong to the device.

# What a screen reader hears

Playback is the part of the app where a silent screen is genuinely ambiguous — a stream that is buffering and a stream that has died look identical, and to TalkBack they used to sound identical too, which is to say like nothing at all.

Both are announced now, as live regions: buffering when the player stalls, and the failure text when it gives up. On the television the same announcements go out, because a set-top box has TalkBack too and a remote gives even less to feel around with.

# Favourites, and why they survive

Favourites are keyed by the provider's own identity, never by database row id. A refresh deletes and reinserts every row — so every id changes — and a favourite keyed by id would be destroyed by the next refresh.

This is why favourites live in their own table rather than as a column on the channel row, and it is the same mechanism that lets a resume point survive a refresh.

# Film and series screens

Opening a film shows its artwork, plot and — when you have configured the optional metadata service — its score, certificate, genres, director and cast. If there is a stored position, Resume and Start from the beginning appear as two separate buttons rather than one, because rewatching something should not mean resuming and then seeking backwards.

A series shows its seasons and episodes. Episodes are fetched from your panel per series and held for the session — they are never stored as rows — so re-opening a series you looked at a minute ago costs nothing.

# What is on, and what is on later

Long-press a live channel. A sheet opens with Now and Next, and under them the rest of the day on a timeline: an hour behind, twelve hours ahead, each programme drawn as wide as it is long. It opens scrolled to what is playing rather than to the left edge, because the hour behind is there so the programme on now is whole — not so anybody has to scroll past it.

A plain tap still plays. That is what a tap means ninety-nine times out of a hundred, and the guide is the one time in a hundred.

Tap any block to have it written out underneath. A half-hour programme is a narrow block: it has room for a title and none for a plot.

Two things the shape of the strip tells you that a "now and next" label cannot. A hole is drawn as a hole — a channel that goes off air looks different from a provider that stopped answering, where stretching the neighbours over the gap would make both look complete. And the times are your television's: everything is stored in UTC and converted once, at the moment it is drawn, so a panel in another country still reads correctly.

Only the first ask costs a request. The full listing is fetched once per channel per session, and never while a list is scrolling — see what costs a request.

# The player

Full-screen playback that keeps the screen awake. Controls fade; a tap brings them back.

  • Seek by a configurable interval, and Start Over.
  • Aspect modes — Fit, Fill, Zoom, Stretch.
  • Gestures — drag vertically on the left for brightness, on the right for volume.
  • Screen lock, so a pocket or a lap cannot interfere.
  • Track selection for subtitles and audio.
  • Subtitle files — whatever your panel supplies for a film, plus any .srt, .vtt, .ass or .ttml you pick off the device. A picked file is copied into the app and remembered against the title, so it is still there next time and survives the file being moved or renamed.
  • Subtitle appearance — size, colour and the box behind the words, offered while a subtitle is actually on screen so the effect is visible as it is chosen. It starts from the caption style set in Android's own accessibility settings, and Match system goes back to it.

Two things worth knowing about subtitle files. The format is read from the file rather than from its name, because a .txt holding SubRip is common and an extension is a claim rather than a fact. And the encoding is detected, not assumed: an Arabic .srt in windows-1256 — which is most of them — was a screen of symbols under a UTF-8 assumption.

Seeking is meaningless on a live stream, so the skip controls are absent there rather than present and inert.

Playback position is remembered per item, and per episode within a series.