diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-11-27 09:40:57 -0500 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-11-27 09:40:57 -0500 |
commit | 59fa8c097cc01bedd9e6405c1daed0774a1a6b00 (patch) | |
tree | 9fddafbd5e6bb8e741e0957ff3b3c8e2563aafcd | |
parent | 69038b4ff5fad16407ef7401202539113746dcf9 (diff) | |
parent | 573cd120d18e1e3eb792d27576abe43684f8ddf0 (diff) | |
download | AntennaPod-59fa8c097cc01bedd9e6405c1daed0774a1a6b00.zip |
Merge pull request #1379 from mfietz/issue/1366-highlight-playing
Highlight currently playing
8 files changed, 94 insertions, 24 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java index bda70ba6a..f120aa1d5 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java @@ -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; diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java index c6c158943..1972e675e 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java @@ -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; diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java index 3326cc859..3e4dd4deb 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java @@ -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)); } - } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java index 422d56314..23b5be25a 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -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(); diff --git a/app/src/main/res/layout/feeditemlist_item.xml b/app/src/main/res/layout/feeditemlist_item.xml index 6b7c45978..d2b85e7df 100644 --- a/app/src/main/res/layout/feeditemlist_item.xml +++ b/app/src/main/res/layout/feeditemlist_item.xml @@ -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>
\ No newline at end of file +</LinearLayout> diff --git a/app/src/main/res/layout/new_episodes_listitem.xml b/app/src/main/res/layout/new_episodes_listitem.xml index 7a5652c45..cde1b4aa6 100644 --- a/app/src/main/res/layout/new_episodes_listitem.xml +++ b/app/src/main/res/layout/new_episodes_listitem.xml @@ -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>
\ No newline at end of file +</LinearLayout> + +</FrameLayout> diff --git a/app/src/main/res/layout/queue_listitem.xml b/app/src/main/res/layout/queue_listitem.xml index 8572f5e05..d950f11d2 100644 --- a/app/src/main/res/layout/queue_listitem.xml +++ b/app/src/main/res/layout/queue_listitem.xml @@ -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>
\ No newline at end of file +</LinearLayout> + +</FrameLayout> diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml index 72897ed07..ff061be4c 100644 --- a/core/src/main/res/values/colors.xml +++ b/core/src/main/res/values/colors.xml @@ -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> |