Issue #109 (feature request) - Display metadata on bluetooth devices that support AVRCP 1.3 and higher

This commit is contained in:
William Seemann 2013-04-08 11:29:27 -05:00
parent 09191d734e
commit 09e37010c3
1 changed files with 22 additions and 1 deletions

View File

@ -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 EXTRA_PREPARE_IMMEDIATELY = "extra.de.danoeh.antennapod.service.prepareImmediately";
public static final String ACTION_PLAYER_STATUS_CHANGED = "action.de.danoeh.antennapod.service.playerStatusChanged"; 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 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_CODE = "extra.de.danoeh.antennapod.service.notificationCode";
public static final String EXTRA_NOTIFICATION_TYPE = "extra.de.danoeh.antennapod.service.notificationType"; 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)); sendBroadcast(new Intent(ACTION_PLAYER_STATUS_CHANGED));
updateWidget(); updateWidget();
refreshRemoteControlClientState(); refreshRemoteControlClientState();
bluetoothNotifyChange();
} }
/** Send ACTION_PLAYER_STATUS_CHANGED without changing the status attribute. */ /** 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 * Pauses playback when the headset is disconnected and the preference is
* set * set