Merge pull request #1379 from mfietz/issue/1366-highlight-playing
Highlight currently playing
This commit is contained in:
commit
59fa8c097c
@ -1,6 +1,5 @@
|
||||
package de.danoeh.antennapod.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
@ -13,8 +12,10 @@ import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
@ -32,6 +33,7 @@ import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.core.feed.FeedItem;
|
||||
import de.danoeh.antennapod.core.feed.FeedMedia;
|
||||
import de.danoeh.antennapod.core.glide.ApGlideSettings;
|
||||
import de.danoeh.antennapod.core.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.core.storage.DownloadRequester;
|
||||
import de.danoeh.antennapod.core.util.Converter;
|
||||
import de.danoeh.antennapod.core.util.NetworkUtils;
|
||||
@ -45,27 +47,34 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR
|
||||
|
||||
private static final String TAG = AllEpisodesRecycleAdapter.class.getSimpleName();
|
||||
|
||||
private final Context context;
|
||||
private final WeakReference<MainActivity> mainActivityRef;
|
||||
private final ItemAccess itemAccess;
|
||||
private final ActionButtonCallback actionButtonCallback;
|
||||
private final ActionButtonUtils actionButtonUtils;
|
||||
private final boolean showOnlyNewEpisodes;
|
||||
private final WeakReference<MainActivity> mainActivityRef;
|
||||
|
||||
private int position = -1;
|
||||
|
||||
public AllEpisodesRecycleAdapter(Context context,
|
||||
MainActivity mainActivity,
|
||||
private final int playingBackGroundColor;
|
||||
private final int normalBackGroundColor;
|
||||
|
||||
public AllEpisodesRecycleAdapter(MainActivity mainActivity,
|
||||
ItemAccess itemAccess,
|
||||
ActionButtonCallback actionButtonCallback,
|
||||
boolean showOnlyNewEpisodes) {
|
||||
super();
|
||||
this.mainActivityRef = new WeakReference<>(mainActivity);
|
||||
this.context = context;
|
||||
this.itemAccess = itemAccess;
|
||||
this.actionButtonUtils = new ActionButtonUtils(context);
|
||||
this.actionButtonUtils = new ActionButtonUtils(mainActivity);
|
||||
this.actionButtonCallback = actionButtonCallback;
|
||||
this.showOnlyNewEpisodes = showOnlyNewEpisodes;
|
||||
|
||||
if(UserPreferences.getTheme() == R.style.Theme_AntennaPod_Dark) {
|
||||
playingBackGroundColor = mainActivity.getResources().getColor(R.color.highlight_dark);
|
||||
} else {
|
||||
playingBackGroundColor = mainActivity.getResources().getColor(R.color.highlight_light);
|
||||
}
|
||||
normalBackGroundColor = mainActivity.getResources().getColor(android.R.color.transparent);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -73,6 +82,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR
|
||||
View view = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.new_episodes_listitem, parent, false);
|
||||
Holder holder = new Holder(view);
|
||||
holder.container = (FrameLayout) view.findViewById(R.id.container);
|
||||
holder.placeholder = (TextView) view.findViewById(R.id.txtvPlaceholder);
|
||||
holder.title = (TextView) view.findViewById(R.id.txtvTitle);
|
||||
holder.pubDate = (TextView) view
|
||||
@ -108,7 +118,8 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR
|
||||
holder.placeholder.setVisibility(View.VISIBLE);
|
||||
holder.placeholder.setText(item.getFeed().getTitle());
|
||||
holder.title.setText(item.getTitle());
|
||||
holder.pubDate.setText(DateUtils.formatDateTime(context, item.getPubDate().getTime(), DateUtils.FORMAT_ABBREV_ALL));
|
||||
holder.pubDate.setText(DateUtils.formatDateTime(mainActivityRef.get(),
|
||||
item.getPubDate().getTime(), DateUtils.FORMAT_ABBREV_ALL));
|
||||
if (showOnlyNewEpisodes || false == item.isNew()) {
|
||||
holder.statusUnread.setVisibility(View.INVISIBLE);
|
||||
} else {
|
||||
@ -158,6 +169,11 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR
|
||||
holder.progress.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if(media.isCurrentlyPlaying()) {
|
||||
holder.container.setBackgroundColor(playingBackGroundColor);
|
||||
} else {
|
||||
holder.container.setBackgroundColor(normalBackGroundColor);
|
||||
}
|
||||
} else {
|
||||
holder.progress.setVisibility(View.GONE);
|
||||
holder.txtvDuration.setVisibility(View.GONE);
|
||||
@ -175,7 +191,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR
|
||||
holder.butSecondary.setTag(item);
|
||||
holder.butSecondary.setOnClickListener(secondaryActionListener);
|
||||
|
||||
Glide.with(context)
|
||||
Glide.with(mainActivityRef.get())
|
||||
.load(item.getImageUri())
|
||||
.diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
|
||||
.fitCenter()
|
||||
@ -222,7 +238,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR
|
||||
TextView txtvPlaceholder = placeholder.get();
|
||||
ImageView imgvCover = cover.get();
|
||||
if(fallbackUri != null && txtvPlaceholder != null && imgvCover != null) {
|
||||
Glide.with(context)
|
||||
Glide.with(mainActivityRef.get())
|
||||
.load(fallbackUri)
|
||||
.diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
|
||||
.fitCenter()
|
||||
@ -253,6 +269,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR
|
||||
implements View.OnClickListener,
|
||||
View.OnCreateContextMenuListener,
|
||||
ItemTouchHelperViewHolder {
|
||||
FrameLayout container;
|
||||
TextView placeholder;
|
||||
TextView title;
|
||||
TextView pubDate;
|
||||
|
@ -11,6 +11,7 @@ import android.widget.Adapter;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
@ -39,6 +40,9 @@ public class FeedItemlistAdapter extends BaseAdapter {
|
||||
|
||||
public static final int SELECTION_NONE = -1;
|
||||
|
||||
private final int playingBackGroundColor;
|
||||
private final int normalBackGroundColor;
|
||||
|
||||
public FeedItemlistAdapter(Context context,
|
||||
ItemAccess itemAccess,
|
||||
ActionButtonCallback callback,
|
||||
@ -52,6 +56,9 @@ public class FeedItemlistAdapter extends BaseAdapter {
|
||||
this.selectedItemIndex = SELECTION_NONE;
|
||||
this.actionButtonUtils = new ActionButtonUtils(context);
|
||||
this.makePlayedItemsTransparent = makePlayedItemsTransparent;
|
||||
|
||||
playingBackGroundColor = context.getResources().getColor(R.color.highlight_light);
|
||||
normalBackGroundColor = context.getResources().getColor(android.R.color.transparent);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -80,6 +87,8 @@ public class FeedItemlistAdapter extends BaseAdapter {
|
||||
LayoutInflater inflater = (LayoutInflater) context
|
||||
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
convertView = inflater.inflate(R.layout.feeditemlist_item, parent, false);
|
||||
holder.container = (LinearLayout) convertView
|
||||
.findViewById(R.id.container);
|
||||
holder.title = (TextView) convertView
|
||||
.findViewById(R.id.txtvItemname);
|
||||
holder.lenSize = (TextView) convertView
|
||||
@ -174,6 +183,14 @@ public class FeedItemlistAdapter extends BaseAdapter {
|
||||
holder.type.setImageBitmap(null);
|
||||
holder.type.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if(media.isCurrentlyPlaying()) {
|
||||
if(media.isCurrentlyPlaying()) {
|
||||
holder.container.setBackgroundColor(playingBackGroundColor);
|
||||
} else {
|
||||
holder.container.setBackgroundColor(normalBackGroundColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean isInQueue = itemAccess.isInQueue(item);
|
||||
@ -197,6 +214,7 @@ public class FeedItemlistAdapter extends BaseAdapter {
|
||||
};
|
||||
|
||||
static class Holder {
|
||||
LinearLayout container;
|
||||
TextView title;
|
||||
TextView published;
|
||||
TextView lenSize;
|
||||
|
@ -15,6 +15,7 @@ import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
@ -59,6 +60,9 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap
|
||||
|
||||
private FeedItem selectedItem;
|
||||
|
||||
private final int playingBackGroundColor;
|
||||
private final int normalBackGroundColor;
|
||||
|
||||
public QueueRecyclerAdapter(MainActivity mainActivity,
|
||||
ItemAccess itemAccess,
|
||||
ActionButtonCallback actionButtonCallback,
|
||||
@ -70,6 +74,13 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap
|
||||
this.actionButtonCallback = actionButtonCallback;
|
||||
this.itemTouchHelper = itemTouchHelper;
|
||||
locked = UserPreferences.isQueueLocked();
|
||||
|
||||
if(UserPreferences.getTheme() == R.style.Theme_AntennaPod_Dark) {
|
||||
playingBackGroundColor = mainActivity.getResources().getColor(R.color.highlight_dark);
|
||||
} else {
|
||||
playingBackGroundColor = mainActivity.getResources().getColor(R.color.highlight_light);
|
||||
}
|
||||
normalBackGroundColor = mainActivity.getResources().getColor(android.R.color.transparent);
|
||||
}
|
||||
|
||||
public void setLocked(boolean locked) {
|
||||
@ -105,6 +116,7 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap
|
||||
View.OnCreateContextMenuListener,
|
||||
ItemTouchHelperViewHolder {
|
||||
|
||||
private final FrameLayout container;
|
||||
private final ImageView dragHandle;
|
||||
private final TextView placeholder;
|
||||
private final ImageView cover;
|
||||
@ -119,6 +131,7 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap
|
||||
|
||||
public ViewHolder(View v) {
|
||||
super(v);
|
||||
container = (FrameLayout) v.findViewById(R.id.container);
|
||||
dragHandle = (ImageView) v.findViewById(R.id.drag_handle);
|
||||
placeholder = (TextView) v.findViewById(R.id.txtvPlaceholder);
|
||||
cover = (ImageView) v.findViewById(R.id.imgvCover);
|
||||
@ -246,6 +259,12 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap
|
||||
progressRight.setText(Converter.getDurationStringLong(media.getDuration()));
|
||||
progressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if(media.isCurrentlyPlaying()) {
|
||||
container.setBackgroundColor(playingBackGroundColor);
|
||||
} else {
|
||||
container.setBackgroundColor(normalBackGroundColor);
|
||||
}
|
||||
}
|
||||
|
||||
actionButtonUtils.configureActionButton(butSecondary, item, true);
|
||||
@ -261,7 +280,6 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap
|
||||
.into(new CoverTarget(item.getFeed().getImageUri(), placeholder, cover));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -321,8 +321,9 @@ public class AllEpisodesFragment extends Fragment {
|
||||
|
||||
private void onFragmentLoaded() {
|
||||
if (listAdapter == null) {
|
||||
listAdapter = new AllEpisodesRecycleAdapter(activity.get(), activity.get(), itemAccess,
|
||||
new DefaultActionButtonCallback(activity.get()), showOnlyNewEpisodes());
|
||||
MainActivity mainActivity = activity.get();
|
||||
listAdapter = new AllEpisodesRecycleAdapter(mainActivity, itemAccess,
|
||||
new DefaultActionButtonCallback(mainActivity), showOnlyNewEpisodes());
|
||||
recyclerView.setAdapter(listAdapter);
|
||||
}
|
||||
listAdapter.notifyDataSetChanged();
|
||||
|
@ -1,14 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/listitem_threeline_height"
|
||||
android:orientation="horizontal"
|
||||
tools:background="@android:color/darker_gray">
|
||||
|
||||
<RelativeLayout
|
||||
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="@dimen/listitem_threeline_horizontalpadding"
|
||||
@ -103,12 +104,10 @@
|
||||
android:indeterminate="false"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<include layout="@layout/vertical_list_divider"/>
|
||||
|
||||
<include layout="@layout/secondary_action"/>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
@ -1,11 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/listitem_threeline_height"
|
||||
android:orientation="horizontal"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:orientation="horizontal"
|
||||
tools:background="@android:color/darker_gray">
|
||||
|
||||
<RelativeLayout
|
||||
@ -127,4 +133,6 @@
|
||||
|
||||
<include layout="@layout/secondary_action" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
@ -1,14 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<LinearLayout
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/listitem_threeline_height"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="8dp"
|
||||
android:gravity="center_vertical"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
tools:background="@android:color/darker_gray" >
|
||||
|
||||
<ImageView
|
||||
@ -135,4 +140,6 @@
|
||||
|
||||
<include layout="@layout/secondary_action"/>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
@ -28,5 +28,7 @@
|
||||
<!-- Theme colors -->
|
||||
<color name="primary_light">#FFFFFF</color>
|
||||
|
||||
<color name="highlight_light">#DDDDDD</color>
|
||||
<color name="highlight_dark">#414141</color>
|
||||
|
||||
</resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user