-
Notifications
You must be signed in to change notification settings - Fork 390
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1.0.2 #408
Merged
Merged
1.0.2 #408
Conversation
This file contains 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
If the limited number of input buffers causes reading of all samples except the last one conveying end of stream, then the last frame will not be rendered. PiperOrigin-RevId: 525974445 (cherry picked from commit affbb7c)
The PlayerView methods are documented to only be needed for sphrerical playbacks, which we are not using in the session demo app. PiperOrigin-RevId: 525986709 (cherry picked from commit 2de89ca)
This is a bug currently, where commands are created once but never updated again if the actions in MediaSessionCompat are changed. PiperOrigin-RevId: 525999084 (cherry picked from commit 79fab67)
`prepare()` now logs a warning if it's called before `setPlayer()` because it's not possible to tell if it's being called on the wrong thread (since 3480a27). This change finds all the places one is called immediately after the other and flips the order to be more correct. Issue: #350 #minor-release PiperOrigin-RevId: 526582294 (cherry picked from commit 6aacbc6)
PiperOrigin-RevId: 527259619 (cherry picked from commit fab134f)
To reliably reject the System UI playback resumption notification on all API levels (specifically API 30), the backward compatibility layer needs to return `null` for the library root. This is not possible in the Media3 implementation. This change allows an app to return a `LibraryResult.ofError(RESULT_ERROR_NOT_SUPPORTED)` that then is translated to return null by the backwards compatibility layer. Issue: #355 Issue: #167 Issue: #27 See https://developer.android.com/guide/topics/media/media-controls#mediabrowserservice_implementation PiperOrigin-RevId: 527276529 (cherry picked from commit 7938978)
References to the service are kept from MediaSessionStub and from a long-delayed Handler messages in ConnectionTimeoutHandler. Remove strong references from these places by making the timeout handler static and ensuring ConnectedControllersManager only keeps a weak reference to the service (as it's part of MediaSessionStub). Issue: #346 PiperOrigin-RevId: 527543396 (cherry picked from commit 8c262d6)
PiperOrigin-RevId: 527870443 (cherry picked from commit 336d4b3)
PiperOrigin-RevId: 529069808 (cherry picked from commit bba760f)
This change: * Adds missing `@OptIn` annotation to demo app's `ErrorMessageProvider` * Switches from `Util.SDK_INT` to `Build.VERSION.SDK_INT` in `SampleChooserActivity` (`PlayerActivity` is already using this). This code hasn't changed recently, and it doesn't fail on the `release` branch, but it failed when I checked the `main` branch just now - so I assume lint has updated to detect more cases where unstable APIs are being used without opt-in. I suspect the difference is due to different Android Gradle Plugin versions between the branches. #minor-release PiperOrigin-RevId: 529111669 (cherry picked from commit ebcdd98)
The current code flags a lint error: ``` Error: Call requires API level 24 (current min is 16): java.lang.Iterable#forEach [NewApi] ``` I think this is a bit confusing because this is calling the Java [`Iterable.forEach`](https://developer.android.com/reference/java/lang/Iterable#forEach(java.util.function.Consumer%3C?%20super%20T%3E)) method which was added in Java 8 (and therefore is only available on API 24 and up), but there is **also** a Kotlin [`List.forEach`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/for-each.html) method which is available in all versions of Kotlin (and therefore all Android versions). Since this is a Kotlin file, at first glance you would assume this is the Kotlin method - but it's not. This also doesn't seem to be flagged by Android Studio, but is caught by Gradle lint on the command line. #minor-release PiperOrigin-RevId: 529112610 (cherry picked from commit 09b474a)
#minor-release PiperOrigin-RevId: 529370535 (cherry picked from commit 0f398d5)
Also change some type parameter names in `MediaSession.BuilderBase` because `C` now clashes with the import of `androidx.media3.common.C`. #minor-release PiperOrigin-RevId: 529665698 (cherry picked from commit 78f2025)
Calling LibraryResult.toBundle() could have caused a CastClassException. This was because when unbundled with UNKNOWN_TYPE_CREATOR.fromBundle(Bundle), the valueType was set to VALUE_TYPE_ITEM_LIST for all types and the MediaItem was attempted to be casted to a list. PiperOrigin-RevId: 529717688 (cherry picked from commit f28a588)
`VERSION_INT` is quite long with several sections, and it's easy to make a mistake when updating it - this should help since it checks it against `VERSION`, which is more easily human readable/writable. PiperOrigin-RevId: 529747023 (cherry picked from commit eb58d20)
#minor-release PiperOrigin-RevId: 530935437 (cherry picked from commit 17b183b)
The name was changed in 2558138 and this check wasn't updated, meaning publishing no longer worked (it didn't publish anything, just printed lots of warnings like `Skipping task ':test-utils-robolectric:publish' as it has no actions.`). This change means the check is now using the same source-of-truth as the root project name, so it shouldn't go out of sync again. PiperOrigin-RevId: 531457952 (cherry picked from commit 4c1eb8a)
The periodic updates are only meant to happen while we are in the same period or ad. This was already guaranteed except for two cases: 1. The Player in a session has updated its state without yet calling its listeners 2. The session scheduled a PlayerInfo update that hasn't been sent yet ... and in both cases, the following happened: - The change updated the mediaItemIndex to an index that didn't exist in a previous Timeline known to the Controller - One of the period position updates happened to be sent at exactly this time This problem can be avoided by only scheduling the update if we are still in the same period/ad and haven't scheduled a normal PlayerInfo update already. Since new MediaControllers may still connect to old sessons with this bug, we need an equivalent change on the controller side to ignore such buggy updates. PiperOrigin-RevId: 532089328 (cherry picked from commit 96dd0ae)
PiperOrigin-RevId: 532404001 (cherry picked from commit 1a38a0c)
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.