diff --git a/MPDroid/src/main/java/com/namelessdev/mpdroid/SearchActivity.java b/MPDroid/src/main/java/com/namelessdev/mpdroid/SearchActivity.java index 2b928fb4c7..f6227872a1 100644 --- a/MPDroid/src/main/java/com/namelessdev/mpdroid/SearchActivity.java +++ b/MPDroid/src/main/java/com/namelessdev/mpdroid/SearchActivity.java @@ -188,18 +188,27 @@ protected void asyncUpdate() { final String finalSearch = mSearchKeywords.toLowerCase(); List arrayMusic = null; + List arrayMusicFiles = null; try { arrayMusic = mApp.oMPDAsyncHelper.oMPD.search("any", finalSearch); } catch (final IOException | MPDException e) { Log.e(TAG, "MPD search failure.", e); - } if (arrayMusic == null) { return; } + try { + arrayMusicFiles = mApp.oMPDAsyncHelper.oMPD.search("filename", finalSearch); + } catch (final IOException | MPDException e) { + Log.e(TAG, "MPD search failure.", e); + } + if (arrayMusicFiles == null) { + arrayMusicFiles = new ArrayList(); + } + mArtistResults.clear(); mAlbumResults.clear(); mSongResults.clear(); @@ -207,6 +216,15 @@ protected void asyncUpdate() { String tmpValue; boolean valueFound; for (final Music music : arrayMusic) { + for (final Music fMusic : arrayMusicFiles) { + final String fMusicFullPath = fMusic.getFullPath(); + if (fMusicFullPath != null && + fMusicFullPath.equals(music.getFullPath())) { + arrayMusicFiles.remove(fMusic); + break; + } + } + if (music.getTitle() != null && music.getTitle().toLowerCase().contains(finalSearch)) { mSongResults.add(music); } @@ -255,6 +273,10 @@ protected void asyncUpdate() { } } + for (final Music music : arrayMusicFiles) { + mSongResults.add(music); + } + Collections.sort(mArtistResults); Collections.sort(mAlbumResults); Collections.sort(mSongResults, Music.COMPARE_WITHOUT_TRACK_NUMBER);