@@ -134,8 +134,25 @@ public void onReceive(Context context, Intent intent) {
134
134
135
135
@ Override
136
136
public void onPlay () {
137
- super .onPlay ();
138
137
138
+ if ( !mMediaPlayer .isPlaying () ) {
139
+ mMediaPlayer .start ();
140
+ //Doesn't update itself
141
+ setMediaPlaybackState (PlaybackStateCompat .STATE_PLAYING );
142
+ }
143
+
144
+ // Try to get focus
145
+ if (!getAudioFocus ()){
146
+ Log .d (TAG , "onPlayFromMediaId: Couldn't get audio focus" );
147
+ }
148
+
149
+ //Should be started but sometimes not :s
150
+ if (!isServiceStarted ){
151
+ Log .d (TAG , "onPlay: Starting Service" );
152
+ startService (new Intent (getApplicationContext (), MusicPlayerService .class ));
153
+ }
154
+
155
+ super .onPlay ();
139
156
// TODO NOTE: onPlay is really onResume/onNowPlaying, don't try to play songs here
140
157
// //Might have been playing something else
141
158
// mMediaPlayer.reset();
@@ -175,7 +192,6 @@ public void onPause() {
175
192
if ( mMediaPlayer .isPlaying () ) {
176
193
mMediaPlayer .pause ();
177
194
removeNoisyReceiver ();
178
- setMediaPlaybackState (PlaybackState .STATE_PAUSED );
179
195
//TODO fix?
180
196
//Notifications
181
197
setMediaPlaybackState (PlaybackStateCompat .STATE_PAUSED );
@@ -253,14 +269,16 @@ public void onStop() {
253
269
254
270
@ Override
255
271
public void onSkipToNext () {
256
- Song nextSong = mMusicLibrary .getCurrentSong (); // TODO GET NEXT SONG
257
- if (null != nextSong ){
272
+ Song nextSong = mMusicLibrary .getNextSongFromAny (); // TODO GET NEXT SONG
273
+ if (null != nextSong ) {
274
+ Log .d (TAG , "onSkipToNext: nextSong was null" );
258
275
mMusicLibrary .setCurrentSong (nextSong );
259
-
276
+ } else {
277
+ Log .d (TAG , "onSkipToNext: nextSong was null" );
260
278
}
261
- super .onSkipToNext ();
262
279
// TODO REMOVE - JUST FOR TESTING
263
280
onPlay ();
281
+ super .onSkipToNext ();
264
282
}
265
283
266
284
@ Override
@@ -409,17 +427,19 @@ private void removeNoisyReceiver(){
409
427
}
410
428
411
429
private void initMediaPlayer () {
412
- mAudioManager = (AudioManager ) getApplicationContext ().getSystemService (Context .AUDIO_SERVICE );
413
- mMediaPlayer = (mMediaPlayer == null ) ? new MediaPlayer () : mMediaPlayer ;
414
- mMediaPlayer .setWakeMode (getApplicationContext (), PowerManager .PARTIAL_WAKE_LOCK );
415
- mMediaPlayer .setAudioAttributes (new AudioAttributes .Builder ()
416
- .setUsage (AudioAttributes .USAGE_MEDIA )
417
- .setFlags (AudioAttributes .CONTENT_TYPE_MUSIC )
418
- .build ());
419
- mMediaPlayer .setVolume (1.0f , 1.0f );
420
-
421
- mMediaPlayer .setOnPreparedListener (this );
422
- mMediaPlayer .setOnCompletionListener (this );
430
+ mAudioManager = (mAudioManager == null ) ? (AudioManager ) getApplicationContext ().getSystemService (Context .AUDIO_SERVICE ) : mAudioManager ;
431
+ if ( mMediaPlayer == null ) {
432
+ mMediaPlayer = new MediaPlayer ();
433
+ mMediaPlayer .setWakeMode (getApplicationContext (), PowerManager .PARTIAL_WAKE_LOCK );
434
+ mMediaPlayer .setAudioAttributes (new AudioAttributes .Builder ()
435
+ .setUsage (AudioAttributes .USAGE_MEDIA )
436
+ .setFlags (AudioAttributes .CONTENT_TYPE_MUSIC )
437
+ .build ());
438
+ mMediaPlayer .setVolume (1.0f , 1.0f );
439
+
440
+ mMediaPlayer .setOnPreparedListener (this );
441
+ mMediaPlayer .setOnCompletionListener (this );
442
+ }
423
443
}
424
444
425
445
private void initMediaSession () {
@@ -436,6 +456,8 @@ private void initMediaSession() {
436
456
mMediaSession .setPlaybackState ( new PlaybackStateCompat .Builder ()
437
457
.setActions (
438
458
PlaybackState .ACTION_PLAY |
459
+ PlaybackState .ACTION_SKIP_TO_NEXT |
460
+ PlaybackState .ACTION_SKIP_TO_PREVIOUS |
439
461
PlaybackState .ACTION_PLAY_PAUSE ).build ());
440
462
441
463
Intent mediaButtonIntent = new Intent (Intent .ACTION_MEDIA_BUTTON );
0 commit comments