diff options
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 | 19 |
1 files changed, 15 insertions, 4 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 79574623..b36e12f3 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 @@ -24,6 +24,7 @@ package net.lacolaco.smileessence.view.dialog; +import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.graphics.drawable.ColorDrawable; @@ -38,6 +39,7 @@ import net.lacolaco.smileessence.Application; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; +import net.lacolaco.smileessence.command.CommandOpenHashtagDialog; import net.lacolaco.smileessence.command.CommandOpenURL; import net.lacolaco.smileessence.command.CommandOpenUserDetail; import net.lacolaco.smileessence.data.PostState; @@ -55,6 +57,7 @@ import net.lacolaco.smileessence.viewmodel.StatusViewModel; import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; public class StatusDetailDialogFragment extends StackableDialogFragment implements View.OnClickListener { @@ -284,17 +287,25 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen } private List<Command> getCommands() { + Activity activity = getActivity(); ArrayList<Command> commands = new ArrayList<>(); + // Retweeter + if (tweet.getRetweetedTweet() != null && tweet.getUser() != tweet.getRetweetedTweet().getUser()) + commands.add(new CommandOpenUserDetail(activity, tweet.getUser().getScreenName())); // Mentions - for (String screenName : tweet.getMentions()) { - commands.add(new CommandOpenUserDetail(getActivity(), screenName)); + for (String screenName : new ArrayList<>(new LinkedHashSet<>(tweet.getMentions()))) { // Array#uniq + commands.add(new CommandOpenUserDetail(activity, screenName)); + } + // Hashtags + for (String hashtag : tweet.getHashtags()) { + commands.add(new CommandOpenHashtagDialog(activity, hashtag)); } // URL for (String url : tweet.getUrlsExpanded()) { - commands.add(new CommandOpenURL(getActivity(), url)); + commands.add(new CommandOpenURL(activity, url)); } for (String url : tweet.getMediaUrls()) { - commands.add(new CommandOpenURL(getActivity(), url)); + commands.add(new CommandOpenURL(activity, url)); } return commands; } |