summaryrefslogtreecommitdiffstats
path: root/app/MediaPlayer.qml
diff options
context:
space:
mode:
authorMatt Ranostay <matt.ranostay@konsulko.com>2018-06-13 23:12:06 -0700
committerMatt Ranostay <matt.ranostay@konsulko.com>2018-06-14 07:11:04 +0000
commitcb6e9de2db53343f66632f86bc2f07bf90b8309f (patch)
treecefe88a40104d8ea8d63f13f3ba22dfac8fe154e /app/MediaPlayer.qml
parent160ea90be4220b9c1e1e062f054cde1a6a8ddb52 (diff)
mediaplayer: fix race condition with local media and bluetooth a2dpeel_5.1.0eel/5.1.05.1.0eel
If media from storage is played and a bluetooth stream starts the play/pause button will enter an always playing state from the UI when the bluetooth connection ends. This patchset fixes this within the MediaPlayer.qml to show the expected UI results. Bug-AGL: SPEC-1496 Change-Id: I6ee0dfa2a46d7cf294b2dbf23d2aa54857fb8ffc Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Diffstat (limited to 'app/MediaPlayer.qml')
-rw-r--r--app/MediaPlayer.qml35
1 files changed, 22 insertions, 13 deletions
diff --git a/app/MediaPlayer.qml b/app/MediaPlayer.qml
index dc5cdce..25dea2c 100644
--- a/app/MediaPlayer.qml
+++ b/app/MediaPlayer.qml
@@ -34,7 +34,7 @@ ApplicationWindow {
property int position: 0
property string cover_art: ""
- property string status: ""
+ property string status: "stopped"
function time2str(value) {
return Qt.formatTime(new Date(value), 'mm:ss')
@@ -105,8 +105,10 @@ ApplicationWindow {
if (data.Connected == "False")
return
- if (!bluetooth.av_connected && data.AVPConnected == "True")
+ if (!bluetooth.av_connected && data.AVPConnected == "True") {
mediaplayer.pause()
+ player.status = "stopped"
+ }
bluetooth.connected = data.Connected == "True"
bluetooth.av_connected = data.AVPConnected == "True"
@@ -306,22 +308,14 @@ ApplicationWindow {
}
ImageButton {
id: play
- offImage: './images/AGL_MediaPlayer_Player_Play.svg'
- onClicked: {
- if (bluetooth.av_connected) {
- bluetooth.set_avrcp_controls("Play")
- } else {
- mediaplayer.play()
- }
- }
states: [
State {
- when: player.status == "playing"
+ when: !bluetooth.av_connected && player.status == "playing"
PropertyChanges {
target: play
offImage: './images/AGL_MediaPlayer_Player_Pause.svg'
onClicked: {
- player.status = ""
+ player.status = "stopped"
mediaplayer.pause()
}
}
@@ -333,8 +327,23 @@ ApplicationWindow {
offImage: './images/AGL_MediaPlayer_Player_Pause.svg'
onClicked: bluetooth.set_avrcp_controls("Pause")
}
+ },
+ State {
+ when: !bluetooth.av_connected && player.status != "playing"
+ PropertyChanges {
+ target: play
+ offImage: './images/AGL_MediaPlayer_Player_Play.svg'
+ onClicked: mediaplayer.play()
+ }
+ },
+ State {
+ when: bluetooth.av_connected && bluetooth.state != "playing"
+ PropertyChanges {
+ target: play
+ offImage: './images/AGL_MediaPlayer_Player_Play.svg'
+ onClicked: bluetooth.set_avrcp_controls("Play")
+ }
}
-
]
}
ImageButton {