1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2024-12-24 09:00:31 +00:00

-Refactored info item and local item click gestures into the same OnClickGesture.

This commit is contained in:
John Zhen Mo 2018-01-30 16:21:50 -08:00
parent 225b43ca3c
commit 1ff8b5fb9f
13 changed files with 38 additions and 50 deletions

View File

@ -44,7 +44,6 @@ import com.nirhart.parallaxscroll.views.ParallaxScrollView;
import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
import org.schabi.newpipe.NewPipeDatabase;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.ReCaptchaActivity; import org.schabi.newpipe.ReCaptchaActivity;
import org.schabi.newpipe.download.DownloadDialog; import org.schabi.newpipe.download.DownloadDialog;
@ -60,11 +59,8 @@ import org.schabi.newpipe.extractor.stream.VideoStream;
import org.schabi.newpipe.fragments.BackPressable; import org.schabi.newpipe.fragments.BackPressable;
import org.schabi.newpipe.fragments.BaseStateFragment; import org.schabi.newpipe.fragments.BaseStateFragment;
import org.schabi.newpipe.fragments.local.PlaylistAppendDialog; import org.schabi.newpipe.fragments.local.PlaylistAppendDialog;
import org.schabi.newpipe.history.HistoryListener;
import org.schabi.newpipe.history.HistoryRecordManager;
import org.schabi.newpipe.info_list.InfoItemBuilder; import org.schabi.newpipe.info_list.InfoItemBuilder;
import org.schabi.newpipe.info_list.InfoItemDialog; import org.schabi.newpipe.info_list.InfoItemDialog;
import org.schabi.newpipe.info_list.OnInfoItemGesture;
import org.schabi.newpipe.player.MainVideoPlayer; import org.schabi.newpipe.player.MainVideoPlayer;
import org.schabi.newpipe.player.PopupVideoPlayer; import org.schabi.newpipe.player.PopupVideoPlayer;
import org.schabi.newpipe.player.helper.PlayerHelper; import org.schabi.newpipe.player.helper.PlayerHelper;
@ -79,6 +75,7 @@ import org.schabi.newpipe.util.InfoCache;
import org.schabi.newpipe.util.ListHelper; import org.schabi.newpipe.util.ListHelper;
import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.OnClickGesture;
import org.schabi.newpipe.util.PermissionHelper; import org.schabi.newpipe.util.PermissionHelper;
import org.schabi.newpipe.util.ThemeHelper; import org.schabi.newpipe.util.ThemeHelper;
@ -474,7 +471,7 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo> implement
@Override @Override
protected void initListeners() { protected void initListeners() {
super.initListeners(); super.initListeners();
infoItemBuilder.setOnStreamSelectedListener(new OnInfoItemGesture<StreamInfoItem>() { infoItemBuilder.setOnStreamSelectedListener(new OnClickGesture<StreamInfoItem>() {
@Override @Override
public void selected(StreamInfoItem selectedItem) { public void selected(StreamInfoItem selectedItem) {
selectAndLoadVideo(selectedItem.getServiceId(), selectedItem.getUrl(), selectedItem.getName()); selectAndLoadVideo(selectedItem.getServiceId(), selectedItem.getUrl(), selectedItem.getName());

View File

@ -23,9 +23,9 @@ import org.schabi.newpipe.fragments.OnScrollBelowItemsListener;
import org.schabi.newpipe.fragments.local.PlaylistAppendDialog; import org.schabi.newpipe.fragments.local.PlaylistAppendDialog;
import org.schabi.newpipe.info_list.InfoItemDialog; import org.schabi.newpipe.info_list.InfoItemDialog;
import org.schabi.newpipe.info_list.InfoListAdapter; import org.schabi.newpipe.info_list.InfoListAdapter;
import org.schabi.newpipe.info_list.OnInfoItemGesture;
import org.schabi.newpipe.playlist.SinglePlayQueue; import org.schabi.newpipe.playlist.SinglePlayQueue;
import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.OnClickGesture;
import org.schabi.newpipe.util.StateSaver; import org.schabi.newpipe.util.StateSaver;
import java.util.ArrayList; import java.util.ArrayList;
@ -137,7 +137,7 @@ public abstract class BaseListFragment<I, N> extends BaseStateFragment<I> implem
@Override @Override
protected void initListeners() { protected void initListeners() {
super.initListeners(); super.initListeners();
infoListAdapter.setOnStreamSelectedListener(new OnInfoItemGesture<StreamInfoItem>() { infoListAdapter.setOnStreamSelectedListener(new OnClickGesture<StreamInfoItem>() {
@Override @Override
public void selected(StreamInfoItem selectedItem) { public void selected(StreamInfoItem selectedItem) {
onItemSelected(selectedItem); onItemSelected(selectedItem);
@ -152,7 +152,7 @@ public abstract class BaseListFragment<I, N> extends BaseStateFragment<I> implem
} }
}); });
infoListAdapter.setOnChannelSelectedListener(new OnInfoItemGesture<ChannelInfoItem>() { infoListAdapter.setOnChannelSelectedListener(new OnClickGesture<ChannelInfoItem>() {
@Override @Override
public void selected(ChannelInfoItem selectedItem) { public void selected(ChannelInfoItem selectedItem) {
onItemSelected(selectedItem); onItemSelected(selectedItem);
@ -162,7 +162,7 @@ public abstract class BaseListFragment<I, N> extends BaseStateFragment<I> implem
} }
}); });
infoListAdapter.setOnPlaylistSelectedListener(new OnInfoItemGesture<PlaylistInfoItem>() { infoListAdapter.setOnPlaylistSelectedListener(new OnClickGesture<PlaylistInfoItem>() {
@Override @Override
public void selected(PlaylistInfoItem selectedItem) { public void selected(PlaylistInfoItem selectedItem) {
onItemSelected(selectedItem); onItemSelected(selectedItem);

View File

@ -9,6 +9,7 @@ import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.process.BitmapProcessor; import com.nostra13.universalimageloader.core.process.BitmapProcessor;
import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.database.LocalItem;
import org.schabi.newpipe.util.OnClickGesture;
/* /*
* Created by Christian Schabesberger on 26.09.16. * Created by Christian Schabesberger on 26.09.16.
@ -36,7 +37,7 @@ public class LocalItemBuilder {
private final Context context; private final Context context;
private ImageLoader imageLoader = ImageLoader.getInstance(); private ImageLoader imageLoader = ImageLoader.getInstance();
private OnLocalItemGesture<LocalItem> onSelectedListener; private OnClickGesture<LocalItem> onSelectedListener;
public LocalItemBuilder(Context context) { public LocalItemBuilder(Context context) {
this.context = context; this.context = context;
@ -51,11 +52,11 @@ public class LocalItemBuilder {
imageLoader.displayImage(url, view, options); imageLoader.displayImage(url, view, options);
} }
public OnLocalItemGesture<LocalItem> getOnItemSelectedListener() { public OnClickGesture<LocalItem> getOnItemSelectedListener() {
return onSelectedListener; return onSelectedListener;
} }
public void setOnItemSelectedListener(OnLocalItemGesture<LocalItem> listener) { public void setOnItemSelectedListener(OnClickGesture<LocalItem> listener) {
this.onSelectedListener = listener; this.onSelectedListener = listener;
} }
} }

View File

@ -12,6 +12,7 @@ import org.schabi.newpipe.fragments.local.holder.LocalPlaylistItemHolder;
import org.schabi.newpipe.fragments.local.holder.LocalPlaylistStreamItemHolder; import org.schabi.newpipe.fragments.local.holder.LocalPlaylistStreamItemHolder;
import org.schabi.newpipe.fragments.local.holder.LocalStatisticStreamItemHolder; import org.schabi.newpipe.fragments.local.holder.LocalStatisticStreamItemHolder;
import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.OnClickGesture;
import java.text.DateFormat; import java.text.DateFormat;
import java.util.ArrayList; import java.util.ArrayList;
@ -65,7 +66,7 @@ public class LocalItemListAdapter extends RecyclerView.Adapter<RecyclerView.View
Localization.getPreferredLocale(activity)); Localization.getPreferredLocale(activity));
} }
public void setSelectedListener(OnLocalItemGesture<LocalItem> listener) { public void setSelectedListener(OnClickGesture<LocalItem> listener) {
localItemBuilder.setOnItemSelectedListener(listener); localItemBuilder.setOnItemSelectedListener(listener);
} }

View File

@ -32,6 +32,7 @@ import org.schabi.newpipe.playlist.SinglePlayQueue;
import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.OnClickGesture;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -142,7 +143,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
itemTouchHelper = new ItemTouchHelper(getItemTouchCallback()); itemTouchHelper = new ItemTouchHelper(getItemTouchCallback());
itemTouchHelper.attachToRecyclerView(itemsList); itemTouchHelper.attachToRecyclerView(itemsList);
itemListAdapter.setSelectedListener(new OnLocalItemGesture<LocalItem>() { itemListAdapter.setSelectedListener(new OnClickGesture<LocalItem>() {
@Override @Override
public void selected(LocalItem selectedItem) { public void selected(LocalItem selectedItem) {
if (selectedItem instanceof PlaylistStreamEntry) { if (selectedItem instanceof PlaylistStreamEntry) {

View File

@ -19,6 +19,7 @@ import org.schabi.newpipe.database.stream.model.StreamEntity;
import org.schabi.newpipe.extractor.stream.StreamInfo; import org.schabi.newpipe.extractor.stream.StreamInfo;
import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.stream.StreamInfoItem;
import org.schabi.newpipe.playlist.PlayQueueItem; import org.schabi.newpipe.playlist.PlayQueueItem;
import org.schabi.newpipe.util.OnClickGesture;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -81,7 +82,7 @@ public final class PlaylistAppendDialog extends PlaylistDialog {
new LocalPlaylistManager(NewPipeDatabase.getInstance(getContext())); new LocalPlaylistManager(NewPipeDatabase.getInstance(getContext()));
playlistAdapter = new LocalItemListAdapter(getActivity()); playlistAdapter = new LocalItemListAdapter(getActivity());
playlistAdapter.setSelectedListener(new OnLocalItemGesture<LocalItem>() { playlistAdapter.setSelectedListener(new OnClickGesture<LocalItem>() {
@Override @Override
public void selected(LocalItem selectedItem) { public void selected(LocalItem selectedItem) {
if (!(selectedItem instanceof PlaylistMetadataEntry) || getStreams() == null) if (!(selectedItem instanceof PlaylistMetadataEntry) || getStreams() == null)

View File

@ -18,9 +18,9 @@ import org.schabi.newpipe.database.LocalItem;
import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry; import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry;
import org.schabi.newpipe.fragments.local.BaseLocalListFragment; import org.schabi.newpipe.fragments.local.BaseLocalListFragment;
import org.schabi.newpipe.fragments.local.LocalPlaylistManager; import org.schabi.newpipe.fragments.local.LocalPlaylistManager;
import org.schabi.newpipe.fragments.local.OnLocalItemGesture;
import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.OnClickGesture;
import java.util.List; import java.util.List;
@ -95,7 +95,7 @@ public final class BookmarkFragment
protected void initListeners() { protected void initListeners() {
super.initListeners(); super.initListeners();
itemListAdapter.setSelectedListener(new OnLocalItemGesture<LocalItem>() { itemListAdapter.setSelectedListener(new OnClickGesture<LocalItem>() {
@Override @Override
public void selected(LocalItem selectedItem) { public void selected(LocalItem selectedItem) {
// Requires the parent fragment to find holder for fragment replacement // Requires the parent fragment to find holder for fragment replacement

View File

@ -18,13 +18,13 @@ import org.schabi.newpipe.database.LocalItem;
import org.schabi.newpipe.database.stream.StreamStatisticsEntry; import org.schabi.newpipe.database.stream.StreamStatisticsEntry;
import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.stream.StreamInfoItem;
import org.schabi.newpipe.fragments.local.BaseLocalListFragment; import org.schabi.newpipe.fragments.local.BaseLocalListFragment;
import org.schabi.newpipe.fragments.local.OnLocalItemGesture;
import org.schabi.newpipe.history.HistoryRecordManager; import org.schabi.newpipe.history.HistoryRecordManager;
import org.schabi.newpipe.info_list.InfoItemDialog; import org.schabi.newpipe.info_list.InfoItemDialog;
import org.schabi.newpipe.playlist.PlayQueue; import org.schabi.newpipe.playlist.PlayQueue;
import org.schabi.newpipe.playlist.SinglePlayQueue; import org.schabi.newpipe.playlist.SinglePlayQueue;
import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.OnClickGesture;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -95,7 +95,7 @@ public abstract class StatisticsPlaylistFragment
protected void initListeners() { protected void initListeners() {
super.initListeners(); super.initListeners();
itemListAdapter.setSelectedListener(new OnLocalItemGesture<LocalItem>() { itemListAdapter.setSelectedListener(new OnClickGesture<LocalItem>() {
@Override @Override
public void selected(LocalItem selectedItem) { public void selected(LocalItem selectedItem) {
if (selectedItem instanceof StreamStatisticsEntry) { if (selectedItem instanceof StreamStatisticsEntry) {

View File

@ -17,9 +17,9 @@ import org.schabi.newpipe.extractor.InfoItem;
import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.extractor.channel.ChannelInfoItem;
import org.schabi.newpipe.fragments.BaseStateFragment; import org.schabi.newpipe.fragments.BaseStateFragment;
import org.schabi.newpipe.info_list.InfoListAdapter; import org.schabi.newpipe.info_list.InfoListAdapter;
import org.schabi.newpipe.info_list.OnInfoItemGesture;
import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.OnClickGesture;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -125,7 +125,7 @@ public class SubscriptionFragment extends BaseStateFragment<List<SubscriptionEnt
protected void initListeners() { protected void initListeners() {
super.initListeners(); super.initListeners();
infoListAdapter.setOnChannelSelectedListener(new OnInfoItemGesture<ChannelInfoItem>() { infoListAdapter.setOnChannelSelectedListener(new OnClickGesture<ChannelInfoItem>() {
@Override @Override
public void selected(ChannelInfoItem selectedItem) { public void selected(ChannelInfoItem selectedItem) {
// Requires the parent fragment to find holder for fragment replacement // Requires the parent fragment to find holder for fragment replacement

View File

@ -19,6 +19,7 @@ import org.schabi.newpipe.info_list.holder.PlaylistInfoItemHolder;
import org.schabi.newpipe.info_list.holder.PlaylistMiniInfoItemHolder; import org.schabi.newpipe.info_list.holder.PlaylistMiniInfoItemHolder;
import org.schabi.newpipe.info_list.holder.StreamInfoItemHolder; import org.schabi.newpipe.info_list.holder.StreamInfoItemHolder;
import org.schabi.newpipe.info_list.holder.StreamMiniInfoItemHolder; import org.schabi.newpipe.info_list.holder.StreamMiniInfoItemHolder;
import org.schabi.newpipe.util.OnClickGesture;
/* /*
* Created by Christian Schabesberger on 26.09.16. * Created by Christian Schabesberger on 26.09.16.
@ -46,9 +47,9 @@ public class InfoItemBuilder {
private final Context context; private final Context context;
private ImageLoader imageLoader = ImageLoader.getInstance(); private ImageLoader imageLoader = ImageLoader.getInstance();
private OnInfoItemGesture<StreamInfoItem> onStreamSelectedListener; private OnClickGesture<StreamInfoItem> onStreamSelectedListener;
private OnInfoItemGesture<ChannelInfoItem> onChannelSelectedListener; private OnClickGesture<ChannelInfoItem> onChannelSelectedListener;
private OnInfoItemGesture<PlaylistInfoItem> onPlaylistSelectedListener; private OnClickGesture<PlaylistInfoItem> onPlaylistSelectedListener;
public InfoItemBuilder(Context context) { public InfoItemBuilder(Context context) {
this.context = context; this.context = context;
@ -86,27 +87,27 @@ public class InfoItemBuilder {
return imageLoader; return imageLoader;
} }
public OnInfoItemGesture<StreamInfoItem> getOnStreamSelectedListener() { public OnClickGesture<StreamInfoItem> getOnStreamSelectedListener() {
return onStreamSelectedListener; return onStreamSelectedListener;
} }
public void setOnStreamSelectedListener(OnInfoItemGesture<StreamInfoItem> listener) { public void setOnStreamSelectedListener(OnClickGesture<StreamInfoItem> listener) {
this.onStreamSelectedListener = listener; this.onStreamSelectedListener = listener;
} }
public OnInfoItemGesture<ChannelInfoItem> getOnChannelSelectedListener() { public OnClickGesture<ChannelInfoItem> getOnChannelSelectedListener() {
return onChannelSelectedListener; return onChannelSelectedListener;
} }
public void setOnChannelSelectedListener(OnInfoItemGesture<ChannelInfoItem> listener) { public void setOnChannelSelectedListener(OnClickGesture<ChannelInfoItem> listener) {
this.onChannelSelectedListener = listener; this.onChannelSelectedListener = listener;
} }
public OnInfoItemGesture<PlaylistInfoItem> getOnPlaylistSelectedListener() { public OnClickGesture<PlaylistInfoItem> getOnPlaylistSelectedListener() {
return onPlaylistSelectedListener; return onPlaylistSelectedListener;
} }
public void setOnPlaylistSelectedListener(OnInfoItemGesture<PlaylistInfoItem> listener) { public void setOnPlaylistSelectedListener(OnClickGesture<PlaylistInfoItem> listener) {
this.onPlaylistSelectedListener = listener; this.onPlaylistSelectedListener = listener;
} }

View File

@ -17,6 +17,7 @@ import org.schabi.newpipe.info_list.holder.PlaylistInfoItemHolder;
import org.schabi.newpipe.info_list.holder.PlaylistMiniInfoItemHolder; import org.schabi.newpipe.info_list.holder.PlaylistMiniInfoItemHolder;
import org.schabi.newpipe.info_list.holder.StreamInfoItemHolder; import org.schabi.newpipe.info_list.holder.StreamInfoItemHolder;
import org.schabi.newpipe.info_list.holder.StreamMiniInfoItemHolder; import org.schabi.newpipe.info_list.holder.StreamMiniInfoItemHolder;
import org.schabi.newpipe.util.OnClickGesture;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -76,15 +77,15 @@ public class InfoListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
infoItemList = new ArrayList<>(); infoItemList = new ArrayList<>();
} }
public void setOnStreamSelectedListener(OnInfoItemGesture<StreamInfoItem> listener) { public void setOnStreamSelectedListener(OnClickGesture<StreamInfoItem> listener) {
infoItemBuilder.setOnStreamSelectedListener(listener); infoItemBuilder.setOnStreamSelectedListener(listener);
} }
public void setOnChannelSelectedListener(OnInfoItemGesture<ChannelInfoItem> listener) { public void setOnChannelSelectedListener(OnClickGesture<ChannelInfoItem> listener) {
infoItemBuilder.setOnChannelSelectedListener(listener); infoItemBuilder.setOnChannelSelectedListener(listener);
} }
public void setOnPlaylistSelectedListener(OnInfoItemGesture<PlaylistInfoItem> listener) { public void setOnPlaylistSelectedListener(OnClickGesture<PlaylistInfoItem> listener) {
infoItemBuilder.setOnPlaylistSelectedListener(listener); infoItemBuilder.setOnPlaylistSelectedListener(listener);
} }

View File

@ -1,12 +0,0 @@
package org.schabi.newpipe.info_list;
import org.schabi.newpipe.extractor.InfoItem;
public abstract class OnInfoItemGesture<T extends InfoItem> {
public abstract void selected(T selectedItem);
public void held(T selectedItem) {
// Optional gesture
}
}

View File

@ -1,11 +1,8 @@
package org.schabi.newpipe.fragments.local; package org.schabi.newpipe.util;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import org.schabi.newpipe.database.LocalItem; public abstract class OnClickGesture<T> {
import org.schabi.newpipe.extractor.InfoItem;
public abstract class OnLocalItemGesture<T extends LocalItem> {
public abstract void selected(T selectedItem); public abstract void selected(T selectedItem);