blob: 7b685f8bc88f201ce8b6a6c287905a12fab58520 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
package de.danoeh.antennapod.ui.share;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.app.ShareCompat;
import androidx.core.content.FileProvider;
import de.danoeh.antennapod.ui.common.Converter;
import java.io.File;
import java.net.URLEncoder;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedMedia;
/** Utility methods for sharing data */
public class ShareUtils {
private static final String TAG = "ShareUtils";
private ShareUtils() {
}
public static void shareLink(@NonNull Context context, @NonNull String text) {
Intent intent = new ShareCompat.IntentBuilder(context)
.setType("text/plain")
.setText(text)
.setChooserTitle(R.string.share_url_label)
.createChooserIntent();
context.startActivity(intent);
}
public static void shareFeedLink(Context context, Feed feed) {
String text = feed.getTitle()
+ "\n\n"
+ "https://antennapod.org/deeplink/subscribe/?url="
+ URLEncoder.encode(feed.getDownloadUrl())
+ "&title="
+ URLEncoder.encode(feed.getTitle());
shareLink(context, text);
}
public static boolean hasLinkToShare(FeedItem item) {
return item.getLinkWithFallback() != null;
}
public static void shareMediaDownloadLink(Context context, FeedMedia media) {
shareLink(context, media.getDownloadUrl());
}
public static void shareFeedItemLinkWithDownloadLink(Context context, FeedItem item, boolean withPosition) {
String text = item.getFeed().getTitle() + ": " + item.getTitle();
int pos = 0;
if (item.getMedia() != null && withPosition) {
text += "\n" + context.getResources().getString(R.string.share_starting_position_label) + ": ";
pos = item.getMedia().getPosition();
text += Converter.getDurationStringLong(pos);
}
if (hasLinkToShare(item)) {
text += "\n\n" + context.getResources().getString(R.string.share_dialog_episode_website_label) + ": ";
text += item.getLinkWithFallback();
}
if (item.getMedia() != null && item.getMedia().getDownloadUrl() != null) {
text += "\n\n" + context.getResources().getString(R.string.share_dialog_media_file_label) + ": ";
text += item.getMedia().getDownloadUrl();
if (withPosition) {
text += "#t=" + pos / 1000;
}
}
shareLink(context, text);
}
public static void shareFeedItemFile(Context context, FeedMedia media) {
Uri fileUri = FileProvider.getUriForFile(context, context.getString(R.string.provider_authority),
new File(media.getLocalFileUrl()));
new ShareCompat.IntentBuilder(context)
.setType(media.getMimeType())
.addStream(fileUri)
.setChooserTitle(R.string.share_file_label)
.startChooser();
Log.e(TAG, "shareFeedItemFile called");
}
}
|