4727cdcab1
refactor(offline): rename OfflineCatalogStore to OfflineMediaManager and consolidate into repository
...
- Rename interface OfflineCatalogStore → OfflineMediaManager for clarity
- Merge RoomOfflineCatalogStore functionality into OfflineLocalMediaRepository
- Remove RoomOfflineCatalogStore; update DI binding and consumers
2026-06-12 16:11:34 +00:00
2853609cbb
chore: remove unused interface
2026-06-12 17:53:15 +02:00
327e68af19
fix(playback): resume offline playback from saved position instead of start
...
Offline downloaded media always started playback from the beginning because getOfflineDownloadedPlayableMedia() hardcoded resumePositionMs to 0L, ignoring the progress percentage stored in the Room database.
Added calculateOfflineResumePosition() that parses the runtime string and converts the stored progress percentage (0-100) to milliseconds, applying the same 5%-95% threshold as the online path.
2026-06-12 12:30:23 +00:00
8dcb6aeea9
chore(build): increment app versionCode to 1000025
2026-06-07 13:35:49 +02:00
df2a468e89
feat(playback): mark items fully watched when progress exceeds 80%
...
When playback position reaches 80% of runtime, send the full runtimeTicks to the server so items appear completely watched, matching the played flag already being set at this threshold.
2026-06-07 11:30:33 +00:00
4a6977eefb
feat(connectivity): add offline resilience with server reachability checks
2026-06-07 11:25:59 +00:00
3f9fd6e36e
feat(card): replace dropdown menu with modal bottom sheet and add long-press
...
Replace the DropdownMenu popup in MediaImageCard with a ModalBottomSheet
that appears when the three-dot icon is pressed on ContinueWatchingCard
items. Also trigger the bottom sheet on long-press of the card.
Follows the existing ModalBottomSheet pattern from SeriesComponents.
2026-06-07 09:40:20 +00:00
10e7b450f3
fix(series): make season selector bottom sheet scrollable
...
Replace the non-scrollable Column with a LazyColumn in the season selector ModalBottomSheet so the sheet content scrolls when there are many seasons.
2026-06-06 17:37:47 +00:00
c81b228bb2
refactor(media): centralize detail scaffold content
...
Move duplicated media detail title, metadata, actions, synopsis, playback, and cast rendering behind MediaDetailScaffoldUiModel so screens only provide model data and optional trailing content.
2026-06-06 12:17:34 +00:00
f94bdc5bce
feat(downloads): add DefaultTopBar to DownloadsScreen
2026-06-06 14:01:52 +02:00
4ade70a5de
refactor(media): merge heroContent and content into single content lambda
2026-06-06 11:47:48 +00:00
ce907cee0c
chore(build): increment app versionCode to 1000024
2026-06-06 13:28:35 +02:00
dd66302da0
feat(series): replace season tabs with BottomSheet selector
...
Convert SeasonTabs from horizontal scrollable tabs to a clickable label that opens a ModalBottomSheet listing all seasons for selection.
- Removes unused LazyRow, itemsIndexed, rememberLazyListState imports
- Removes unused SeasonTab private composable and SeasonTabTagPrefix constant
- Adds ArrowDropDown and Check icon imports
- Adds OptIn(ExperimentalMaterial3Api) for ModalBottomSheet
2026-06-06 10:51:12 +00:00
753b461453
refactor(series): remove unused preview functions and imports from SeriesScreen
2026-06-06 12:40:07 +02:00
0bf968a42b
feat(ui): make top bars scroll aware
2026-06-06 10:38:40 +00:00
005b3249ff
refactor(series): remove unused PlayCircle icon from SeriesComponents
2026-06-06 11:40:21 +02:00
84157868d0
feat(series): show episodes as vertical list
2026-06-06 09:38:15 +00:00
25b65b9048
refactor(app/ui): refactor MediaDetailScaffold
...
Move everything into the Scaffold for simpler scrolling behavior
pass Modifier to heroContent and content composables
2026-06-06 11:30:03 +02:00
ed418a8e44
chore(build): increment app-tv versionCode to 2000013
2026-06-05 18:41:34 +02:00
fecc962950
chore: update update manifest URL to secure HTTPS
2026-06-05 18:41:16 +02:00
1ae2541773
chore(build): increment app versionCode to 1000023
2026-06-05 18:28:08 +02:00
88e8b3a41f
refactor(download): share download UI handling
2026-06-05 15:29:06 +00:00
85c53f8704
feat(playback): sync offline positions with Jellyfin
...
Add a home refresh side effect that compares offline progress with Jellyfin user data and syncs the furthest playback position.
Use Jellyfin playbackPositionTicks for server updates while keeping percent-based writes for local offline and in-memory repositories.
2026-06-05 14:57:20 +00:00
448550b5ab
chore: remove unused code
2026-06-05 14:01:50 +02:00
9f8292b04d
refactor(home): extract refresh side effects
...
Centralize home refresh orchestration so future refresh side effects can be added through Hilt multibindings instead of expanding AppViewModel.
2026-06-04 19:26:47 +00:00
fa87005d01
chore: update Gradle and AGP versions
2026-06-04 20:59:54 +02:00
1ad7bc4e23
feat: add exit confirmation dialog on back navigation
2026-06-04 20:57:38 +02:00
e72c421294
feat(playback): pause media playback when screen is in the background
2026-06-04 17:39:59 +02:00
9aec271aa4
fix(playback): manage playback state on activity lifecycle events
2026-06-04 17:39:59 +02:00
717bf3c8e1
fix(playback): Add clamp effect to brightness sliders
2026-06-03 20:59:47 +02:00
0011f3842a
refactor(playback): simplify transcoding fallback state
2026-06-01 19:37:04 +00:00
670e937566
chore(build): increment app-tv versionCode to 2000012
2026-06-01 21:27:34 +02:00
38f1f94956
fix(playback): fall back to transcoding on direct play errors
2026-06-01 21:25:21 +02:00
72cb574753
chore(build): increment app versionCode to 1000022
2026-06-01 21:24:22 +02:00
80ab591662
Simplify Jellyfin playback url retrieval
2026-06-01 20:54:20 +02:00
0eea3165de
PlaybackProfilePolicy should not require server version
2026-06-01 20:06:55 +02:00
b1b154800c
Code cleanup
2026-06-01 20:02:27 +02:00
5c1ddffe7a
refactor(playback): simplify getVideoStreamUrl usage and improve direct play handling
2026-05-29 18:09:12 +02:00
97dcea57ec
chore(build): increment app versionCode to 1000021
2026-05-27 20:36:31 +02:00
09a1bb2288
fix(profile): enable ASS direct play by default in mobile profile config
2026-05-27 20:36:04 +02:00
8064367e7a
Revert "feat(player): enhance video aspect ratio handling and resize mode logic"
...
This reverts commit b7186be4
2026-05-27 18:40:44 +02:00
dedd4f1da5
fix(settings): update title text style to use titleMedium
2026-05-25 21:27:20 +02:00
e58afd26d5
chore(build): increment app versionCode to 1000020
2026-05-25 21:08:54 +02:00
15c1e806da
chore(build): increment app-tv versionCode to 2000011
2026-05-25 20:57:18 +02:00
194052517b
feat(api): enable user data retrieval and enhance logging for result sizes
2026-05-25 20:54:43 +02:00
b0ed32ef7c
feat(series): improve season and episode loading handling
2026-05-25 20:40:10 +02:00
3cd706d449
feat(tvseries): enhance episode focus handling and scrolling behavior
2026-05-25 19:59:16 +02:00
1dedc7ff0a
Revert "feat(network): enhance connectivity monitoring with request reporting"
...
This reverts commit 56a2b42434 .
2026-05-25 17:59:01 +02:00
285fda9caf
chore(build): increment app-tv versionCode to 2000010
2026-05-25 12:46:08 +02:00
3e94e8193a
chore(build): increment app versionCode to 1000019
2026-05-25 12:13:59 +02:00