aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-10-01 08:48:07 -0700
committerScott Jackson <daneren2005@gmail.com>2015-10-01 08:48:07 -0700
commit6b08efedf0f212e99b627ebf590fa014b955351a (patch)
tree4ded020a8455405360ed0fdaf627e654cb6cc5c7 /app/src/main/java/github/daneren2005
parent78c576aaeac4b42c717f8f5944c55888b8dac4a1 (diff)
downloaddsub-6b08efedf0f212e99b627ebf590fa014b955351a.tar.gz
dsub-6b08efedf0f212e99b627ebf590fa014b955351a.tar.bz2
dsub-6b08efedf0f212e99b627ebf590fa014b955351a.zip
Add ability to star/rate albums in root folder
Diffstat (limited to 'app/src/main/java/github/daneren2005')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/domain/Artist.java17
-rw-r--r--app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java12
-rw-r--r--app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java11
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java14
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java1
5 files changed, 48 insertions, 7 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/domain/Artist.java b/app/src/main/java/github/daneren2005/dsub/domain/Artist.java
index f48dd2f9..56e8f92e 100644
--- a/app/src/main/java/github/daneren2005/dsub/domain/Artist.java
+++ b/app/src/main/java/github/daneren2005/dsub/domain/Artist.java
@@ -35,12 +35,12 @@ public class Artist implements Serializable {
private String name;
private String index;
private boolean starred;
+ private Integer rating;
private int closeness;
public String getId() {
return id;
}
-
public void setId(String id) {
this.id = id;
}
@@ -48,7 +48,6 @@ public class Artist implements Serializable {
public String getName() {
return name;
}
-
public void setName(String name) {
this.name = name;
}
@@ -56,7 +55,6 @@ public class Artist implements Serializable {
public String getIndex() {
return index;
}
-
public void setIndex(String index) {
this.index = index;
}
@@ -64,15 +62,24 @@ public class Artist implements Serializable {
public boolean isStarred() {
return starred;
}
-
public void setStarred(boolean starred) {
this.starred = starred;
}
+
+ public int getRating() {
+ return rating == null ? 0 : rating;
+ }
+ public void setRating(Integer rating) {
+ if(rating == null || rating == 0) {
+ this.rating = null;
+ } else {
+ this.rating = rating;
+ }
+ }
public int getCloseness() {
return closeness;
}
-
public void setCloseness(int closeness) {
this.closeness = closeness;
}
diff --git a/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java b/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java
index 3a2b9834..42aa5288 100644
--- a/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java
+++ b/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java
@@ -197,6 +197,7 @@ public class MusicDirectory implements Serializable {
private Bookmark bookmark;
private int type = 0;
private int closeness;
+ private transient Artist linkedArtist;
public Entry() {
@@ -208,6 +209,9 @@ public class MusicDirectory implements Serializable {
this.id = artist.getId();
this.title = artist.getName();
this.directory = true;
+ this.starred = artist.isStarred();
+ this.rating = artist.getRating();
+ this.linkedArtist = artist;
}
@TargetApi(Build.VERSION_CODES.GINGERBREAD_MR1)
@@ -469,6 +473,10 @@ public class MusicDirectory implements Serializable {
public void setStarred(boolean starred) {
this.starred = starred;
+
+ if(linkedArtist != null) {
+ linkedArtist.setStarred(starred);
+ }
}
public int getRating() {
@@ -480,6 +488,10 @@ public class MusicDirectory implements Serializable {
} else {
this.rating = rating;
}
+
+ if(linkedArtist != null) {
+ linkedArtist.setRating(rating);
+ }
}
public Bookmark getBookmark() {
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java
index a9d5afd6..4599d3cb 100644
--- a/app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java
+++ b/app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java
@@ -3,6 +3,7 @@ package github.daneren2005.dsub.fragments;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
+import android.util.Log;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -20,6 +21,7 @@ import github.daneren2005.dsub.domain.Artist;
import github.daneren2005.dsub.domain.Indexes;
import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.domain.MusicFolder;
+import github.daneren2005.dsub.domain.ServerInfo;
import github.daneren2005.dsub.service.MusicService;
import github.daneren2005.dsub.util.Constants;
import github.daneren2005.dsub.util.ProgressListener;
@@ -97,16 +99,25 @@ public class SelectArtistFragment extends SelectRecyclerFragment<Artist> impleme
Bundle args = new Bundle();
args.putString(Constants.INTENT_EXTRA_NAME_ID, artist.getId());
args.putString(Constants.INTENT_EXTRA_NAME_NAME, artist.getName());
+
if ("root".equals(artist.getId())) {
args.putSerializable(Constants.FRAGMENT_LIST, (Serializable) entries);
}
+ if(ServerInfo.checkServerVersion(context, "1.13") && !Util.isOffline(context)) {
+ args.putSerializable(Constants.INTENT_EXTRA_NAME_DIRECTORY, new MusicDirectory.Entry(artist));
+ }
args.putBoolean(Constants.INTENT_EXTRA_NAME_ARTIST, true);
+
fragment.setArguments(args);
} else {
fragment = new SelectArtistFragment();
Bundle args = new Bundle();
args.putString(Constants.INTENT_EXTRA_NAME_ID, artist.getId());
args.putString(Constants.INTENT_EXTRA_NAME_NAME, artist.getName());
+ if(ServerInfo.checkServerVersion(context, "1.13") && !Util.isOffline(context)) {
+ args.putSerializable(Constants.INTENT_EXTRA_NAME_DIRECTORY, new MusicDirectory.Entry(artist));
+ }
+
fragment.setArguments(args);
}
diff --git a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java
index f053c215..8a17d8f3 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java
@@ -837,11 +837,21 @@ public class CachedMusicService implements MusicService {
@Override
public void setRating(final Entry entry, final int rating, Context context, ProgressListener progressListener) throws Exception {
musicService.setRating(entry, rating, context, progressListener);
-
+
new GenericEntryUpdater(context, entry) {
@Override
+ public boolean checkResult(Entry entry, Entry check) {
+ if (entry.getId().equals(check.getId())) {
+ check.setRating(entry.getRating());
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
public void updateResult(Entry result) {
- result.setRating(rating);
+
}
}.execute();
}
diff --git a/app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java b/app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java
index 0ac86476..f0cce217 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java
@@ -78,6 +78,7 @@ public class IndexesParser extends MusicDirectoryEntryParser {
artist.setName(get("name"));
artist.setIndex(index);
artist.setStarred(get("starred") != null);
+ artist.setRating(getInteger("userRating"));
// Combine the id's for the two artists
if(artistList.containsKey(artist.getName())) {