Gauvain
98b90f5bdb
feat(player): wire chapter UI into native player controls
...
Threads chapters + duration through Controls -> BottomControls so the
ChapterTicks overlay, ChapterList modal and current-chapter label have
the data they need.
BottomControls
- Memoizes chapterMarkerList (markers within the media duration) once
per (chapters, durationMs) change and feeds it to ChapterTicks.
- hasChapters gates the bookmark icon + list modal; nothing renders
when chapters are missing or below two real markers.
- Current chapter name shown as a small label below the title/year
during playback; the same helper feeds the trickplay bubble while
scrubbing. Both labels disappear gracefully when chapters are absent.
useVideoSlider
- Adds seekTo(value): a programmatic seek for non-gesture entry points
(chapter list, hot-keys). Reads isPlaying directly instead of
wasPlayingRef — which is only populated inside handleSliderStart, so
a tap-to-seek on the chapter list previously either stranded paused
playback or auto-resumed against a manual pause.
TrickplayBubble
- Adds an optional chapterName prop; renders a small left-aligned
overlay inside the preview frame (Jellyfin web style) showing chapter
name above the timestamp. Hides the chapter line entirely when null.
- zIndex + elevation so the bubble lands in front of the title /
surrounding overlays.
- Slight reposition (bottom -20, paddingTop 12) brings the bubble
closer to the slider.
translations/en.json
- chapters.title / chapters.chapter_number / chapters.open /
chapters.close keys for the list modal and the bookmark a11y label.
2026-05-27 16:39:50 +02:00
Gauvain
5f64ce49c0
feat(chapters): add ChapterTicks overlay and ChapterList modal
...
Two presentational components, both player-agnostic:
ChapterTicks — absolute overlay that draws tick marks on the progress
slider, one per chapter start (skipping the leading 0ms marker).
- Reads markers from a memoized prop computed by the caller so the
filter/sort runs at most once per chapters change, not per render.
- Snaps tick position AND width to the device pixel grid via
PixelRatio.roundToNearestPixel(). Without this, fractional dp values
land at different sub-pixel fractions on non-integer density displays
(420dpi -> 2.625x ratio) and Android anti-aliases each tick
differently, making some look visibly thicker than others.
- Tick colour defaults to rgba(0,0,0,0.55), contrasting against both
the filled progress (#fff) and the unfilled track so ticks stay
visible as playback advances.
- pointerEvents="none" so the slider underneath still receives touches.
- overflow: "visible" so taller ticks can bleed past the parent track.
ChapterList — bottom-sheet modal listing chapters with their timestamps.
- Highlights the currently active row (purple primary tint).
- Falls back to a localized "Chapter N" label when a chapter has no name.
- Imperatively scrolls to the active row each time the sheet becomes
visible. <Modal> keeps its children mounted across visible toggles,
so FlatList.initialScrollIndex (which only fires at first mount) would
only work on the very first open. Uses a ref + useEffect on `visible`
+ scrollToIndex inside requestAnimationFrame, with an
onScrollToIndexFailed fallback for indices outside the render window.
- All static styles in StyleSheet.create() — only dynamic backgroundColor
/ text colour stays inline. The list re-renders on every playback tick
so cutting the per-render style allocations is worth it.
- Colors from constants/Colors.ts (primary, background, text, icon),
no hardcoded hex.
2026-05-27 16:39:32 +02:00
Fredrik Burmester
b0bb6c6c9a
feat: add technical stream info overlay for MPV player
2026-01-12 21:55:32 +01:00
Simon Eklundh
7a0f70778d
fix: fix music videos and home videos on library ( #1326 )
...
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
🌐 Translation Sync / sync-translations (push) Has been cancelled
Co-authored-by: Fredrik Burmester <fredrik.burmester@gmail.com >
2026-01-11 22:31:25 +01:00
Simon Eklundh
6957c4fd64
feat: add autorotate for landscape ( #1265 )
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
Co-authored-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
Co-authored-by: Fredrik Burmester <fredrik.burmester@gmail.com >
2026-01-11 22:27:19 +01:00
Alex
ad54823f96
refactor: downloads to minimize prop drilling and improve layout and design ( #1337 )
...
Co-authored-by: Alex Kim <alexkim@Alexs-MacBook-Pro.local >
Co-authored-by: Fredrik Burmester <fredrik.burmester@gmail.com >
Co-authored-by: Simon-Eklundh <simon.eklundh@proton.me >
2026-01-11 17:38:41 +01:00
Fredrik Burmester
467bea7192
feat(network): add local network auto-switch feature ( #1334 )
2026-01-11 13:08:14 +01:00
Fredrik Burmester
62b45121e5
feat(settings): add toggle to disable auto-play next episode ( #1342 )
2026-01-11 13:07:38 +01:00
Fredrik Burmester
0e238ad10e
feat(ios): glassview container for badges
2026-01-11 11:48:30 +01:00
Fredrik Burmester
ce793e3469
fix: ensure continue watching overlay appears above controls
2026-01-11 11:30:28 +01:00
Fredrik Burmester
beba4853b9
Revert "feat(settings): add toggle to disable auto-play next episode"
...
This reverts commit d1b15a9dde .
2026-01-11 10:19:35 +01:00
Fredrik Burmester
d1b15a9dde
feat(settings): add toggle to disable auto-play next episode
...
Add new setting to completely disable the auto-play next episode feature.
When disabled, the countdown button is hidden and the max episode count
setting appears greyed out.
2026-01-11 10:16:10 +01:00
Fredrik Burmester
12847894df
feat(watchlists): add see all navigation for promoted watchlists
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
2026-01-11 00:19:31 +01:00
Fredrik Burmester
773eae8cb9
feat(home): add see all navigation from recently added sections
2026-01-11 00:16:18 +01:00
Fredrik Burmester
399eb0a351
fix(chromecast): add missing MediaInfo fields
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
2026-01-10 21:32:09 +01:00
Fredrik Burmester
f1575ca48b
feat: MPV player for both Android and iOS with added HW decoding PiP (with subtitles) ( #1332 )
...
Co-authored-by: Alex Kim <alexkim@Alexs-MacBook-Pro.local >
Co-authored-by: Alex <111128610+Alexk2309@users.noreply.github.com >
Co-authored-by: Simon-Eklundh <simon.eklundh@proton.me >
2026-01-10 19:35:27 +01:00
Fredrik Burmester
7514bc2c2c
fix: redirect when intro modal first time
2026-01-10 11:33:07 +01:00
Fredrik Burmester
241f8c949a
fix: cache issues with songs, partial downloads, component rerenders, etc
2026-01-10 11:33:07 +01:00
Fredrik Burmester
81449963fa
feat(auth): add multi-account support with PIN/password protection
2026-01-09 08:37:30 +01:00
Fredrik Burmester
8569cd390b
fix(android): quick connect not showing bc keyboard
2026-01-09 07:56:17 +01:00
Fredrik Burmester
3959aa2f72
fix(android): convert intro modal to bottom sheet bc broken on smaller screens
2026-01-09 07:15:53 +01:00
Fredrik Burmester
d1387ec725
fix(downloads): preserve audio track selection for offline playback
2026-01-08 21:51:27 +01:00
Fredrik Burmester
51ecde1565
fix(vlc): add audio transcoding mode to fix 7.1 TrueHD playback
2026-01-08 21:51:27 +01:00
Fredrik Burmester
99aa6bd342
fix(player): hide sub size when vlc
2026-01-07 22:20:11 +01:00
Fredrik Burmester
be8651357b
feat(player): vlc subtitle options
2026-01-07 22:18:11 +01:00
Fredrik Burmester
588c8ffeb5
fix(player): audio and subtitle dropdown not visible in player
2026-01-07 22:18:11 +01:00
Fredrik Burmester
896c7460df
refactor(music): move storage clear options
2026-01-06 18:15:53 +01:00
Fredrik Burmester
1c3369c61f
feat: search for artists, albums and songs
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
🌐 Translation Sync / sync-translations (push) Has been cancelled
🕒 Handle Stale Issues / 🗑️ Cleanup Stale Issues (push) Has been cancelled
2026-01-06 16:40:47 +01:00
Fredrik Burmester
055357de60
feat: swipe to remove individual server logins
2026-01-06 15:46:12 +01:00
Fredrik Burmester
a24e254a9e
fix: better animation
2026-01-06 15:37:13 +01:00
Fredrik Burmester
9825ccce6e
fix: width to be same as bottom tab bar ios specifically
2026-01-06 15:27:08 +01:00
Fredrik Burmester
37b0b10098
feat: save login credentials when switching servers
2026-01-05 21:32:41 +01:00
Fredrik Burmester
964d53cc79
feat(music): add haptic feedback to track options menu
2026-01-05 21:32:41 +01:00
Fredrik Burmester
a26980ddab
refactor: improve music design
2026-01-05 21:32:41 +01:00
Fredrik Burmester
090ed98233
fix: refresh data on open page in background replace cached data
2026-01-05 21:32:41 +01:00
Fredrik Burmester
e4134d6f9a
fix: item content header button colors
2026-01-05 21:32:40 +01:00
Elias
1fde3c82a3
feat: add Dolby Vision badge ( #1177 )
2026-01-05 08:48:40 +01:00
Fredrik Burmester
054fb05651
feat: delete playlist
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
🌐 Translation Sync / sync-translations (push) Has been cancelled
2026-01-04 23:01:03 +01:00
Fredrik Burmester
a2058a8009
fix: music downloading not playing + queue drag and drop
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🌐 Translation Sync / sync-translations (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
🕒 Handle Stale Issues / 🗑️ Cleanup Stale Issues (push) Has been cancelled
2026-01-04 16:28:35 +01:00
Fredrik Burmester
d22827bc9b
feat: add toggle to hide streamystats watchlist tab/functions
2026-01-04 14:31:55 +01:00
Fredrik Burmester
4121502bfe
fix: remove song from playlist
2026-01-04 13:44:53 +01:00
Fredrik Burmester
ab3465aec5
feat: cache and download music
2026-01-04 12:50:41 +01:00
Fredrik Burmester
b1da9f8777
feat: add actions to song rows
2026-01-04 00:09:21 +01:00
Fredrik Burmester
bfdc2c053b
fix: improve gestures
2026-01-03 23:51:27 +01:00
Fredrik Burmester
245c9597c4
feat: music bar geastures
2026-01-03 23:44:15 +01:00
lance chant
bd4e5bb70a
fix: jellyseer categories ( #1233 )
...
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🌐 Translation Sync / sync-translations (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
Co-authored-by: Fredrik Burmester <fredrik.burmester@gmail.com >
2026-01-03 19:58:17 +01:00
Fredrik Burmester
e8089cfd20
fix: key id fail
2026-01-03 19:39:04 +01:00
Fredrik Burmester
039bf9729a
feat: hide volume or/and brightness in controls setting
2026-01-03 19:34:45 +01:00
Fredrik Burmester
3ff7c47b7f
feat: playback speed options
2026-01-03 19:14:20 +01:00
Fredrik Burmester
1d8d92175a
fix: correct control buttions top right for each player
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🌐 Translation Sync / sync-translations (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
🕒 Handle Stale Issues / 🗑️ Cleanup Stale Issues (push) Has been cancelled
2026-01-03 18:22:38 +01:00