Improved notification handling.
This commit is contained in:
parent
9dea15f707
commit
92768d518b
1 changed files with 7 additions and 11 deletions
|
@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue