package info.justaway.task; import android.os.AsyncTask; import java.io.File; import java.util.ArrayList; import info.justaway.model.ImageResizer; import info.justaway.model.TwitterManager; import info.justaway.settings.PostStockSettings; import twitter4j.HashtagEntity; import twitter4j.StatusUpdate; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.UploadedMedia; import twitter4j.auth.AccessToken; public class UpdateStatusTask extends AsyncTask<StatusUpdate, Void, TwitterException> { private AccessToken mAccessToken; private ArrayList<File> mImagePathList; public UpdateStatusTask(AccessToken accessToken, ArrayList<File> imagePathList) { mAccessToken = accessToken; mImagePathList = imagePathList; } @Override protected TwitterException doInBackground(StatusUpdate... params) { StatusUpdate statusUpdate = params[0]; long maxFileSize = 3145728; // 3MB try { twitter4j.Status status; if (mAccessToken == null) { status = TwitterManager.getTwitter().updateStatus(statusUpdate); } else { // ツイート画面から来たとき Twitter twitter = TwitterManager.getTwitterInstance(); twitter.setOAuthAccessToken(mAccessToken); if (!mImagePathList.isEmpty()) { long[] mediaIds = new long[mImagePathList.size()]; for (int i = 0; i < mImagePathList.size(); i++) { File imageFile = ImageResizer.compress(mImagePathList.get(i), maxFileSize); UploadedMedia media = twitter.uploadMedia(imageFile); mediaIds[i] = media.getMediaId(); } statusUpdate.setMediaIds(mediaIds); } status = twitter.updateStatus(statusUpdate); } PostStockSettings postStockSettings = new PostStockSettings(); for (HashtagEntity hashtagEntity : status.getHashtagEntities()) { postStockSettings.addHashtag("#".concat(hashtagEntity.getText())); } } catch (TwitterException e) { e.printStackTrace(); return e; } return null; } }