Exemplo n.º 1
0
 private void next() {
   int index = mMediaList.indexOf(mCurrentMedia);
   mPrevious.push(mCurrentMedia);
   if (mRepeating == RepeatType.Once) mCurrentMedia = mMediaList.get(index);
   else if (mShuffling && mPrevious.size() < mMediaList.size()) {
     while (mPrevious.contains(
         mCurrentMedia = mMediaList.get((int) (Math.random() * mMediaList.size())))) ;
   } else if (!mShuffling && index < mMediaList.size() - 1) {
     mCurrentMedia = mMediaList.get(index + 1);
   } else {
     if (mRepeating == RepeatType.All && mMediaList.size() > 0) mCurrentMedia = mMediaList.get(0);
     else {
       stop();
       return;
     }
   }
   if (mLibVLCPlaylistActive) {
     if (mRepeating == RepeatType.None) mLibVLC.next();
     else if (mRepeating == RepeatType.Once) mLibVLC.playIndex(index);
     else mLibVLC.playIndex(mMediaList.indexOf(mCurrentMedia));
   } else {
     mLibVLC.readMedia(mCurrentMedia.getLocation(), true);
   }
   mHandler.sendEmptyMessage(SHOW_PROGRESS);
   setUpRemoteControlClient();
   showNotification();
   updateWidget(this);
   updateRemoteControlClientMetadata();
   saveCurrentMedia();
 }