diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2015-09-21 21:22:43 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2015-09-21 21:22:43 +0900 |
commit | 13efd820c264ff60b4e70a1af7d0208e8f5cd5cf (patch) | |
tree | 6134d4a362581a7bdf916d9f9dfc7d992a3c1e08 /app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java | |
parent | c0a2acb9bbcb4b97189b64d5b4bf1eb02723017f (diff) | |
download | SmileEssence-13efd820c264ff60b4e70a1af7d0208e8f5cd5cf.tar.gz |
にゃーん
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java')
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java | 64 |
1 files changed, 30 insertions, 34 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java index 72db5583..ce9227b5 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java @@ -30,34 +30,29 @@ import android.app.Dialog; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.View; -import android.widget.ImageButton; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.ListView; -import android.widget.TextView; - +import android.widget.*; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; import net.lacolaco.smileessence.command.CommandOpenURL; +import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.entity.User; +import net.lacolaco.smileessence.notification.NotificationType; +import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.twitter.TweetBuilder; import net.lacolaco.smileessence.twitter.task.DeleteStatusTask; import net.lacolaco.smileessence.twitter.task.FavoriteTask; import net.lacolaco.smileessence.twitter.task.RetweetTask; import net.lacolaco.smileessence.twitter.task.UnfavoriteTask; import net.lacolaco.smileessence.view.DialogHelper; -import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.view.adapter.StatusListAdapter; import net.lacolaco.smileessence.view.listener.ListItemClickListener; import net.lacolaco.smileessence.viewmodel.StatusViewModel; import java.util.ArrayList; -import twitter4j.MediaEntity; - public class StatusDetailDialogFragment extends StackableDialogFragment implements View.OnClickListener { // ------------------------------ FIELDS ------------------------------ @@ -133,17 +128,12 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen if (inReplyToStatusId == -1) { listView.setVisibility(View.GONE); } else { - account.tryGetStatus(inReplyToStatusId, new Account.StatusCallback() { - @Override - public void success(Tweet tweet) { - adapter.addToTop(new StatusViewModel(tweet)); + account.fetchTweet(inReplyToStatusId, replyTo -> { + if (replyTo != null) { + adapter.addToTop(new StatusViewModel(replyTo)); adapter.updateForce(); } - - @Override - public void error() { - } - }); + }, true); } return new AlertDialog.Builder(getActivity()).setView(header).create(); } @@ -153,12 +143,15 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen } private void deleteStatus(final MainActivity activity, final Account account, final Tweet tweet) { - confirm(activity, new Runnable() { - @Override - public void run() { - new DeleteStatusTask(account.getTwitter(), tweet.getOriginalTweet().getId()).execute(); - dismiss(); - } + confirm(activity, () -> { + new DeleteStatusTask(account, tweet.getOriginalTweet().getId()).onDoneUI(t -> { + if (t != null) { + Notificator.getInstance().publish(R.string.notice_status_delete_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_status_delete_failed, NotificationType.ALERT); + } + }).execute(); + dismiss(); }); } @@ -283,21 +276,24 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen private void toggleFavorite(MainActivity activity, Account account, Tweet tweet, Boolean isFavorited) { long statusID = tweet.getOriginalTweet().getId(); if (isFavorited) { - new UnfavoriteTask(account.getTwitter(), statusID).execute(); + new UnfavoriteTask(account, statusID).onDone(t -> { + if (t != null) { + Notificator.getInstance().publish(R.string.notice_unfavorite_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_unfavorite_failed, NotificationType.ALERT); + } + }).execute(); } else { - new FavoriteTask(account.getTwitter(), statusID).execute(); + new FavoriteTask(account, statusID).execute(); } } private void toggleRetweet(final MainActivity activity, final Account account, final Tweet tweet, final Long retweetID) { - confirm(activity, new Runnable() { - @Override - public void run() { - if (retweetID != -1L) { - new DeleteStatusTask(account.getTwitter(), retweetID).execute(); - } else { - new RetweetTask(account.getTwitter(), tweet.getOriginalTweet().getId()).execute(); - } + confirm(activity, () -> { + if (retweetID != -1L) { + deleteStatus(activity, account, tweet); + } else { + new RetweetTask(account, tweet.getOriginalTweet().getId()).execute(); } }); } |