Added watched indicator for movies and tv shows lists (#412)
This commit is contained in:
parent
70935d5e3f
commit
d596417b04
|
@ -20,6 +20,7 @@ import android.app.Activity;
|
|||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.preference.PreferenceManager;
|
||||
|
@ -272,6 +273,7 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
MediaContract.Movies.RUNTIME,
|
||||
MediaContract.Movies.RATING,
|
||||
MediaContract.Movies.TAGLINE,
|
||||
MediaContract.Movies.PLAYCOUNT,
|
||||
};
|
||||
|
||||
|
||||
|
@ -292,15 +294,27 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
final int RUNTIME = 6;
|
||||
final int RATING = 7;
|
||||
final int TAGLINE = 8;
|
||||
final int PLAYCOUNT = 9;
|
||||
}
|
||||
|
||||
private static class MoviesAdapter extends CursorAdapter {
|
||||
private class MoviesAdapter extends CursorAdapter {
|
||||
|
||||
private HostManager hostManager;
|
||||
private int artWidth, artHeight;
|
||||
private int themeAccentColor;
|
||||
|
||||
public MoviesAdapter(Context context) {
|
||||
super(context, null, false);
|
||||
|
||||
// Get the default accent color
|
||||
Resources.Theme theme = context.getTheme();
|
||||
TypedArray styledAttributes = theme.obtainStyledAttributes(new int[] {
|
||||
R.attr.colorAccent
|
||||
});
|
||||
|
||||
themeAccentColor = styledAttributes.getColor(styledAttributes.getIndex(0), getResources().getColor(R.color.accent_default));
|
||||
styledAttributes.recycle();
|
||||
|
||||
this.hostManager = HostManager.getInstance(context);
|
||||
|
||||
// Get the art dimensions
|
||||
|
@ -324,6 +338,7 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
viewHolder.titleView = (TextView)view.findViewById(R.id.title);
|
||||
viewHolder.detailsView = (TextView)view.findViewById(R.id.details);
|
||||
viewHolder.durationView = (TextView)view.findViewById(R.id.duration);
|
||||
viewHolder.checkmarkView = (ImageView)view.findViewById(R.id.checkmark);
|
||||
viewHolder.artView = (ImageView)view.findViewById(R.id.art);
|
||||
|
||||
view.setTag(viewHolder);
|
||||
|
@ -366,6 +381,13 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
viewHolder.dataHolder.getTitle(),
|
||||
viewHolder.artView, artWidth, artHeight);
|
||||
|
||||
if (cursor.getInt(MovieListQuery.PLAYCOUNT) > 0) {
|
||||
viewHolder.checkmarkView.setVisibility(View.VISIBLE);
|
||||
viewHolder.checkmarkView.setColorFilter(themeAccentColor);
|
||||
} else {
|
||||
viewHolder.checkmarkView.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
if (Utils.isLollipopOrLater()) {
|
||||
viewHolder.artView.setTransitionName("a" + viewHolder.dataHolder.getId());
|
||||
}
|
||||
|
@ -379,6 +401,7 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
TextView titleView;
|
||||
TextView detailsView;
|
||||
TextView durationView;
|
||||
ImageView checkmarkView;
|
||||
ImageView artView;
|
||||
|
||||
AbstractInfoFragment.DataHolder dataHolder = new AbstractInfoFragment.DataHolder(0);
|
||||
|
|
|
@ -20,6 +20,7 @@ import android.app.Activity;
|
|||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.preference.PreferenceManager;
|
||||
|
@ -292,13 +293,24 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
final int GENRES = 13;
|
||||
}
|
||||
|
||||
private static class TVShowsAdapter extends CursorAdapter {
|
||||
private class TVShowsAdapter extends CursorAdapter {
|
||||
|
||||
private HostManager hostManager;
|
||||
private int artWidth, artHeight;
|
||||
private int themeAccentColor;
|
||||
|
||||
public TVShowsAdapter(Context context) {
|
||||
super(context, null, false);
|
||||
|
||||
// Get the default accent color
|
||||
Resources.Theme theme = context.getTheme();
|
||||
TypedArray styledAttributes = theme.obtainStyledAttributes(new int[] {
|
||||
R.attr.colorAccent
|
||||
});
|
||||
|
||||
themeAccentColor = styledAttributes.getColor(styledAttributes.getIndex(0), getResources().getColor(R.color.accent_default));
|
||||
styledAttributes.recycle();
|
||||
|
||||
this.hostManager = HostManager.getInstance(context);
|
||||
|
||||
// Get the art dimensions
|
||||
|
@ -322,6 +334,7 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
viewHolder.titleView = (TextView)view.findViewById(R.id.title);
|
||||
viewHolder.detailsView = (TextView)view.findViewById(R.id.details);
|
||||
viewHolder.premieredView = (TextView)view.findViewById(R.id.premiered);
|
||||
viewHolder.checkmarkView = (ImageView)view.findViewById(R.id.checkmark);
|
||||
viewHolder.artView = (ImageView)view.findViewById(R.id.art);
|
||||
|
||||
view.setTag(viewHolder);
|
||||
|
@ -358,6 +371,13 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
viewHolder.dataHolder.getTitle(),
|
||||
viewHolder.artView, artWidth, artHeight);
|
||||
|
||||
if (episode - watchedEpisodes == 0) {
|
||||
viewHolder.checkmarkView.setVisibility(View.VISIBLE);
|
||||
viewHolder.checkmarkView.setColorFilter(themeAccentColor);
|
||||
} else {
|
||||
viewHolder.checkmarkView.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
if (Utils.isLollipopOrLater()) {
|
||||
viewHolder.artView.setTransitionName("a" + viewHolder.dataHolder.getId());
|
||||
}
|
||||
|
@ -371,6 +391,7 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
TextView titleView;
|
||||
TextView detailsView;
|
||||
TextView premieredView;
|
||||
ImageView checkmarkView;
|
||||
ImageView artView;
|
||||
|
||||
AbstractInfoFragment.DataHolder dataHolder = new AbstractInfoFragment.DataHolder(0);
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
android:layout_toEndOf="@id/art"
|
||||
android:layout_alignTop="@id/art"
|
||||
style="@style/TextAppearance.Medialist.Title"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/details"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -63,6 +64,16 @@
|
|||
android:layout_below="@id/details"
|
||||
android:layout_alignParentBottom="true"
|
||||
style="@style/TextAppearance.Medialist.OtherInfo"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/checkmark"
|
||||
android:layout_width="@dimen/default_icon_size"
|
||||
android:layout_height="@dimen/default_icon_size"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:padding="@dimen/default_icon_padding"
|
||||
android:src="?attr/iconSeen"
|
||||
android:contentDescription="@string/seen"/>
|
||||
</RelativeLayout>
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
android:layout_toEndOf="@id/art"
|
||||
android:layout_alignTop="@id/art"
|
||||
style="@style/TextAppearance.Medialist.Title"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/details"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -62,5 +63,15 @@
|
|||
android:layout_below="@id/details"
|
||||
android:layout_alignParentBottom="true"
|
||||
style="@style/TextAppearance.Medialist.OtherInfo"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/checkmark"
|
||||
android:layout_width="@dimen/default_icon_size"
|
||||
android:layout_height="@dimen/default_icon_size"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:padding="@dimen/default_icon_padding"
|
||||
android:src="?attr/iconSeen"
|
||||
android:contentDescription="@string/seen"/>
|
||||
</RelativeLayout>
|
||||
</android.support.v7.widget.CardView>
|
Loading…
Reference in New Issue