Improved notification handling.

This commit is contained in:
Felix Ableitner 2013-10-14 17:46:33 +02:00
parent 9dea15f707
commit 92768d518b

View file

@ -38,7 +38,6 @@ import org.teleal.cling.support.model.item.Item;
import org.teleal.cling.support.model.item.MusicTrack; import org.teleal.cling.support.model.item.MusicTrack;
import android.app.Notification; import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.app.Service; import android.app.Service;
import android.content.Intent; import android.content.Intent;
@ -176,8 +175,6 @@ public class MediaRouterPlayService extends Service {
if (trackNumber < 0 || trackNumber >= mPlaylist.size()) if (trackNumber < 0 || trackNumber >= mPlaylist.size())
return; return;
updateNotification();
mCurrentTrack = trackNumber; mCurrentTrack = trackNumber;
Item track = mPlaylist.get(trackNumber); Item track = mPlaylist.get(trackNumber);
DIDLParser parser = new DIDLParser(); DIDLParser parser = new DIDLParser();
@ -207,11 +204,6 @@ public class MediaRouterPlayService extends Service {
}); });
} }
private void updateNotification() {
new CreateNotificationTask().execute(mPlaylist.get(mCurrentTrack)
.getFirstPropertyValue(DIDLObject.Property.UPNP.ALBUM_ART_URI.class));
}
/** /**
* Sends 'pause' signal to current renderer. * Sends 'pause' signal to current renderer.
*/ */
@ -290,6 +282,13 @@ public class MediaRouterPlayService extends Service {
MediaItemStatus status = MediaItemStatus.fromBundle(data); MediaItemStatus status = MediaItemStatus.fromBundle(data);
if (mRouterFragment.get() != null) if (mRouterFragment.get() != null)
mRouterFragment.get().receivePlaybackStatus(status); mRouterFragment.get().receivePlaybackStatus(status);
if (status.getPlaybackState() != MediaItemStatus.PLAYBACK_STATE_PENDING &&
status.getPlaybackState() != MediaItemStatus.PLAYBACK_STATE_BUFFERING &&
status.getPlaybackState() != MediaItemStatus.PLAYBACK_STATE_PLAYING)
stopForeground(true);
else
new CreateNotificationTask().execute(mPlaylist.get(mCurrentTrack)
.getFirstPropertyValue(DIDLObject.Property.UPNP.ALBUM_ART_URI.class));
if (status.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_FINISHED) { if (status.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_FINISHED) {
if (mCurrentTrack + 1 < mPlaylist.size()) if (mCurrentTrack + 1 < mPlaylist.size())
@ -298,9 +297,6 @@ public class MediaRouterPlayService extends Service {
if (!mBound) if (!mBound)
stopSelf(); stopSelf();
mPollingStatus = false; mPollingStatus = false;
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.cancel(NOTIFICATION_ID);
} }
} }
} }