aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java
diff options
context:
space:
mode:
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.java56
1 files changed, 50 insertions, 6 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 b4105d07..82716fa8 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java
@@ -380,8 +380,46 @@ public class OfflineMusicService implements MusicService {
for(File file: fileList) {
if(FileUtil.isPlaylistFile(file)) {
String id = file.getName();
- String filename = server + ": " + FileUtil.getBaseName(id);
- Playlist playlist = new Playlist(server, filename);
+ String filename = FileUtil.getBaseName(id);
+ String name = server + ": " + filename;
+ Playlist playlist = new Playlist(server, name);
+ playlist.setComment(filename);
+
+ Reader reader = null;
+ BufferedReader buffer = null;
+ try {
+ int songCount = 0;
+ reader = new FileReader(file);
+ buffer = new BufferedReader(reader);
+
+ String line = buffer.readLine();
+ while( (line = buffer.readLine()) != null ){
+ // No matter what, end file can't have .complete in it
+ line = line.replace(".complete", "");
+ File entryFile = new File(line);
+
+ // Don't add file to playlist if it doesn't exist as cached or pinned!
+ File checkFile = entryFile;
+ if(!checkFile.exists()) {
+ // If normal file doens't exist, check if .complete version does
+ checkFile = new File(entryFile.getParent(), FileUtil.getBaseName(entryFile.getName())
+ + ".complete." + FileUtil.getExtension(entryFile.getName()));
+ }
+
+ String entryName = getName(entryFile);
+ if(checkFile.exists() && entryName != null){
+ songCount++;
+ }
+ }
+
+ playlist.setSongCount(Integer.toString(songCount));
+ } catch(Exception e) {
+ Log.w(TAG, "Failed to count songs in playlist", e);
+ } finally {
+ Util.close(buffer);
+ Util.close(reader);
+ }
+
playlists.add(playlist);
}
}
@@ -523,12 +561,12 @@ public class OfflineMusicService implements MusicService {
}
@Override
- public MusicDirectory getAlbumList(String type, int size, int offset, Context context, ProgressListener progressListener) throws Exception {
+ public MusicDirectory getAlbumList(String type, int size, int offset, boolean refresh, Context context, ProgressListener progressListener) throws Exception {
throw new OfflineException(ERRORMSG);
}
@Override
- public MusicDirectory getAlbumList(String type, String extra, int size, int offset, Context context, ProgressListener progressListener) throws Exception {
+ public MusicDirectory getAlbumList(String type, String extra, int size, int offset, boolean refresh, Context context, ProgressListener progressListener) throws Exception {
throw new OfflineException(ERRORMSG);
}
@@ -684,10 +722,16 @@ public class OfflineMusicService implements MusicService {
for(File file: dir.listFiles()) {
BufferedReader br = new BufferedReader(new FileReader(file));
while ((line = br.readLine()) != null && !"".equals(line)) {
+ String[] parts = line.split("\t");
+
PodcastChannel channel = new PodcastChannel();
- channel.setId(line);
- channel.setName(line);
+ channel.setId(parts[0]);
+ channel.setName(parts[0]);
channel.setStatus("completed");
+
+ if(parts.length > 1) {
+ channel.setUrl(parts[1]);
+ }
if(FileUtil.getPodcastDirectory(context, channel).exists() && !channels.contains(channel)) {
channels.add(channel);