Merge pull request #8397 from notaLonelyDay/add-download-to-longpress-menu
Add download to longpress menu
This commit is contained in:
commit
d9af788514
3 changed files with 16 additions and 4 deletions
|
@ -321,6 +321,7 @@ public final class InfoItemDialog {
|
||||||
*/
|
*/
|
||||||
public Builder addDefaultEndEntries() {
|
public Builder addDefaultEndEntries() {
|
||||||
addAllEntries(
|
addAllEntries(
|
||||||
|
StreamDialogDefaultEntry.DOWNLOAD,
|
||||||
StreamDialogDefaultEntry.APPEND_PLAYLIST,
|
StreamDialogDefaultEntry.APPEND_PLAYLIST,
|
||||||
StreamDialogDefaultEntry.SHARE,
|
StreamDialogDefaultEntry.SHARE,
|
||||||
StreamDialogDefaultEntry.OPEN_IN_BROWSER
|
StreamDialogDefaultEntry.OPEN_IN_BROWSER
|
||||||
|
|
|
@ -2,6 +2,7 @@ package org.schabi.newpipe.info_list.dialog;
|
||||||
|
|
||||||
import static org.schabi.newpipe.util.NavigationHelper.openChannelFragment;
|
import static org.schabi.newpipe.util.NavigationHelper.openChannelFragment;
|
||||||
import static org.schabi.newpipe.util.SparseItemUtil.fetchItemInfoIfSparse;
|
import static org.schabi.newpipe.util.SparseItemUtil.fetchItemInfoIfSparse;
|
||||||
|
import static org.schabi.newpipe.util.SparseItemUtil.fetchStreamInfoAndSaveToDatabase;
|
||||||
import static org.schabi.newpipe.util.SparseItemUtil.fetchUploaderUrlIfSparse;
|
import static org.schabi.newpipe.util.SparseItemUtil.fetchUploaderUrlIfSparse;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
@ -11,6 +12,7 @@ import androidx.annotation.StringRes;
|
||||||
|
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.database.stream.model.StreamEntity;
|
import org.schabi.newpipe.database.stream.model.StreamEntity;
|
||||||
|
import org.schabi.newpipe.download.DownloadDialog;
|
||||||
import org.schabi.newpipe.local.dialog.PlaylistAppendDialog;
|
import org.schabi.newpipe.local.dialog.PlaylistAppendDialog;
|
||||||
import org.schabi.newpipe.local.dialog.PlaylistDialog;
|
import org.schabi.newpipe.local.dialog.PlaylistDialog;
|
||||||
import org.schabi.newpipe.local.history.HistoryRecordManager;
|
import org.schabi.newpipe.local.history.HistoryRecordManager;
|
||||||
|
@ -110,6 +112,15 @@ public enum StreamDialogDefaultEntry {
|
||||||
ShareUtils.shareText(fragment.requireContext(), item.getName(), item.getUrl(),
|
ShareUtils.shareText(fragment.requireContext(), item.getName(), item.getUrl(),
|
||||||
item.getThumbnailUrl())),
|
item.getThumbnailUrl())),
|
||||||
|
|
||||||
|
DOWNLOAD(R.string.download, (fragment, item) ->
|
||||||
|
fetchStreamInfoAndSaveToDatabase(fragment.requireContext(), item.getServiceId(),
|
||||||
|
item.getUrl(), info -> {
|
||||||
|
final DownloadDialog downloadDialog
|
||||||
|
= new DownloadDialog(fragment.requireContext(), info);
|
||||||
|
downloadDialog.show(fragment.getChildFragmentManager(), "downloadDialog");
|
||||||
|
})
|
||||||
|
),
|
||||||
|
|
||||||
OPEN_IN_BROWSER(R.string.open_in_browser, (fragment, item) ->
|
OPEN_IN_BROWSER(R.string.open_in_browser, (fragment, item) ->
|
||||||
ShareUtils.openUrlInBrowser(fragment.requireContext(), item.getUrl())),
|
ShareUtils.openUrlInBrowser(fragment.requireContext(), item.getUrl())),
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@ public final class SparseItemUtil {
|
||||||
* @param url url of the stream to load
|
* @param url url of the stream to load
|
||||||
* @param callback callback to be called with the result
|
* @param callback callback to be called with the result
|
||||||
*/
|
*/
|
||||||
private static void fetchStreamInfoAndSaveToDatabase(@NonNull final Context context,
|
public static void fetchStreamInfoAndSaveToDatabase(@NonNull final Context context,
|
||||||
final int serviceId,
|
final int serviceId,
|
||||||
@NonNull final String url,
|
@NonNull final String url,
|
||||||
final Consumer<StreamInfo> callback) {
|
final Consumer<StreamInfo> callback) {
|
||||||
|
|
Loading…
Reference in a new issue