Android Beta 47
Work on the v1.20 release continues. In Android Beta 47, available now in the new F-Droid repository, I've made significant improvements to audio playback, and fixed a number of regressions found in the previous build:
- Audio playback and streaming are possible also in the background, using native Android media decoders. The new app permissions for Foreground Service (Media Playback), Notifications, and Wake Lock are needed for this.
- Audio: Show an Android notification when audio is playing (required by OS for background audio). The first time audio is played, you will be prompted to enable notifications.
- Audio: SDL-based playback (Ogg Vorbis) has lower latency.
- Improved UI of inline audio player for touch screens: taller area, removed volume button.
- Fixed stability and behavior issues with audio players. For example, history navigation was not releasing audio player resources when leaving a page. (Previously, they were just paused.)
- Fixed excessive audio player refresh interval.
- Fixed auto-stopping an audio player when at end of content.
- Fixed ability to scroll the page while an input prompt is open.
- Fixed behavior of system Back button. (Should not exit the app!)
- Moved "Paste Preceding Line" to top of context menu.
I've done all of my testing on Android 16 so I'm curious to hear how the new audio code adapts to older OSes. If you run into problems, let me know!
I wrote some technical notes about the audio implementation on my gemlog:
skyjake.fi/gemlog/2026-03_android-streaming.gmi
Mar 15 ยท 8 weeks ago ยท ๐ Half_Elf_Monk, Homer, balloon, bsj38381, theo, JimmyLee, kdy, kirascene ยท ๐ 1 ๐ 1 ๐ฅ 1
21 Comments โ
๐ skyjake [OP/mod...] ยท Mar 15 at 07:12:
Two known issues:
- Reloading a page with a streaming non-inline audio player may cause a crash.
- Streaming audio for a long time will likely cause the app to be killed due to running out of memory. As with any Gemini request, the full downloaded data is kept in memory in case it finishes and the user wants to save it to a file. (Protocol does not signal content length or lack thereof.)
๐ drh3xx ยท Mar 15 at 09:11:
f-droid is telling me no files are in the repo at the moment. I'm definitely using the correct repo (I re-setup the repo for the previous release). Is anyone else reporting issues? Is it a misleading error due to a temporary serverside repo issue?
๐ skyjake [OP/mod...] ยท Mar 15 at 09:40:
That's curious. @stack reported the same error (following Beta 46). I said to try the QR code to set up the repository and that perhaps helped?
๐ drh3xx ยท Mar 15 at 09:44:
Glad it's not just me. I'll try setting up the repo again then and see how I get on.
๐ drh3xx ยท Mar 15 at 09:47:
Bizarre, re-adding the repo worked (not via QR code). We'll see how I get on next release I guess. Thanks for quick response.
๐ skyjake [OP/mod...] ยท Mar 15 at 10:00:
Could be some caching issue in the F-Droid app? It's the same URL as the previous repo, after all...
๐ drh3xx ยท Mar 15 at 13:06:
Latest build no longer displays previous tab content on reopen.
๐ skyjake [OP/mod...] ยท Mar 15 at 14:21:
@drh3xx I am able to reproduce the issue after force-closing the app. I'll investigate...
I did find one potential cause for this. Let's see if the next build works better.
๐ lars_the_bear ยท Mar 15 at 14:59:
Until I saw the update list, it never even occurred to me that there were Gemini capsules with audio. Well, well...
๐ skyjake [OP/mod...] ยท Mar 15 at 17:20:
Added a link to the gemlog post about the audio implementation.
While writing this I realized that streaming audio is what most closely corresponds to how text documents are presented in the app: while loading, the content appears as soon as possible and gets updated while more data comes in. At some point all data has been received and you have the full page. Or if you're streaming, the page just keeps growing indefinitely. With audio, the presentation is different but everything else is now handled the same way. (Except on iOS where the app still lacks the streaming buffer for audio decoding.)
๐ Garvalf ยท Mar 15 at 17:57:
I had also an error with the repo, because it looks like the fingerprint changed since the first time I've set it up a long time ago. I've just deleted it and setup again by scanning the qr code on https://skyjake.github.io/fdroid/repo/ and it worked for me!
Btw thanks a lot for this update, it allows me to play my music from my Android phone!
๐ป Christopher ยท Mar 17 at 19:57:
@skyjake: I updated to 1.20 beta 47 a couple days ago since I was getting annoyed by the back button exiting the app. Now it works... kinda. Now when I press the back button, it acts like I pressed it *twice*, and I have to go forward in history to go back to the page that the back button should have gone to.
This also happens in the Settings menus, so it's not just page history that's affected.
๐ skyjake [OP/mod...] ยท Mar 17 at 20:32:
Which version of Android are you running on your device?
๐ฆ bsj38381 ยท Mar 18 at 06:46:
I'm so used to getting the PC version of Lagrange getting updates.
Anyways, I think Lagrange is up to date from F-droid, I'll double check though. My android device uses Android 15 (Vanilla Ice Cream)
๐ skyjake [OP/mod...] ยท Mar 18 at 07:41:
I've pushed Beta 48 to the F-Droid repository. This should fix the doubled back button issue.
It also more carefully saves app state on exit so the issue with all tabs being forgotten or empty may be resolved.
๐ป Christopher ยท Mar 18 at 17:59:
I'm using Android 16.
I also noticed today that if I hold down the back button, Lagrange will visibly go back one page (and/or Settings menu), pause about a half second, and then go back a second page. It doesn't go back by more than two pages no matter how long I hold down the back button.
Edit: doh, I should have refreshed this comment page before leaving this comment. That'll teach to read before writing. :P
๐ป Christopher ยท Mar 18 at 18:12:
Does f-droid refresh a repo only like once a day? I pulled down to refresh from the "Latest" tab, and it briefly said "Updating repositories" at the top, but it still said the latest version of Lagrange was 1.20b47.
I removed and re-added your repo and then I finally saw version 1.20b48 available.
๐ป Christopher ยท Mar 18 at 18:15:
Sorry for the multiple comments, but 1.20b48 does not fix the double back button. It's a relatively minor issue that I can deal with, so no pressure from me to fix it right away.
๐ skyjake [OP/mod...] ยท Mar 18 at 18:20:
I'm having similar refresh issues with the F-Droid repository. Something may be broken in its configuration or metadata. I'm taking a closer look...
EDIT: Repo is fixed.
๐ skyjake [OP/mod...] ยท Mar 18 at 20:38:
@Christopher Could you open a bug report about the Back button? Either here or GitHub. Would be easier to track the issue. I still can't reproduce it on my devices/gesture config.
๐ป Christopher ยท Mar 18 at 22:46:
Huh, after running 1.20b48 for a bit today it just completely reset itself (all tabs are gone, fonts set back to default, etc.). And now I can't reproduce the double back button issue anymore.
Must've been something corrupted in its configuration causing issues. I'll keep an eye on it and see if there's some setting or combination of settings that bring it back.