fixed crash on media button event with no active media session

This commit is contained in:
Thibault Deckers 2023-01-18 16:01:22 +01:00
parent 841f40fe0f
commit 3270ce1a02
3 changed files with 32 additions and 0 deletions

View file

@ -7,11 +7,16 @@ All notable changes to this project will be documented in this file.
### Added ### Added
- Video: optional gestures to adjust brightness/volume - Video: optional gestures to adjust brightness/volume
- TV: improved support for Search, About, Privacy Policy
### Changed ### Changed
- Viewer: do not keep max brightness when viewing info - Viewer: do not keep max brightness when viewing info
### Fixed
- crash when media button events are triggered with no active media session
## <a id="v1.7.9"></a>[v1.7.9] - 2023-01-15 ## <a id="v1.7.9"></a>[v1.7.9] - 2023-01-15
### Added ### Added

View file

@ -213,6 +213,15 @@ This change eventually prevents building the app with Flutter v3.3.3.
</intent-filter> </intent-filter>
</receiver> </receiver>
<service
android:name=".MediaPlaybackService"
android:exported="true"
android:foregroundServiceType="mediaPlayback">
<intent-filter>
<action android:name="android.media.browse.MediaBrowserService" />
</intent-filter>
</service>
<service <service
android:name=".AnalysisService" android:name=".AnalysisService"
android:description="@string/analysis_service_description" android:description="@string/analysis_service_description"

View file

@ -0,0 +1,18 @@
package deckers.thibault.aves
import android.os.Bundle
import android.support.v4.media.MediaBrowserCompat
import androidx.media.MediaBrowserServiceCompat
// dummy service to handle media button events
// when there is no active media sessions
class MediaPlaybackService : MediaBrowserServiceCompat() {
override fun onGetRoot(clientPackageName: String, clientUid: Int, rootHints: Bundle?): BrowserRoot? {
return null
}
override fun onLoadChildren(parentId: String, result: Result<MutableList<MediaBrowserCompat.MediaItem>>) {
val children = mutableListOf<MediaBrowserCompat.MediaItem>()
result.sendResult(children)
}
}