aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/view
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-09-05 19:06:46 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-09-05 19:06:46 +0900
commitd87e8c2b04042b2d72fa11d016ae3e0bd4652681 (patch)
treec80c03351b87f9e33ca432a976d958049113de9b /app/src/main/java/net/lacolaco/smileessence/view
parent24ca4f49f0859f572ed73ea13d76a89716e4c176 (diff)
downloadSmileEssence-d87e8c2b04042b2d72fa11d016ae3e0bd4652681.tar.gz
[WIP] twitter4j.{Status,User,DirectMessage} を排除
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/view')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java22
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java20
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java14
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java5
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java5
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java25
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/adapter/MessageListAdapter.java10
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/adapter/StatusListAdapter.java14
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java96
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java12
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java11
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java12
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.java100
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java35
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java68
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java42
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java3
17 files changed, 221 insertions, 273 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java
index dfadebaf..ad39f65b 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java
@@ -30,6 +30,7 @@ import com.handmark.pulltorefresh.library.PullToRefreshBase;
import net.lacolaco.smileessence.activity.MainActivity;
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.twitter.StatusFilter;
import net.lacolaco.smileessence.twitter.TwitterApi;
import net.lacolaco.smileessence.twitter.task.HomeTimelineTask;
@@ -41,6 +42,9 @@ import net.lacolaco.smileessence.viewmodel.StatusViewModel;
import twitter4j.Paging;
import twitter4j.Twitter;
+import java.util.List;
+import java.util.ListIterator;
+
public class HomeFragment extends CustomListFragment {
// --------------------- GETTER / SETTER METHODS ---------------------
@@ -83,11 +87,11 @@ public class HomeFragment extends CustomListFragment {
}
new HomeTimelineTask(twitter, activity, paging) {
@Override
- protected void onPostExecute(twitter4j.Status[] statuses) {
- super.onPostExecute(statuses);
- for (int i = statuses.length - 1; i >= 0; i--) {
- twitter4j.Status status = statuses[i];
- StatusViewModel viewModel = new StatusViewModel(status, currentAccount);
+ protected void onPostExecute(List<Tweet> tweets) {
+ super.onPostExecute(tweets);
+ ListIterator<Tweet> li = tweets.listIterator(tweets.size());
+ while (li.hasPrevious()) {
+ StatusViewModel viewModel = new StatusViewModel(li.previous());
adapter.addToTop(viewModel);
StatusFilter.filter(activity, viewModel);
}
@@ -109,10 +113,10 @@ public class HomeFragment extends CustomListFragment {
}
new HomeTimelineTask(twitter, activity, paging) {
@Override
- protected void onPostExecute(twitter4j.Status[] statuses) {
- super.onPostExecute(statuses);
- for (twitter4j.Status status : statuses) {
- StatusViewModel viewModel = new StatusViewModel(status, currentAccount);
+ protected void onPostExecute(List<Tweet> tweets) {
+ super.onPostExecute(tweets);
+ for (Tweet tweet : tweets) {
+ StatusViewModel viewModel = new StatusViewModel(tweet);
adapter.addToBottom(viewModel);
StatusFilter.filter(activity, viewModel);
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java
index 3cbdfd4b..6d932eb3 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java
@@ -30,6 +30,7 @@ import com.handmark.pulltorefresh.library.PullToRefreshBase;
import net.lacolaco.smileessence.activity.MainActivity;
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.twitter.TwitterApi;
import net.lacolaco.smileessence.twitter.task.MentionsTimelineTask;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
@@ -39,6 +40,8 @@ import net.lacolaco.smileessence.viewmodel.StatusViewModel;
import twitter4j.Paging;
import twitter4j.Twitter;
+import java.util.List;
+
public class MentionsFragment extends CustomListFragment {
// --------------------- GETTER / SETTER METHODS ---------------------
@@ -70,11 +73,10 @@ public class MentionsFragment extends CustomListFragment {
}
new MentionsTimelineTask(twitter, activity, paging) {
@Override
- protected void onPostExecute(twitter4j.Status[] statuses) {
- super.onPostExecute(statuses);
- for (int i = statuses.length - 1; i >= 0; i--) {
- twitter4j.Status status = statuses[i];
- adapter.addToTop(new StatusViewModel(status, currentAccount));
+ protected void onPostExecute(List<Tweet> tweets) {
+ super.onPostExecute(tweets);
+ for (int i = tweets.size() - 1; i >= 0; i--) {
+ adapter.addToTop(new StatusViewModel(tweets.get(i)));
}
updateListViewWithNotice(refreshView.getRefreshableView(), adapter, true);
refreshView.onRefreshComplete();
@@ -94,10 +96,10 @@ public class MentionsFragment extends CustomListFragment {
}
new MentionsTimelineTask(twitter, activity, paging) {
@Override
- protected void onPostExecute(twitter4j.Status[] statuses) {
- super.onPostExecute(statuses);
- for (twitter4j.Status status : statuses) {
- adapter.addToBottom(new StatusViewModel(status, currentAccount));
+ protected void onPostExecute(List<Tweet> tweets) {
+ super.onPostExecute(tweets);
+ for (Tweet tweet : tweets) {
+ adapter.addToBottom(new StatusViewModel(tweet));
}
updateListViewWithNotice(refreshView.getRefreshableView(), adapter, false);
refreshView.onRefreshComplete();
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java
index 0a10ba53..994b265c 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java
@@ -36,10 +36,12 @@ import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.view.adapter.MessageListAdapter;
import net.lacolaco.smileessence.viewmodel.MessageViewModel;
-import twitter4j.DirectMessage;
+import net.lacolaco.smileessence.entity.DirectMessage;
import twitter4j.Paging;
import twitter4j.Twitter;
+import java.util.List;
+
/**
* Fragment of messages list
*/
@@ -74,10 +76,10 @@ public class MessagesFragment extends CustomListFragment {
}
new DirectMessagesTask(twitter, activity, paging) {
@Override
- protected void onPostExecute(DirectMessage[] directMessages) {
+ protected void onPostExecute(List<DirectMessage> directMessages) {
super.onPostExecute(directMessages);
- for (int i = directMessages.length - 1; i >= 0; i--) {
- adapter.addToTop(new MessageViewModel(directMessages[i], currentAccount));
+ for (int i = directMessages.size() - 1; i >= 0; i--) {
+ adapter.addToTop(new MessageViewModel(directMessages.get(i)));
}
updateListViewWithNotice(refreshView.getRefreshableView(), adapter, true);
refreshView.onRefreshComplete();
@@ -97,10 +99,10 @@ public class MessagesFragment extends CustomListFragment {
}
new DirectMessagesTask(twitter, activity, paging) {
@Override
- protected void onPostExecute(DirectMessage[] directMessages) {
+ protected void onPostExecute(List<DirectMessage> directMessages) {
super.onPostExecute(directMessages);
for (DirectMessage directMessage : directMessages) {
- adapter.addToBottom(new MessageViewModel(directMessage, currentAccount));
+ adapter.addToBottom(new MessageViewModel(directMessage));
}
updateListViewWithNotice(refreshView.getRefreshableView(), adapter, false);
refreshView.onRefreshComplete();
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
index 23358f46..fd980bff 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
@@ -43,6 +43,7 @@ import com.twitter.Validator;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.twitter.TwitterApi;
@@ -149,9 +150,9 @@ public class PostFragment extends Fragment implements TextWatcher, View.OnFocusC
final Account account = activity.getCurrentAccount();
TwitterUtils.tryGetStatus(account, postState.getInReplyToStatusID(), new TwitterUtils.StatusCallback() {
@Override
- public void success(Status status) {
+ public void success(Tweet tweet) {
View header = viewGroupReply.findViewById(R.id.layout_post_reply_status);
- header = new StatusViewModel(status, account).getView(activity, activity.getLayoutInflater(), header);
+ header = new StatusViewModel(tweet).getView(activity, activity.getLayoutInflater(), header);
header.setBackgroundColor(getResources().getColor(R.color.transparent));
header.setClickable(false);
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java
index 9372a5a1..3313bda1 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java
@@ -47,6 +47,7 @@ import net.lacolaco.smileessence.command.Command;
import net.lacolaco.smileessence.command.CommandOpenSearch;
import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.entity.SearchQuery;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.notification.NotificationType;
import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.twitter.StatusFilter;
@@ -154,7 +155,7 @@ public class SearchFragment extends CustomListFragment implements View.OnClickLi
for (int i = tweets.size() - 1; i >= 0; i--) {
twitter4j.Status status = tweets.get(i);
if (!status.isRetweet()) {
- StatusViewModel viewModel = new StatusViewModel(status, currentAccount);
+ StatusViewModel viewModel = new StatusViewModel(Tweet.fromTwitter(status));
adapter.addToTop(viewModel);
StatusFilter.filter(activity, viewModel);
}
@@ -196,7 +197,7 @@ public class SearchFragment extends CustomListFragment implements View.OnClickLi
List<twitter4j.Status> tweets = queryResult.getTweets();
for (twitter4j.Status status : tweets) {
if (!status.isRetweet()) {
- StatusViewModel viewModel = new StatusViewModel(status, currentAccount);
+ StatusViewModel viewModel = new StatusViewModel(Tweet.fromTwitter(status));
adapter.addToBottom(viewModel);
StatusFilter.filter(activity, viewModel);
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
index 89fe984f..f1922092 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
@@ -40,6 +40,7 @@ import com.handmark.pulltorefresh.library.PullToRefreshListView;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.twitter.StatusFilter;
import net.lacolaco.smileessence.twitter.TwitterApi;
@@ -53,6 +54,8 @@ import net.lacolaco.smileessence.viewmodel.UserListListAdapter;
import twitter4j.Paging;
import twitter4j.Twitter;
+import java.util.List;
+
public class UserListFragment extends CustomListFragment implements View.OnClickListener {
// ------------------------------ FIELDS ------------------------------
@@ -114,13 +117,12 @@ public class UserListFragment extends CustomListFragment implements View.OnClick
if (adapter.getCount() > 0) {
paging.setSinceId(adapter.getTopID());
}
- new UserListStatusesTask(twitter, listFullName, activity, paging) {
+ new UserListStatusesTask(twitter, activity, listFullName, paging) {
@Override
- protected void onPostExecute(twitter4j.Status[] statuses) {
- super.onPostExecute(statuses);
- for (int i = statuses.length - 1; i >= 0; i--) {
- twitter4j.Status status = statuses[i];
- StatusViewModel statusViewModel = new StatusViewModel(status, activity.getCurrentAccount());
+ protected void onPostExecute(List<Tweet> tweets) {
+ super.onPostExecute(tweets);
+ for (int i = tweets.size() - 1; i >= 0; i--) {
+ StatusViewModel statusViewModel = new StatusViewModel(tweets.get(i));
adapter.addToTop(statusViewModel);
StatusFilter.filter(activity, statusViewModel);
}
@@ -151,13 +153,12 @@ public class UserListFragment extends CustomListFragment implements View.OnClick
if (adapter.getCount() > 0) {
paging.setMaxId(adapter.getLastID() - 1);
}
- new UserListStatusesTask(twitter, listFullName, activity, paging) {
+ new UserListStatusesTask(twitter, activity, listFullName, paging) {
@Override
- protected void onPostExecute(twitter4j.Status[] statuses) {
- super.onPostExecute(statuses);
- for (int i = 0; i < statuses.length; i++) {
- twitter4j.Status status = statuses[i];
- StatusViewModel statusViewModel = new StatusViewModel(status, activity.getCurrentAccount());
+ protected void onPostExecute(List<Tweet> tweets) {
+ super.onPostExecute(tweets);
+ for (int i = 0; i < tweets.size(); i++) {
+ StatusViewModel statusViewModel = new StatusViewModel(tweets.get(i));
adapter.addToBottom(statusViewModel);
StatusFilter.filter(activity, statusViewModel);
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/MessageListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/MessageListAdapter.java
index b521e236..f9731a94 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/MessageListAdapter.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/MessageListAdapter.java
@@ -43,11 +43,11 @@ public class MessageListAdapter extends CustomListAdapter<MessageViewModel> {
// --------------------- GETTER / SETTER METHODS ---------------------
public long getLastID() {
- return ((MessageViewModel) getItem(getCount() - 1)).getID();
+ return ((MessageViewModel) getItem(getCount() - 1)).getDirectMessage().getId();
}
public long getTopID() {
- return ((MessageViewModel) getItem(0)).getID();
+ return ((MessageViewModel) getItem(0)).getDirectMessage().getId();
}
// ------------------------ OVERRIDE METHODS ------------------------
@@ -78,7 +78,7 @@ public class MessageListAdapter extends CustomListAdapter<MessageViewModel> {
Collections.sort(list, new Comparator<MessageViewModel>() {
@Override
public int compare(MessageViewModel lhs, MessageViewModel rhs) {
- return rhs.getCreatedAt().compareTo(lhs.getCreatedAt());
+ return rhs.getDirectMessage().getCreatedAt().compareTo(lhs.getDirectMessage().getCreatedAt());
}
});
}
@@ -91,7 +91,7 @@ public class MessageListAdapter extends CustomListAdapter<MessageViewModel> {
Iterator<MessageViewModel> iterator = this.list.iterator();
while (iterator.hasNext()) {
MessageViewModel message = iterator.next();
- if (message.getID() == messageID) {
+ if (message.getDirectMessage().getId() == messageID) {
iterator.remove();
return message;
}
@@ -101,7 +101,7 @@ public class MessageListAdapter extends CustomListAdapter<MessageViewModel> {
}
private boolean preAdd(MessageViewModel item) {
- removeByMessageID(item.getID());
+ removeByMessageID(item.getDirectMessage().getId());
return true;
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/StatusListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/StatusListAdapter.java
index ece2eea8..e69e5214 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/StatusListAdapter.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/StatusListAdapter.java
@@ -26,7 +26,7 @@ package net.lacolaco.smileessence.view.adapter;
import android.app.Activity;
-import net.lacolaco.smileessence.data.UserCache;
+import net.lacolaco.smileessence.entity.MuteUserIds;
import net.lacolaco.smileessence.viewmodel.StatusViewModel;
import java.util.Collections;
@@ -44,11 +44,11 @@ public class StatusListAdapter extends CustomListAdapter<StatusViewModel> {
// --------------------- GETTER / SETTER METHODS ---------------------
public long getLastID() {
- return ((StatusViewModel) getItem(getCount() - 1)).getID();
+ return ((StatusViewModel) getItem(getCount() - 1)).getTweet().getId();
}
public long getTopID() {
- return ((StatusViewModel) getItem(0)).getID();
+ return ((StatusViewModel) getItem(0)).getTweet().getId();
}
// ------------------------ OVERRIDE METHODS ------------------------
@@ -82,7 +82,7 @@ public class StatusListAdapter extends CustomListAdapter<StatusViewModel> {
Collections.sort(list, new Comparator<StatusViewModel>() {
@Override
public int compare(StatusViewModel lhs, StatusViewModel rhs) {
- return Long.valueOf(rhs.getID()).compareTo(lhs.getID());
+ return Long.valueOf(rhs.getTweet().getId()).compareTo(lhs.getTweet().getId());
}
});
}
@@ -95,7 +95,7 @@ public class StatusListAdapter extends CustomListAdapter<StatusViewModel> {
Iterator<StatusViewModel> iterator = this.list.iterator();
while (iterator.hasNext()) {
StatusViewModel statusViewModel = iterator.next();
- if (statusViewModel.getID() == statusID || statusViewModel.getOriginal().getID() == statusID) {
+ if (statusViewModel.getTweet().getOriginalTweet().getId() == statusID) {
iterator.remove();
}
}
@@ -103,11 +103,11 @@ public class StatusListAdapter extends CustomListAdapter<StatusViewModel> {
}
private boolean isBlockUser(StatusViewModel item) {
- return UserCache.getInstance().isInvisibleUserID(item.getOriginalUserID());
+ return MuteUserIds.isMuted(item.getTweet().getOriginalTweet().getUser().getId());
}
private boolean preAdd(StatusViewModel item) {
- removeByStatusID(item.getID());
+ removeByStatusID(item.getTweet().getId());
return !isBlockUser(item);
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java
index 76b6e99d..bbe71d47 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageDetailDialogFragment.java
@@ -34,13 +34,10 @@ import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ListView;
-import com.google.common.collect.Lists;
-
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.DirectMessageCache;
import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.twitter.TwitterApi;
@@ -52,10 +49,8 @@ import net.lacolaco.smileessence.view.listener.ListItemClickListener;
import net.lacolaco.smileessence.viewmodel.MessageViewModel;
import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import twitter4j.DirectMessage;
+import net.lacolaco.smileessence.entity.DirectMessage;
import twitter4j.MediaEntity;
import twitter4j.URLEntity;
@@ -122,7 +117,7 @@ public class MessageDetailDialogFragment extends StackableDialogFragment impleme
MainActivity activity = (MainActivity) getActivity();
final Account account = activity.getCurrentAccount();
- DirectMessage selectedMessage = DirectMessageCache.getInstance().get(getMessageID());
+ DirectMessage selectedMessage = DirectMessage.fetch(getMessageID());
if (selectedMessage == null) {
Notificator.publish(getActivity(), R.string.notice_error_get_messages);
return new DisposeDialog(getActivity());
@@ -132,42 +127,43 @@ public class MessageDetailDialogFragment extends StackableDialogFragment impleme
final MessageListAdapter adapter = new MessageListAdapter(getActivity());
listView.setAdapter(adapter);
long replyToMessageId = -1;
- ArrayList<DirectMessage> allMessages = Lists.newArrayList(DirectMessageCache.getInstance().all());
- Collections.sort(allMessages, new Comparator<DirectMessage>() {
- @Override
- public int compare(DirectMessage lhs, DirectMessage rhs) {
- return rhs.getCreatedAt().compareTo(lhs.getCreatedAt());
- }
- });
- for (DirectMessage directMessage : allMessages) {
- if (selectedMessage.getId() == directMessage.getId()) {
- continue;
- }
- if (directMessage.getCreatedAt().getTime() > selectedMessage.getCreatedAt().getTime()) {
- continue;
- }
- if (directMessage.getSenderId() == selectedMessage.getRecipientId() && directMessage.getRecipientId() == selectedMessage.getSenderId()) {
- replyToMessageId = directMessage.getId();
- break;
- }
- }
-
- if (replyToMessageId == -1) {
- listView.setVisibility(View.GONE);
- } else {
- TwitterUtils.tryGetMessage(account, replyToMessageId, new TwitterUtils.MessageCallback() {
- @Override
- public void success(DirectMessage message) {
- adapter.addToTop(new MessageViewModel(message, account));
- adapter.updateForce();
- }
-
- @Override
- public void error() {
-
- }
- });
- }
+ // ArrayList<DirectMessage> allMessages = Lists.newArrayList(DirectMessageCache.getInstance().all());
+ // Collections.sort(allMessages, new Comparator<DirectMessage>() {
+ // @Override
+ // public int compare(DirectMessage lhs, DirectMessage rhs) {
+ // return rhs.getCreatedAt().compareTo(lhs.getCreatedAt());
+ // }
+ // });
+ // for (DirectMessage directMessage : allMessages) {
+ // if (selectedMessage.getId() == directMessage.getId()) {
+ // continue;
+ // }
+ // if (directMessage.getCreatedAt().getTime() > selectedMessage.getCreatedAt().getTime()) {
+ // continue;
+ // }
+ // if (directMessage.getSender().getId() == selectedMessage.getRecipient().getId() &&
+ // directMessage.getRecipient().getId() == selectedMessage.getSender().getId()) {
+ // replyToMessageId = directMessage.getId();
+ // break;
+ // }
+ // }
+
+ // if (replyToMessageId == -1) {
+ listView.setVisibility(View.GONE);
+ // } else {
+ // TwitterUtils.tryGetMessage(account, replyToMessageId, new TwitterUtils.MessageCallback() {
+ // @Override
+ // public void success(DirectMessage message) {
+ // adapter.addToTop(new MessageViewModel(message));
+ // adapter.updateForce();
+ // }
+
+ // @Override
+ // public void error() {
+
+ // }
+ // });
+ // }
return new AlertDialog.Builder(getActivity()).setView(header).create();
}
@@ -185,15 +181,15 @@ public class MessageDetailDialogFragment extends StackableDialogFragment impleme
public void openSendMessageDialog(DirectMessage message) {
SendMessageDialogFragment dialogFragment = new SendMessageDialogFragment();
- dialogFragment.setScreenName(message.getSenderScreenName());
+ dialogFragment.setScreenName(message.getSender().getScreenName());
DialogHelper.showDialog(getActivity(), dialogFragment);
}
private ArrayList<Command> getCommands(Activity activity, DirectMessage message, Account account) {
ArrayList<Command> commands = new ArrayList<>();
// URL
- if (message.getURLEntities() != null) {
- for (URLEntity urlEntity : message.getURLEntities()) {
+ if (message.getUrls() != null) {
+ for (URLEntity urlEntity : message.getUrls()) {
commands.add(new CommandOpenURL(activity, urlEntity.getExpandedURL()));
}
}
@@ -204,18 +200,18 @@ public class MessageDetailDialogFragment extends StackableDialogFragment impleme
}
private MediaEntity[] getMediaEntities(DirectMessage message) {
- if (message.getExtendedMediaEntities().length == 0) {
+ if (message.getMedia().length == 0) {
// direct message's media is contained also in url entities.
return new MediaEntity[0];
} else {
- return message.getExtendedMediaEntities();
+ return message.getMedia();
}
}
private View getTitleView(MainActivity activity, Account account, DirectMessage message) {
View view = activity.getLayoutInflater().inflate(R.layout.dialog_status_detail, null);
View messageHeader = view.findViewById(R.id.layout_status_header);
- MessageViewModel statusViewModel = new MessageViewModel(message, account);
+ MessageViewModel statusViewModel = new MessageViewModel(message);
messageHeader = statusViewModel.getView(activity, activity.getLayoutInflater(), messageHeader);
messageHeader.setClickable(false);
int background = ((ColorDrawable) messageHeader.getBackground()).getColor();
@@ -252,7 +248,7 @@ public class MessageDetailDialogFragment extends StackableDialogFragment impleme
}
private boolean isDeletable(Account account, DirectMessage message) {
- return message.getSenderId() == account.userID;
+ return message.getSender().getId() == account.userID;
}
private void openMenu(MainActivity activity) {
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java
index c4fd6028..d2c487b3 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MessageMenuDialogFragment.java
@@ -40,7 +40,7 @@ import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
import java.util.ArrayList;
import java.util.List;
-import twitter4j.DirectMessage;
+import net.lacolaco.smileessence.entity.DirectMessage;
import twitter4j.HashtagEntity;
import twitter4j.MediaEntity;
import twitter4j.URLEntity;
@@ -100,12 +100,12 @@ public class MessageMenuDialogFragment extends MenuDialogFragment {
commands.add(command);
}
// Media
- if (message.getURLEntities() != null) {
- for (URLEntity urlEntity : message.getURLEntities()) {
+ if (message.getUrls() != null) {
+ for (URLEntity urlEntity : message.getUrls()) {
commands.add(new CommandOpenURL(activity, urlEntity.getExpandedURL()));
}
}
- for (MediaEntity mediaEntity : message.getExtendedMediaEntities().length == 0 ? message.getMediaEntities() : message.getExtendedMediaEntities()) {
+ for (MediaEntity mediaEntity : message.getMedia()) {
commands.add(new CommandOpenURL(activity, mediaEntity.getMediaURL()));
}
}
@@ -123,8 +123,8 @@ public class MessageMenuDialogFragment extends MenuDialogFragment {
private ArrayList<Command> getHashtagCommands(Activity activity, DirectMessage status) {
ArrayList<Command> commands = new ArrayList<>();
- if (status.getHashtagEntities() != null) {
- for (HashtagEntity hashtagEntity : status.getHashtagEntities()) {
+ if (status.getHashtags() != null) {
+ for (HashtagEntity hashtagEntity : status.getHashtags()) {
commands.add(new CommandOpenHashtagDialog(activity, hashtagEntity));
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java
index e0f51d69..049c3ee2 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/QuoteDialogFragment.java
@@ -32,6 +32,7 @@ import net.lacolaco.smileessence.command.Command;
import net.lacolaco.smileessence.command.status.StatusCommandTextQuote;
import net.lacolaco.smileessence.command.status.StatusCommandURLQuote;
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
@@ -67,8 +68,8 @@ public class QuoteDialogFragment extends MenuDialogFragment {
TwitterUtils.tryGetStatus(account, getStatusID(), new TwitterUtils.StatusCallback() {
@Override
- public void success(Status status) {
- List<Command> commands = getCommands(activity, status);
+ public void success(Tweet tweet) {
+ List<Command> commands = getCommands(activity, tweet);
Command.filter(commands);
for (Command command : commands) {
adapter.addToBottom(command);
@@ -85,10 +86,10 @@ public class QuoteDialogFragment extends MenuDialogFragment {
// -------------------------- OTHER METHODS --------------------------
- public List<Command> getCommands(Activity activity, Status status) {
+ public List<Command> getCommands(Activity activity, Tweet tweet) {
ArrayList<Command> commands = new ArrayList<>();
- commands.add(new StatusCommandTextQuote(activity, status));
- commands.add(new StatusCommandURLQuote(activity, status));
+ commands.add(new StatusCommandTextQuote(activity, tweet));
+ commands.add(new StatusCommandURLQuote(activity, tweet));
return commands;
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java
index 36cb1f6e..1e95d8be 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java
@@ -35,11 +35,10 @@ import android.widget.RatingBar;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
-import net.lacolaco.smileessence.data.StatusCache;
-import net.lacolaco.smileessence.twitter.util.TwitterUtils;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.view.adapter.PostState;
-import twitter4j.Status;
+import net.lacolaco.smileessence.viewmodel.StatusViewModel;
public class ReviewDialogFragment extends StackableDialogFragment implements View.OnClickListener {
@@ -100,7 +99,8 @@ public class ReviewDialogFragment extends StackableDialogFragment implements Vie
private void execute() {
hideIME();
- Status status = StatusCache.getInstance().get(statusID);
+ Tweet tweet = Tweet.fetch(statusID).getOriginalTweet();
+ StatusViewModel status = new StatusViewModel(tweet);
int star = (int) ratingBar.getRating();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < 5; i++) {
@@ -113,8 +113,8 @@ public class ReviewDialogFragment extends StackableDialogFragment implements Vie
String formatString = getFormatString();
String str = String.format(formatString,
builder.toString(),
- TwitterUtils.getOriginalStatus(status).getUser().getScreenName(),
- TwitterUtils.getStatusURL(status));
+ tweet.getUser().getScreenName(),
+ tweet.getTwitterUrl());
PostState.newState().beginTransaction()
.setText(str)
.setInReplyToStatusID(statusID)
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 118273b9..d7e08af6 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
@@ -40,8 +40,9 @@ 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.StatusCache;
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
+import net.lacolaco.smileessence.entity.User;
import net.lacolaco.smileessence.twitter.TweetBuilder;
import net.lacolaco.smileessence.twitter.TwitterApi;
import net.lacolaco.smileessence.twitter.task.DeleteStatusTask;
@@ -58,9 +59,7 @@ import net.lacolaco.smileessence.viewmodel.StatusViewModel;
import java.util.ArrayList;
import twitter4j.MediaEntity;
-import twitter4j.Status;
import twitter4j.URLEntity;
-import twitter4j.User;
public class StatusDetailDialogFragment extends StackableDialogFragment implements View.OnClickListener {
@@ -91,24 +90,24 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen
final Account account = activity.getCurrentAccount();
TwitterUtils.tryGetStatus(account, getStatusID(), new TwitterUtils.StatusCallback() {
@Override
- public void success(Status status) {
+ public void success(Tweet tweet) {
switch (v.getId()) {
case R.id.button_status_detail_reply: {
- replyToStatus(activity, account, status);
+ replyToStatus(activity, account, tweet);
break;
}
case R.id.button_status_detail_retweet: {
final Long retweetID = (Long) v.getTag();
- toggleRetweet(activity, account, status, retweetID);
+ toggleRetweet(activity, account, tweet, retweetID);
break;
}
case R.id.button_status_detail_favorite: {
Boolean isFavorited = (Boolean) v.getTag();
- toggleFavorite(activity, account, status, isFavorited);
+ toggleFavorite(activity, account, tweet, isFavorited);
break;
}
case R.id.button_status_detail_delete: {
- deleteStatus(activity, account, status);
+ deleteStatus(activity, account, tweet);
break;
}
case R.id.button_status_detail_menu: {
@@ -135,19 +134,20 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen
final MainActivity activity = (MainActivity) getActivity();
final Account account = activity.getCurrentAccount();
- Status status = StatusCache.getInstance().get(getStatusID());
+ final Tweet tweet = Tweet.fetch(getStatusID());
+ final StatusViewModel status = new StatusViewModel(tweet);
View header = getTitleView(activity, account, status);
ListView listView = (ListView) header.findViewById(R.id.listview_status_detail_reply_to);
final StatusListAdapter adapter = new StatusListAdapter(getActivity());
listView.setAdapter(adapter);
- long inReplyToStatusId = TwitterUtils.getOriginalStatus(status).getInReplyToStatusId();
+ long inReplyToStatusId = tweet.getInReplyTo();
if (inReplyToStatusId == -1) {
listView.setVisibility(View.GONE);
} else {
TwitterUtils.tryGetStatus(account, inReplyToStatusId, new TwitterUtils.StatusCallback() {
@Override
- public void success(Status status) {
- adapter.addToTop(new StatusViewModel(status, account));
+ public void success(Tweet tweet) {
+ adapter.addToTop(new StatusViewModel(tweet));
adapter.updateForce();
}
@@ -164,20 +164,20 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen
ConfirmDialogFragment.show(activity, getString(R.string.dialog_confirm_commands), onYes);
}
- private void deleteStatus(final MainActivity activity, final Account account, final Status status) {
+ private void deleteStatus(final MainActivity activity, final Account account, final Tweet tweet) {
confirm(activity, new Runnable() {
@Override
public void run() {
- new DeleteStatusTask(TwitterApi.getTwitter(account), TwitterUtils.getOriginalStatus(status).getId(), activity).execute();
+ new DeleteStatusTask(TwitterApi.getTwitter(account), tweet.getOriginalTweet().getId(), activity).execute();
dismiss();
}
});
}
- private View getTitleView(MainActivity activity, Account account, Status status) {
+ private View getTitleView(MainActivity activity, Account account, StatusViewModel statusViewModel) {
+ Tweet tweet = statusViewModel.getTweet();
View view = activity.getLayoutInflater().inflate(R.layout.dialog_status_detail, null);
View statusHeader = view.findViewById(R.id.layout_status_header);
- StatusViewModel statusViewModel = new StatusViewModel(status, account);
statusHeader = statusViewModel.getView(activity, activity.getLayoutInflater(), statusHeader);
statusHeader.setClickable(false);
int background = ((ColorDrawable) statusHeader.getBackground()).getColor();
@@ -186,14 +186,14 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen
ImageView rtCountIcon = (ImageView) view.findViewById(R.id.image_status_detail_rt_count);
TextView favCountText = (TextView) view.findViewById(R.id.textview_status_detail_fav_count);
TextView rtCountText = (TextView) view.findViewById(R.id.textview_status_detail_rt_count);
- int favoriteCount = TwitterUtils.getOriginalStatus(status).getFavoriteCount();
+ int favoriteCount = statusViewModel.getTweet().getFavoriteCount();
if (favoriteCount == 0) {
favCountIcon.setVisibility(View.GONE);
favCountText.setVisibility(View.GONE);
} else {
favCountText.setText(Integer.toString(favoriteCount));
}
- int retweetCount = TwitterUtils.getOriginalStatus(status).getRetweetCount();
+ int retweetCount = statusViewModel.getTweet().getOriginalTweet().getRetweetCount();
if (retweetCount == 0) {
rtCountIcon.setVisibility(View.GONE);
rtCountText.setVisibility(View.GONE);
@@ -210,11 +210,11 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen
retweet.setOnClickListener(this);
favorite.setOnClickListener(this);
delete.setOnClickListener(this);
- if (isNotRetweetable(account, status)) {
+ if (isNotRetweetable(account, tweet)) {
retweet.setVisibility(View.GONE);
- } else if (isRetweetDeletable(account, status)) {
+ } else if (isRetweetDeletable(account, tweet)) {
retweet.setImageDrawable(getResources().getDrawable(R.drawable.icon_retweet_on));
- retweet.setTag(status.getId());
+ retweet.setTag(tweet.getId());
} else {
retweet.setTag(-1L);
}
@@ -222,11 +222,11 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen
if (statusViewModel.isFavorited()) {
favorite.setImageDrawable(getResources().getDrawable(R.drawable.icon_favorite_on));
}
- boolean deletable = isDeletable(account, status);
+ boolean deletable = isDeletable(account, tweet);
delete.setVisibility(deletable ? View.VISIBLE : View.GONE);
LinearLayout commandsLayout = (LinearLayout) view.findViewById(R.id.linearlayout_status_detail_menu);
commandsLayout.setClickable(true);
- ArrayList<Command> commands = getCommands(activity, status, account);
+ ArrayList<Command> commands = getCommands(activity, tweet, account);
Command.filter(commands);
for (final Command command : commands) {
View commandView = command.getView(activity, activity.getLayoutInflater(), null);
@@ -243,45 +243,31 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen
}
- private MediaEntity[] getMediaEntities(Status status) {
- if (status.getExtendedMediaEntities().length == 0) {
- return status.getMediaEntities();
- } else {
- return status.getExtendedMediaEntities();
- }
- }
-
- private ArrayList<Command> getCommands(Activity activity, Status status, Account account) {
+ private ArrayList<Command> getCommands(Activity activity, Tweet tweet, Account account) {
ArrayList<Command> commands = new ArrayList<>();
// URL
- if (status.getURLEntities() != null) {
- for (URLEntity urlEntity : status.getURLEntities()) {
+ if (tweet.getUrls() != null) {
+ for (URLEntity urlEntity : tweet.getUrls()) {
commands.add(new CommandOpenURL(activity, urlEntity.getExpandedURL()));
}
}
- for (MediaEntity mediaEntity : getMediaEntities(status)) {
+ for (MediaEntity mediaEntity : tweet.getMedia()) {
commands.add(new CommandOpenURL(activity, mediaEntity.getMediaURL()));
}
return commands;
}
- private boolean isDeletable(Account account, Status status) {
- boolean deletable;
- if (!status.isRetweet()) {
- deletable = status.getUser().getId() == account.userID;
- } else {
- deletable = status.getRetweetedStatus().getUser().getId() == account.userID;
- }
- return deletable;
+ private boolean isDeletable(Account account, Tweet tweet) {
+ return tweet.getOriginalTweet().getUser().getId() == account.userID;
}
- private boolean isNotRetweetable(Account account, Status status) {
- User user = TwitterUtils.getOriginalStatus(status).getUser();
+ private boolean isNotRetweetable(Account account, Tweet tweet) {
+ User user = tweet.getOriginalTweet().getUser();
return user.isProtected() || user.getId() == account.userID;
}
- private boolean isRetweetDeletable(Account account, Status status) {
- return status.isRetweet() && status.getUser().getId() == account.userID;
+ private boolean isRetweetDeletable(Account account, Tweet tweet) {
+ return tweet.isRetweet() && tweet.getUser().getId() == account.userID;
}
private void openMenu(MainActivity activity) {
@@ -290,26 +276,26 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen
DialogHelper.showDialog(activity, fragment);
}
- private void replyToStatus(MainActivity activity, Account account, Status status) {
- Status originalStatus = TwitterUtils.getOriginalStatus(status);
+ private void replyToStatus(MainActivity activity, Account account, Tweet tweet) {
+ Tweet originalTweet = tweet.getOriginalTweet();
TweetBuilder builder = new TweetBuilder();
- if (account.userID == originalStatus.getUser().getId()) {
+ if (account.userID == originalTweet.getUser().getId()) {
builder.addScreenName(account.screenName);
}
- builder.addScreenNames(TwitterUtils.getScreenNames(originalStatus, account.screenName));
+ builder.addScreenNames(TwitterUtils.getScreenNames(originalTweet, account.screenName));
String text = builder.buildText();
- int selStart = originalStatus.getUser().getScreenName().length() + 2; // "@" and " "
+ int selStart = originalTweet.getUser().getScreenName().length() + 2; // "@" and " "
PostState.newState().beginTransaction()
.insertText(0, text)
- .setInReplyToStatusID(originalStatus.getId())
+ .setInReplyToStatusID(originalTweet.getId())
.setSelection(selStart, text.length())
.commitWithOpen(activity);
}
- private void toggleFavorite(MainActivity activity, Account account, Status status, Boolean isFavorited) {
- long statusID = status.isRetweet() ? status.getRetweetedStatus().getId() : status.getId();
+ private void toggleFavorite(MainActivity activity, Account account, Tweet tweet, Boolean isFavorited) {
+ long statusID = tweet.getOriginalTweet().getId();
if (isFavorited) {
new UnfavoriteTask(TwitterApi.getTwitter(account), statusID, activity).execute();
} else {
@@ -317,14 +303,14 @@ public class StatusDetailDialogFragment extends StackableDialogFragment implemen
}
}
- private void toggleRetweet(final MainActivity activity, final Account account, final Status status, final Long retweetID) {
+ 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(TwitterApi.getTwitter(account), retweetID, activity).execute();
} else {
- new RetweetTask(TwitterApi.getTwitter(account), TwitterUtils.getOriginalStatus(status).getId(), activity).execute();
+ new RetweetTask(TwitterApi.getTwitter(account), tweet.getOriginalTweet().getId(), activity).execute();
}
}
});
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java
index 667578b7..8fcc6c35 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusMenuDialogFragment.java
@@ -34,6 +34,7 @@ import net.lacolaco.smileessence.command.CommandOpenURL;
import net.lacolaco.smileessence.command.CommandOpenUserDetail;
import net.lacolaco.smileessence.command.CommandSaveAsTemplate;
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
@@ -71,8 +72,8 @@ public class StatusMenuDialogFragment extends MenuDialogFragment {
TwitterUtils.tryGetStatus(account, getStatusID(), new TwitterUtils.StatusCallback() {
@Override
- public void success(Status status) {
- List<Command> commands = getCommands(activity, status, account);
+ public void success(Tweet tweet) {
+ List<Command> commands = getCommands(activity, tweet, account);
Command.filter(commands);
for (Command command : commands) {
adapter.addToBottom(command);
@@ -89,41 +90,41 @@ public class StatusMenuDialogFragment extends MenuDialogFragment {
// -------------------------- OTHER METHODS --------------------------
- public void addBottomCommands(Activity activity, Status status, Account account, ArrayList<Command> commands) {
- commands.add(new CommandSaveAsTemplate(activity, TwitterUtils.getOriginalStatusText(status)));
+ public void addBottomCommands(Activity activity, Tweet tweet, Account account, ArrayList<Command> commands) {
+ commands.add(new CommandSaveAsTemplate(activity, tweet.getOriginalTweet().getText()));
//User
- for (String screenName : TwitterUtils.getScreenNames(status, null)) {
+ for (String screenName : TwitterUtils.getScreenNames(tweet, null)) {
commands.add(new CommandOpenUserDetail(activity, screenName, account));
}
- for (Command command : getHashtagCommands(activity, status)) {
+ for (Command command : getHashtagCommands(activity, tweet)) {
commands.add(command);
}
// Media
- if (status.getURLEntities() != null) {
- for (URLEntity urlEntity : status.getURLEntities()) {
+ if (tweet.getUrls() != null) {
+ for (URLEntity urlEntity : tweet.getUrls()) {
commands.add(new CommandOpenURL(activity, urlEntity.getExpandedURL()));
}
}
- for (MediaEntity mediaEntity : status.getExtendedMediaEntities().length == 0 ? status.getMediaEntities() : status.getExtendedMediaEntities()) {
+ for (MediaEntity mediaEntity : tweet.getMedia()) {
commands.add(new CommandOpenURL(activity, mediaEntity.getMediaURL()));
}
}
- public boolean addMainCommands(Activity activity, Status status, Account account, ArrayList<Command> commands) {
- return commands.addAll(Command.getStatusCommands(activity, status, account));
+ public boolean addMainCommands(Activity activity, Tweet tweet, Account account, ArrayList<Command> commands) {
+ return commands.addAll(Command.getStatusCommands(activity, tweet, account));
}
- public List<Command> getCommands(Activity activity, Status status, Account account) {
+ public List<Command> getCommands(Activity activity, Tweet tweet, Account account) {
ArrayList<Command> commands = new ArrayList<>();
- addMainCommands(activity, status, account, commands);
- addBottomCommands(activity, status, account, commands);
+ addMainCommands(activity, tweet, account, commands);
+ addBottomCommands(activity, tweet, account, commands);
return commands;
}
- private ArrayList<Command> getHashtagCommands(Activity activity, Status status) {
+ private ArrayList<Command> getHashtagCommands(Activity activity, Tweet tweet) {
ArrayList<Command> commands = new ArrayList<>();
- if (status.getHashtagEntities() != null) {
- for (HashtagEntity hashtagEntity : status.getHashtagEntities()) {
+ if (tweet.getHashtags() != null) {
+ for (HashtagEntity hashtagEntity : tweet.getHashtags()) {
commands.add(new CommandOpenHashtagDialog(activity, hashtagEntity));
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java
index 9cd010a9..fa074767 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/TalkChainDialogFragment.java
@@ -26,24 +26,20 @@ package net.lacolaco.smileessence.view.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
-import net.lacolaco.smileessence.data.StatusCache;
import net.lacolaco.smileessence.entity.Account;
-import net.lacolaco.smileessence.logging.Logger;
+import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.twitter.TwitterApi;
-import net.lacolaco.smileessence.twitter.util.TwitterUtils;
+import net.lacolaco.smileessence.twitter.task.GetTalkTask;
import net.lacolaco.smileessence.view.adapter.StatusListAdapter;
-import net.lacolaco.smileessence.viewmodel.StatusViewModel;
-import twitter4j.Status;
+import net.lacolaco.smileessence.viewmodel.StatusViewModel;
import twitter4j.Twitter;
-import twitter4j.TwitterException;
public class TalkChainDialogFragment extends StackableDialogFragment {
@@ -69,25 +65,20 @@ public class TalkChainDialogFragment extends StackableDialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
MainActivity activity = (MainActivity) getActivity();
final Account account = activity.getCurrentAccount();
-
+ Twitter twitter = TwitterApi.getTwitter(account);
View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_talk_list, null);
ListView listView = (ListView) view.findViewById(R.id.listview_dialog_talk_list);
final StatusListAdapter adapter = new StatusListAdapter(getActivity());
listView.setAdapter(adapter);
- TwitterUtils.tryGetStatus(account, getStatusID(), new TwitterUtils.StatusCallback() {
- @Override
- public void success(Status status) {
- adapter.addToTop(new StatusViewModel(status, account));
- adapter.updateForce();
- Twitter twitter = TwitterApi.getTwitter(account);
- new GetTalkTask(twitter, account, adapter, status.getInReplyToStatusId()).execute();
- }
+ new GetTalkTask(twitter, getStatusID()) {
@Override
- public void error() {
- dismiss();
+ protected void onProgressUpdate(Tweet... tweets) {
+ Tweet tweet = tweets[0];
+ adapter.addToBottom(new StatusViewModel(tweet));
+ adapter.updateForce();
}
- });
+ }.execute();
return new AlertDialog.Builder(activity)
.setTitle(R.string.dialog_title_talk_chain)
@@ -95,43 +86,4 @@ public class TalkChainDialogFragment extends StackableDialogFragment {
.setCancelable(true)
.create();
}
-
- // -------------------------- INNER CLASSES --------------------------
-
- private class GetTalkTask extends AsyncTask<Void, Void, Void> {
-
- private final Twitter twitter;
- private final Account account;
- private final StatusListAdapter adapter;
- private final long inReplyToStatusId;
-
- public GetTalkTask(Twitter twitter, Account account, StatusListAdapter adapter, long inReplyToStatusId) {
- this.twitter = twitter;
- this.account = account;
- this.adapter = adapter;
- this.inReplyToStatusId = inReplyToStatusId;
- }
-
- @Override
- protected Void doInBackground(Void... params) {
- try {
- long id = inReplyToStatusId;
- while (id != -1) {
- final twitter4j.Status status = twitter.showStatus(id);
- if (status != null) {
- StatusCache.getInstance().put(status);
- adapter.addToBottom(new StatusViewModel(status, account));
- adapter.updateForce();
- id = status.getInReplyToStatusId();
- } else {
- break;
- }
- }
- } catch (TwitterException e) {
- e.printStackTrace();
- Logger.error(e);
- }
- return null;
- }
- }
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java
index e2e07b80..d38d1677 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java
@@ -49,6 +49,8 @@ import net.lacolaco.smileessence.command.Command;
import net.lacolaco.smileessence.command.CommandOpenURL;
import net.lacolaco.smileessence.data.ImageCache;
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.Tweet;
+import net.lacolaco.smileessence.entity.User;
import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.twitter.TwitterApi;
import net.lacolaco.smileessence.twitter.task.FollowTask;
@@ -66,7 +68,8 @@ import net.lacolaco.smileessence.viewmodel.StatusViewModel;
import twitter4j.Paging;
import twitter4j.Relationship;
import twitter4j.Twitter;
-import twitter4j.User;
+
+import java.util.List;
public class UserDetailDialogFragment extends StackableDialogFragment implements View.OnClickListener,
PullToRefreshBase.OnRefreshListener2<ListView> {
@@ -122,7 +125,7 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements
break;
}
case R.id.imageview_user_detail_icon: {
- openUrl(user.getBiggerProfileImageURLHttps());
+ openUrl(user.getProfileImageUrlOriginal());
break;
}
case R.id.textview_user_detail_screenname: {
@@ -177,11 +180,10 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements
}
new UserTimelineTask(twitter, getUserID(), paging) {
@Override
- protected void onPostExecute(twitter4j.Status[] statuses) {
- super.onPostExecute(statuses);
- for (int i = statuses.length - 1; i >= 0; i--) {
- twitter4j.Status status = statuses[i];
- adapter.addToTop(new StatusViewModel(status, currentAccount));
+ protected void onPostExecute(List<Tweet> tweets) {
+ super.onPostExecute(tweets);
+ for (int i = tweets.size()- 1; i >= 0; i--) {
+ adapter.addToTop(new StatusViewModel(tweets.get(i)));
}
updateListView(refreshView.getRefreshableView(), adapter, true);
refreshView.onRefreshComplete();
@@ -200,10 +202,10 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements
}
new UserTimelineTask(twitter, getUserID(), paging) {
@Override
- protected void onPostExecute(twitter4j.Status[] statuses) {
- super.onPostExecute(statuses);
- for (twitter4j.Status status : statuses) {
- adapter.addToBottom(new StatusViewModel(status, currentAccount));
+ protected void onPostExecute(List<Tweet> tweets) {
+ super.onPostExecute(tweets);
+ for (Tweet tweet : tweets) {
+ adapter.addToBottom(new StatusViewModel(tweet));
}
updateListView(refreshView.getRefreshableView(), adapter, false);
refreshView.onRefreshComplete();
@@ -278,10 +280,10 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements
Twitter twitter = TwitterApi.getTwitter(account);
new UserTimelineTask(twitter, user.getId()) {
@Override
- protected void onPostExecute(twitter4j.Status[] statuses) {
- super.onPostExecute(statuses);
- for (twitter4j.Status status : statuses) {
- adapter.addToBottom(new StatusViewModel(status, account));
+ protected void onPostExecute(List<Tweet> tweets) {
+ super.onPostExecute(tweets);
+ for (Tweet tweet : tweets) {
+ adapter.addToBottom(new StatusViewModel(tweet));
}
adapter.updateForce();
tabHost.getTabWidget().getChildTabViewAt(1).setVisibility(View.VISIBLE);
@@ -308,21 +310,21 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements
} else {
textViewLocate.setText(user.getLocation());
}
- if (TextUtils.isEmpty(user.getURL())) {
+ if (TextUtils.isEmpty(user.getUrl())) {
textViewURL.setVisibility(View.GONE);
} else {
- textViewURL.setText(user.getURL());
+ textViewURL.setText(user.getUrl());
}
textViewTweetCount.setText(String.valueOf(user.getStatusesCount()));
textViewFriendCount.setText(String.valueOf(user.getFriendsCount()));
textViewFollowerCount.setText(String.valueOf(user.getFollowersCount()));
- textViewFavoriteCount.setText(String.valueOf(user.getFavouritesCount()));
+ textViewFavoriteCount.setText(String.valueOf(user.getFavoritesCount()));
textViewProtected.setVisibility(user.isProtected() ? View.VISIBLE : View.GONE);
String htmlDescription = getHtmlDescription(user.getDescription());
textViewDescription.setText(Html.fromHtml(htmlDescription));
textViewDescription.setMovementMethod(LinkMovementMethod.getInstance());
- ImageCache.getInstance().setImageToView(user.getBiggerProfileImageURL(), imageViewIcon);
- ImageCache.getInstance().setImageToView(user.getProfileBannerURL(), imageViewHeader);
+ ImageCache.getInstance().setImageToView(user.getProfileImageUrlOriginal(), imageViewIcon);
+ ImageCache.getInstance().setImageToView(user.getProfileBannerUrl(), imageViewHeader);
MainActivity activity = (MainActivity) getActivity();
adapter = new StatusListAdapter(activity);
listViewTimeline.setAdapter(adapter);
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java
index ad1efc89..0883b99e 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserMenuDialogFragment.java
@@ -31,14 +31,13 @@ import net.lacolaco.smileessence.activity.MainActivity;
import net.lacolaco.smileessence.command.Command;
import net.lacolaco.smileessence.command.CommandSearchOnTwitter;
import net.lacolaco.smileessence.entity.Account;
+import net.lacolaco.smileessence.entity.User;
import net.lacolaco.smileessence.twitter.util.TwitterUtils;
import net.lacolaco.smileessence.view.adapter.CustomListAdapter;
import java.util.ArrayList;
import java.util.List;
-import twitter4j.User;
-
public class UserMenuDialogFragment extends MenuDialogFragment {
// ------------------------------ FIELDS ------------------------------