Skip to content

Commit 83357ca

Browse files
committed
Added sharing a link with timestamp from a chapter into the long click for each chapter
1 parent 2a98cca commit 83357ca

3 files changed

Lines changed: 23 additions & 5 deletions

File tree

app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentAdapter.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,6 @@ class StreamSegmentAdapter(
6161

6262
interface StreamSegmentListener {
6363
fun onItemClick(item: StreamSegmentItem, seconds: Int)
64+
fun onItemLongClick(item: StreamSegmentItem, seconds: Int)
6465
}
6566
}

app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentItem.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class StreamSegmentItem(
4141
viewHolder.root.findViewById<TextView>(R.id.textViewStartSeconds).text =
4242
Localization.getDurationString(item.startTimeSeconds.toLong())
4343
viewHolder.root.setOnClickListener { onClick.onItemClick(this, item.startTimeSeconds) }
44+
viewHolder.root.setOnLongClickListener { onClick.onItemLongClick(this, item.startTimeSeconds); true }
4445
viewHolder.root.isSelected = isSelected
4546
}
4647

app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import org.schabi.newpipe.fragments.OnScrollBelowItemsListener;
5353
import org.schabi.newpipe.fragments.detail.VideoDetailFragment;
5454
import org.schabi.newpipe.info_list.StreamSegmentAdapter;
55+
import org.schabi.newpipe.info_list.StreamSegmentItem;
5556
import org.schabi.newpipe.ktx.AnimationType;
5657
import org.schabi.newpipe.local.dialog.PlaylistDialog;
5758
import org.schabi.newpipe.player.Player;
@@ -69,6 +70,7 @@
6970
import org.schabi.newpipe.util.DeviceUtils;
7071
import org.schabi.newpipe.util.NavigationHelper;
7172
import org.schabi.newpipe.util.external_communication.KoreUtils;
73+
import org.schabi.newpipe.util.external_communication.ShareUtils;
7274

7375
import java.util.List;
7476
import java.util.Objects;
@@ -644,7 +646,7 @@ private void onSegmentsClicked() {
644646
private void buildSegments() {
645647
binding.itemsList.setAdapter(segmentAdapter);
646648
binding.itemsList.setClickable(true);
647-
binding.itemsList.setLongClickable(false);
649+
binding.itemsList.setLongClickable(true);
648650

649651
binding.itemsList.clearOnScrollListeners();
650652
if (itemTouchHelper != null) {
@@ -696,10 +698,24 @@ public void onScrolledDown(final RecyclerView recyclerView) {
696698
}
697699

698700
private StreamSegmentAdapter.StreamSegmentListener getStreamSegmentListener() {
699-
return (item, seconds) -> {
700-
segmentAdapter.selectSegment(item);
701-
player.seekTo(seconds * 1000L);
702-
player.triggerProgressUpdate();
701+
return new StreamSegmentAdapter.StreamSegmentListener() {
702+
@Override
703+
public void onItemClick(@NonNull final StreamSegmentItem item, final int seconds) {
704+
segmentAdapter.selectSegment(item);
705+
player.seekTo(seconds * 1000L);
706+
player.triggerProgressUpdate();
707+
}
708+
709+
@Override
710+
public void onItemLongClick(@NonNull final StreamSegmentItem item, final int seconds) {
711+
final PlayQueueItem currentItem = player.getCurrentItem();
712+
if (currentItem != null) {
713+
String videoUrl = player.getVideoUrl();
714+
videoUrl += ("&t=" + seconds);
715+
ShareUtils.shareText(context, currentItem.getTitle(),
716+
videoUrl, currentItem.getThumbnailUrl());
717+
}
718+
}
703719
};
704720
}
705721

0 commit comments

Comments
 (0)