aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2014-01-21 16:44:38 -0800
committerScott Jackson <daneren2005@gmail.com>2014-01-21 16:44:38 -0800
commitf1fd9a58e97ffb71807391ceac6fe66aa160f054 (patch)
tree9674c13126290f7c9447c8f80f73dc7564362b2e
parenta0ea69627b36abc28f5c75bf7c5651fbd2be7d98 (diff)
downloaddsub-f1fd9a58e97ffb71807391ceac6fe66aa160f054.tar.gz
dsub-f1fd9a58e97ffb71807391ceac6fe66aa160f054.tar.bz2
dsub-f1fd9a58e97ffb71807391ceac6fe66aa160f054.zip
#263 Add song/album totals to genre list
-rw-r--r--res/layout/genre_list_item.xml42
-rw-r--r--res/values/strings.xml2
-rw-r--r--src/github/daneren2005/dsub/domain/Genre.java20
-rw-r--r--src/github/daneren2005/dsub/service/parser/GenreParser.java2
-rw-r--r--src/github/daneren2005/dsub/view/GenreView.java30
5 files changed, 84 insertions, 12 deletions
diff --git a/res/layout/genre_list_item.xml b/res/layout/genre_list_item.xml
new file mode 100644
index 00000000..658d9cd6
--- /dev/null
+++ b/res/layout/genre_list_item.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="horizontal"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:background="@android:color/transparent">
+
+ <TextView
+ android:id="@+id/genre_name"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:gravity="left|center_vertical"
+ android:paddingLeft="6dip"
+ android:paddingRight="6dip"
+ android:minHeight="50dip"
+ android:singleLine="true"
+ android:ellipsize="marquee"
+ android:background="@android:color/transparent"/>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="fill_parent"
+ android:orientation="vertical"
+ android:gravity="right|center_vertical"
+ android:paddingRight="10dip"
+ android:background="@android:color/transparent">
+
+ <TextView
+ android:id="@+id/genre_songs"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
+
+ <TextView
+ android:id="@+id/genre_albums"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
+ </LinearLayout>
+</LinearLayout> \ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b1fbb3c3..860d16ff 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -141,6 +141,8 @@
<string name="offline.sync_error">Failed to sync songs</string>
<string name="select_genre.blank">Blank</string>
+ <string name="select_genre.songs">%d songs</string>
+ <string name="select_genre.albums">%d albums</string>
<string name="select_podcasts.error">This podcast had an error while downloading on the server. The server must download it first.</string>
<string name="select_podcasts.skipped">This podcast has not been downloaded on the server. The server must download it first.</string>
diff --git a/src/github/daneren2005/dsub/domain/Genre.java b/src/github/daneren2005/dsub/domain/Genre.java
index 25d226d7..4ca4c387 100644
--- a/src/github/daneren2005/dsub/domain/Genre.java
+++ b/src/github/daneren2005/dsub/domain/Genre.java
@@ -14,7 +14,9 @@ import github.daneren2005.dsub.util.Util;
public class Genre implements Serializable {
private String name;
private String index;
-
+ private Integer albumCount;
+ private Integer songCount;
+
public String getName() {
return name;
}
@@ -36,6 +38,22 @@ public class Genre implements Serializable {
return name;
}
+ public Integer getAlbumCount() {
+ return albumCount;
+ }
+
+ public void setAlbumCount(Integer albumCount) {
+ this.albumCount = albumCount;
+ }
+
+ public Integer getSongCount() {
+ return songCount;
+ }
+
+ public void setSongCount(Integer songCount) {
+ this.songCount = songCount;
+ }
+
public static class GenreComparator implements Comparator<Genre> {
@Override
public int compare(Genre genre1, Genre genre2) {
diff --git a/src/github/daneren2005/dsub/service/parser/GenreParser.java b/src/github/daneren2005/dsub/service/parser/GenreParser.java
index f572b564..35913ba9 100644
--- a/src/github/daneren2005/dsub/service/parser/GenreParser.java
+++ b/src/github/daneren2005/dsub/service/parser/GenreParser.java
@@ -97,6 +97,8 @@ public class GenreParser extends AbstractParser {
String name = getElementName();
if ("genre".equals(name)) {
genre = new Genre();
+ genre.setSongCount(getInteger("songCount"));
+ genre.setAlbumCount(getInteger("albumCount"));
} else if ("error".equals(name)) {
handleError();
} else {
diff --git a/src/github/daneren2005/dsub/view/GenreView.java b/src/github/daneren2005/dsub/view/GenreView.java
index 6a8e04ef..cbd5f081 100644
--- a/src/github/daneren2005/dsub/view/GenreView.java
+++ b/src/github/daneren2005/dsub/view/GenreView.java
@@ -21,8 +21,6 @@ package github.daneren2005.dsub.view;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
-import android.widget.ImageButton;
-import android.widget.ImageView;
import android.widget.TextView;
import github.daneren2005.dsub.R;
import github.daneren2005.dsub.domain.Genre;
@@ -31,20 +29,30 @@ public class GenreView extends UpdateView {
private static final String TAG = GenreView.class.getSimpleName();
private TextView titleView;
+ private TextView songsView;
+ private TextView albumsView;
public GenreView(Context context) {
super(context);
- LayoutInflater.from(context).inflate(R.layout.basic_list_item, this, true);
-
- titleView = (TextView) findViewById(R.id.item_name);
- starButton = (ImageButton) findViewById(R.id.item_star);
- starButton.setFocusable(false);
- moreButton = (ImageView) findViewById(R.id.item_more);
- moreButton.setVisibility(View.GONE);
- moreButton.setClickable(false);
+ LayoutInflater.from(context).inflate(R.layout.genre_list_item, this, true);
+
+ titleView = (TextView) findViewById(R.id.genre_name);
+ songsView = (TextView) findViewById(R.id.genre_songs);
+ albumsView = (TextView) findViewById(R.id.genre_albums);
}
public void setObjectImpl(Object obj) {
- titleView.setText(((Genre)obj).getName());
+ Genre genre = (Genre) obj;
+ titleView.setText(genre.getName());
+
+ if(genre.getAlbumCount() != null) {
+ songsView.setVisibility(View.VISIBLE);
+ albumsView.setVisibility(View.VISIBLE);
+ songsView.setText(context.getResources().getString(R.string.select_genre_songs, genre.getSongCount()));
+ albumsView.setText(context.getResources().getString(R.string.select_genre_albums, genre.getAlbumCount()));
+ } else {
+ songsView.setVisibility(View.GONE);
+ albumsView.setVisibility(View.GONE);
+ }
}
}