diff options
author | laco0416 <laco0416@gmail.com> | 2014-08-29 20:39:37 +0900 |
---|---|---|
committer | laco0416 <laco0416@gmail.com> | 2014-08-29 20:39:37 +0900 |
commit | f2b31a5d614eb8c4c166312c06fd17bdbc695267 (patch) | |
tree | 201dcd9a711996727492475386cd8f3ae6e5cdbd | |
parent | 2e919d13d2c161df500bf95c1a61bc147dd2e3cf (diff) | |
download | SmileEssence-f2b31a5d614eb8c4c166312c06fd17bdbc695267.tar.gz |
Add ReplyToAll command to status detail dialog
11 files changed, 55 insertions, 39 deletions
diff --git a/src/net/lacolaco/smileessence/command/Command.java b/src/net/lacolaco/smileessence/command/Command.java index 3365e2de..c3ea509f 100644 --- a/src/net/lacolaco/smileessence/command/Command.java +++ b/src/net/lacolaco/smileessence/command/Command.java @@ -31,12 +31,14 @@ import android.widget.TextView; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.status.*; import net.lacolaco.smileessence.command.user.*; +import net.lacolaco.smileessence.data.CommandSettingCache; import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.viewmodel.IViewModel; import twitter4j.Status; import twitter4j.User; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; public abstract class Command implements IViewModel @@ -99,6 +101,27 @@ public abstract class Command implements IViewModel return commands; } + public static void filter(List<Command> commands) + { + Iterator<Command> iterator = commands.iterator(); + while(iterator.hasNext()) + { + Command command = iterator.next(); + if(!command.isEnabled()) + { + iterator.remove(); + } + else if(command.getKey() >= 0) + { + boolean visibility = CommandSettingCache.getInstance().get(command.getKey()); + if(!visibility) + { + iterator.remove(); + } + } + } + } + // --------------------- GETTER / SETTER METHODS --------------------- public Activity getActivity() diff --git a/src/net/lacolaco/smileessence/view/dialog/HashtagDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/HashtagDialogFragment.java index bfad0634..7a38c855 100644 --- a/src/net/lacolaco/smileessence/view/dialog/HashtagDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/HashtagDialogFragment.java @@ -72,7 +72,7 @@ public class HashtagDialogFragment extends MenuDialogFragment Account account = activity.getCurrentAccount(); String text = getHashtagText(); List<Command> commands = getCommands(activity, text); - filterCommands(commands); + Command.filter(commands); View body = activity.getLayoutInflater().inflate(R.layout.dialog_menu_list, null); ListView listView = (ListView) body.findViewById(R.id.listview_dialog_menu_list); CustomListAdapter<Command> adapter = new CustomListAdapter<>(activity, Command.class); diff --git a/src/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java index 987d3359..7282e366 100644 --- a/src/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java @@ -30,10 +30,6 @@ import android.widget.AdapterView; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.Command; import net.lacolaco.smileessence.command.IConfirmable; -import net.lacolaco.smileessence.data.CommandSettingCache; - -import java.util.Iterator; -import java.util.List; public abstract class MenuDialogFragment extends DialogFragment { @@ -58,27 +54,6 @@ public abstract class MenuDialogFragment extends DialogFragment } } - protected final void filterCommands(List<Command> commands) - { - Iterator<Command> iterator = commands.iterator(); - while(iterator.hasNext()) - { - Command command = iterator.next(); - if(!command.isEnabled()) - { - iterator.remove(); - } - else if(command.getKey() >= 0) - { - boolean visibility = CommandSettingCache.getInstance().get(command.getKey()); - if(!visibility) - { - iterator.remove(); - } - } - } - } - protected void onItemClick(AdapterView<?> adapterView, int i) { final Command command = (Command) adapterView.getItemAtPosition(i); diff --git a/src/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java index 07defc7e..119039ee 100644 --- a/src/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java @@ -107,7 +107,7 @@ public class MessageMenuDialogFragment extends MenuDialogFragment implements Vie Account account = activity.getCurrentAccount(); DirectMessage message = TwitterUtils.tryGetMessage(account, getMessageID()); List<Command> commands = getCommands(activity, message, account); - filterCommands(commands); + Command.filter(commands); View body = activity.getLayoutInflater().inflate(R.layout.dialog_menu_list, null); ListView listView = (ListView) body.findViewById(R.id.listview_dialog_menu_list); CustomListAdapter<Command> adapter = new CustomListAdapter<>(activity, Command.class); diff --git a/src/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java index 0403e859..5e321a53 100644 --- a/src/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java @@ -55,7 +55,7 @@ public class PostMenuDialogFragment extends MenuDialogFragment MainActivity activity = (MainActivity) getActivity(); Account account = activity.getCurrentAccount(); List<Command> commands = getCommands(activity); - filterCommands(commands); + Command.filter(commands); View body = activity.getLayoutInflater().inflate(R.layout.dialog_menu_list, null); ListView listView = (ListView) body.findViewById(R.id.listview_dialog_menu_list); CustomListAdapter<Command> adapter = new CustomListAdapter<>(activity, Command.class); diff --git a/src/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java index eaaa918e..58f6f681 100644 --- a/src/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java @@ -84,7 +84,7 @@ public class QuoteDialogFragment extends MenuDialogFragment public void onCallback(Status status) { List<Command> commands = getCommands(activity, status); - filterCommands(commands); + Command.filter(commands); for(Command command : commands) { adapter.addToBottom(command); diff --git a/src/net/lacolaco/smileessence/view/dialog/SelectSearchQueryDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/SelectSearchQueryDialogFragment.java index 3b08f924..afd40e43 100644 --- a/src/net/lacolaco/smileessence/view/dialog/SelectSearchQueryDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/SelectSearchQueryDialogFragment.java @@ -73,7 +73,7 @@ public class SelectSearchQueryDialogFragment extends MenuDialogFragment implemen MainActivity activity = (MainActivity) getActivity(); Account account = activity.getCurrentAccount(); List<Command> commands = getCommands(activity); - filterCommands(commands); + Command.filter(commands); View body = activity.getLayoutInflater().inflate(R.layout.dialog_menu_list, null); ListView listView = (ListView) body.findViewById(R.id.listview_dialog_menu_list); CustomListAdapter<Command> adapter = new CustomListAdapter<>(activity, Command.class); diff --git a/src/net/lacolaco/smileessence/view/dialog/SelectUserListDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/SelectUserListDialogFragment.java index 465c3d30..9fdcdf16 100644 --- a/src/net/lacolaco/smileessence/view/dialog/SelectUserListDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/SelectUserListDialogFragment.java @@ -51,7 +51,7 @@ public class SelectUserListDialogFragment extends MenuDialogFragment MainActivity activity = (MainActivity) getActivity(); Account account = activity.getCurrentAccount(); List<Command> commands = getCommands(activity); - filterCommands(commands); + Command.filter(commands); View body = activity.getLayoutInflater().inflate(R.layout.dialog_menu_list, null); ListView listView = (ListView) body.findViewById(R.id.listview_dialog_menu_list); CustomListAdapter<Command> adapter = new CustomListAdapter<>(activity, Command.class); diff --git a/src/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java index d4d754cf..27a4e350 100644 --- a/src/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java @@ -36,6 +36,7 @@ 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.command.status.StatusCommandReplyToAll; import net.lacolaco.smileessence.data.StatusCache; import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.twitter.TweetBuilder; @@ -246,7 +247,9 @@ public class StatusDetailDialogFragment extends DialogFragment implements View.O delete.setVisibility(deletable ? View.VISIBLE : View.GONE); LinearLayout commandsLayout = (LinearLayout) view.findViewById(R.id.linearlayout_status_detail_menu); commandsLayout.setClickable(true); - for(final Command command : getURLCommands(activity, status)) + ArrayList<Command> commands = getCommands(activity, status, account); + Command.filter(commands); + for(final Command command : commands) { View commandView = command.getView(activity, activity.getLayoutInflater(), null); commandView.setBackgroundColor(getResources().getColor(R.color.transparent)); @@ -277,9 +280,12 @@ public class StatusDetailDialogFragment extends DialogFragment implements View.O } } - private ArrayList<Command> getURLCommands(Activity activity, Status status) + private ArrayList<Command> getCommands(Activity activity, Status status, Account account) { ArrayList<Command> commands = new ArrayList<>(); + // ReplyToAll + commands.add(new StatusCommandReplyToAll(activity, status, account)); + // URL if(status.getURLEntities() != null) { for(URLEntity urlEntity : status.getURLEntities()) diff --git a/src/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java index 00f2f1ae..30c9beeb 100644 --- a/src/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java @@ -32,16 +32,15 @@ import android.view.View; import android.widget.ListView; 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.CommandOpenUserDetail; -import net.lacolaco.smileessence.command.CommandSaveAsTemplate; +import net.lacolaco.smileessence.command.*; import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.twitter.util.TwitterUtils; import net.lacolaco.smileessence.view.adapter.CustomListAdapter; import net.lacolaco.smileessence.viewmodel.StatusViewModel; import twitter4j.HashtagEntity; +import twitter4j.MediaEntity; import twitter4j.Status; +import twitter4j.URLEntity; import java.util.ArrayList; import java.util.List; @@ -99,7 +98,7 @@ public class StatusMenuDialogFragment extends MenuDialogFragment public void onCallback(Status status) { List<Command> commands = getCommands(activity, status, account); - filterCommands(commands); + Command.filter(commands); for(Command command : commands) { adapter.addToBottom(command); @@ -115,6 +114,19 @@ public class StatusMenuDialogFragment extends MenuDialogFragment public void addBottomCommands(Activity activity, Status status, Account account, ArrayList<Command> commands) { commands.add(new CommandSaveAsTemplate(activity, TwitterUtils.getOriginalStatusText(status))); + // Media + if(status.getURLEntities() != null) + { + for(URLEntity urlEntity : status.getURLEntities()) + { + commands.add(new CommandOpenURL(activity, urlEntity.getExpandedURL())); + } + } + for(MediaEntity mediaEntity : status.getExtendedMediaEntities().length == 0 ? status.getMediaEntities() : status.getExtendedMediaEntities()) + { + commands.add(new CommandOpenURL(activity, mediaEntity.getMediaURL())); + } + //User for(String screenName : TwitterUtils.getScreenNames(status, null)) { commands.add(new CommandOpenUserDetail(activity, screenName, account)); diff --git a/src/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java index 8d7691de..9401dd96 100644 --- a/src/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java @@ -83,7 +83,7 @@ public class UserMenuDialogFragment extends MenuDialogFragment public void onCallback(User user) { List<Command> commands = getCommands(activity, user, account); - filterCommands(commands); + Command.filter(commands); for(Command command : commands) { adapter.addToBottom(command); |