-Added icon for adding stream to playlist.
-Renamed HistoryPlaylistFragment to StatisticsPlaylistFragment.
| @@ -58,6 +58,7 @@ import org.schabi.newpipe.extractor.stream.StreamInfoItem; | ||||
| import org.schabi.newpipe.extractor.stream.VideoStream; | ||||
| import org.schabi.newpipe.fragments.BackPressable; | ||||
| import org.schabi.newpipe.fragments.BaseStateFragment; | ||||
| import org.schabi.newpipe.fragments.local.PlaylistAppendDialog; | ||||
| import org.schabi.newpipe.history.HistoryListener; | ||||
| import org.schabi.newpipe.info_list.InfoItemBuilder; | ||||
| import org.schabi.newpipe.info_list.InfoItemDialog; | ||||
| @@ -145,6 +146,7 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo> implement | ||||
|  | ||||
|     private TextView detailControlsBackground; | ||||
|     private TextView detailControlsPopup; | ||||
|     private TextView detailControlsAddToPlaylist; | ||||
|     private TextView appendControlsDetail; | ||||
|  | ||||
|     private LinearLayout videoDescriptionRootLayout; | ||||
| @@ -327,6 +329,11 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo> implement | ||||
|             case R.id.detail_controls_popup: | ||||
|                 openPopupPlayer(false); | ||||
|                 break; | ||||
|             case R.id.detail_controls_playlist_append: | ||||
|                 if (getFragmentManager() != null && currentInfo != null) { | ||||
|                     PlaylistAppendDialog.newInstance(currentInfo).show(getFragmentManager(), TAG); | ||||
|                 } | ||||
|                 break; | ||||
|             case R.id.detail_uploader_root_layout: | ||||
|                 if (TextUtils.isEmpty(currentInfo.getUploaderUrl())) { | ||||
|                     Log.w(TAG, "Can't open channel because we got no channel URL"); | ||||
| @@ -429,6 +436,7 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo> implement | ||||
|  | ||||
|         detailControlsBackground = rootView.findViewById(R.id.detail_controls_background); | ||||
|         detailControlsPopup = rootView.findViewById(R.id.detail_controls_popup); | ||||
|         detailControlsAddToPlaylist = rootView.findViewById(R.id.detail_controls_playlist_append); | ||||
|         appendControlsDetail = rootView.findViewById(R.id.touch_append_detail); | ||||
|  | ||||
|         videoDescriptionRootLayout = rootView.findViewById(R.id.detail_description_root_layout); | ||||
| @@ -479,6 +487,7 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo> implement | ||||
|         thumbnailBackgroundButton.setOnClickListener(this); | ||||
|         detailControlsBackground.setOnClickListener(this); | ||||
|         detailControlsPopup.setOnClickListener(this); | ||||
|         detailControlsAddToPlaylist.setOnClickListener(this); | ||||
|         relatedStreamExpandButton.setOnClickListener(this); | ||||
|  | ||||
|         detailControlsBackground.setLongClickable(true); | ||||
|   | ||||
| @@ -144,9 +144,8 @@ public class LocalPlaylistFragment extends BaseListFragment<List<StreamEntity>, | ||||
|         infoListAdapter.setOnStreamSelectedListener(new InfoItemBuilder.OnInfoItemSelectedListener<StreamInfoItem>() { | ||||
|             @Override | ||||
|             public void selected(StreamInfoItem selectedItem) { | ||||
|                 if (getParentFragment() == null) return; | ||||
|                 // Requires the parent fragment to find holder for fragment replacement | ||||
|                 NavigationHelper.openVideoDetailFragment(getParentFragment().getFragmentManager(), | ||||
|                 NavigationHelper.openVideoDetailFragment(getFragmentManager(), | ||||
|                         selectedItem.getServiceId(), selectedItem.url, selectedItem.getName()); | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -9,7 +9,7 @@ import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
|  | ||||
| public class MostPlayedFragment extends HistoryPlaylistFragment { | ||||
| public class MostPlayedFragment extends StatisticsPlaylistFragment { | ||||
|     @Override | ||||
|     protected String getName() { | ||||
|         return getString(R.string.title_most_played); | ||||
|   | ||||
| @@ -35,7 +35,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers; | ||||
| 
 | ||||
| import static org.schabi.newpipe.util.AnimationUtils.animateView; | ||||
| 
 | ||||
| public abstract class HistoryPlaylistFragment | ||||
| public abstract class StatisticsPlaylistFragment | ||||
|         extends BaseListFragment<List<StreamStatisticsEntry>, Void> { | ||||
| 
 | ||||
|     private View headerRootLayout; | ||||
| @@ -130,9 +130,7 @@ public abstract class HistoryPlaylistFragment | ||||
|         infoListAdapter.setOnStreamSelectedListener(new InfoItemBuilder.OnInfoItemSelectedListener<StreamInfoItem>() { | ||||
|             @Override | ||||
|             public void selected(StreamInfoItem selectedItem) { | ||||
|                 if (getParentFragment() == null) return; | ||||
|                 // Requires the parent fragment to find holder for fragment replacement | ||||
|                 NavigationHelper.openVideoDetailFragment(getParentFragment().getFragmentManager(), | ||||
|                 NavigationHelper.openVideoDetailFragment(getFragmentManager(), | ||||
|                         selectedItem.getServiceId(), selectedItem.url, selectedItem.getName()); | ||||
|             } | ||||
| 
 | ||||
| @@ -231,7 +229,7 @@ public abstract class HistoryPlaylistFragment | ||||
| 
 | ||||
|             @Override | ||||
|             public void onError(Throwable exception) { | ||||
|                 HistoryPlaylistFragment.this.onError(exception); | ||||
|                 StatisticsPlaylistFragment.this.onError(exception); | ||||
|             } | ||||
| 
 | ||||
|             @Override | ||||
| @@ -11,7 +11,7 @@ import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
|  | ||||
| public class WatchHistoryFragment extends HistoryPlaylistFragment { | ||||
| public class WatchHistoryFragment extends StatisticsPlaylistFragment { | ||||
|     @Override | ||||
|     protected String getName() { | ||||
|         return getString(R.string.title_watch_history); | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-hdpi/ic_playlist_add_black_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 106 B | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-hdpi/ic_playlist_add_white_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 107 B | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-mdpi/ic_playlist_add_black_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 100 B | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-mdpi/ic_playlist_add_white_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 101 B | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xhdpi/ic_playlist_add_black_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 113 B | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xhdpi/ic_playlist_add_white_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 109 B | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xxhdpi/ic_playlist_add_black_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 129 B | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xxhdpi/ic_playlist_add_white_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 113 B | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xxxhdpi/ic_playlist_add_black_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 128 B | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-xxxhdpi/ic_playlist_add_white_24dp.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 111 B | 
| @@ -273,7 +273,26 @@ | ||||
|                             android:paddingBottom="6dp" | ||||
|                             android:paddingTop="6dp" | ||||
|                             android:text="@string/controls_background_title" | ||||
|                             android:textSize="12sp" /> | ||||
|                             android:textSize="12sp"/> | ||||
|  | ||||
|                         <TextView | ||||
|                             android:id="@+id/detail_controls_playlist_append" | ||||
|                             android:layout_width="60dp" | ||||
|                             android:layout_height="55dp" | ||||
|                             android:layout_alignParentTop="true" | ||||
|                             android:layout_gravity="center_vertical" | ||||
|                             android:layout_toLeftOf="@id/detail_controls_background" | ||||
|                             android:layout_toStartOf="@id/detail_controls_background" | ||||
|                             android:background="?attr/selectableItemBackgroundBorderless" | ||||
|                             android:clickable="true" | ||||
|                             android:focusable="true" | ||||
|                             android:contentDescription="@string/append_playlist" | ||||
|                             android:drawableTop="?attr/playlist_add" | ||||
|                             android:gravity="center" | ||||
|                             android:paddingBottom="6dp" | ||||
|                             android:paddingTop="6dp" | ||||
|                             android:text="@string/controls_add_to_playlist_title" | ||||
|                             android:textSize="12sp"/> | ||||
|                     </RelativeLayout> | ||||
|  | ||||
|                     <!--UPLOADER--> | ||||
|   | ||||
| @@ -26,6 +26,7 @@ | ||||
|     <attr name="play" format="reference"/> | ||||
|     <attr name="ic_hot" format="reference"/> | ||||
|     <attr name="ic_channel" format="reference"/> | ||||
|     <attr name="playlist_add" format="reference"/> | ||||
|  | ||||
|     <!-- Can't refer to colors directly into drawable's xml--> | ||||
|     <attr name="toolbar_shadow_drawable" format="reference"/> | ||||
|   | ||||
| @@ -38,6 +38,7 @@ | ||||
|  | ||||
|     <string name="controls_background_title">Background</string> | ||||
|     <string name="controls_popup_title">Popup</string> | ||||
|     <string name="controls_add_to_playlist_title">Add To</string> | ||||
|  | ||||
|     <string name="download_path_title">Video download path</string> | ||||
|     <string name="download_path_summary">Path to store downloaded videos in</string> | ||||
| @@ -375,4 +376,5 @@ | ||||
|     <string name="create_playlist">Create New Playlist</string> | ||||
|     <string name="delete_playlist">Delete Playlist</string> | ||||
|     <string name="playlist_name_input">Name</string> | ||||
|     <string name="append_playlist">Add To Playlist</string> | ||||
| </resources> | ||||
|   | ||||
| @@ -41,6 +41,7 @@ | ||||
|         <item name="play">@drawable/ic_play_arrow_black_24dp</item> | ||||
|         <item name="ic_hot">@drawable/ic_whatshot_black_24dp</item> | ||||
|         <item name="ic_channel">@drawable/ic_channel_black_24dp</item> | ||||
|         <item name="playlist_add">@drawable/ic_playlist_add_black_24dp</item> | ||||
|  | ||||
|         <item name="separator_color">@color/light_separator_color</item> | ||||
|         <item name="contrast_background_color">@color/light_contrast_background_color</item> | ||||
| @@ -88,6 +89,7 @@ | ||||
|         <item name="play">@drawable/ic_play_arrow_white_24dp</item> | ||||
|         <item name="ic_hot">@drawable/ic_whatshot_white_24dp</item> | ||||
|         <item name="ic_channel">@drawable/ic_channel_white_24dp</item> | ||||
|         <item name="playlist_add">@drawable/ic_playlist_add_white_24dp</item> | ||||
|  | ||||
|         <item name="separator_color">@color/dark_separator_color</item> | ||||
|         <item name="contrast_background_color">@color/dark_contrast_background_color</item> | ||||
|   | ||||
 John Zhen Mo
					John Zhen Mo