From 966a14b08ac45c4c322f05207ef8f6b74fcadc42 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sat, 5 Sep 2015 14:27:28 -0700 Subject: Add changed date/duration to playlists details dialog --- .../github/daneren2005/dsub/domain/Playlist.java | 66 ++++++++++++++++++---- .../dsub/fragments/SelectPlaylistFragment.java | 11 +++- .../dsub/service/parser/PlaylistsParser.java | 6 +- 3 files changed, 69 insertions(+), 14 deletions(-) (limited to 'app/src/main/java/github') diff --git a/app/src/main/java/github/daneren2005/dsub/domain/Playlist.java b/app/src/main/java/github/daneren2005/dsub/domain/Playlist.java index 99b85ce9..7d480607 100644 --- a/app/src/main/java/github/daneren2005/dsub/domain/Playlist.java +++ b/app/src/main/java/github/daneren2005/dsub/domain/Playlist.java @@ -19,9 +19,13 @@ package github.daneren2005.dsub.domain; import java.io.Serializable; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.List; +import java.util.Locale; /** * @author Sindre Mehus @@ -33,8 +37,10 @@ public class Playlist implements Serializable { private String owner; private String comment; private String songCount; - private String created; private Boolean pub; + private Date created; + private Date changed; + private Integer duration; public Playlist() { @@ -43,14 +49,16 @@ public class Playlist implements Serializable { this.id = id; this.name = name; } - public Playlist(String id, String name, String owner, String comment, String songCount, String created, String pub) { + public Playlist(String id, String name, String owner, String comment, String songCount, String pub, String created, String changed, Integer duration) { this.id = id; this.name = name; this.owner = (owner == null) ? "" : owner; this.comment = (comment == null) ? "" : comment; this.songCount = (songCount == null) ? "" : songCount; - this.created = (created == null) ? "" : created; this.pub = (pub == null) ? null : (pub.equals("true")); + setCreated(created); + setChanged(changed); + this.duration = duration; } public String getId() { @@ -93,14 +101,6 @@ public class Playlist implements Serializable { this.songCount = songCount; } - public String getCreated() { - return this.created; - } - - public void setCreated(String created) { - this.created = created; - } - public Boolean getPublic() { return this.pub; } @@ -108,6 +108,50 @@ public class Playlist implements Serializable { this.pub = pub; } + public Date getCreated() { + return created; + } + + public void setCreated(String created) { + if (created != null) { + try { + this.created = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH).parse(created); + } catch (ParseException e) { + this.created = null; + } + } else { + this.created = null; + } + } + public void setCreated(Date created) { + this.created = created; + } + + public Date getChanged() { + return changed; + } + public void setChanged(String changed) { + if (changed != null) { + try { + this.changed = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH).parse(changed); + } catch (ParseException e) { + this.changed = null; + } + } else { + this.changed = null; + } + } + public void setChanged(Date changed) { + this.changed = changed; + } + + public Integer getDuration() { + return duration; + } + public void setDuration(Integer duration) { + this.duration = duration; + } + @Override public String toString() { return name; diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java index a2f1aabd..543dcb26 100644 --- a/app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java +++ b/app/src/main/java/github/daneren2005/dsub/fragments/SelectPlaylistFragment.java @@ -210,6 +210,11 @@ public class SelectPlaylistFragment extends SelectRecyclerFragment { headers.add(R.string.details_song_count); details.add(playlist.getSongCount()); + if(playlist.getDuration() != null) { + headers.add(R.string.details_length); + details.add(Util.formatDuration(playlist.getDuration())); + } + if(playlist.getPublic() != null) { headers.add(R.string.details_public); details.add(Boolean.toString(playlist.getPublic())); @@ -217,7 +222,11 @@ public class SelectPlaylistFragment extends SelectRecyclerFragment { if(playlist.getCreated() != null) { headers.add(R.string.details_created); - details.add(Util.formatDate(context, playlist.getCreated())); + details.add(Util.formatDate(playlist.getCreated())); + } + if(playlist.getChanged() != null) { + headers.add(R.string.details_updated); + details.add(Util.formatDate(playlist.getChanged())); } Util.showDetailsDialog(context, R.string.details_title_playlist, headers, details); diff --git a/app/src/main/java/github/daneren2005/dsub/service/parser/PlaylistsParser.java b/app/src/main/java/github/daneren2005/dsub/service/parser/PlaylistsParser.java index 69e5af64..71a6b65e 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/parser/PlaylistsParser.java +++ b/app/src/main/java/github/daneren2005/dsub/service/parser/PlaylistsParser.java @@ -52,9 +52,11 @@ public class PlaylistsParser extends AbstractParser { String owner = get("owner"); String comment = get("comment"); String songCount = get("songCount"); - String created = get("created"); String pub = get("public"); - result.add(new Playlist(id, name, owner, comment, songCount, created, pub)); + String created = get("created"); + String changed = get("changed"); + Integer duration = getInteger("duration"); + result.add(new Playlist(id, name, owner, comment, songCount, pub, created, changed, duration)); } else if ("error".equals(tag)) { handleError(); } -- cgit v1.2.3