com.bluebillywig.bbnativeplayersdk — Functions
shouldAutoResume
fun shouldAutoResume(entry: PlayHistoryEntry, duration: Double? = null) : Boolean
Seconds-before-duration to treat a clip as "finished" — at or past this point, do not auto-resume.
shouldAutoResume
fun shouldAutoResume(entry: PlayHistoryEntry, duration: Double? = null) : Boolean
Whether the SDK should auto-seek to this entry's lastTimeOffset on a new load of the same clip.
Pure logic — safe to call statically without a manager instance.
Returns false when:
- the offset is 0 or negative (nothing to resume),
- the clip was last finished AFTER its last play-start (
lastFinishedTS > lastPlayedTS) — i.e. the user watched to the natural end and hasn't replayed since; restart from 0, durationis known and the offset is within [FINISHED_THRESHOLD_SECONDS] of it (belt-and- braces against missedbb_media_finishedevents, e.g. crash near end of clip).
duration may be null when called early in the load flow (clip metadata not yet resolved).
The lastFinishedTS heuristic still catches the "watched to end, came back" case without it.
Live streams persist no offset to begin with (see [_onMediaTimeUpdateThrottled]).
lastKnownPosition
fun lastKnownPosition(context: Context, clipId: String) : Int?
Returns the persisted lastTimeOffset (seconds) for the given clip, or null if absent / 0 / DB error.
Storage-only lookup: opens, reads, closes its own connection.
Use when no live player exists (e.g. rendering a "% watched" badge in a carousel).
shouldAutoResume
fun shouldAutoResume(entry: PlayHistoryEntry, duration: Double? = null) : Boolean
Instance shim for [Companion.shouldAutoResume] — see that method for the contract.
updateSettings
fun updateSettings(settings: Map<String, Any?>)
#20290 review: [SKIN_FONT_VALUES] is carried, not rendered - the document built in
[_updateWebview] does not read it (that is #20276's job). BBNativePlayerView pushes those
four values on every playout update, and rebuilding the document for them threw away whatever
the viewer was doing in the Content Protection overlay. So a call that carries nothing but
the font values stores them and stops there; every other setting does feed the document and
reloads it exactly as before, repeat value or not.