Add a 1x1 Book Cover Wdiget #519

Open
opened 2026-04-24 23:27:13 +02:00 by adam · 4 comments
Owner

Originally created by @hybridtracer on GitHub (Apr 5, 2023).

I had posted this in the server github but it makes more sense here. My previous audiobook app, Listen Audiobook Player, had a really nifty 1x1 widget that was just a book cover and tapping it played and paused the book. It was resizable to any size which made it very handy. If possible a similar feature down the line would be greatly appreciated. Also double tapping opens the app directly to the reader if more input than pause/play is need.

I attached photos of how it looks at different sizes and how I used it in the last picture. I like having it on the homescreen because it reminds me to listen more. I'm sure it's not a high priority but when widgets are eventually worked on, I would love one that functions like this.

I really like the clean look of just the book cover as the widget. Pause and play is the main input I personally need and a double tap opens the app for further input if needed.

Originally created by @hybridtracer on GitHub (Apr 5, 2023). I had posted this in the server github but it makes more sense here. My previous audiobook app, Listen Audiobook Player, had a really nifty 1x1 widget that was just a book cover and tapping it played and paused the book. It was resizable to any size which made it very handy. If possible a similar feature down the line would be greatly appreciated. Also double tapping opens the app directly to the reader if more input than pause/play is need. <img src="https://user-images.githubusercontent.com/20684104/180483918-38358f45-46b1-4b0b-9e53-3619dc755eeb.jpg" width="100"> <img src="https://user-images.githubusercontent.com/20684104/180483925-cb7bdf24-7821-4b80-a314-02073ec97c79.jpg" width="100"> <img src="https://user-images.githubusercontent.com/20684104/180483935-d31b479c-385c-463c-9a36-ebbdf67f541b.jpg" width="100"> <img src="https://user-images.githubusercontent.com/20684104/180483940-4bd21f48-4d25-4655-8752-17725403dcda.jpg" width="100"> I attached photos of how it looks at different sizes and how I used it in the last picture. I like having it on the homescreen because it reminds me to listen more. I'm sure it's not a high priority but when widgets are eventually worked on, I would love one that functions like this. I really like the clean look of just the book cover as the widget. Pause and play is the main input I personally need and a double tap opens the app for further input if needed.
adam added the enhancement label 2026-04-24 23:27:13 +02:00
Author
Owner

@Dr-Blank commented on GitHub (Apr 6, 2023):

This is such a nifty feature! It would help form a habit for those who are not yet habituated.

  • Widget on the home screen, single tap to start playing, least resistance !
  • Single tap to play pause, double tap to open player, intuitive UI/UX !
@Dr-Blank commented on GitHub (Apr 6, 2023): This is such a nifty feature! It would help form a habit for those who are not yet habituated. - Widget on the home screen, single tap to start playing, **least resistance** ✅! - Single tap to play pause, double tap to open player, **intuitive UI/UX** ✅!
Author
Owner

@hybridtracer commented on GitHub (Dec 17, 2025):

I'm not sure if bumping is allowed, but I'd love it if someone would consider adding a feature like this.

@hybridtracer commented on GitHub (Dec 17, 2025): I'm not sure if bumping is allowed, but I'd love it if someone would consider adding a feature like this.
Author
Owner

@VijayS1 commented on GitHub (Jan 31, 2026):

+1 on this - I used Smart Audiobook Player before switching to ABS and miss the simple 1x1 widget for quick play/pause.

For anyone looking to implement this, here's a suggested approach from claude based on the existing widget code:

Suggested Implementation

1. New Widget Provider - android/app/src/main/java/com/audiobookshelf/app/widget/NowPlayingSmallWidget.kt

  • Extend AppWidgetProvider (same pattern as the existing NowPlayingWidget)
  • Reuse the existing WidgetUpdater logic for cover image loading and playback state
  • Single tap → send play/pause intent to PlayerNotificationService
  • Long-press → launch app to player screen (since Android widgets don't handle double-tap well)

2. Minimal Layout - android/app/src/main/res/layout/widget_now_playing_small.xml

  • ImageView for the cover that fills the widget
  • Play/pause icon overlay (always visible, shows current state)

3. Widget Info - android/app/src/main/res/xml/now_playing_small_widget_info.xml

<appwidget-provider
    android:minWidth="40dp"
    android:minHeight="40dp"
    android:resizeMode="horizontal|vertical"
    android:initialLayout="@layout/widget_now_playing_small"
    ... />

4. Register in Manifest - Add the receiver to AndroidManifest.xml

Most of the heavy lifting (cover fetching, playback control intents) already exists in the current widget code, so this should be fairly straightforward to add.

Expected Behavior

  • Separate widget in the picker (not a resize mode of the existing 4x1 widget)
  • When playing: Shows current book cover with pause icon overlay, tap to pause
  • When paused/nothing playing: Shows last-played book cover with play icon overlay, tap to resume
@VijayS1 commented on GitHub (Jan 31, 2026): +1 on this - I used Smart Audiobook Player before switching to ABS and miss the simple 1x1 widget for quick play/pause. For anyone looking to implement this, here's a suggested approach from claude based on the existing widget code: ## Suggested Implementation **1. New Widget Provider** - `android/app/src/main/java/com/audiobookshelf/app/widget/NowPlayingSmallWidget.kt` - Extend `AppWidgetProvider` (same pattern as the existing `NowPlayingWidget`) - Reuse the existing `WidgetUpdater` logic for cover image loading and playback state - Single tap → send play/pause intent to `PlayerNotificationService` - Long-press → launch app to player screen (since Android widgets don't handle double-tap well) **2. Minimal Layout** - `android/app/src/main/res/layout/widget_now_playing_small.xml` - `ImageView` for the cover that fills the widget - Play/pause icon overlay (always visible, shows current state) **3. Widget Info** - `android/app/src/main/res/xml/now_playing_small_widget_info.xml` ```xml <appwidget-provider android:minWidth="40dp" android:minHeight="40dp" android:resizeMode="horizontal|vertical" android:initialLayout="@layout/widget_now_playing_small" ... /> ``` **4. Register in Manifest** - Add the receiver to `AndroidManifest.xml` Most of the heavy lifting (cover fetching, playback control intents) already exists in the current widget code, so this should be fairly straightforward to add. ## Expected Behavior - **Separate widget** in the picker (not a resize mode of the existing 4x1 widget) - **When playing:** Shows current book cover with pause icon overlay, tap to pause - **When paused/nothing playing:** Shows last-played book cover with play icon overlay, tap to resume
Author
Owner

@WhiteSockedDancer commented on GitHub (Feb 11, 2026):

would even be greater if you could configure the desired audiobook to start/stop and have more then one widget to start different audiobooks on demand without opening the app and switching the active book.

@WhiteSockedDancer commented on GitHub (Feb 11, 2026): would even be greater if you could configure the desired audiobook to start/stop and have more then one widget to start different audiobooks on demand without opening the app and switching the active book.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf-app#519