/** * Gather and parse all song track information necessary after change. * * @param params A {@code MPDStatus} object array. * @return A null {@code Void} object, ignore it. */ @Override protected final Music doInBackground(final Void... params) { try { mMPDStatus.waitForValidity(); mApp.getMPD().getPlaylist().waitForValidity(); } catch (final InterruptedException ignored) { } final Music currentTrack = mApp.getMPD().getCurrentTrack(); if (currentTrack != null) { if (currentTrack.isStream()) { final String title = currentTrack.getTitle(); if (title != null && !title.isEmpty()) { mAlbumName = currentTrack.getName(); mTitle = currentTrack.getTitle(); } else { mTitle = currentTrack.getName(); } mArtistName = currentTrack.getArtistName(); mAlbumInfo = new AlbumInfo(mArtistName, mAlbumName); } else { mAlbumName = currentTrack.getAlbumName(); mDate = Long.toString(currentTrack.getDate()); if (mDate.isEmpty() || mDate.charAt(0) == '-') { mDate = ""; } else { mDate = " - " + mDate; } mTitle = currentTrack.getTitle(); mTitle = addDiscAndTrackNumber(mTitle, currentTrack); setArtist(currentTrack); mAlbumInfo = new AlbumInfo(currentTrack); } mHasCoverChanged = hasCoverChanged(); mTrackRating = getTrackRating(currentTrack); if (DEBUG) { Log.i(TAG, toString()); } } mLastAlbum = mAlbumName; mLastArtist = mArtistName; return currentTrack; }