Conversation
Add AirPods5 (A3531/A3532/A3533) and AirPods5Wireless (A3439/A3440/A3441) to AirPodsModels. Expose existing listening mode, conversation awareness, head gesture, adaptive audio, personalized volume, and stem controls; expose volume swipe only for the wireless-case variant. Use Apple's earbud model numbers, excluding charging case identifiers. Reuse existing placeholder artwork. Leave BLE identifiers, AACP/ATT, connection behavior, and all existing model definitions unchanged. Sources: https://support.apple.com/109525 https://www.apple.com/airpods-5/specs/ https://support.apple.com/en-gu/104979 Validation: standalone Kotlin/JVM compilation with test-only R stubs; 96 local assertions passed for model lookup, capabilities, existing models, registry uniqueness, and rejection of case/unknown identifiers. Existing definitions verified unchanged after removing the additions. Full Android APK build and AirPods 5 hardware validation are not yet done.
Make both AirPods 5 variants reuse all five AirPods 4 artwork references without inheriting its capabilities. AirPods 4 itself currently uses upstream Pro 2 placeholder images; no missing image files are invented. Add AirPodsModelsTest and a JUnit 4 test dependency. Cover new and existing model lookup, registration uniqueness, rejected case/unknown identifiers, capability separation, and artwork consistency. Convert this fork's Android workflow to read-only, secret-free FOSS debug validation: unit tests, APK build, lint, checksums, and diagnostic artifacts. Include changes to the workflow itself in path filters. Preserve push, PR, manual, and reusable triggers. Do not auto-publish releases or Discord posts. Validation performed before commit: - Baseline source/Gradle copies matched their fetched Git blob SHAs. - Standalone JVM execution: 10 test methods, 130 assertions passed using temporary resource IDs and an offline JUnit shim (not committed). - Workflow YAML and embedded Bash syntax checks passed. - CI SDK/NDK/CMake versions match the current Android build definition. Full Android/Gradle CI and real AirPods 5 hardware behavior remain unverified. Fork Actions may still need activation in GitHub's Actions tab.
Override setup-android v3's default packages with platform-tools so SDK initialization no longer requests the retired tools package. Suppress verbose accepted-license text without changing license acceptance. Keep application code, SDK/NDK/CMake versions, build tasks, permissions, and workflow triggers unchanged. Do not ignore SDK installation errors. Validation: baseline matched the fetched Git blob; YAML parsing and structural comparison passed; all four embedded shell scripts passed bash -n. Full Android build and hardware validation remain pending.
CI run 35449626415 passed SDK bootstrap but failed to find platforms;android-37. Install platforms;android-37.0 instead and use compileSdk.release(37) with minorApiLevel=0 so Gradle selects the same SDK directory. Keep targetSdk=37, minSdk, NDK, CMake and dependencies unchanged; do not create fake platform aliases or downgrade the API. Retain SDK package-list and install logs as diagnostic artifacts, check required installed files, and report SDK installation separately from the Gradle build/test/lint result. Installation failures remain fatal. Validation: source copies matched fetched Git blob SHAs; YAML parsing, four Bash syntax checks and unchanged-scope checks passed. Mock SDK success, install/list failures and missing-file guards behaved as expected. No real SDK download, Android build, unit tests, lint or hardware tests were run locally; the push-triggered CI must validate the actual build. References: https://github.com/actions/runner-images/blob/ubuntu24/20260907.300/images/ubuntu/Ubuntu2404-Readme.md https://developer.android.com/reference/tools/gradle-api/9.2/com/android/build/api/dsl/CompileSdkSpec https://developer.android.com/reference/tools/gradle-api/9.2/com/android/build/api/dsl/CompileSdkReleaseSpec
One-shot maintenance workflow: prepare two reviewed source blobs and a patch artifact without updating branches or executing application code. The workflow will be removed when the verified source changes are committed.
Use the two AirPods 5 identifiers documented in AirPodsDesktop commit 71fbb5e961991dd614e2c58bbadfb918b9441e92. Preserve LibrePods' existing byte order (0x3020 / 0x3620 for wire bytes 30 20 / 36 20), all ten old mappings, unknown-model fallback, and IRK/RPA verification. Both encrypted and unencrypted paths now share a header-validated model decoder. Do not infer charging-case variants or AACP capabilities from these IDs. Add seven JUnit tests for sanitized captures, both IDs, old models, unsigned bytes, byte-order reversal, truncated frames and malformed headers. Resolve the two real lint failures from run 35456128231: guard the API-37 BluetoothDevice.disconnect call with a best-effort reflective legacy path, and package-scope the internal connection broadcast. Retain android:tint for the three framework/RemoteViews layouts with a documented, path-scoped UseAppTint suppression; do not disable NewApi or intent safety checks. Separate APK, unit-test and lint steps while keeping all mandatory and preserving diagnostic artifacts. Remove the one-shot source preparation workflow; normal Android CI retains read-only permissions. Validation before commit: reviewed the complete source patch; original and resulting Git blob hashes verified. Production model decoder passed 79 offline smoke assertions. CI YAML, six Bash scripts and lint XML parsed. The preceding CI had built an APK and passed 10 real JUnit tests, failing only lint. This commit's full Android build, new JUnit tests and lint must be validated by the new CI run; Bluetooth hardware behavior is untested. Reference: SpriteOvO/AirPodsDesktop@71fbb5e
…ing, device settings editor, head tracking, log preview, resource management, and utility functions - Implement tests for CachedRpaVerifier to ensure correct RPA validation and caching behavior. - Create tests for encoding and decoding hearing aid settings, ensuring compatibility with legacy formats. - Add tests for DeviceSettingsEditor to verify debounce behavior and state management during user interactions. - Introduce tests for HeadTrackingPlotHistory to validate data retention and order. - Implement LogPreview tests to ensure proper handling of log files and line preservation. - Add tests for CloseableResourceScope to verify resource management and cleanup behavior. - Introduce PacketLogBuffer tests to ensure distinct packet retention and snapshot behavior. - Add tests for ConflatedCallbackSession to validate callback management and session behavior. - Implement DiagnosticLogStream tests to ensure proper log formatting and handling of long sessions. - Add OwnedCallbackLifecycle tests to verify callback registration and lifecycle management. - Introduce RecentGestureExtremes tests to validate extreme value retention and session behavior. - Add VolumeTransition tests to ensure proper volume ramping and cancellation behavior. - Create gradle-daemon-jvm.properties for toolchain configuration.
Author
|
ok |
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.
No description provided.