aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2016-02-01 09:11:43 -0800
committerScott Jackson <daneren2005@gmail.com>2016-02-01 09:11:43 -0800
commit14bf01b785d539e16536f335603852284c0d4c29 (patch)
treef7eb29def645f9808022af15b0195f0cb2054466 /app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java
parent2153ff1bee4c7826ea902b1f1fddf2d2933b2b5b (diff)
parentcb9f7d49ba13890872796c71b16b6f7e9f14625f (diff)
downloaddsub-14bf01b785d539e16536f335603852284c0d4c29.tar.gz
dsub-14bf01b785d539e16536f335603852284c0d4c29.tar.bz2
dsub-14bf01b785d539e16536f335603852284c0d4c29.zip
Merge branch 'better-offline-search' of https://github.com/fxthomas/Subsonic into fxthomas-better-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.java29
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 d14c7fd3..3048a0db 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