fe67a221ac Render a higher resolution cover in the Android notification background (#1917)
* Render a higher resolution bitmap in the notification background art

Previously only METADATA_KEY_ALBUM_ART_URI/ART_URI were set, leaving notification/lock-screen/Android Auto consumers to resolve the cover art themselves. Likely due to internal scaling, a lower quality bitmap was loaded.

This commit adds a shared resolveUriAsBitmap() helper (extracted from AbMediaDescriptionAdapter.kt) and uses it to:
  - Resolve and cache a bitmap on PlaybackSession once per
  session (synchronously for local covers, asynchronously for server covers), then set it on METADATA_KEY_ALBUM_ART/ART once available, falling back to the URI keys until it resolves.
  - Reuse the same helper in AbMediaDescriptionAdapter so the notification icon is resolved consistently.

  PlayerNotificationService tracks the resolution Job and cancels/replaces it on each new playback session, invalidating the media session metadata once the bitmap is ready.

* Remove the size override in Glide

The override was not needed. It wasn't in the original code, so I'll remove it for consistency.

* Update notification icon to reuse cover bitmap if already loaded on session

---------

Co-authored-by: advplyr <advplyr@protonmail.com>
2026-08-04 16:58:47 -05:00
2021-09-01 20:07:11 -05:00
2021-12-04 19:56:29 -06:00
2023-03-10 16:13:04 -06:00
2025-09-07 16:31:59 -05:00
2021-09-02 12:19:26 -05:00
2022-04-11 16:29:19 +02:00
2022-03-20 05:54:56 -05:00
2026-05-10 14:29:52 -05:00
2026-05-10 14:29:52 -05:00
2025-09-07 16:31:59 -05:00

Audiobookshelf Mobile App

Audiobookshelf is a self-hosted audiobook and podcast server.

Android (beta)

Get the Android app on the Google Play Store

iOS (early beta)

Beta is currently full. Apple has a hard limit of 10k beta testers. Updates will be posted in Discord.

Using Test Flight: https://testflight.apple.com/join/wiic7QIW (beta is full)


Go to the main project repo github.com/advplyr/audiobookshelf or the project site audiobookshelf.org

Join us on discord

Requires an Audiobookshelf server to connect with

Screenshot

Contributing

This application is built using NuxtJS and Capacitor in order to run on both iOS and Android on the same code base.

Localization

Thank you to Weblate for hosting our localization infrastructure pro-bono. If you want to see Audiobookshelf in your language, please help us localize. Additional information on helping with the translations here. Translation status

Windows Environment Setup for Android

Required Software:

Install the required software with winget

Note: This requires a PowerShell prompt with winget installed. You should be able to copy and paste the code block to install. If you use an elevated PowerShell prompt, UAC will not pop up during the installs.

winget install -e --id Git.Git; `
winget install -e --id Microsoft.VisualStudioCode; `
winget install -e --id  Google.AndroidStudio; `
winget install -e --id OpenJS.NodeJS --version 20.11.0;


Your Windows environment should now be set up and ready to proceed!

Mac Environment Setup for Android

Required Software:

Install the required software with homebrew

brew install android-studio node cocoapods

Start working on the Android app

Clone or fork the project from terminal or powershell and cd into the project directory.

Install the required node packages:

npm install
Expand for screenshot


Generate static web app:

npm run generate
Expand for screenshot


Copy web app into native android/ios folders:

npx cap sync
Expand for screenshot


Open Android Studio:

npx cap open android
Expand for screenshot


Start coding!

After making changes to the JS layer you need to rebuild the nuxt pages and sync them to the native shells:

npm run sync

Mac Environment Setup for iOS

Required Software:

Start working on the iOS app

Clone or fork the project in the terminal and cd into the project directory.

Install the required node packages:

npm install
Expand for screenshot


Generate static web app:

npm run generate
Expand for screenshot


Copy web app into native android/ios folders:

npx cap sync
Expand for screenshot


Open Xcode:

npx cap open ios
Expand for screenshot


Start coding!

After making changes to the JS layer you need to rebuild the nuxt pages and sync them to the native shells:

npm run sync
S
Description
No description provided
Readme GPL-3.0
111 MiB
Languages
Vue 43.8%
Kotlin 30.7%
Swift 16%
JavaScript 8.1%
CSS 1.1%
Other 0.1%