From 09e37010c31dbf739a0937fa522c842628548c63 Mon Sep 17 00:00:00 2001 From: William Seemann Date: Mon, 8 Apr 2013 11:29:27 -0500 Subject: Issue #109 (feature request) - Display metadata on bluetooth devices that support AVRCP 1.3 and higher --- .../danoeh/antennapod/service/PlaybackService.java | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/de/danoeh/antennapod') diff --git a/src/de/danoeh/antennapod/service/PlaybackService.java b/src/de/danoeh/antennapod/service/PlaybackService.java index 441a57baa..11da79015 100644 --- a/src/de/danoeh/antennapod/service/PlaybackService.java +++ b/src/de/danoeh/antennapod/service/PlaybackService.java @@ -73,7 +73,8 @@ public class PlaybackService extends Service { public static final String EXTRA_PREPARE_IMMEDIATELY = "extra.de.danoeh.antennapod.service.prepareImmediately"; public static final String ACTION_PLAYER_STATUS_CHANGED = "action.de.danoeh.antennapod.service.playerStatusChanged"; - + private static final String AVRCP_ACTION_PLAYER_STATUS_CHANGED= "com.android.music.playstatechanged"; + public static final String ACTION_PLAYER_NOTIFICATION = "action.de.danoeh.antennapod.service.playerNotification"; public static final String EXTRA_NOTIFICATION_CODE = "extra.de.danoeh.antennapod.service.notificationCode"; public static final String EXTRA_NOTIFICATION_TYPE = "extra.de.danoeh.antennapod.service.notificationType"; @@ -962,6 +963,7 @@ public class PlaybackService extends Service { sendBroadcast(new Intent(ACTION_PLAYER_STATUS_CHANGED)); updateWidget(); refreshRemoteControlClientState(); + bluetoothNotifyChange(); } /** Send ACTION_PLAYER_STATUS_CHANGED without changing the status attribute. */ @@ -1222,6 +1224,25 @@ public class PlaybackService extends Service { } } + private void bluetoothNotifyChange() { + boolean isPlaying = false; + + if (status == PlayerStatus.PLAYING) { + isPlaying = true; + } + + Intent i = new Intent(AVRCP_ACTION_PLAYER_STATUS_CHANGED); + i.putExtra("id", 1); + i.putExtra("artist", ""); + i.putExtra("album", media.getFeedTitle()); + i.putExtra("track", media.getEpisodeTitle()); + i.putExtra("playing", isPlaying); + i.putExtra("ListSize", manager.getQueueSize(false)); + i.putExtra("duration", media.getDuration()); + i.putExtra("position", media.getPosition()); + sendBroadcast(i); + } + /** * Pauses playback when the headset is disconnected and the preference is * set -- cgit v1.2.3