Skip to content

Releases

Beta 2.4.6-beta.298 (main @ 7526fd6)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 22:09
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

Choose a tag to compare

@midasvo midasvo released this 12 Nov 18:36
59c3b37

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)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 18:06
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)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 16:05
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

Choose a tag to compare

@midasvo midasvo released this 12 Nov 10:14
40842ae

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

Choose a tag to compare

@midasvo midasvo released this 12 Nov 07:09
e82c5c5

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

Choose a tag to compare

@midasvo midasvo released this 11 Nov 22:27
7d69e43

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

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

Choose a tag to compare

@midasvo midasvo released this 11 Nov 12:27
bdc9542

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/...
Read more

Ephyra v2.4.0

Choose a tag to compare

@midasvo midasvo released this 10 Nov 09:54
79d39f8

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

Choose a tag to compare

@midasvo midasvo released this 09 Nov 21:08
089d0a2

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.