1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2024-12-23 16:40:32 +00:00

Merge pull request #6436 from Abanoub8/add_url_button

Add copy url function to share button
This commit is contained in:
Stypox 2021-06-08 14:37:10 +02:00 committed by GitHub
commit 0b64382ef6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -532,6 +532,7 @@ public final class Player implements
binding.moreOptionsButton.setOnClickListener(this); binding.moreOptionsButton.setOnClickListener(this);
binding.moreOptionsButton.setOnLongClickListener(this); binding.moreOptionsButton.setOnLongClickListener(this);
binding.share.setOnClickListener(this); binding.share.setOnClickListener(this);
binding.share.setOnLongClickListener(this);
binding.fullScreenButton.setOnClickListener(this); binding.fullScreenButton.setOnClickListener(this);
binding.screenRotationButton.setOnClickListener(this); binding.screenRotationButton.setOnClickListener(this);
binding.playWithKodi.setOnClickListener(this); binding.playWithKodi.setOnClickListener(this);
@ -2917,6 +2918,18 @@ public final class Player implements
: currentMetadata.getMetadata().getUrl(); : currentMetadata.getMetadata().getUrl();
} }
@NonNull
private String getVideoUrlAtCurrentTime() {
final int timeSeconds = binding.playbackSeekBar.getProgress() / 1000;
String videoUrl = getVideoUrl();
if (!isLive() && timeSeconds >= 0 && currentMetadata != null
&& currentMetadata.getMetadata().getServiceId() == YouTube.getServiceId()) {
// Timestamp doesn't make sense in a live stream so drop it
videoUrl += ("&t=" + timeSeconds);
}
return videoUrl;
}
@NonNull @NonNull
public String getVideoTitle() { public String getVideoTitle() {
return currentMetadata == null return currentMetadata == null
@ -3580,7 +3593,7 @@ public final class Player implements
} else if (v.getId() == binding.moreOptionsButton.getId()) { } else if (v.getId() == binding.moreOptionsButton.getId()) {
onMoreOptionsClicked(); onMoreOptionsClicked();
} else if (v.getId() == binding.share.getId()) { } else if (v.getId() == binding.share.getId()) {
onShareClicked(); ShareUtils.shareText(context, getVideoTitle(), getVideoUrlAtCurrentTime());
} else if (v.getId() == binding.playWithKodi.getId()) { } else if (v.getId() == binding.playWithKodi.getId()) {
onPlayWithKodiClicked(); onPlayWithKodiClicked();
} else if (v.getId() == binding.openInBrowser.getId()) { } else if (v.getId() == binding.openInBrowser.getId()) {
@ -3629,6 +3642,8 @@ public final class Player implements
fragmentListener.onMoreOptionsLongClicked(); fragmentListener.onMoreOptionsLongClicked();
hideControls(0, 0); hideControls(0, 0);
hideSystemUIIfNeeded(); hideSystemUIIfNeeded();
} else if (v.getId() == binding.share.getId()) {
ShareUtils.copyToClipboard(context, getVideoUrlAtCurrentTime());
} }
return true; return true;
} }
@ -3700,19 +3715,6 @@ public final class Player implements
showControls(DEFAULT_CONTROLS_DURATION); showControls(DEFAULT_CONTROLS_DURATION);
} }
private void onShareClicked() {
// share video at the current time (youtube.com/watch?v=ID&t=SECONDS)
// Timestamp doesn't make sense in a live stream so drop it
final int ts = binding.playbackSeekBar.getProgress() / 1000;
String videoUrl = getVideoUrl();
if (!isLive() && ts >= 0 && currentMetadata != null
&& currentMetadata.getMetadata().getServiceId() == YouTube.getServiceId()) {
videoUrl += ("&t=" + ts);
}
ShareUtils.shareText(context, getVideoTitle(), videoUrl);
}
private void onPlayWithKodiClicked() { private void onPlayWithKodiClicked() {
if (currentMetadata != null) { if (currentMetadata != null) {
pause(); pause();