Android Open Source - tpblogr Std Email Post Publisher From Project Back to project page tpblogr .
License The source code is released under:
MIT License
If you think the Android project tpblogr listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package blogr.vpm.fr.blogr.publish;
/ / w w w . j a v a 2 s . c o m
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.text.Html;
import android.util.Log;
import blogr.vpm.fr.blogr.bean.Blog;
import blogr.vpm.fr.blogr.bean.EmailBlog;
import blogr.vpm.fr.blogr.bean.Post;
/**
* Created by vince on 16/10/14.
*/
public class StdEmailPostPublisher implements PostPublisher {
private final Context context;
private Formatter formatter;
public StdEmailPostPublisher(Context context) {
this.context = context;
this.formatter = new HtmlFormatter();
}
@Override
public void publish(Blog blog, Post post) {
Intent intent;
if (!(blog instanceof EmailBlog)) {
Log.e("publisher" , "Cannot publish a non-email blog as an email" );
return ;
}
EmailBlog emailBlog = (EmailBlog) blog;
if (!post.getPicturesAsMediaContent().isEmpty()) {
intent = emailIntentWithAttachments(emailBlog, post);
} else {
intent = emailIntentWithoutAttachments(emailBlog, post);
}
context.startActivity(intent);
}
@Override
public void setFormatter(Formatter formatter) {
this.formatter = formatter;
}
protected void putEmailContent(Intent intent, String content) {
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(content));
}
private Intent emailIntentWithAttachments(EmailBlog blog, Post post) {
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{blog.getEmailAddress()});
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, post.getPicturesAsFiles(context));
intent.setType("text/plain" );
intent.putExtra(Intent.EXTRA_SUBJECT, post.getTitle());
String content = this.formatter.format(post.getContent());
putEmailContent(intent, content);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
return intent;
}
private Intent emailIntentWithoutAttachments(EmailBlog blog, Post post) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setType("text/plain" );
intent.putExtra(Intent.EXTRA_SUBJECT, post.getTitle());
String content = this.formatter.format(post.getContent());
putEmailContent(intent, content);
intent.setData(Uri.parse("mailto:" + blog.getEmailAddress()));
putEmailContent(intent, content);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
return intent;
}
}
Java Source Code List blogr.vpm.fr.blogr.activity.AllPreferencesActivity.java blogr.vpm.fr.blogr.activity.BlogActivity.java blogr.vpm.fr.blogr.activity.BlogListDialogFragment.java blogr.vpm.fr.blogr.activity.DialogDismissedListener.java blogr.vpm.fr.blogr.activity.EmailBlogEditionFragment.java blogr.vpm.fr.blogr.activity.FlickrDialogFragment.java blogr.vpm.fr.blogr.activity.GithubBlogEditionFragment.java blogr.vpm.fr.blogr.activity.InvalidatedModelListener.java blogr.vpm.fr.blogr.activity.PostEditionActivity.java blogr.vpm.fr.blogr.activity.PostEditionFragment.java blogr.vpm.fr.blogr.activity.PostListActivity.java blogr.vpm.fr.blogr.activity.PostListChoiceModeListener.java blogr.vpm.fr.blogr.activity.PostListFragment.java blogr.vpm.fr.blogr.activity.PostSelectionListener.java blogr.vpm.fr.blogr.activity.PreferenceCategoryFragment.java blogr.vpm.fr.blogr.apis.flickr.FlickrJAndroidProvider.java blogr.vpm.fr.blogr.apis.flickr.FlickrJAsyncTaskProvider.java blogr.vpm.fr.blogr.apis.flickr.FlickrProvider.java blogr.vpm.fr.blogr.apis.flickr.ParcelableFlickrPhoto.java blogr.vpm.fr.blogr.bean.Blog.java blogr.vpm.fr.blogr.bean.EmailBlog.java blogr.vpm.fr.blogr.bean.GithubBlog.java blogr.vpm.fr.blogr.bean.Post.java blogr.vpm.fr.blogr.bean.TPBlog.java blogr.vpm.fr.blogr.format.AlignCenterTagsProvider.java blogr.vpm.fr.blogr.format.AlignLeftTagsProvider.java blogr.vpm.fr.blogr.format.AlignRightTagsProvider.java blogr.vpm.fr.blogr.insertion.DefaultInserter.java blogr.vpm.fr.blogr.insertion.Inserter.java blogr.vpm.fr.blogr.insertion.SingleTagProvider.java blogr.vpm.fr.blogr.insertion.SurroundingTagsProvider.java blogr.vpm.fr.blogr.location.AndroidLocationProvider.java blogr.vpm.fr.blogr.location.LatLongTagProvider.java blogr.vpm.fr.blogr.location.LocationProvider.java blogr.vpm.fr.blogr.persistence.BlogRetriever.java blogr.vpm.fr.blogr.persistence.BlogSaver.java blogr.vpm.fr.blogr.persistence.FileBlogManager.java blogr.vpm.fr.blogr.persistence.FilePostRetriever.java blogr.vpm.fr.blogr.persistence.FilePostSaver.java blogr.vpm.fr.blogr.persistence.PostRetriever.java blogr.vpm.fr.blogr.persistence.PostSaver.java blogr.vpm.fr.blogr.picture.AsyncPictureLoader.java blogr.vpm.fr.blogr.picture.ImageViewLoader.java blogr.vpm.fr.blogr.picture.PictureLoadedListener.java blogr.vpm.fr.blogr.picture.PictureMdTagsProvider.java blogr.vpm.fr.blogr.picture.PicturePickedListener.java blogr.vpm.fr.blogr.picture.PictureTagProvider.java blogr.vpm.fr.blogr.picture.PictureTpTagsProvider.java blogr.vpm.fr.blogr.publish.Formatter.java blogr.vpm.fr.blogr.publish.HtmlFormatter.java blogr.vpm.fr.blogr.publish.IdentityFormatter.java blogr.vpm.fr.blogr.publish.PostPublisher.java blogr.vpm.fr.blogr.publish.StdEmailPostPublisher.java blogr.vpm.fr.blogr.publish.TPJavaMailPostPublisher.java blogr.vpm.fr.blogr.publish.TPPostPublisher.java blogr.vpm.fr.blogr.service.PostPublishingPreferencesProvider.java blogr.vpm.fr.blogr.service.PostPublishingServiceProvider.java