Tags: Arturo254/OpenTune
Tags
chore: increment version to 3.0.1 This commit updates the application versioning in `build.gradle.kts`. - Incremented `versionCode` from `127` to `128`. - Updated `versionName` from `3.0.0` to `3.0.1`. Signed-off-by: Arturo Cervantes <[email protected]>
Summary: Update Android Gradle Plugin and Material3 versions This commit updates the versions for `androidGradlePlugin` and `material3` in `gradle/libs.versions.toml`: - `androidGradlePlugin`: 9.1.0 -> 9.1.1 - `material3`: 1.5.0-alpha09 -> 1.5.0-alpha17 Signed-off-by: Arturo Cervantes <[email protected]>
Use .fileprovider authority; tidy file_paths.xml
Update AndroidManifest to use "${applicationId}.fileprovider" as the FileProvider authority (was "${applicationId}.provider"). This aligns the authority name with common conventions and prevents mismatches when constructing provider URIs. Also clean up app/src/main/res/xml/file_paths.xml by removing extraneous comments and blank lines—the defined paths (downloads, external_files, cache, files) remain unchanged. Ensure any code or tests that referenced the old authority string are updated accordingly.
feat: Enhance Share Lyrics Image customization
This commit significantly expands the customization options for generating shareable lyrics images, introducing new style settings and refining the existing UI and backend logic.
### New Features & Enhancements
- **New "Style Settings" Category:**
- **Cover Art Style:** Users can now choose between `Rounded`, `Circle`, and `Square` styles for the album cover.
- **Lyrics Style:** Options for `Normal`, `Italic`, and `Condensed` lyrics have been added.
- **Accent Line:** A decorative line can now be enabled below the song info, with its color matching the text color by default.
- **Line Spacing:** A new slider allows adjustment of the line spacing for the lyrics text.
- **Element Spacing:** A slider has been added to control the vertical spacing between UI elements (cover, song info, lyrics).
- **UI & UX Improvements:**
- The customization bottom sheet has been reorganized, with settings grouped into expandable cards: `Select Theme`, `Style Settings`, `Background Settings`, `Text Settings`, and `Layout Settings`.
- The logo in the footer now consists of just the icon and app name, removing the surrounding circular background for a cleaner look.
- **Backend (`LyricsImageGenerator.kt`):**
- The generator logic has been updated to support all new customization options, including `coverArtStyle`, `lyricsStyle`, `showAccentLine`, `accentColor`, `spacingBetweenElements`, and `lyricsLineSpacing`.
- The rendering of song metadata (`renderSongMetadataHighRes`) now returns its height to allow for more accurate positioning of subsequent elements like the new accent line.
- The logo rendering logic has been adjusted to match the new, cleaner design.
### Code Refactoring & Cleanup
- **`ShareLyricsDialog.kt`:**
- Extensive code cleanup by removing redundant modifiers and simplifying layout structures (e.g., `Row`, `Column`, `Box`).
- Removed an unused `CoroutineScope`.
- Added `@SuppressLint("LocalContextGetResourceValueCall")` to suppress a lint warning.
- **`ShareLyrics.kt`:**
- Defined new enums `CoverArtStyle` and `LyricsStyle`.
- Updated the `ImageCustomization` data class to include all new styling properties.
- The composable `LyricsImageCardPreview` and the underlying `ComposeToImage` function now correctly apply and pass all new style parameters.
- **`Thumbnail.kt`:**
- Removed unnecessary horizontal padding from the `LazyRow` item in the player thumbnail, which was a minor unrelated cleanup.
Refactor: Migrate BottomSheetMenu to Material3 ModalBottomSheet
This commit refactors the `BottomSheetMenu` component to use the standard Material3 `ModalBottomSheet` implementation, replacing the previous custom solution.
**BottomSheetMenu (`BottomSheetMenu.kt`):**
- **Migration to Material3:**
- Replaced the custom `AnimatedVisibility`, `BackHandler`, and manual scrim logic with `ModalBottomSheet`.
- Implemented a custom `dragHandle` using a rounded `Box` for better visual indication.
- Updated the container color to `MaterialTheme.colorScheme.surface`.
- Adjusted layout modifiers to fill max height and apply horizontal padding to content.
- **Simplified Logic:**
- Removed manual gesture detection for dismissal as `ModalBottomSheet` handles it natively.
- Integrated focus clearing directly into the `onDismissRequest` callback.
**Minor Changes:**
- **`BottomSheet.kt`:** Removed an unnecessary blank line.
Refactor: Redesign Discord Presence UI and cleanup imports
This commit introduces a complete redesign of the Discord Rich Presence preview card in the settings and performs code cleanup by organizing imports across multiple files.
**Discord Presence UI Redesign (`DiscordSettings.kt`):**
- **Header:**
- Replaced the simple title with a more prominent header featuring a larger, stylized Discord logo in a circular, gradient-filled container with a shadow.
- Added "OpenTune" as a title and "Listening on Discord" as a subtitle.
- **"Live" Indicator:**
- The "Playing" indicator has been restyled to say "LIVE" and now includes an animated play icon for better visual feedback. It has a more pronounced container with a border and shadow.
- **Album Art & Artist Avatar:**
- The main song thumbnail is now displayed in a card with a shadow and a subtle gradient overlay.
- The artist's avatar is presented in a circular card with elevation, aligned to the bottom-end of the thumbnail.
- A styled OpenTune logo serves as a fallback for the artist's avatar, displayed within a gradient-filled circle.
- **Track Information:**
- Fallback text is improved to "No song playing" and "Unknown Artist".
- **Action Buttons ("YouTube Music" & "OpenTune"):**
- "YouTube Music" is now a `FilledTonalButton` for primary action emphasis.
- The "OpenTune" button icon is replaced with a stylized, circular OpenTune logo matching the app's branding.
- Both buttons have updated styling for better consistency.
**Code Cleanup:**
- **Import Organization:** Unused imports were removed and the remaining ones were sorted alphabetically across numerous files, including:
- `BackupAndRestore.kt`
- `PlayerConnection.kt`
- `MusicService.kt`
- `Queue.kt`
- `NavigationBuilder.kt`
- `ShapeSelector.kt`
- `MainActivity.kt`
- `ArtistScreen.kt`
- `BottomSheet.kt`
- `Theme.kt`
- `Lyrics.kt`
- `LocaleManager.kt`
- `LyricsImageGenerator.kt`
- `SettingsScreen.kt`
- `ShareLyricsDialog.kt`
- `ShareLyrics.kt`
- `QueueExt.kt`
- `BackupRestoreViewModel.kt`
- `Preference.kt`
- `CustomAvatarSelector.kt`
- `MiniPlayer.kt`
- **Minor Refactoring:**
- Removed unused `toPersistQueue` extension in `MusicService.kt`.
- Removed an unused `Brush` import in `Queue.kt`.
feat: Refactor Settings screen UI and add Changelog sheet This commit significantly refactors the main Settings screen for better organization and user experience, and introduces a new changelog feature within a modal bottom sheet. **UI Refactoring (`SettingsScreen.kt`, `SettingsCategory.kt`):** - **Settings Categories:** - Replaced individual setting items with a structured `SettingsCategory` component. - Grouped settings into logical sections: "General", "Community", and "App Info". - Added horizontal padding to `SettingsCategory` for a consistent, cleaner layout. - **Visual Cleanup:** - Removed outdated card-based layouts for "Version" and other items, integrating them into the new category system. - Standardized spacing between elements. - **Translate & Changelog Integration:** - "Translate" is now an item within the "General" settings category, triggering a confirmation dialog. - "Changelog" is a new item in the "Community" category. **New Features:** - **Changelog Modal Bottom Sheet:** - Clicking the "Changelog" setting now opens a `ModalBottomSheet`. - The sheet displays the `ChangelogScreen` content, allowing users to view recent changes without leaving the app. - The bottom sheet is configured to skip the partially expanded state for a better user experience. **Other Changes:** - **String Resources (`strings.xml`):** - Added new strings for the new category titles: `community` and `app_info`. - **Update Checker (`SettingsScreen.kt`):** - Code for the update checker and download dialog has been cleaned up by removing unnecessary comments and simplifying logic slightly, but the core functionality remains the same.
Add animated background effects to player UI Introduces animated blur, gradient, and overlay background effects to the player UI using Compose animation APIs. Background transitions now smoothly animate when expanding the player, switching background styles, or displaying lyrics, enhancing the visual experience.
PreviousNext