Merge pull request #4721 from tonytamsf/share-by-timecode

share by timecode
This commit is contained in:
ByteHamster 2020-11-30 20:00:18 +01:00 committed by GitHub
commit d20557c1b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 68 additions and 65 deletions

View File

@ -19,74 +19,77 @@ import de.danoeh.antennapod.core.feed.FeedMedia;
/** Utility methods for sharing data */
public class ShareUtils {
private static final String TAG = "ShareUtils";
private static final String TAG = "ShareUtils";
private ShareUtils() {}
public static void shareLink(Context context, String text) {
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, text);
context.startActivity(Intent.createChooser(i, context.getString(R.string.share_url_label)));
}
public static void shareFeedlink(Context context, Feed feed) {
shareLink(context, feed.getTitle() + ": " + feed.getLink());
}
public static void shareFeedDownloadLink(Context context, Feed feed) {
shareLink(context, feed.getTitle() + ": " + feed.getDownload_url());
}
public static void shareFeedItemLink(Context context, FeedItem item) {
shareFeedItemLink(context, item, false);
}
public static void shareFeedItemDownloadLink(Context context, FeedItem item) {
shareFeedItemDownloadLink(context, item, false);
}
private static String getItemShareText(FeedItem item) {
return item.getFeed().getTitle() + ": " + item.getTitle();
}
public static boolean hasLinkToShare(FeedItem item) {
return FeedItemUtil.getLinkWithFallback(item) != null;
private ShareUtils() {
}
public static void shareFeedItemLink(Context context, FeedItem item, boolean withPosition) {
String text = getItemShareText(item) + " " + FeedItemUtil.getLinkWithFallback(item);
if(withPosition) {
int pos = item.getMedia().getPosition();
text += " [" + Converter.getDurationStringLong(pos) + "]";
}
shareLink(context, text);
}
public static void shareLink(Context context, String text) {
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, text);
context.startActivity(Intent.createChooser(i, context.getString(R.string.share_url_label)));
}
public static void shareFeedItemDownloadLink(Context context, FeedItem item, boolean withPosition) {
String text = getItemShareText(item) + " " + item.getMedia().getDownload_url();
if(withPosition) {
int pos = item.getMedia().getPosition();
text += " [" + Converter.getDurationStringLong(pos) + "]";
}
shareLink(context, text);
}
public static void shareFeedlink(Context context, Feed feed) {
shareLink(context, feed.getTitle() + ": " + feed.getLink());
}
public static void shareFeedItemFile(Context context, FeedMedia media) {
Intent i = new Intent(Intent.ACTION_SEND);
i.setType(media.getMime_type());
Uri fileUri = FileProvider.getUriForFile(context, context.getString(R.string.provider_authority),
new File(media.getLocalMediaUrl()));
i.putExtra(Intent.EXTRA_STREAM, fileUri);
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
List<ResolveInfo> resInfoList = context.getPackageManager().queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolveInfo : resInfoList) {
String packageName = resolveInfo.activityInfo.packageName;
context.grantUriPermission(packageName, fileUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
}
context.startActivity(Intent.createChooser(i, context.getString(R.string.share_file_label)));
Log.e(TAG, "shareFeedItemFile called");
}
public static void shareFeedDownloadLink(Context context, Feed feed) {
shareLink(context, feed.getTitle() + ": " + feed.getDownload_url());
}
public static void shareFeedItemLink(Context context, FeedItem item) {
shareFeedItemLink(context, item, false);
}
public static void shareFeedItemDownloadLink(Context context, FeedItem item) {
shareFeedItemDownloadLink(context, item, false);
}
private static String getItemShareText(FeedItem item) {
return item.getFeed().getTitle() + ": " + item.getTitle();
}
public static boolean hasLinkToShare(FeedItem item) {
return FeedItemUtil.getLinkWithFallback(item) != null;
}
public static void shareFeedItemLink(Context context, FeedItem item, boolean withPosition) {
String text = getItemShareText(item) + " " + FeedItemUtil.getLinkWithFallback(item);
if (withPosition) {
int pos = item.getMedia().getPosition();
text += " [" + Converter.getDurationStringLong(pos) + "]";
}
shareLink(context, text);
}
public static void shareFeedItemDownloadLink(Context context, FeedItem item, boolean withPosition) {
String text = getItemShareText(item) + " " + item.getMedia().getDownload_url();
if (withPosition) {
int pos = item.getMedia().getPosition();
text += "#t=" + pos / 1000;
text += " [" + Converter.getDurationStringLong(pos) + "]";
}
shareLink(context, text);
}
public static void shareFeedItemFile(Context context, FeedMedia media) {
Intent i = new Intent(Intent.ACTION_SEND);
i.setType(media.getMime_type());
Uri fileUri = FileProvider.getUriForFile(context, context.getString(R.string.provider_authority),
new File(media.getLocalMediaUrl()));
i.putExtra(Intent.EXTRA_STREAM, fileUri);
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
List<ResolveInfo> resInfoList = context.getPackageManager()
.queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolveInfo : resInfoList) {
String packageName = resolveInfo.activityInfo.packageName;
context.grantUriPermission(packageName, fileUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
}
context.startActivity(Intent.createChooser(i, context.getString(R.string.share_file_label)));
Log.e(TAG, "shareFeedItemFile called");
}
}