Skip to content

RossSihovsk/LiveMedia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 LiveMedia: Always-On Media Control

🌟 Project Goal

The goal of LiveMedia is to transform standard media playback into a persistent, glanceable, and interactive experience. This application is designed exclusively for Android 16 and newer, with a preference for Google Pixel phones.

LiveMedia uses promoted ongoing notifications to create a "Live Activity" effect, bringing controls and track information directly to the screen. Through the in-app settings, you can customize which elements are displayed, such as album art, artist and album names, and playback controls.

It does not show any live notifications on the lock screen or Quick Settings to avoid duplication with the default media player.


🛠️ Code Description

The codebase is organized into the following key modules:

  • lockscreen: Manages the visibility of the media controls on the lock screen.
  • media: Handles media state management, including the MusicState data class.
  • notification: Contains the MediaNotificationListenerService for intercepting media notifications and the NotificationUpdateScheduler for updating the custom notification.
  • qs: Manages Quick Settings state and disable notifications when Quick Settings are opened.
  • ui: Defines the Jetpack Compose UI. This includes the PermissionScreen for handling permission requests, the SettingsScreen for customizing notification content.
  • storage: Manages persistent user preferences for notification content using SharedPreferences.
  • permission: Responsible for permission requests and validating state
  • utils: Provides utility functions for logging and notification management.

🚀 Setup and Permissions

Since LiveMedia intercepts system notifications, explicit user permission is required.

Required Permissions

Permission Reason
Notification Listener Required by MediaNotificationListenerService to access media metadata and session tokens.
Accessibility Service Required by QSStateListener to detect when Quick Settings or the Notification Shade is opened, allowing the app to hide notifications during user interaction.

Live Updates note:

You may need to manually open app notification settings and allow to use Live Updates. It's not required on PixelOS, but it may be required on other vendors, such as OnePlus.

Installation

Download APK (Recommended for Quick Setup): * Navigate to the Releases tab of this repository. * Download the latest release.apk file directly to your device. * You will need to use APKMirror to install it or to disable Play Protect.

OR

Clone the repository: git clone https://github.com/RossSihovsk/LiveMedia.git *Open the project in Android Studio and build the APK. *Install the app on your device.

After installation, go to Settings and manually grant Notification Listener Access and Accessibility Service to the LiveMedia app. Start playing music! The LiveMedia control should appear once media playback begins and the phone is unlocked.


🌍 Localization

LiveMedia supports 9 languages with complete translations for Settings and Permission screens. The app automatically displays in your device's system language.

Supported Languages

Language Locale Code Native Name
English en English (Default)
Ukrainian uk Українська
German de Deutsch
Spanish es Español
Polish pl Polski
Hindi hi हिन्दी
Chinese zh 简体中文
Japanese ja 日本語
French fr Français

The app will automatically use your device's language setting. If your device language is not in the list above, the app will default to English.


🎨 Customization & Supported Apps

Status Bar Pill: View the list of supported apps that display their icons in the status bar pill.

Notification Settings: Tailor the media notification to your preference. You have full control over the content and format, allowing you to toggle specific elements—such as album art, artist name, action buttons, and progress bars—to create a cleaner or more detailed look.

Screenshots

image image

anim

ezgif-4220ad52c4c430a7

Star History

Star History Chart

About

LiveMedia uses promoted ongoing notifications to create a "Live Activity" effect, bringing controls and track information directly to the screen.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages