aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/net/lacolaco/smileessence/command/Command.java23
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/HashtagDialogFragment.java2
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java25
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java2
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java2
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java2
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/SelectSearchQueryDialogFragment.java2
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/SelectUserListDialogFragment.java2
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java10
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java22
-rw-r--r--src/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java2
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);