diff options
author | François-Xavier Thomas <fx.thomas@gmail.com> | 2016-01-31 17:41:56 +0100 |
---|---|---|
committer | François-Xavier Thomas <fx.thomas@gmail.com> | 2016-01-31 17:58:38 +0100 |
commit | cb9f7d49ba13890872796c71b16b6f7e9f14625f (patch) | |
tree | 1e8d6915ab20f4c7eefbe1ee282d1ed86846d405 /app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java | |
parent | 22546b0fc8e166a9df493ced66daf0ead0944c67 (diff) | |
download | dsub-cb9f7d49ba13890872796c71b16b6f7e9f14625f.tar.gz dsub-cb9f7d49ba13890872796c71b16b6f7e9f14625f.tar.bz2 dsub-cb9f7d49ba13890872796c71b16b6f7e9f14625f.zip |
Make suggestions work in offline search
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java')
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java index b8633624..a1657f39 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java @@ -307,7 +307,15 @@ public class OfflineMusicService implements MusicService { } } }); - + + // Respect counts in search criteria + int artistCount = Math.min(artists.size(), criteria.getArtistCount()); + int albumCount = Math.min(albums.size(), criteria.getAlbumCount()); + int songCount = Math.min(songs.size(), criteria.getSongCount()); + artists = artists.subList(0, artistCount); + albums = albums.subList(0, albumCount); + songs = songs.subList(0, songCount); + return new SearchResult(artists, albums, songs); } @@ -359,20 +367,13 @@ public class OfflineMusicService implements MusicService { } } private int matchCriteria(SearchCritera criteria, String name) { - String query = criteria.getQuery().toLowerCase(); - String[] queryParts = query.split(" "); - String[] nameParts = name.toLowerCase().split(" "); - - int closeness = 0; - for(String queryPart : queryParts) { - for(String namePart : nameParts) { - if(namePart.equals(queryPart)) { - closeness++; - } - } + if (criteria.getPattern().matcher(name).matches()) { + return Util.getStringDistance( + criteria.getQuery().toLowerCase(), + name.toLowerCase()); + } else { + return 0; } - - return closeness; } @Override |