Consolidated community contributions: AI architecture overhaul, tablet optimization, localization (ja/ar/pt-BR/fr), customizable library tabs, playlist concurrency fix, UI improvements, security hardening, and code quality pass#2404
Open
daedaevibin wants to merge 117 commits into
Conversation
Updated Italian strings in changelogs for improved clarity and consistency.
[ci skip]
…or the Arabic resource directory
…anguage enum and remove legacy translation keys
Add widthIn(max = 540.dp) to dialogs and several setup pages to constrain content on wide screens and import required layout helpers. Rename the SineWaveLine parameter from `waves` to `wavesDensity`, update its KDoc and default, and adjust the theta calculation to scale density relative to a 380dp baseline width. Update all call sites (BetaInfoBottomSheet, ChangelogBottomSheet, PlaylistContainer, SetupScreen, etc.) to use `wavesDensity`. Also small UI tweaks in SetupScreen: comment out CenterHorizontally alignment, reduce a spacer height, and set the welcome artwork to requiredWidth(380.dp). These changes improve responsive layout behavior and make the sine wave drawing density consistent across different widths.
f again
still working on the min width and the back animation
Renamed the central AI orchestration class from AiOrchestrator to AiHandler and updated all references across the codebase.
…s all providers - Create UnifiedModelFilter utility that filters out embedding, image, TTS, speech, moderation, vision-only, and other non-chat models - Update GeminiAiClient to use UnifiedModelFilter instead of hardcoded markers - Update GenericOpenAiClient to use UnifiedModelFilter instead of inline filter
These providers all use OpenAI-compatible APIs. Switching from dedicated client classes to GenericOpenAiClient eliminates duplicate code. The old class files are kept on disk but no longer referenced.
Add CUSTOM provider with hasConfigurableUrl=true and requiresApiKey=true for user-configured self-hosted/custom API endpoints.
CUSTOM provider uses GenericOpenAiClient with an empty default URL (user configures it via settings). createClientWithUrl allows creating a client with a custom base URL for configurable-URL providers.
…gs for consistency
…overhaul, new providers, and generation tuning
…plement customizable tab management
…lation and configure app languages Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…sing telegram channel topics and About screen buttons Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…nai:google-genai from 1.58.0 to 1.59.0
…aylist edits from concurrent song removals
…layerHQ#2371 PR #41 refactored AI clients into OpenAiCompatibleClient base class. Upstream PixelPlayerHQ#2371 deleted separate clients entirely, unified into GenericOpenAiClient. Resolution: accept PixelPlayerHQ#2371's deletions, remove now-dead OpenAiCompatibleClient and its test, update AiClientFactoryTest to match new architecture. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…convention Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…ated-upstream-prs Consolidated upstream PRs: AI overhaul, tablet support, localization (ja/ar/pt-BR/fr), tab management, playlist fix, UI fixes, deps bump
Contributor
Author
SummaryBrings together 12 community PRs, security hardening, error observability, code deduplication, performance optimizations, and test coverage across 169 files (7,980 insertions, 4,032 deletions). Community PRs Consolidated
AI Architecture Overhaul (#2371)
Tablet Optimization (#2363)
Localization
Customizable Library Tabs (#2373)
Playlist Concurrency Fix (#2400)
UI Improvements (#2383)
Security Hardening
Code Quality
Tests
Dependency Updates
Conflict Resolution Notes
|
- Add PAUSE_ON_VOLUME_ZERO DataStore key + flow + setter to UserPreferencesRepository - Collect pref in MusicService and pause playback when volume hits 0 - ReplayGain programmatic volume adjustments are unaffected - Add Python script to inject localized strings into all 12 locale files - Add ContentObserver on Settings.System.CONTENT_URI to detect hardware volume key changes and pause when media stream reaches 0 - Registers observer in onCreate, unregisters in onDestroy
- Add Volume subsection with SwitchSettingItem to SettingsCategoryScreen - Add pauseOnVolumeZero field to SettingsUiState - Add pauseOnVolumeZeroFlow to SettingsViewModel combine() block - Add setPauseOnVolumeZero() setter in SettingsViewModel - Inject settings_volume_section, settings_pause_on_volume_zero and _desc into strings_settings.xml for all 12 locales - Remove duplicate keys from strings.xml (AAPT2 duplicate resources fix) - Fix rogue spaces in Korean strings_settings.xml entries
Bumps the gradle-dependencies group with 1 update: [gradle-wrapper](https://github.com/gradle/gradle). Updates `gradle-wrapper` from 9.5.1 to 9.6.0 - [Release notes](https://github.com/gradle/gradle/releases) - [Commits](gradle/gradle@v9.5.1...v9.6.0) --- updated-dependencies: - dependency-name: gradle-wrapper dependency-version: 9.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: gradle-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
…dependencies-30ba516ba3 chore(deps): bump gradle-wrapper from 9.5.1 to 9.6.0 in the gradle-dependencies group
Contributor
|
WoW! |
Contributor
Author
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
To place everything into one place, along with other improvements and work, I have merged all the pending PRs into my own fork and I am working currently to resolve conflicts.