Repository navigation
Releases
Beta 2.4.6-beta.298 (main @ 7526fd6)
Beta build of main (https://github.com/midasvo/ephyra/tree/main) at commit 7526fd6.
This is the "Ephyra Beta" app (nl.midasvo.findroid.ce.staging). It installs next to the
stable Ephyra app and keeps its own data. Betas are untested; expect bugs.
For Android TV, take a -libre-tv-<abi>.apk: armeabi-v7a for 32-bit boxes such as the Xiaomi
Mi Box, arm64-v8a for 64-bit ones. Phone and TV share one app ID, so the TV APK replaces
the phone beta on a device and keeps its login.
Ephyra v2.4.5
Mostly player fixes, and many of them are about files the server has to convert: you can now
pick another audio track or a subtitle from inside the file while it transcodes, and the audio
language chosen for a series is used there too. On TV a lost connection says so and every
playback problem has "Try again". Continue Watching and Next Up show the wide art with the
title on it.
Changed
- Home: the Continue Watching and Next Up cards show the title art of the movie or series, as
the web client does. "Use episode images" under Interface > Home brings the episode images
back. Phone and TV (#608). - Player: on the phone the seek bar's thumbnails take half the memory and the next ones are
loaded ahead, so they show sooner while scrubbing (#615). - TV: the app starts and scrolls more smoothly right after an install or update, from a
baseline profile (#286).
Fixed
- Player: while the server transcodes, the audio dialog lists all of the file's audio tracks
and picking one switches to it. A track picked by hand in a movie is kept through a quality
switch (#596). - Player: the audio language saved for a series is also used when the server transcodes,
where the server's default track used to play (#580). - Player: the subtitles inside the file can be picked while the server transcodes (#597).
- Player: Play on a show gives its episode the seek bar thumbnails and chapters, and an
episode without thumbnails no longer shows those of the one before (#594). - Player: moving on from the closing outro, by a skip, the "Up next" card or autoplay, marks
the episode watched (#616). - Player: a file that fails to open is no longer counted as played on the server (#601).
- Player: the server's dashboard shows a transcode as a transcode instead of direct play
(#599). - Player (mpv): a file that cannot be opened gives one error that says what went wrong,
instead of two to four. When the server can't be reached the player waits for the network
and loads again, as ExoPlayer does (#576). - Player (mpv): leaving the player, or turning the screen off, could freeze the app on some
devices (#460). - Player: the episode list can be used from a keyboard: focus starts on the playing episode
and the arrows move through the list instead of changing the volume (#588). - TV: when the connection drops the player says "Connection lost" and continues by itself when
the network is back. Every playback problem has "Try again", and Play after an error loads
the item again (#463). - TV: after Home or standby the player plays on if it was playing, instead of sitting paused
with nothing on screen (#462). - TV: the seek bar's thumbnail no longer covers the title, the skip button or the "Up next"
card (#464). - Downloads: downloaded external subtitles are finished properly, also the ones earlier
versions left half-named (#573). - Home: on Android 17, with local network access turned off, the app says so and offers
"Allow access" instead of "Error loading data" (#571). - Login: a failed Quick Connect says why in plain words: the code expired, or Quick Connect is
turned off on the server. Add server no longer shows technical error text either (#606).
What's Changed
- chore(dev): a test server, emulators and skills to set up a development environment by @midasvo in #592
- fix(downloads): finalize downloaded external subtitles (#573) by @midasvo in #593
- fix(player): the series' audio choice on a transcode, and the episode sheet from the keyboard (#580, #588) by @midasvo in #595
- fix(tv): connection-lost dialog with Try again, and the seek thumbnail no longer covers the title (#463, #464) by @midasvo in #600
- docs(site): make the landing page easier to find by @midasvo in #602
- fix(player): on mpv, report a failed open once and wait for the network (#576) by @midasvo in #604
- fix(home): name the local network permission when it blocks the server (#571) by @midasvo in #605
- fix(player): trickplay and chapters on a show's Play (#594), report transcodes as such (#599) by @midasvo in #607
- docs(screenshots): retake from the demo server and show more on the site by @midasvo in #609
- feat(home): show title art on Continue Watching and Next Up cards (#608) by @midasvo in #610
- fix(player): audio switching and the file's subtitles during a transcode (#596, #597) by @midasvo in #611
- fix(player,setup): no played mark for an item that fails to open (#601), plain Quick Connect errors (#606) by @midasvo in #614
- fix(player): deselect video before mpv loses its surface (#460) by @midasvo in #478
- fix(player): trickplay memory and loading, outro skip marks watched (#615, #616) by @midasvo in #620
- fix(tv): play again after Home if it was playing (#462) by @midasvo in #500
- perf(tv): baseline profile and startup benchmark for app/tv (#286) by @midasvo in #582
- chore(release): v2.4.5 by @midasvo in #621
Full Changelog: v2.4.4...v2.4.5
Which APK? ephyra-v<version>-libre-<abi>.apk is for phones and tablets,
ephyra-v<version>-libre-tv-<abi>.apk for Android TV. Most phones need arm64-v8a;
32-bit TV boxes such as the Xiaomi Mi Box need armeabi-v7a. In Obtainium, filter the TV APK
with .*-tv-armeabi-v7a\.apk.
Beta 2.4.5-beta.290 (main @ e23e2d9)
Beta build of main (https://github.com/midasvo/ephyra/tree/main) at commit e23e2d9.
This is the "Ephyra Beta" app (nl.midasvo.findroid.ce.staging). It installs next to the
stable Ephyra app and keeps its own data. Betas are untested; expect bugs.
For Android TV, take a -libre-tv-<abi>.apk: armeabi-v7a for 32-bit boxes such as the Xiaomi
Mi Box, arm64-v8a for 64-bit ones. Phone and TV share one app ID, so the TV APK replaces
the phone beta on a device and keeps its login.
Beta 2.4.5-beta.286 (main @ f4d3329)
Beta build of main (https://github.com/midasvo/ephyra/tree/main) at commit f4d3329.
This is the "Ephyra Beta" app (nl.midasvo.findroid.ce.staging). It installs next to the
stable Ephyra app and keeps its own data. Betas are untested; expect bugs.
For Android TV, take a -libre-tv-<abi>.apk: armeabi-v7a for 32-bit boxes such as the Xiaomi
Mi Box, arm64-v8a for 64-bit ones. Phone and TV share one app ID, so the TV APK replaces
the phone beta on a device and keeps its login.
Ephyra v2.4.4
Playback with ExoPlayer starts faster for files with Dolby Digital Plus audio in an mp4: they
now play directly instead of going through the server, which on a TV box could take ten seconds
or more before a picture. The rest are small fixes to the phone player, offline Home and the
item pages.
Fixed
- Player (ExoPlayer): an mp4 with Dolby Digital Plus (E-AC-3) audio plays directly. When a file
does go through the server, HEVC video is passed on as it is where the device can decode it,
instead of being re-encoded, and leaving the player ends the server's conversion at once
instead of a minute later (#589). - Player: the first key after a tap on the player works. Space pauses and an arrow seeks,
where that first key used to do nothing (#448). - Player: in a window too narrow for all the buttons in the top row, the row starts at its end,
so audio, subtitles and episodes are in view, and a fading edge shows there is more (#456). - Player: at a large font size the title no longer leaves the window at the top (#585).
- Home: offline with nothing downloaded, Home says so and points to Downloads (#585).
- Item pages: the back and home buttons are readable on a page without artwork, also in the
light theme (#585).
What's Changed
- fix: phone and tablet polish (light-theme item buttons, player title and top row, offline Home text, first key after a touch) by @midasvo in #585
- fix(player): direct-play E-AC-3 in mp4 and stop needless HEVC transcodes (#589) by @midasvo in #590
- chore(release): v2.4.4 by @midasvo in #591
Full Changelog: v2.4.3...v2.4.4
Which APK? ephyra-v<version>-libre-<abi>.apk is for phones and tablets,
ephyra-v<version>-libre-tv-<abi>.apk for Android TV. Most phones need arm64-v8a;
32-bit TV boxes such as the Xiaomi Mi Box need armeabi-v7a. In Obtainium, filter the TV APK
with .*-tv-armeabi-v7a\.apk.
Ephyra v2.4.3
A quick follow-up to v2.4.2. Progress watched from a download after the network dropped in the
middle of playback was sent to the server and then overwritten by the server a few minutes
later; that is fixed. Downloads finish and tidy up more reliably, the players recover better
after a lost connection, and tablets get a switch to keep the player in landscape.
Added
- Player: "Keep the player in landscape" in the player settings, off by default, for tablets and
unfolded foldables. Where the display does not allow it, the player follows the device (#363).
Fixed
- Downloads: progress synced after the network was lost during playback is no longer replaced
by an older position a few minutes later. The app now ends the playback session the server
still had open before it sends the progress (#584). - Downloads: the download service runs until the queue is done and leaves no notification
behind, and it waits for the queue to restore when the system restarts it (#560). - Downloads: finished files and artwork that the database lost track of are cleaned up (#379).
- Offline: Home no longer shows the remembered online rows, which could not be opened (#428).
- Player: on mpv, Play and the wait for the network load the item again after a lost connection
(#474). - Player: the media notification no longer crashes a player in the background (#568).
- Player: a pause made in the background stays after the return, a repeated end-of-item report
no longer prompts again, and auto-enter picture-in-picture follows a gesture setting changed
while the player is open (#477, #480). - Player: the seek bar no longer shows through the episode sheet (#523).
- Setup: Add server says that local network access is off when that is what blocks it (#376).
- TV: the player shows a buffering indicator, and pause works while it buffers (#486).
- TV: the still-watching prompt counts down to the player's own deadline (#477).
- TV: the drawer's icons and labels keep inside the safe area, Right from the expanded drawer
reaches a poster beside it, and its profile item shows the server name under the user (#539,
#567). - TV: the login and add-server fields open the keyboard on OK instead of on focus, Left during
a cold start opens the drawer on Home, and the overview has no focus ring while its full text
is open (#583).
What's Changed
- fix(tv): show a buffering indicator in the TV player (#486) by @midasvo in #565
- fix(tv): the drawer's icons and labels keep inside the safe area (#539) by @midasvo in #566
- fix(setup): say that local network access is off when it blocks Add server (#376) by @midasvo in #570
- fix(downloads): sweep finished files and artwork the database lost (#379) by @midasvo in #569
- fix(tv): the still-watching prompt counts to the player's deadline (#477) by @midasvo in #575
- feat(player): option to keep the player in landscape on tablets (#363) by @midasvo in #574
- fix(player): on mpv, Play and the network wait load the item again after a lost connection (#474) by @midasvo in #572
- fix(player): still-watching re-prompt, PiP gesture change and notification crash (#477, #480, #568) by @midasvo in #577
- fix(offline): offline Home no longer shows the remembered online rows (#428) by @midasvo in #578
- fix(player): the seek bar no longer shows through the episode sheet (#523) by @midasvo in #579
- fix(downloads): the download service runs until the queue is done, with no notification left behind (#560) by @midasvo in #581
- fix(tv): keyboard on OK, overview ring under its dialog, drawer server name (#567), Left at cold start by @midasvo in #583
- fix(sync): end the server's playback session before sending offline progress (#584) by @midasvo in #586
- chore(release): v2.4.3 by @midasvo in #587
Full Changelog: v2.4.2...v2.4.3
Which APK? ephyra-v<version>-libre-<abi>.apk is for phones and tablets,
ephyra-v<version>-libre-tv-<abi>.apk for Android TV. Most phones need arm64-v8a;
32-bit TV boxes such as the Xiaomi Mi Box need armeabi-v7a. In Obtainium, filter the TV APK
with .*-tv-armeabi-v7a\.apk.
Ephyra v2.4.2
A second release of fixes from the run-through of the app on phone, tablet and TV. What you
watch from a download while the server cannot be reached is now sent to the server as soon as it
is back, without restarting the app, and it is no longer lost when you delete the download first.
The player picks up by itself when the network returns. And many smaller things on the TV, the
tablet layouts, Home, the setup screens and the settings read and behave as they should.
Fixed
- Downloads: progress, watched state and favourites changed while the server could not be reached
are sent when it is reachable again, not at the next app start. The app notices on its next
request to the server, when it comes to the foreground and when the network changes (#552). - Downloads: deleting a download before its progress was sent no longer loses that progress
(#552). - Downloads: a download queued without a network waits for it, the item page says "Waiting for
network" like the Downloads row, and the Downloads header counts failed downloads apart (#530,
#558, #546). - Player: playback loads again by itself when the network comes back, and the connection-lost
line covers no control (#450). - Player: track names are readable and the same on both backends, and the phone player's title
names the series (#451, #452). - Player: the controls stay clear of the system bars in split-screen, and the buttons under the
episode sheet are hidden while it is open (#455, #456). - Home: a server renamed on the server is renamed in the app, the server name keeps its room
when a refresh fails, and a pull to refresh shows one loading indicator (#543, #392, #391). - Home: a new first item in a row shows at the start, Back from a search opened on Home returns
to Home, and the carousel counts its pages by the window's width (#393, #394, #438). - Detail pages: the episode page links to its show, the watched button fills when watched, cast
without a photo shows a person icon, and premiere dates keep the four-digit year (#395, #397,
#396, #414). - Detail pages: items without artwork get no empty scrim or backdrop, on the page and on
Suggestions cards (#433, #437). - Accessibility: the Home buttons and the badges on cards have labels, keyboard focus is visible
on the carousel and the cards, and Tab skips plain text on item pages and the hidden bottom
bar (#441, #398, #442). - Right-to-left languages: arrows are mirrored and server text keeps its own direction (#401).
- Setup: the username is trimmed before logging in, "Server not found" clears when the address
is changed, the Addresses screen says why a removal or an addition did nothing, and the
server's login disclaimer is shown as text instead of HTML (#516, #443, #390, #375). - Settings: the player backends have names, number settings say "1 episode" and "No limit", and
the still-watching timeout is at least 5 seconds (#399, #400, #559). - Wording: the delete download dialog says "from your device", and Latin American Spanish reads
"Continuar viendo" (#402, #403). - Profiles: the profile sheet opens fully in landscape (#440).
- Tablet: the open search docks beside the rail on wide windows, the Season list keeps its
position over a rotation, the person page starts below its back and home buttons, and the rows
of seven screens keep to their designed widths (#439, #435, #436, #434). - TV: a long overview or biography opens in full, and the person page's first row fits (#545,
#508). - TV: the movie page shows Resume, Restart and the time left, and drops its spinner once the
movie has loaded; a season without episodes says so instead of spinning forever (#412, #544,
#505). - TV: focus is visible and goes where you expect: on Retry, the licence text, the About, login
and sort dialog buttons, back from Settings, a licence and the Users screen, down to a cast or
seasons row below the screen, and off the login screen's server button (#540, #418, #533, #424,
#541, #514, #557). - TV: Home, the library counter and the login screen keep out of the overscan margin, the Home
hero shows the overview for every row, and Back on Home opens the drawer on Home (#423, #410,
#411). - TV: Retry on Home also loads the drawer's libraries, and a failed search says why and offers
Retry (#513, #417). - TV: a season card without its own poster shows the show's, an undetermined language is left
out of the audio chip, and the credits under the buttons wrap (#416, #415, #413). - TV: OK after the remote's number keys submits the PIN, and the drawer's lock badge follows the
PIN at once (#409, #408). - TV settings: Left and Back from a details pane return to its row, millisecond settings step by
whole seconds, the screensaver settings keep label and value apart, and the mpv options page
has no empty "Advanced" heading (#419, #420, #422, #421).
What's Changed
- fix(player): keep the controls clear of the system bars in split-screen (#455) by @midasvo in #520
- fix(player): hide the buttons under the episode sheet while it is open (#456) by @midasvo in #522
- fix(tv): settings polish (#419, #420, #421, #422) by @midasvo in #524
- fix(tv): detail pages polish (#413, #415, #416) by @midasvo in #525
- fix(tv): Resume, Restart and the time left on the movie page (#412) by @midasvo in #527
- fix(tablet): cap the rows of seven screens at the design's widths (#434) by @midasvo in #526
- fix(tablet): start the person page below its back and home buttons (#436) by @midasvo in #528
- fix(tablet): keep the Season list's position over a rotation (#435) by @midasvo in #529
- fix(tv): Home polish (#410, #411) by @midasvo in #531
- fix(tv): profile lock polish (#408, #409) by @midasvo in #532
- fix(setup): setup polish (#375, #390, #443) by @midasvo in #535
- fix(home): count the carousel pages by the window's width class (#438) by @midasvo in #534
- fix(tablet): dock the open search beside the rail on wide windows (#439) by @midasvo in #536
- fix(tv): search and library polish (#417, #418) by @midasvo in #537
- fix(tv): overscan and licences polish (#423, #424) by @midasvo in #538
- fix(home): Home polish (#391, #392, #393, #394) by @midasvo in #542
- fix(downloads): a download queued without network waits for it (#530) by @midasvo in #547
- fix(tv): detail pages polish (#514, #508, #505, #544) by @midasvo in #548
- fix(phone): keyboard focus and accessibility polish (#398, #440, #441, #442) by @midasvo in #550
- fix(item): show link, cast placeholder and watched toggle on item pages (#395, #396, #397) by @midasvo in #549
- fix(item): pages and Suggestions without a backdrop, scrims only over artwork (#433, #437) by @midasvo in #551
- fix(i18n): text and translation polish (#399, #400, #401, #402, #403, #414) by @midasvo in #553
- fix(player): player polish (#450, #451, #452) by @midasvo in #561
- fix(tv): login and start polish (#516, #513) by @midasvo in #556
- fix(tv): focus polish (#533, #541, #540) by @midasvo in #555
- fix(phone): downloads, server name and prompt timeout polish (#546, #543, #558, #559) by @midasvo in #562
- fix(tv): overview dialog and login focus (#545, #557) by @midasvo in #563
- fix(sync): send offline progress without a restart, when the server returns, and keep it when the download is deleted (#552) by @midasvo in #554
- chore(release): v2.4.2 by @midasvo in #564
Full Changelog: v2.4.1...v2.4.2
Which APK? ephyra-v<version>-libre-<abi>.apk is for phones and tablets,
ephyra-v<version>-libre-tv-<abi>.apk for Android TV. Most phones need arm64-v8a;
32-bit TV boxes such as the Xiaomi Mi Box need armeabi-v7a. In Obtainium, filter the TV APK
with .*-tv-armeabi-v7a\.apk.
Ephyra v2.4.1
A release of fixes, from a full run-through of the app on phone, tablet and TV. Playback copes
better with a lost or stalled connection, above all on mpv. Downloads are only offered where the
server allows them and say why one was refused. Artwork you have already seen is shown from the
cache instead of being checked with the server again. And the detail pages are tidier: the file
details moved behind an info chip, and the credits are off until you ask for them.
Changed
- Movie and episode pages: an info chip at the end of the badge row opens a Media info sheet
with the file, its video, audio and subtitle tracks, and each version when there are several.
It replaces the "Display Extra Info" setting and the lines of text it put on the page (#510). - Movie and show pages: genres are one line under the overview, and the director, writers and
studios a small table. That table is now off by default: turn on "Director and writers" and
"Studios and networks" in Settings → Interface → Detail pages to see it, on TV too (#510).
Fixed
- Artwork: posters older than a year were checked with the server every time they were shown,
and stayed grey when the server could not be reached. They now come from the cache (#370). - Player: a lost connection on mpv is reported as an error, instead of closing the player,
marking the item watched or starting the next episode (#445). - Player: a stalled stream on mpv recovers or reports an error after 30 seconds, instead of
freezing for good (#460). - Player: a stream that fails to open on mpv is reported, and picking another episode in the
player works again (#446, #453). - Player: the phone player closes when nothing could be loaded, instead of staying black (#374).
- Player: an episode whose download has not finished is streamed instead of failing (#454).
- Player: the stop is reported to the server for an item you leave while it is still loading
(#461). - Player: the "still watching?" countdown shows the time really left (#367).
- Player: keyboard focus is visible on the controls, and Space no longer presses a control the
keyboard did not choose (#448, #449). - Player: auto-enter picture-in-picture stays off when the PiP home gesture is off (#447).
- Playback through a server on a sub-path: the address and the transcode path are joined with
one slash (#444). - Downloads: Download is only offered where the server allows it, and a refused download says
why (#373, #383). - Downloads: the notification permission is asked for when a download starts (#372).
- Downloads: a cancelled download that was not running is removed (#426).
- Home: a failed load is explained in plain words instead of a stack trace, and a change to the
Home rows shows without a pull to refresh (#377, #431). - My media: an error with Retry when the network drops, loading again when it returns; the
search stays open after a rotation or theme switch; Tab skips the closed search bar (#427,
#387, #430). - Library: it loads again after the app was killed in the background (#371).
- Detail pages: a cast card's name and role open the person, as its picture does (#389).
- Tablet: an episode's still is stacked above its text in a narrow pane, and the buttons wrap
(#429). - Setup: the server address is trimmed before connecting, adding a saved server again keeps its
user signed in, Login opens empty after a sign-out, and a cancelled Quick Connect code is
cleared (#404, #425, #388, #382). - Profiles: removing the current user in Settings no longer crashes the app (#381).
- Settings: the licence text opens on the phone, and the device profile can be exported on
Android 11 and later (#384, #385). - The app tells the server its real version (#386).
- TV: an error with Retry when Home or an item page fails to load, instead of a blank page or an
endless spinner (#405). - TV: the person page opens at the top, with the name and the whole biography (#407).
- TV: playback progress is reported from the TV player, and the OK press that shows the player
controls no longer also acts on them (#458, #459).
Maintenance
- Migration tests for every released database schema (#380).
What's Changed
- docs(audit): add the static checks report (#351) by @midasvo in #366
- docs(audit): add the feature checklist (#352) by @midasvo in #368
- ci(beta): skip the beta build when a release PR is merged by @midasvo in #369
- docs(audit): add the Android version matrix report (#357) by @midasvo in #378
- docs(audit): fill in the checklist for phone, tablet and TV, add the upgrade report (#353, #354, #355, #358) by @midasvo in #457
- docs(audit): fill in the TV player columns of the checklist (#356) by @midasvo in #465
- docs(audit): add the audit report, ranked list and fix order (#360) by @midasvo in #466
- fix(playback): join the server address and transcode path with one slash (#444) by @midasvo in #467
- fix(navigation): removing the current user no longer crashes the app (#381) by @midasvo in #468
- fix(player): report a replaced playlist on mpv so picking an episode works (#453) by @midasvo in #469
- fix(player): stream an episode whose download has not finished (#454) by @midasvo in #470
- fix(downloads): remove a cancelled download that was not running (#426) by @midasvo in #471
- fix(player): close the phone player when nothing could be loaded (#374) by @midasvo in #472
- fix(player): report a lost connection on mpv as an error, not the end of the item (#445) by @midasvo in #473
- fix(player): report the stop for an item left while it was loading (#461) by @midasvo in #475
- fix(player): keep the still-watching countdown on the time really left (#367) by @midasvo in #476
- fix(player): keep auto-enter PiP off when the PiP home gesture is off (#447) by @midasvo in #479
- fix(player): Space never closes the player; keyboard focus is visible (#448, #449) by @midasvo in #481
- fix(library): load the library after the app was killed in the background (#371) by @midasvo in #482
- fix(setup): adding a saved server again keeps its user signed in (#425) by @midasvo in #483
- fix(media): show the error with Retry after a network drop (#427) by @midasvo in #484
- fix(player): give mpv a 30 s network timeout so a stalled stream recovers (#460) by @midasvo in #485
- fix(home): show a Home rows change on Home without a pull to refresh (#431) by @midasvo in #487
- fix(media): keep the search open after a rotation or theme switch (#387) by @midasvo in #488
- fix(player): report a stream that fails to open on mpv, whatever the event order (#446) by @midasvo in #489
- fix(setup): open Login empty after a sign-out, without the old password (#388) by @midasvo in #490
- fix(settings): export the device profile on Android 11 and later (#385) by @midasvo in #492
- fix(data): tell the server the installed app's version (#386) by @midasvo in #491
- test(data): Room migration tests for the released schemas (#380) by @midasvo in #493
- fix(downloads): ask for the notification permission when a download starts (#372) by @midasvo in #494
- fix(tv): report playback progress from the TV player (#458) by @midasvo in #495
- fix(downloads): offer Download only where the server allows it (#373) by @midasvo in #496
- fix(downloads): show why the server refused a download (#383) by @midasvo in #497
- fix(tv): take the key-up of an OK that showed the player controls (#459) by @midasvo in #498
- fix(home): explain a failed load in plain words, not a stack trace (#377) by @midasvo in #499
- fix(setup): clear the Quick Connect code when it is cancelled (#382) by @midasvo in #501
- fix(film): open the person from a cast card's name and role (#389) by @midasvo in #502
- fix(settings): open the licence text on the phone (#384) by @midasvo in #503
- fix(setup): trim the server address before connecting (#404) by @midasvo in #504
- fix(tv): show an error with Retry when Home or an item page fails to load (#405) by @midasvo in #506
- fix(tv): hide the Display Extra Info switch on TV (#406) by @midasvo in #507
- fix(tv): open the person page at the top with name and biography (#407) by @midasvo in #509
- fix(images): show cached artwork without asking the server again (#370) by @midasvo in #511
- fix(tablet): stack the episode's still above its text in a narrow pane and wrap the buttons (#429) by @midasvo in https://github.com/midasvo/...
Ephyra v2.4.0
A fix for Android 10 and 11 first: the player crashed there as soon as you pressed a volume key
or Back, and no longer does. The "still watching?" prompt gets a switch and is now off until you
turn it on. On TV the settings are one tidy list, number settings can finally be changed with the
remote, and the Home hero shows long titles in full.
Added
- TV: number settings, such as the "still watching?" thresholds, can be changed with steps in the
details pane (#127).
Changed
- "Still watching?" prompt: a switch in Settings → Player, off by default. If you used the
prompt, switch it on again; the thresholds keep their values (#349). - TV settings: one list layout for every page, with the options or the description of the
focused setting on the right. Focus returns to the row you left (#347).
Fixed
- The player crashed on Android 10 and 11 when a volume key, Back or most other keys were
pressed during playback, on both ExoPlayer and mpv (#350). - A leftover manifest entry for a download receiver that no longer exists could crash the app
when a system download finished (#350). - TV: the Home hero title shrinks to fit, on up to two lines, instead of being cut off (#346).
- TV: the Home hero falls back to the season's backdrop or the episode's picture when the show
has no backdrop (#348).
Maintenance
- The licence list in the app is built from texts in the repository instead of downloads during
the build, so F-Droid can reproduce the release APK (#364).
What's Changed
- fix(tv): fit the Home hero title instead of cutting it off by @midasvo in #346
- fix(tv): fall back to the season's backdrop or the episode's picture in the Home hero by @midasvo in #348
- fix(tv): one list layout for every settings page by @midasvo in #347
- feat(player): a switch for the "still watching?" prompt, off by default by @midasvo in #349
- fix(player): stop the key handler crashing on Android 10 and 11 (#350) by @midasvo in #362
- fix(build): build the licence list offline so the APK is reproducible by @midasvo in #364
- chore(release): v2.4.0 by @midasvo in #365
Full Changelog: v2.3.0...v2.4.0
Which APK? ephyra-v<version>-libre-<abi>.apk is for phones and tablets,
ephyra-v<version>-libre-tv-<abi>.apk for Android TV. Most phones need arm64-v8a;
32-bit TV boxes such as the Xiaomi Mi Box need armeabi-v7a. In Obtainium, filter the TV APK
with .*-tv-armeabi-v7a\.apk.
Ephyra v2.3.0
Profiles can be locked, the player learns a few manners, and item pages show much more of what
your server knows. A profile can now sit behind a PIN, or a pattern on the phone, that never
leaves the device. The player gets a sleep timer and an "Up next" card with a countdown at the
end of an episode. Movie and show pages add the critic score, tagline, studios, every trailer,
extras, collections and "More like this", each with a switch if you'd rather not see it. mpv gets
a round of fixes and now follows your subtitle style, and something you downloaded opens even
when the server doesn't answer.
Added
- Profile lock: an optional 4 to 6 digit PIN per profile, asked when switching to the profile and
when the app starts in it. It is stored on the device only (#299). - Profile lock with a pattern on the phone, as an alternative to the PIN (#330).
- Sleep timer on phone and TV: 15 to 90 minutes, or until the end of the episode (#298).
- "Up next" card with a countdown in the last seconds of an episode, or from the start of the
outro, on phone and TV (#272). - Movie and show pages show what Jellyfin already sends: the Rotten Tomatoes score, tagline,
studios or networks, every trailer, the air schedule of a running show, the watch count and
last played date, a 3D badge, extras, collections and "More like this"; links to IMDb, TMDB,
TVDB and Trakt on the phone (#332). - Subtitle style: an "Override embedded styles" switch that applies your style to tracks that
bring their own, such as ASS (#300). - mpv follows the subtitle style settings: colour, outline, background, font and size (#308).
Changed
- Settings → Interface → Detail pages: one page with a switch for each part of a movie or show
page. "Display cast and crew" and "Display Extra Info" moved there (#332). - Downloaded movies and episodes open and play from the local copy when the server fails or
takes more than three seconds to answer (#281). - Playback starts a little sooner: media streams over the connection the app already has open,
and the saved audio and subtitle choice is applied with the first track selection instead of
after it (#296).
Fixed
- Phones switch the display to the video's frame rate again, so 24 fps video no longer plays at
the panel's maximum refresh rate (#338). - Tablet: the title and text of a movie, show or episode page sit under the backdrop instead of
over it, where bright artwork made them hard to read (#339). - The app's session disappears from the server's dashboard when the app closes or a login is
removed, instead of staying listed until the server restarts (#336). - The PIN prompt stays usable with the keyboard up, and Change PIN on TV no longer keeps the old
PIN (#329). - Show backdrops and logos are requested with the series' own image tags, so a series without a
logo no longer causes a failed request (#319). - A show that airs every day reads "Airs daily" (#332).
- mpv: play and pause survive loading and item changes (#305); a file mpv cannot open reports an
error instead of buffering forever (#306); lock screen and Bluetooth controls get the position
and the queue (#304); no more crash when backing out of the player (#318).
Maintenance
- Dependencies: Material 3 adaptive 1.3.0 (#337).
What's Changed
- fix(player): give the media session mpv's position and queue (#304) by @midasvo in #317
- fix(images): build show backdrop and logo from the series' own tags by @midasvo in #319
- fix(player): stop mpv calls after release (#318) by @midasvo in #320
- fix(player): surface mpv load errors and replace the TODO stubs (#306) by @midasvo in #321
- fix(player): keep mpv's state machine in step with mpv (#305) by @midasvo in #325
- feat(subtitles): add an "Override embedded styles" switch (#300) by @midasvo in #323
- feat(player): sleep timer on phone and TV by @midasvo in #322
- feat(mpv): apply the subtitle style settings to mpv (#308) by @midasvo in #324
- perf(player): saved track choice in the first selection, OkHttp media data source by @midasvo in #326
- feat(player): up next card with a countdown at the end of an episode by @midasvo in #327
- feat: open and play downloaded items from the online repository (#281, step 1 of 3) by @midasvo in #328
- feat(profiles): lock a profile behind a local PIN (#299) by @midasvo in #329
- feat(profiles): unlock a profile with a pattern on phone (#330) by @midasvo in #333
- fix(session): end the server session when the app closes or a login is removed by @midasvo in #336
- fix(deps): update androidx.compose.material3.adaptive to v1.3.0 by @renovate[bot] in #337
- fix(player): hint the display with the video frame rate on phones too by @midasvo in #341
- test(player): guardrails against losing the display frame rate hint by @midasvo in #342
- feat(film): show the metadata Jellyfin already sends, plus extras and similar (#332) by @midasvo in #335
- fix(tablet): draw the item hero's text under the backdrop, not over it (#339) by @midasvo in #340
- chore(skills): keep the F-Droid merge request at the latest release by @midasvo in #343
- docs: correct the agent files, mark finished research and add a contributing guide by @midasvo in #344
- chore(release): v2.3.0 by @midasvo in #345
Full Changelog: v2.2.0...v2.3.0
Which APK? ephyra-v<version>-libre-<abi>.apk is for phones and tablets,
ephyra-v<version>-libre-tv-<abi>.apk for Android TV. Most phones need arm64-v8a;
32-bit TV boxes such as the Xiaomi Mi Box need armeabi-v7a. In Obtainium, filter the TV APK
with .*-tv-armeabi-v7a\.apk.