bluetooth: fix avrcp previous play position offset 71/9271/2
authorMatt Ranostay <matt.ranostay@konsulko.com>
Wed, 26 Apr 2017 05:19:16 +0000 (22:19 -0700)
committerMatt Ranostay <matt.ranostay@konsulko.com>
Wed, 26 Apr 2017 21:59:48 +0000 (14:59 -0700)
Initially a previous command goes back to the beginning of the
track but most media applications don't reset the position
property. So keep the current position and use that as an offset
for the UI.

Bug-AGL: SPEC-565
Change-Id: If7124537c6d66d328f9c4c918fe917b8fc877ce0
Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
app/MediaPlayer.qml

index a937bc6..4a29d95 100644 (file)
@@ -33,12 +33,14 @@ ApplicationWindow {
         property string title
         property int duration: 0
         property int position: 0
+        property int pos_offset: 0
 
         function disableBluetooth() {
             bluetooth.artist = ''
             bluetooth.title = ''
             bluetooth.duration = 0
             bluetooth.position = 0
+            bluetooth.pos_offset = 0
             bluetooth.connected = false
         }
     }
@@ -77,6 +79,7 @@ ApplicationWindow {
             if (avrcp_title)
                 bluetooth.title = avrcp_title
             bluetooth.duration = avrcp_duration
+            bluetooth.pos_offset = 0
         }
 
         onUpdatePlayerStatus: {
@@ -109,7 +112,7 @@ ApplicationWindow {
         running: (bluetooth.connected && bluetooth.state == "playing")
         repeat: true
         onTriggered: {
-            bluetooth.position = dbus.getCurrentPosition()
+            bluetooth.position = dbus.getCurrentPosition() - bluetooth.pos_offset
             slider.value = bluetooth.position
         }
     }
@@ -233,6 +236,7 @@ ApplicationWindow {
                             offImage: './images/AGL_MediaPlayer_BackArrow.svg'
                             onClicked: {
                                 if (bluetooth.connected) {
+                                    bluetooth.pos_offset = dbus.getCurrentPosition()
                                     dbus.processQMLEvent("Previous")
                                 } else {
                                     playlist.previous()