From 13efd820c264ff60b4e70a1af7d0208e8f5cd5cf Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Mon, 21 Sep 2015 21:22:43 +0900 Subject: にゃーん MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/lacolaco/smileessence/IntentRouter.java | 5 +- .../smileessence/activity/EditCommandActivity.java | 1 - .../activity/EditExtractionActivity.java | 3 +- .../smileessence/activity/EditTabActivity.java | 1 - .../activity/EditTemplateActivity.java | 3 +- .../smileessence/activity/LicenseActivity.java | 1 - .../smileessence/activity/MainActivity.java | 67 ++++++------ .../smileessence/activity/OAuthActivity.java | 4 - .../smileessence/activity/SettingActivity.java | 1 - .../net/lacolaco/smileessence/command/Command.java | 13 +-- .../command/CommandOpenHashtagDialog.java | 3 - .../smileessence/command/CommandOpenSearch.java | 1 - .../command/CommandOpenTemplateList.java | 3 +- .../smileessence/command/CommandOpenURL.java | 1 - .../command/CommandOpenUserDetail.java | 22 ++-- .../smileessence/command/CommandOpenUserList.java | 1 - .../smileessence/command/CommandPasteToPost.java | 1 - .../command/CommandSaveAsTemplate.java | 1 - .../command/CommandSearchOnTwitter.java | 1 - .../command/message/MessageCommand.java | 2 - .../message/MessageCommandCopyTextToClipboard.java | 4 +- .../message/MessageCommandSearchOnGoogle.java | 4 +- .../command/message/MessageCommandShare.java | 5 +- .../command/message/MessageCommandTofuBuster.java | 4 +- .../smileessence/command/post/PostCommand.java | 1 - .../command/post/PostCommandMakeAnonymous.java | 1 - .../command/post/PostCommandMorse.java | 3 +- .../command/post/PostCommandUseTemplate.java | 1 - .../command/post/PostCommandZekamashi.java | 1 - .../smileessence/command/status/StatusCommand.java | 3 - .../command/status/StatusCommandAddToReply.java | 3 +- .../command/status/StatusCommandCongratulate.java | 8 +- .../command/status/StatusCommandCopy.java | 3 +- .../status/StatusCommandCopyTextToClipboard.java | 3 - .../status/StatusCommandCopyURLToClipboard.java | 4 - .../command/status/StatusCommandFavAndRT.java | 5 +- .../command/status/StatusCommandMakeAnonymous.java | 8 +- .../command/status/StatusCommandNanigaja.java | 8 +- .../command/status/StatusCommandOpenInBrowser.java | 4 - .../status/StatusCommandOpenQuoteDialog.java | 3 - .../command/status/StatusCommandOpenTalkView.java | 3 - .../command/status/StatusCommandReview.java | 3 - .../status/StatusCommandSearchOnGoogle.java | 3 - .../command/status/StatusCommandShare.java | 4 - .../command/status/StatusCommandTextQuote.java | 3 +- .../command/status/StatusCommandTofuBuster.java | 3 - .../command/status/StatusCommandURLQuote.java | 3 +- .../smileessence/command/user/UserCommand.java | 2 - .../command/user/UserCommandAddToReply.java | 4 +- .../command/user/UserCommandBlock.java | 14 ++- .../command/user/UserCommandIntroduce.java | 2 - .../command/user/UserCommandOpenAclog.java | 3 - .../command/user/UserCommandOpenFavstar.java | 3 - .../command/user/UserCommandOpenTwilog.java | 3 - .../command/user/UserCommandReply.java | 4 +- .../command/user/UserCommandReportForSpam.java | 14 ++- .../command/user/UserCommandSendMessage.java | 4 +- .../command/user/UserCommandUnblock.java | 14 ++- .../net/lacolaco/smileessence/data/ImageCache.java | 1 - .../net/lacolaco/smileessence/data/PostState.java | 1 - .../net/lacolaco/smileessence/entity/Account.java | 83 +++++---------- .../smileessence/entity/DirectMessage.java | 2 - .../smileessence/entity/EntitySupport.java | 5 +- .../smileessence/entity/ExtractionWord.java | 2 - .../lacolaco/smileessence/entity/MuteUserIds.java | 4 - .../net/lacolaco/smileessence/entity/Template.java | 2 - .../net/lacolaco/smileessence/entity/Tweet.java | 4 +- .../smileessence/notification/Notificator.java | 2 - .../preference/UserPreferenceHelper.java | 3 - .../smileessence/twitter/OAuthSession.java | 4 - .../smileessence/twitter/StatusFilter.java | 4 +- .../smileessence/twitter/TweetBuilder.java | 2 - .../smileessence/twitter/UserStreamListener.java | 7 +- .../smileessence/twitter/task/AccessTokenTask.java | 6 +- .../smileessence/twitter/task/BlockIDsTask.java | 22 ++-- .../smileessence/twitter/task/BlockTask.java | 27 ++--- .../twitter/task/DeleteMessageTask.java | 29 ++---- .../twitter/task/DeleteStatusTask.java | 31 ++---- .../twitter/task/DirectMessagesTask.java | 17 ++- .../smileessence/twitter/task/FavoriteTask.java | 31 +++--- .../smileessence/twitter/task/FollowTask.java | 27 ++--- .../smileessence/twitter/task/GetTalkTask.java | 2 - .../twitter/task/GetUserListsTask.java | 22 ++-- .../twitter/task/HomeTimelineTask.java | 22 ++-- .../twitter/task/MentionsTimelineTask.java | 25 ++--- .../smileessence/twitter/task/MutesIDsTask.java | 21 ++-- .../twitter/task/ReportForSpamTask.java | 27 ++--- .../twitter/task/RequestTokenTask.java | 7 +- .../smileessence/twitter/task/RetweetTask.java | 31 +++--- .../smileessence/twitter/task/SearchTask.java | 29 ++---- .../smileessence/twitter/task/SendMessageTask.java | 29 ++---- .../twitter/task/SentDirectMessagesTask.java | 19 ++-- .../twitter/task/ShowDirectMessageTask.java | 19 ++-- .../twitter/task/ShowFriendshipTask.java | 19 ++-- .../smileessence/twitter/task/ShowStatusTask.java | 14 +-- .../smileessence/twitter/task/ShowUserTask.java | 23 ++--- .../smileessence/twitter/task/TweetTask.java | 32 +++--- .../smileessence/twitter/task/TwitterTask.java | 33 ------ .../twitter/task/TwitterTaskWithProgress.java | 13 --- .../smileessence/twitter/task/UnblockTask.java | 29 ++---- .../smileessence/twitter/task/UnfavoriteTask.java | 28 ++--- .../smileessence/twitter/task/UnfollowTask.java | 27 ++--- .../twitter/task/UserListStatusesTask.java | 22 ++-- .../twitter/task/UserTimelineTask.java | 25 +++-- .../smileessence/twitter/util/TwitterUtils.java | 18 ---- .../lacolaco/smileessence/util/BackgroundTask.java | 9 +- .../smileessence/util/BitmapOptimizer.java | 1 - .../net/lacolaco/smileessence/util/Function.java | 2 - .../lacolaco/smileessence/util/IntentUtils.java | 1 - .../net/lacolaco/smileessence/util/Themes.java | 1 - .../smileessence/view/CustomListFragment.java | 2 - .../lacolaco/smileessence/view/DialogHelper.java | 1 - .../smileessence/view/HistoryFragment.java | 3 - .../lacolaco/smileessence/view/HomeFragment.java | 69 +++++-------- .../smileessence/view/MentionsFragment.java | 59 ++++------- .../smileessence/view/MessagesFragment.java | 72 +++++-------- .../lacolaco/smileessence/view/PostFragment.java | 18 +--- .../lacolaco/smileessence/view/SearchFragment.java | 94 +++++++---------- .../smileessence/view/SettingFragment.java | 1 - .../smileessence/view/UserListFragment.java | 75 +++++--------- .../view/adapter/CustomListAdapter.java | 1 - .../view/adapter/EventListAdapter.java | 1 - .../view/adapter/MessageListAdapter.java | 1 - .../smileessence/view/adapter/PageListAdapter.java | 5 - .../view/adapter/StatusListAdapter.java | 1 - .../view/dialog/ChooseTemplateDialogFragment.java | 1 - .../view/dialog/ConfirmDialogFragment.java | 1 - .../view/dialog/EditTextDialogFragment.java | 1 - .../view/dialog/HashtagDialogFragment.java | 1 - .../view/dialog/MenuDialogFragment.java | 1 - .../view/dialog/MessageDetailDialogFragment.java | 22 ++-- .../view/dialog/MessageMenuDialogFragment.java | 13 +-- .../view/dialog/PostMenuDialogFragment.java | 1 - .../view/dialog/QuoteDialogFragment.java | 5 - .../view/dialog/ReviewDialogFragment.java | 4 +- .../view/dialog/SearchOnGoogleDialogFragment.java | 1 - .../view/dialog/SelectImageDialogFragment.java | 1 - .../dialog/SelectSearchQueryDialogFragment.java | 1 - .../view/dialog/SelectUserListDialogFragment.java | 1 - .../view/dialog/SendMessageDialogFragment.java | 19 ++-- .../view/dialog/SimpleDialogFragment.java | 1 - .../view/dialog/StackableDialogFragment.java | 1 - .../view/dialog/StatusDetailDialogFragment.java | 64 ++++++------ .../view/dialog/StatusMenuDialogFragment.java | 10 +- .../view/dialog/TalkChainDialogFragment.java | 5 - .../view/dialog/UserDetailDialogFragment.java | 115 ++++++++------------- .../view/dialog/UserMenuDialogFragment.java | 1 - .../view/listener/ListItemClickListener.java | 1 - .../smileessence/viewmodel/CheckBoxModel.java | 2 - .../viewmodel/EditableCheckBoxModel.java | 2 - .../smileessence/viewmodel/EventViewModel.java | 6 +- .../smileessence/viewmodel/MessageViewModel.java | 2 - .../smileessence/viewmodel/StatusViewModel.java | 32 ++---- .../viewmodel/UserListListAdapter.java | 1 - .../viewmodel/menu/MainActivityMenuHelper.java | 4 +- 155 files changed, 628 insertions(+), 1261 deletions(-) delete mode 100644 app/src/main/java/net/lacolaco/smileessence/twitter/task/TwitterTask.java delete mode 100644 app/src/main/java/net/lacolaco/smileessence/twitter/task/TwitterTaskWithProgress.java (limited to 'app/src/main/java/net/lacolaco/smileessence') diff --git a/app/src/main/java/net/lacolaco/smileessence/IntentRouter.java b/app/src/main/java/net/lacolaco/smileessence/IntentRouter.java index e374305f..68e7c2f3 100644 --- a/app/src/main/java/net/lacolaco/smileessence/IntentRouter.java +++ b/app/src/main/java/net/lacolaco/smileessence/IntentRouter.java @@ -28,16 +28,13 @@ import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; - import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.CommandOpenUserDetail; -import net.lacolaco.smileessence.entity.Account; -import net.lacolaco.smileessence.entity.Tweet; +import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.util.UIHandler; -import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.StatusDetailDialogFragment; diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java index 13c21d0f..2fa69954 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditCommandActivity.java @@ -31,7 +31,6 @@ import android.support.v4.app.NavUtils; import android.view.Menu; import android.view.MenuItem; import android.widget.ListView; - import net.lacolaco.smileessence.Application; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.Command; diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java index 78414e63..44a93ebb 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditExtractionActivity.java @@ -34,14 +34,13 @@ import android.view.*; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.ListView; - import net.lacolaco.smileessence.Application; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.ExtractionWord; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.util.Themes; -import net.lacolaco.smileessence.view.adapter.CustomListAdapter; import net.lacolaco.smileessence.view.DialogHelper; +import net.lacolaco.smileessence.view.adapter.CustomListAdapter; import net.lacolaco.smileessence.view.dialog.EditTextDialogFragment; import java.util.List; diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditTabActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditTabActivity.java index bdce51b9..e03b0bfb 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/EditTabActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditTabActivity.java @@ -30,7 +30,6 @@ import android.os.Bundle; import android.support.v4.app.NavUtils; import android.view.MenuItem; import android.widget.ListView; - import net.lacolaco.smileessence.Application; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.logging.Logger; diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/EditTemplateActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/EditTemplateActivity.java index 1fb6daa8..971e1ca4 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/EditTemplateActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/EditTemplateActivity.java @@ -34,14 +34,13 @@ import android.view.*; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.ListView; - import net.lacolaco.smileessence.Application; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Template; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.util.Themes; -import net.lacolaco.smileessence.view.adapter.CustomListAdapter; import net.lacolaco.smileessence.view.DialogHelper; +import net.lacolaco.smileessence.view.adapter.CustomListAdapter; import net.lacolaco.smileessence.view.dialog.EditTextDialogFragment; import java.util.List; diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/LicenseActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/LicenseActivity.java index ca71ca72..1101b143 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/LicenseActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/LicenseActivity.java @@ -31,7 +31,6 @@ import android.support.v4.app.NavUtils; import android.view.MenuItem; import android.widget.LinearLayout; import android.widget.TextView; - import net.lacolaco.smileessence.Application; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.util.Themes; diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java index a4e904dd..ae1dd95a 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java @@ -37,29 +37,33 @@ import android.view.Menu; import android.view.MenuItem; import android.view.WindowManager; import android.widget.ImageView; - import net.lacolaco.smileessence.Application; import net.lacolaco.smileessence.BuildConfig; import net.lacolaco.smileessence.IntentRouter; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.data.UserListCache; -import net.lacolaco.smileessence.entity.*; -import net.lacolaco.smileessence.entity.User; +import net.lacolaco.smileessence.entity.Account; +import net.lacolaco.smileessence.entity.CommandSetting; +import net.lacolaco.smileessence.entity.MuteUserIds; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.preference.InternalPreferenceHelper; import net.lacolaco.smileessence.preference.UserPreferenceHelper; -import net.lacolaco.smileessence.twitter.*; +import net.lacolaco.smileessence.twitter.OAuthSession; import net.lacolaco.smileessence.twitter.UserStreamListener; -import net.lacolaco.smileessence.twitter.task.*; +import net.lacolaco.smileessence.twitter.task.BlockIDsTask; +import net.lacolaco.smileessence.twitter.task.GetUserListsTask; +import net.lacolaco.smileessence.twitter.task.MutesIDsTask; +import net.lacolaco.smileessence.twitter.task.ShowUserTask; import net.lacolaco.smileessence.util.*; import net.lacolaco.smileessence.view.*; -import net.lacolaco.smileessence.view.adapter.*; +import net.lacolaco.smileessence.view.adapter.PageListAdapter; import net.lacolaco.smileessence.view.dialog.ConfirmDialogFragment; import net.lacolaco.smileessence.viewmodel.menu.MainActivityMenuHelper; -import twitter4j.*; +import twitter4j.TwitterStream; +import twitter4j.UserList; public class MainActivity extends Activity { @@ -310,7 +314,7 @@ public class MainActivity extends Activity { public void openSearchPage(final String query) { SearchFragment fragment = pagerAdapter.getFragment(SearchFragment.class); if (fragment != null) { - fragment.startSearch(getCurrentAccount().getTwitter(), query); + fragment.startSearch(getCurrentAccount(), query); openSearchPage(); } } @@ -318,7 +322,7 @@ public class MainActivity extends Activity { public void openUserListPage(String listFullName) { UserListFragment fragment = pagerAdapter.getFragment(UserListFragment.class); if (fragment != null) { - fragment.startUserList(getCurrentAccount().getTwitter(), listFullName); + fragment.startUserList(getCurrentAccount(), listFullName); openUserListPage(); } } @@ -352,28 +356,21 @@ public class MainActivity extends Activity { if (!startStream()) { return false; } - Twitter twitter = currentAccount.getTwitter(); - initInvisibleUser(twitter); - initUserListCache(twitter); + initInvisibleUser(); + initUserListCache(); updateActionBarIcon(); return true; } public void updateActionBarIcon() { - Twitter twitter = currentAccount.getTwitter(); final ImageView homeIcon = (ImageView) findViewById(android.R.id.home); - ShowUserTask userTask = new ShowUserTask(twitter, currentAccount.userID) { - @Override - protected void onPostExecute(User user) { - super.onPostExecute(user); - if (user != null) { - String urlHttps = user.getProfileImageUrl(); - homeIcon.setScaleType(ImageView.ScaleType.FIT_CENTER); - new BitmapURLTask(urlHttps, homeIcon).execute(); - } + new ShowUserTask(currentAccount, currentAccount.userID).onDoneUI(user -> { + if (user != null) { + String urlHttps = user.getProfileImageUrl(); + homeIcon.setScaleType(ImageView.ScaleType.FIT_CENTER); + new BitmapURLTask(urlHttps, homeIcon).execute(); } - }; - userTask.execute(); + }).execute(); } private void getImageUri(int requestCode, int resultCode, Intent data) { @@ -392,18 +389,30 @@ public class MainActivity extends Activity { openPostPageWithImage(uri); } - private void initInvisibleUser(Twitter twitter) { - new BlockIDsTask(twitter).execute(); - new MutesIDsTask(twitter).execute(); + private void initInvisibleUser() { + new BlockIDsTask(getCurrentAccount()).onDone(idList -> { + for (Long blockID : idList) { + MuteUserIds.add(blockID); + } + }).execute(); + new MutesIDsTask(getCurrentAccount()).onDone(mutesIDs -> { + for (Long mutesID : mutesIDs) { + MuteUserIds.add(mutesID); + } + }).execute(); } private void initPostState() { PostState.newState().beginTransaction().commit(); } - private void initUserListCache(Twitter twitter) { + private void initUserListCache() { UserListCache.getInstance().clear(); - new GetUserListsTask(twitter).execute(); + new GetUserListsTask(getCurrentAccount()).onDone(lists -> { + for (UserList list : lists) { + UserListCache.getInstance().put(list.getFullName()); + } + }).execute(); } private void initializePages() { diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/OAuthActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/OAuthActivity.java index 68052ddd..4d7d1824 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/OAuthActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/OAuthActivity.java @@ -34,13 +34,9 @@ import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.twitter.OAuthSession; - -import java.io.File; - import twitter4j.auth.AccessToken; public class OAuthActivity extends Activity implements View.OnClickListener, TextWatcher { diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/SettingActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/SettingActivity.java index 89e9f68d..c7c661d4 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/SettingActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/SettingActivity.java @@ -29,7 +29,6 @@ import android.app.Activity; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.view.MenuItem; - import net.lacolaco.smileessence.Application; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.util.Themes; diff --git a/app/src/main/java/net/lacolaco/smileessence/command/Command.java b/app/src/main/java/net/lacolaco/smileessence/command/Command.java index eb8cf797..cd8a3ec9 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/Command.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/Command.java @@ -28,19 +28,16 @@ import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; - import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.command.message.*; +import net.lacolaco.smileessence.command.message.MessageCommandCopyTextToClipboard; +import net.lacolaco.smileessence.command.message.MessageCommandSearchOnGoogle; +import net.lacolaco.smileessence.command.message.MessageCommandShare; +import net.lacolaco.smileessence.command.message.MessageCommandTofuBuster; import net.lacolaco.smileessence.command.status.*; import net.lacolaco.smileessence.command.user.*; -import net.lacolaco.smileessence.entity.Account; -import net.lacolaco.smileessence.entity.CommandSetting; -import net.lacolaco.smileessence.entity.Tweet; -import net.lacolaco.smileessence.entity.User; +import net.lacolaco.smileessence.entity.*; import net.lacolaco.smileessence.viewmodel.IViewModel; -import net.lacolaco.smileessence.entity.DirectMessage; - import java.util.ArrayList; import java.util.Iterator; import java.util.List; diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenHashtagDialog.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenHashtagDialog.java index 7b481e5c..0ac9659c 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenHashtagDialog.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenHashtagDialog.java @@ -25,12 +25,9 @@ package net.lacolaco.smileessence.command; import android.app.Activity; - import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.HashtagDialogFragment; -import twitter4j.HashtagEntity; - public class CommandOpenHashtagDialog extends Command { // ------------------------------ FIELDS ------------------------------ diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenSearch.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenSearch.java index 8dc06e41..f444cccd 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenSearch.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenSearch.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.entity.SearchQuery; diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenTemplateList.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenTemplateList.java index c14506ca..c9265dc0 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenTemplateList.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenTemplateList.java @@ -25,11 +25,10 @@ package net.lacolaco.smileessence.command; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Template; -import net.lacolaco.smileessence.view.dialog.ChooseTemplateDialogFragment; import net.lacolaco.smileessence.view.DialogHelper; +import net.lacolaco.smileessence.view.dialog.ChooseTemplateDialogFragment; public class CommandOpenTemplateList extends Command { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenURL.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenURL.java index 35e5c00a..6281e1d2 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenURL.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenURL.java @@ -27,7 +27,6 @@ package net.lacolaco.smileessence.command; import android.app.Activity; import android.content.Intent; import android.net.Uri; - import net.lacolaco.smileessence.util.IntentUtils; public class CommandOpenURL extends Command { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserDetail.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserDetail.java index 92468eea..aacc2d42 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserDetail.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserDetail.java @@ -25,10 +25,8 @@ package net.lacolaco.smileessence.command; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Account; -import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.twitter.task.ShowUserTask; @@ -66,19 +64,15 @@ public class CommandOpenUserDetail extends Command { @Override public boolean execute() { - new ShowUserTask(account.getTwitter(), screenName) { - @Override - protected void onPostExecute(User user) { - super.onPostExecute(user); - if (user != null) { - UserDetailDialogFragment fragment = new UserDetailDialogFragment(); - fragment.setUserID(user.getId()); - DialogHelper.showDialog(getActivity(), fragment); - } else { - Notificator.getInstance().publish(R.string.notice_error_show_user, NotificationType.ALERT); - } + new ShowUserTask(account, screenName).onDoneUI(user -> { + if (user != null) { + UserDetailDialogFragment fragment = new UserDetailDialogFragment(); + fragment.setUserID(user.getId()); + DialogHelper.showDialog(getActivity(), fragment); + } else { + Notificator.getInstance().publish(R.string.notice_error_show_user, NotificationType.ALERT); } - }.execute(); + }).execute(); return false; } diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserList.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserList.java index fafef0f1..187411dd 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserList.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandOpenUserList.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command; import android.app.Activity; - import net.lacolaco.smileessence.activity.MainActivity; public class CommandOpenUserList extends Command { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandPasteToPost.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandPasteToPost.java index 75d4b6c8..b7e681e5 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/CommandPasteToPost.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandPasteToPost.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.data.PostState; diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandSaveAsTemplate.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandSaveAsTemplate.java index f3f02e78..d110cadd 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/CommandSaveAsTemplate.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandSaveAsTemplate.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Template; import net.lacolaco.smileessence.notification.Notificator; diff --git a/app/src/main/java/net/lacolaco/smileessence/command/CommandSearchOnTwitter.java b/app/src/main/java/net/lacolaco/smileessence/command/CommandSearchOnTwitter.java index cb037636..350349dd 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/CommandSearchOnTwitter.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/CommandSearchOnTwitter.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.preference.UserPreferenceHelper; diff --git a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommand.java b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommand.java index 9c05d80d..0bc5145b 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommand.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommand.java @@ -25,9 +25,7 @@ package net.lacolaco.smileessence.command.message; import android.app.Activity; - import net.lacolaco.smileessence.command.Command; - import net.lacolaco.smileessence.entity.DirectMessage; public abstract class MessageCommand extends Command { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandCopyTextToClipboard.java b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandCopyTextToClipboard.java index 4c8088b0..1ee899fc 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandCopyTextToClipboard.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandCopyTextToClipboard.java @@ -27,11 +27,9 @@ package net.lacolaco.smileessence.command.message; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; - import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.notification.Notificator; - import net.lacolaco.smileessence.entity.DirectMessage; +import net.lacolaco.smileessence.notification.Notificator; public class MessageCommandCopyTextToClipboard extends MessageCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandSearchOnGoogle.java b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandSearchOnGoogle.java index f23e86dd..54467f26 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandSearchOnGoogle.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandSearchOnGoogle.java @@ -25,13 +25,11 @@ package net.lacolaco.smileessence.command.message; import android.app.Activity; - import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.DirectMessage; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.SearchOnGoogleDialogFragment; -import net.lacolaco.smileessence.entity.DirectMessage; - public class MessageCommandSearchOnGoogle extends MessageCommand { // --------------------------- CONSTRUCTORS --------------------------- diff --git a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandShare.java b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandShare.java index d07ecf13..92b8296e 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandShare.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandShare.java @@ -26,12 +26,9 @@ package net.lacolaco.smileessence.command.message; import android.app.Activity; import android.content.Intent; - import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; -import net.lacolaco.smileessence.util.IntentUtils; - import net.lacolaco.smileessence.entity.DirectMessage; +import net.lacolaco.smileessence.util.IntentUtils; public class MessageCommandShare extends MessageCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandTofuBuster.java b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandTofuBuster.java index 22a055c2..24eb49db 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandTofuBuster.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandTofuBuster.java @@ -27,11 +27,9 @@ package net.lacolaco.smileessence.command.message; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; - import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.notification.Notificator; - import net.lacolaco.smileessence.entity.DirectMessage; +import net.lacolaco.smileessence.notification.Notificator; public class MessageCommandTofuBuster extends MessageCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommand.java b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommand.java index f7e13995..e918b531 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommand.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommand.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command.post; import android.app.Activity; - import net.lacolaco.smileessence.command.Command; import net.lacolaco.smileessence.data.PostState; diff --git a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandMakeAnonymous.java b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandMakeAnonymous.java index 802827a7..f045a36f 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandMakeAnonymous.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandMakeAnonymous.java @@ -26,7 +26,6 @@ package net.lacolaco.smileessence.command.post; import android.app.Activity; import android.text.TextUtils; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.data.PostState; diff --git a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandMorse.java b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandMorse.java index 64a3b35f..229cc193 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandMorse.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandMorse.java @@ -26,10 +26,9 @@ package net.lacolaco.smileessence.command.post; import android.app.Activity; import android.text.TextUtils; - import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.util.Morse; import net.lacolaco.smileessence.data.PostState; +import net.lacolaco.smileessence.util.Morse; public class PostCommandMorse extends PostCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandUseTemplate.java b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandUseTemplate.java index 2701f870..6cc7c860 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandUseTemplate.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandUseTemplate.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command.post; import android.app.Activity; - import net.lacolaco.smileessence.entity.Template; public class PostCommandUseTemplate extends PostCommandInsert { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandZekamashi.java b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandZekamashi.java index 5c8955c4..5d9bec23 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandZekamashi.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/post/PostCommandZekamashi.java @@ -26,7 +26,6 @@ package net.lacolaco.smileessence.command.post; import android.app.Activity; import android.text.TextUtils; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.data.PostState; diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommand.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommand.java index 9f6f3edb..12cddf77 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommand.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommand.java @@ -25,11 +25,8 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.command.Command; - import net.lacolaco.smileessence.entity.Tweet; -import twitter4j.Status; public abstract class StatusCommand extends Command { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandAddToReply.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandAddToReply.java index a4f08ebd..b542f59c 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandAddToReply.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandAddToReply.java @@ -25,11 +25,10 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.notification.Notificator; -import net.lacolaco.smileessence.data.PostState; public class StatusCommandAddToReply extends StatusCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCongratulate.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCongratulate.java index 8b68b128..6ca0dfbc 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCongratulate.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCongratulate.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.IConfirmable; import net.lacolaco.smileessence.entity.Account; @@ -33,9 +32,7 @@ import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.twitter.TweetBuilder; import net.lacolaco.smileessence.twitter.task.FavoriteTask; import net.lacolaco.smileessence.twitter.task.TweetTask; - import twitter4j.StatusUpdate; -import twitter4j.Twitter; import java.util.Random; @@ -90,9 +87,8 @@ public class StatusCommandCongratulate extends StatusCommand implements IConfirm StatusUpdate update = new TweetBuilder().setText(build()) .setInReplyToStatusID(getOriginalStatus().getId()) .build(); - Twitter twitter = account.getTwitter(); - new TweetTask(twitter, update).execute(); - new FavoriteTask(twitter, getOriginalStatus().getId()).execute(); + new TweetTask(account, update).execute(); + new FavoriteTask(account, getOriginalStatus().getId()).execute(); return true; } } diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopy.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopy.java index 463adf1a..b36a64b5 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopy.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopy.java @@ -25,11 +25,10 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.data.PostState; +import net.lacolaco.smileessence.entity.Tweet; public class StatusCommandCopy extends StatusCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyTextToClipboard.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyTextToClipboard.java index b36849b5..47827485 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyTextToClipboard.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyTextToClipboard.java @@ -27,13 +27,10 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.notification.Notificator; -import twitter4j.Status; - public class StatusCommandCopyTextToClipboard extends StatusCommand { // --------------------------- CONSTRUCTORS --------------------------- diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyURLToClipboard.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyURLToClipboard.java index 1b0c740c..542e7ddb 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyURLToClipboard.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyURLToClipboard.java @@ -27,13 +27,9 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.notification.Notificator; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; - -import twitter4j.Status; public class StatusCommandCopyURLToClipboard extends StatusCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandFavAndRT.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandFavAndRT.java index d8d9e4a8..a50349a4 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandFavAndRT.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandFavAndRT.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.IConfirmable; import net.lacolaco.smileessence.entity.Account; @@ -65,8 +64,8 @@ public class StatusCommandFavAndRT extends StatusCommand implements IConfirmable @Override public boolean execute() { - new FavoriteTask(account.getTwitter(), getOriginalStatus().getId()).execute(); - new RetweetTask(account.getTwitter(), getOriginalStatus().getId()).execute(); + new FavoriteTask(account, getOriginalStatus().getId()).execute(); + new RetweetTask(account, getOriginalStatus().getId()).execute(); return true; } } diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandMakeAnonymous.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandMakeAnonymous.java index 1514f9ed..1235d9d5 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandMakeAnonymous.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandMakeAnonymous.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.IConfirmable; import net.lacolaco.smileessence.entity.Account; @@ -33,9 +32,7 @@ import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.twitter.TweetBuilder; import net.lacolaco.smileessence.twitter.task.FavoriteTask; import net.lacolaco.smileessence.twitter.task.TweetTask; - import twitter4j.StatusUpdate; -import twitter4j.Twitter; public class StatusCommandMakeAnonymous extends StatusCommand implements IConfirmable { @@ -82,9 +79,8 @@ public class StatusCommandMakeAnonymous extends StatusCommand implements IConfir @Override public boolean execute() { StatusUpdate update = new TweetBuilder().setText(build(getActivity(), getOriginalStatus(), account)).build(); - Twitter twitter = account.getTwitter(); - new TweetTask(twitter, update).execute(); - new FavoriteTask(twitter, getOriginalStatus().getId()).execute(); + new TweetTask(account, update).execute(); + new FavoriteTask(account, getOriginalStatus().getId()).execute(); return true; } } diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandNanigaja.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandNanigaja.java index 57b7e139..cb4c677a 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandNanigaja.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandNanigaja.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.IConfirmable; import net.lacolaco.smileessence.entity.Account; @@ -33,9 +32,7 @@ import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.twitter.TweetBuilder; import net.lacolaco.smileessence.twitter.task.FavoriteTask; import net.lacolaco.smileessence.twitter.task.TweetTask; - import twitter4j.StatusUpdate; -import twitter4j.Twitter; public class StatusCommandNanigaja extends StatusCommand implements IConfirmable { @@ -83,9 +80,8 @@ public class StatusCommandNanigaja extends StatusCommand implements IConfirmable StatusUpdate update = new TweetBuilder().setText(build()) .setInReplyToStatusID(getOriginalStatus().getId()) .build(); - Twitter twitter = account.getTwitter(); - new TweetTask(twitter, update).execute(); - new FavoriteTask(twitter, getOriginalStatus().getId()).execute(); + new TweetTask(account, update).execute(); + new FavoriteTask(account, getOriginalStatus().getId()).execute(); return true; } diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenInBrowser.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenInBrowser.java index 818ef672..f1bb9355 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenInBrowser.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenInBrowser.java @@ -25,13 +25,9 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.CommandOpenURL; import net.lacolaco.smileessence.entity.Tweet; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; - -import twitter4j.Status; public class StatusCommandOpenInBrowser extends StatusCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenQuoteDialog.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenQuoteDialog.java index 45fb06e6..f802d255 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenQuoteDialog.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenQuoteDialog.java @@ -25,14 +25,11 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.QuoteDialogFragment; -import twitter4j.Status; - public class StatusCommandOpenQuoteDialog extends StatusCommand { // --------------------------- CONSTRUCTORS --------------------------- diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenTalkView.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenTalkView.java index 3034e9cc..bb826412 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenTalkView.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandOpenTalkView.java @@ -25,15 +25,12 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.TalkChainDialogFragment; -import twitter4j.Status; - public class StatusCommandOpenTalkView extends StatusCommand { // ------------------------------ FIELDS ------------------------------ diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandReview.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandReview.java index df5f6515..7ef2ffbc 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandReview.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandReview.java @@ -25,14 +25,11 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.ReviewDialogFragment; -import twitter4j.Status; - public class StatusCommandReview extends StatusCommand { // --------------------------- CONSTRUCTORS --------------------------- diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandSearchOnGoogle.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandSearchOnGoogle.java index 91738e23..6b46ba4c 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandSearchOnGoogle.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandSearchOnGoogle.java @@ -25,14 +25,11 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.SearchOnGoogleDialogFragment; -import twitter4j.Status; - public class StatusCommandSearchOnGoogle extends StatusCommand { // --------------------------- CONSTRUCTORS --------------------------- diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandShare.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandShare.java index 57987380..67db061b 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandShare.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandShare.java @@ -26,14 +26,10 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; import android.content.Intent; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Tweet; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; import net.lacolaco.smileessence.util.IntentUtils; -import twitter4j.Status; - public class StatusCommandShare extends StatusCommand { // --------------------------- CONSTRUCTORS --------------------------- diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandTextQuote.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandTextQuote.java index 534e7e1a..231206db 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandTextQuote.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandTextQuote.java @@ -25,12 +25,11 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; +import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.twitter.TweetBuilder; -import net.lacolaco.smileessence.data.PostState; public class StatusCommandTextQuote extends StatusCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandTofuBuster.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandTofuBuster.java index 9f681ed5..cd228714 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandTofuBuster.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandTofuBuster.java @@ -27,13 +27,10 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.notification.Notificator; -import twitter4j.Status; - public class StatusCommandTofuBuster extends StatusCommand { // --------------------------- CONSTRUCTORS --------------------------- diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandURLQuote.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandURLQuote.java index 46275e23..7b103a6d 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandURLQuote.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandURLQuote.java @@ -25,11 +25,10 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.data.PostState; +import net.lacolaco.smileessence.entity.Tweet; public class StatusCommandURLQuote extends StatusCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommand.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommand.java index b371c8a0..6cf220be 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommand.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommand.java @@ -25,9 +25,7 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.command.Command; - import net.lacolaco.smileessence.entity.User; public abstract class UserCommand extends Command { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandAddToReply.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandAddToReply.java index 537e9948..618f97cf 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandAddToReply.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandAddToReply.java @@ -25,12 +25,10 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.data.PostState; - import net.lacolaco.smileessence.entity.User; +import net.lacolaco.smileessence.notification.Notificator; public class UserCommandAddToReply extends UserCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandBlock.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandBlock.java index ef58b60e..aeabe94d 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandBlock.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandBlock.java @@ -25,13 +25,13 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.IConfirmable; import net.lacolaco.smileessence.entity.Account; -import net.lacolaco.smileessence.twitter.task.BlockTask; - import net.lacolaco.smileessence.entity.User; +import net.lacolaco.smileessence.notification.NotificationType; +import net.lacolaco.smileessence.notification.Notificator; +import net.lacolaco.smileessence.twitter.task.BlockTask; public class UserCommandBlock extends UserCommand implements IConfirmable { @@ -62,7 +62,13 @@ public class UserCommandBlock extends UserCommand implements IConfirmable { @Override public boolean execute() { - new BlockTask(account.getTwitter(), getUser().getId()).execute(); + new BlockTask(account, getUser().getId()).onDoneUI((user)-> { + if (user != null) { + Notificator.getInstance().publish(R.string.notice_block_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_block_failed, NotificationType.ALERT); + } + }).execute(); return true; } } diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandIntroduce.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandIntroduce.java index e9d27c2e..723836a7 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandIntroduce.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandIntroduce.java @@ -25,11 +25,9 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.data.PostState; - import net.lacolaco.smileessence.entity.User; public class UserCommandIntroduce extends UserCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenAclog.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenAclog.java index 97867e2a..dfeb911b 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenAclog.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenAclog.java @@ -25,11 +25,8 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.CommandOpenURL; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; - import net.lacolaco.smileessence.entity.User; public class UserCommandOpenAclog extends UserCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenFavstar.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenFavstar.java index a91694db..4f2b4a48 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenFavstar.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenFavstar.java @@ -25,11 +25,8 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.CommandOpenURL; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; - import net.lacolaco.smileessence.entity.User; public class UserCommandOpenFavstar extends UserCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenTwilog.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenTwilog.java index e998d40b..6413fe40 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenTwilog.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandOpenTwilog.java @@ -25,11 +25,8 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.CommandOpenURL; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; - import net.lacolaco.smileessence.entity.User; public class UserCommandOpenTwilog extends UserCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandReply.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandReply.java index 46124f82..9ea466ea 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandReply.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandReply.java @@ -25,13 +25,11 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.twitter.TweetBuilder; import net.lacolaco.smileessence.data.PostState; - import net.lacolaco.smileessence.entity.User; +import net.lacolaco.smileessence.twitter.TweetBuilder; public class UserCommandReply extends UserCommand { diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandReportForSpam.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandReportForSpam.java index 4a36e303..6958aa81 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandReportForSpam.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandReportForSpam.java @@ -25,13 +25,13 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.IConfirmable; import net.lacolaco.smileessence.entity.Account; -import net.lacolaco.smileessence.twitter.task.ReportForSpamTask; - import net.lacolaco.smileessence.entity.User; +import net.lacolaco.smileessence.notification.NotificationType; +import net.lacolaco.smileessence.notification.Notificator; +import net.lacolaco.smileessence.twitter.task.ReportForSpamTask; public class UserCommandReportForSpam extends UserCommand implements IConfirmable { @@ -62,7 +62,13 @@ public class UserCommandReportForSpam extends UserCommand implements IConfirmabl @Override public boolean execute() { - new ReportForSpamTask(account.getTwitter(), getUser().getId()).execute(); + new ReportForSpamTask(account, getUser().getId()).onDoneUI(user -> { + if (user != null) { + Notificator.getInstance().publish(R.string.notice_r4s_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_r4s_failed, NotificationType.ALERT); + } + }).execute(); return true; } } diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandSendMessage.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandSendMessage.java index ff3c434f..7a88ceb1 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandSendMessage.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandSendMessage.java @@ -25,14 +25,12 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Account; +import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.SendMessageDialogFragment; -import net.lacolaco.smileessence.entity.User; - public class UserCommandSendMessage extends UserCommand { // ------------------------------ FIELDS ------------------------------ diff --git a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandUnblock.java b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandUnblock.java index 5d6f1ca1..a8e554ef 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandUnblock.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/user/UserCommandUnblock.java @@ -25,13 +25,13 @@ package net.lacolaco.smileessence.command.user; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.command.IConfirmable; import net.lacolaco.smileessence.entity.Account; -import net.lacolaco.smileessence.twitter.task.UnblockTask; - import net.lacolaco.smileessence.entity.User; +import net.lacolaco.smileessence.notification.NotificationType; +import net.lacolaco.smileessence.notification.Notificator; +import net.lacolaco.smileessence.twitter.task.UnblockTask; public class UserCommandUnblock extends UserCommand implements IConfirmable { @@ -62,7 +62,13 @@ public class UserCommandUnblock extends UserCommand implements IConfirmable { @Override public boolean execute() { - new UnblockTask(account.getTwitter(), getUser().getId()).execute(); + new UnblockTask(account, getUser().getId()).onDoneUI(user -> { + if (user != null) { + Notificator.getInstance().publish(R.string.notice_unblock_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_unblock_failed, NotificationType.ALERT); + } + }).execute(); return true; } } diff --git a/app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java b/app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java index 6337cba9..823a07b7 100644 --- a/app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java +++ b/app/src/main/java/net/lacolaco/smileessence/data/ImageCache.java @@ -26,7 +26,6 @@ package net.lacolaco.smileessence.data; import android.graphics.Bitmap; import android.util.LruCache; - import com.android.volley.RequestQueue; import com.android.volley.VolleyError; import com.android.volley.toolbox.*; diff --git a/app/src/main/java/net/lacolaco/smileessence/data/PostState.java b/app/src/main/java/net/lacolaco/smileessence/data/PostState.java index 291070dd..0c74b213 100644 --- a/app/src/main/java/net/lacolaco/smileessence/data/PostState.java +++ b/app/src/main/java/net/lacolaco/smileessence/data/PostState.java @@ -26,7 +26,6 @@ package net.lacolaco.smileessence.data; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.view.DialogHelper; - import twitter4j.StatusUpdate; public class PostState { diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/Account.java b/app/src/main/java/net/lacolaco/smileessence/entity/Account.java index d5cc6b1b..9e59d06a 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/Account.java +++ b/app/src/main/java/net/lacolaco/smileessence/entity/Account.java @@ -24,6 +24,7 @@ package net.lacolaco.smileessence.entity; +import android.os.Handler; import com.activeandroid.Model; import com.activeandroid.annotation.Column; import com.activeandroid.annotation.Table; @@ -31,7 +32,7 @@ import com.activeandroid.query.Delete; import net.lacolaco.smileessence.twitter.task.ShowDirectMessageTask; import net.lacolaco.smileessence.twitter.task.ShowStatusTask; import net.lacolaco.smileessence.twitter.task.ShowUserTask; -import net.lacolaco.smileessence.twitter.task.TwitterTask; +import net.lacolaco.smileessence.util.BackgroundTask; import net.lacolaco.smileessence.util.Consumer; import twitter4j.Twitter; import twitter4j.TwitterFactory; @@ -99,17 +100,14 @@ public class Account extends Model { if (message != null) { callback.success(message); } else { - ShowDirectMessageTask task = new ShowDirectMessageTask(getTwitter(), messageID) { - @Override - protected void onPostExecute(DirectMessage directMessage) { - super.onPostExecute(directMessage); - if (directMessage != null) { - callback.success(directMessage); - } else { - callback.error(); - } + Handler handler = new Handler(); + BackgroundTask task = new ShowDirectMessageTask(this, messageID).onDone(directMessage -> handler.post(() -> { + if (directMessage != null) { + callback.success(directMessage); + } else { + callback.error(); } - }; + })); task.execute(); } } @@ -121,69 +119,34 @@ public class Account extends Model { User user = User.fetch(userID); if (user != null) { callback.success(user); - ShowUserTask task = new ShowUserTask(getTwitter(), userID); + ShowUserTask task = new ShowUserTask(this, userID); task.execute(); } else { - ShowUserTask task = new ShowUserTask(getTwitter(), userID) { - @Override - protected void onPostExecute(User user) { - super.onPostExecute(user); - if (user != null) { - callback.success(user); - } else { - callback.error(); - } - + Handler handler = new Handler(); + BackgroundTask task = new ShowUserTask(this, userID).onDone(gotUser -> handler.post(() -> { + if (gotUser != null) { + callback.success(gotUser); + } else { + callback.error(); } - }; + })); task.execute(); } } - public void fetchTweet(long statusId, Consumer callback, boolean forceRetrieve) { + public BackgroundTask fetchTweet(long statusId, Consumer callback, boolean forceRetrieve) { Tweet tweet = Tweet.fetch(statusId); if (forceRetrieve || tweet == null) { - new ShowStatusTask(getTwitter(), statusId) { - @Override - protected void onPostExecute(Tweet tweet) { - callback.accept(tweet); - } - }.execute(); + Handler handler = new Handler(); // get current Looper + return new ShowStatusTask(this, statusId).onDone(t -> handler.post(() -> callback.accept(t))).execute(); } else { callback.accept(tweet); + return null; } } - public void fetchTweet(long statusId, Consumer callback) { - fetchTweet(statusId, callback, false); - } - public TwitterTask tryGetStatus(long statusID, final StatusCallback callback) { - ShowStatusTask task; - Tweet tweet = Tweet.fetch(statusID); - if (tweet != null) { - callback.success(tweet); - //update cache - task = new ShowStatusTask(getTwitter(), statusID); - } else { - task = new ShowStatusTask(getTwitter(), statusID) { - @Override - protected void onPostExecute(Tweet tweet) { - if (tweet != null) { - callback.success(tweet); - } else { - callback.error(); - } - } - }; - } - return (TwitterTask) task.execute(); - } - - public interface StatusCallback { - - void success(Tweet status); - - void error(); + public BackgroundTask fetchTweet(long statusId, Consumer callback) { + return fetchTweet(statusId, callback, false); } public interface UserCallback { diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.java b/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.java index df9d50e8..aba37462 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.java +++ b/app/src/main/java/net/lacolaco/smileessence/entity/DirectMessage.java @@ -3,9 +3,7 @@ package net.lacolaco.smileessence.entity; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import net.lacolaco.smileessence.util.ListUtils; -import twitter4j.*; -import java.util.ArrayList; import java.util.Date; import java.util.List; diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/EntitySupport.java b/app/src/main/java/net/lacolaco/smileessence/entity/EntitySupport.java index 7d9f6360..ddfa016e 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/EntitySupport.java +++ b/app/src/main/java/net/lacolaco/smileessence/entity/EntitySupport.java @@ -2,7 +2,10 @@ package net.lacolaco.smileessence.entity; import twitter4j.*; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; public abstract class EntitySupport { private List mentions; diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/ExtractionWord.java b/app/src/main/java/net/lacolaco/smileessence/entity/ExtractionWord.java index 8ff23b9b..d706da90 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/ExtractionWord.java +++ b/app/src/main/java/net/lacolaco/smileessence/entity/ExtractionWord.java @@ -28,12 +28,10 @@ import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; - import com.activeandroid.Model; import com.activeandroid.annotation.Column; import com.activeandroid.annotation.Table; import com.activeandroid.query.Select; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.viewmodel.IViewModel; diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/MuteUserIds.java b/app/src/main/java/net/lacolaco/smileessence/entity/MuteUserIds.java index e699adaa..9b3824ef 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/MuteUserIds.java +++ b/app/src/main/java/net/lacolaco/smileessence/entity/MuteUserIds.java @@ -1,10 +1,6 @@ package net.lacolaco.smileessence.entity; -import android.support.annotation.NonNull; - -import java.util.Collection; import java.util.HashSet; -import java.util.Iterator; import java.util.Set; public class MuteUserIds { diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/Template.java b/app/src/main/java/net/lacolaco/smileessence/entity/Template.java index 23c68687..089c4493 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/Template.java +++ b/app/src/main/java/net/lacolaco/smileessence/entity/Template.java @@ -28,12 +28,10 @@ import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; - import com.activeandroid.Model; import com.activeandroid.annotation.Column; import com.activeandroid.annotation.Table; import com.activeandroid.query.Select; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.viewmodel.IViewModel; diff --git a/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.java b/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.java index d356eb9a..b41d1ba9 100644 --- a/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.java +++ b/app/src/main/java/net/lacolaco/smileessence/entity/Tweet.java @@ -2,11 +2,9 @@ package net.lacolaco.smileessence.entity; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; import net.lacolaco.smileessence.util.ListUtils; -import twitter4j.*; +import twitter4j.Status; -import java.util.ArrayList; import java.util.Date; import java.util.List; diff --git a/app/src/main/java/net/lacolaco/smileessence/notification/Notificator.java b/app/src/main/java/net/lacolaco/smileessence/notification/Notificator.java index 12c49fd8..ef2e0868 100644 --- a/app/src/main/java/net/lacolaco/smileessence/notification/Notificator.java +++ b/app/src/main/java/net/lacolaco/smileessence/notification/Notificator.java @@ -26,11 +26,9 @@ package net.lacolaco.smileessence.notification; import android.app.Activity; import android.widget.Toast; - import de.keyboardsurfer.android.widget.crouton.Configuration; import de.keyboardsurfer.android.widget.crouton.Crouton; import de.keyboardsurfer.android.widget.crouton.Style; - import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.util.UIHandler; diff --git a/app/src/main/java/net/lacolaco/smileessence/preference/UserPreferenceHelper.java b/app/src/main/java/net/lacolaco/smileessence/preference/UserPreferenceHelper.java index 61420658..059af552 100644 --- a/app/src/main/java/net/lacolaco/smileessence/preference/UserPreferenceHelper.java +++ b/app/src/main/java/net/lacolaco/smileessence/preference/UserPreferenceHelper.java @@ -24,13 +24,10 @@ package net.lacolaco.smileessence.preference; -import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; import net.lacolaco.smileessence.Application; -import java.util.Set; - public class UserPreferenceHelper extends SharedPreferenceHelper { // --------------------------- CONSTRUCTORS --------------------------- diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/OAuthSession.java b/app/src/main/java/net/lacolaco/smileessence/twitter/OAuthSession.java index 8dcc5c28..bb02b0b7 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/OAuthSession.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/OAuthSession.java @@ -24,18 +24,14 @@ package net.lacolaco.smileessence.twitter; -import net.lacolaco.smileessence.BuildConfig; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.twitter.task.AccessTokenTask; import net.lacolaco.smileessence.twitter.task.RequestTokenTask; - import twitter4j.Twitter; import twitter4j.TwitterFactory; import twitter4j.auth.AccessToken; import twitter4j.auth.RequestToken; -import java.util.concurrent.ExecutionException; - public class OAuthSession { // ------------------------------ FIELDS ------------------------------ diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java b/app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java index a4926ec1..095522bc 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/StatusFilter.java @@ -27,7 +27,9 @@ package net.lacolaco.smileessence.twitter; import net.lacolaco.smileessence.util.Consumer; import net.lacolaco.smileessence.viewmodel.IViewModel; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.WeakHashMap; public class StatusFilter { private Map, Map>> handlers = new HashMap<>(); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/TweetBuilder.java b/app/src/main/java/net/lacolaco/smileessence/twitter/TweetBuilder.java index 4946a44e..2f1369f9 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/TweetBuilder.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/TweetBuilder.java @@ -25,14 +25,12 @@ package net.lacolaco.smileessence.twitter; import android.text.TextUtils; - import net.lacolaco.smileessence.entity.Tweet; import twitter4j.Status; import twitter4j.StatusUpdate; import java.io.File; import java.util.ArrayList; -import java.util.Collection; import java.util.List; public class TweetBuilder { diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.java b/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.java index 6a8936f3..d045054a 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/UserStreamListener.java @@ -26,17 +26,14 @@ package net.lacolaco.smileessence.twitter; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.data.*; +import net.lacolaco.smileessence.data.FavoriteCache; +import net.lacolaco.smileessence.data.UserListCache; import net.lacolaco.smileessence.entity.DirectMessage; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.preference.UserPreferenceHelper; -import net.lacolaco.smileessence.view.adapter.CustomListAdapter; -import net.lacolaco.smileessence.view.adapter.EventListAdapter; -import net.lacolaco.smileessence.view.adapter.MessageListAdapter; -import net.lacolaco.smileessence.view.adapter.StatusListAdapter; import net.lacolaco.smileessence.viewmodel.EnumEvent; import net.lacolaco.smileessence.viewmodel.EventViewModel; import net.lacolaco.smileessence.viewmodel.MessageViewModel; diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/AccessTokenTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/AccessTokenTask.java index ea549fc4..02f8dea3 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/AccessTokenTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/AccessTokenTask.java @@ -24,22 +24,24 @@ package net.lacolaco.smileessence.twitter.task; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.auth.AccessToken; import twitter4j.auth.RequestToken; -public class AccessTokenTask extends TwitterTask { +public class AccessTokenTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Twitter twitter; private final RequestToken requestToken; private final String pinCode; // --------------------------- CONSTRUCTORS --------------------------- public AccessTokenTask(Twitter twitter, RequestToken requestToken, String pinCode) { - super(twitter); + this.twitter = twitter; this.requestToken = requestToken; this.pinCode = pinCode; } diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/BlockIDsTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/BlockIDsTask.java index 6e18ae99..9b2b78e3 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/BlockIDsTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/BlockIDsTask.java @@ -24,41 +24,35 @@ package net.lacolaco.smileessence.twitter.task; -import net.lacolaco.smileessence.entity.MuteUserIds; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.logging.Logger; - +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.IDs; -import twitter4j.Twitter; import twitter4j.TwitterException; import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class BlockIDsTask extends TwitterTask> { +public class BlockIDsTask extends BackgroundTask, Void> { + + private final Account account; // --------------------------- CONSTRUCTORS --------------------------- - public BlockIDsTask(Twitter twitter) { - super(twitter); + public BlockIDsTask(Account account) { + this.account = account; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(List blockIDs) { - for (Long blockID : blockIDs) { - MuteUserIds.add(blockID); - } - } - @Override protected List doInBackground(Void... params) { try { List idList = new ArrayList<>(); long cursor = -1; do { - IDs blocksIDs = twitter.getBlocksIDs(cursor); + IDs blocksIDs = account.getTwitter().getBlocksIDs(cursor); cursor = blocksIDs.getNextCursor(); for (long id : blocksIDs.getIDs()) { idList.add(id); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/BlockTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/BlockTask.java index a3f5481f..de502793 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/BlockTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/BlockTask.java @@ -24,45 +24,32 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - -import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.notification.NotificationType; -import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class BlockTask extends TwitterTask { +public class BlockTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long userID; // --------------------------- CONSTRUCTORS --------------------------- - public BlockTask(Twitter twitter, long userID) { - super(twitter); + public BlockTask(Account account, long userID) { + this.account = account; this.userID = userID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(User user) { - if (user != null) { - Notificator.getInstance().publish(R.string.notice_block_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_block_failed, NotificationType.ALERT); - } - } - @Override protected User doInBackground(Void... params) { try { - return User.fromTwitter(twitter.users().createBlock(userID)); + return User.fromTwitter(account.getTwitter().users().createBlock(userID)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/DeleteMessageTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/DeleteMessageTask.java index 71d3f410..ffcb9fc9 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/DeleteMessageTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/DeleteMessageTask.java @@ -24,45 +24,32 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - -import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.notification.NotificationType; -import net.lacolaco.smileessence.notification.Notificator; - +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.DirectMessage; -import twitter4j.Twitter; +import net.lacolaco.smileessence.logging.Logger; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class DeleteMessageTask extends TwitterTask { +public class DeleteMessageTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long messageID; // --------------------------- CONSTRUCTORS --------------------------- - public DeleteMessageTask(Twitter twitter, long messageID) { - super(twitter); + public DeleteMessageTask(Account account, long messageID) { + this.account = account; this.messageID = messageID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(DirectMessage message) { - if (message != null) { - Notificator.getInstance().publish(R.string.notice_message_delete_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_message_delete_failed, NotificationType.ALERT); - } - } - @Override protected DirectMessage doInBackground(Void... params) { try { - return DirectMessage.fromTwitter(twitter.directMessages().destroyDirectMessage(messageID)); + return DirectMessage.fromTwitter(account.getTwitter().directMessages().destroyDirectMessage(messageID)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/DeleteStatusTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/DeleteStatusTask.java index 69e390cd..4efbcead 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/DeleteStatusTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/DeleteStatusTask.java @@ -24,47 +24,34 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - -import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.notification.NotificationType; -import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.Status; -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class DeleteStatusTask extends TwitterTask { +public class DeleteStatusTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long statusID; // --------------------------- CONSTRUCTORS --------------------------- - public DeleteStatusTask(Twitter twitter, long statusID) { - super(twitter); + public DeleteStatusTask(Account account, long statusID) { + this.account = account; this.statusID = statusID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(Tweet tweet) { - if (tweet != null) { - Tweet.remove(tweet.getId()); - Notificator.getInstance().publish(R.string.notice_status_delete_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_status_delete_failed, NotificationType.ALERT); - } - } - @Override protected Tweet doInBackground(Void... params) { try { - return Tweet.fromTwitter(twitter.tweets().destroyStatus(statusID)); + Tweet t = Tweet.fromTwitter(account.getTwitter().tweets().destroyStatus(statusID)); + Tweet.remove(t.getId()); + return t; } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/DirectMessagesTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/DirectMessagesTask.java index 66ff7e1f..a4091a95 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/DirectMessagesTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/DirectMessagesTask.java @@ -25,41 +25,38 @@ package net.lacolaco.smileessence.twitter.task; import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.DirectMessage; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; - +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.Paging; -import twitter4j.Twitter; import twitter4j.TwitterException; import java.util.Collections; import java.util.List; -public class DirectMessagesTask extends TwitterTask> { +public class DirectMessagesTask extends BackgroundTask, Void> { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final Paging paging; // --------------------------- CONSTRUCTORS --------------------------- - public DirectMessagesTask(Twitter twitter, Paging paging) { - super(twitter); + public DirectMessagesTask(Account account, Paging paging) { + this.account = account; this.paging = paging; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(List directMessages) { - } - @Override protected List doInBackground(Void... params) { try { - return DirectMessage.fromTwitter(twitter.directMessages().getDirectMessages(paging)); + return DirectMessage.fromTwitter(account.getTwitter().directMessages().getDirectMessages(paging)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/FavoriteTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/FavoriteTask.java index 4f93239d..25e5b8d9 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/FavoriteTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/FavoriteTask.java @@ -24,46 +24,41 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.Status; -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class FavoriteTask extends TwitterTask { +public class FavoriteTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long statusID; // --------------------------- CONSTRUCTORS --------------------------- - public FavoriteTask(Twitter twitter, long statusID) { - super(twitter); + public FavoriteTask(Account account, long statusID) { + this.account = account; this.statusID = statusID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(Tweet tweet) { - if (tweet != null) { - Notificator.getInstance().publish(R.string.notice_favorite_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_favorite_failed, NotificationType.ALERT); - } - } - @Override protected Tweet doInBackground(Void... params) { try { - return Tweet.fromTwitter(twitter.favorites().createFavorite(statusID)); + Tweet tweet = Tweet.fromTwitter(account.getTwitter().favorites().createFavorite(statusID)); + if (tweet != null) { + Notificator.getInstance().publish(R.string.notice_favorite_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_favorite_failed, NotificationType.ALERT); + } + return tweet; } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/FollowTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/FollowTask.java index 9b99abf2..aa203209 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/FollowTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/FollowTask.java @@ -24,45 +24,32 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - -import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.notification.NotificationType; -import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class FollowTask extends TwitterTask { +public class FollowTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long userID; // --------------------------- CONSTRUCTORS --------------------------- - public FollowTask(Twitter twitter, long userID) { - super(twitter); + public FollowTask(Account account, long userID) { + this.account = account; this.userID = userID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(User user) { - if (user != null) { - Notificator.getInstance().publish(R.string.notice_follow_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_follow_failed, NotificationType.ALERT); - } - } - @Override protected User doInBackground(Void... params) { try { - return User.fromTwitter(twitter.friendsFollowers().createFriendship(userID)); + return User.fromTwitter(account.getTwitter().friendsFollowers().createFriendship(userID)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/GetTalkTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/GetTalkTask.java index 6419d3f5..64c3621b 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/GetTalkTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/GetTalkTask.java @@ -4,8 +4,6 @@ import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.util.BackgroundTask; -import twitter4j.Status; -import twitter4j.Twitter; import twitter4j.TwitterException; import java.util.ArrayList; diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/GetUserListsTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/GetUserListsTask.java index dafbc0d0..4cd5a99e 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/GetUserListsTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/GetUserListsTask.java @@ -24,39 +24,33 @@ package net.lacolaco.smileessence.twitter.task; -import net.lacolaco.smileessence.data.UserListCache; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.logging.Logger; - -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; import twitter4j.UserList; import java.util.ArrayList; import java.util.List; -public class GetUserListsTask extends TwitterTask { +public class GetUserListsTask extends BackgroundTask { + + private final Account account; // --------------------------- CONSTRUCTORS --------------------------- - public GetUserListsTask(Twitter twitter) { - super(twitter); + public GetUserListsTask(Account account) { + this.account = account; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(UserList[] lists) { - for (UserList list : lists) { - UserListCache.getInstance().put(list.getFullName()); - } - } - @Override protected UserList[] doInBackground(Void... params) { try { List userLists = new ArrayList<>(); - userLists.addAll(twitter.list().getUserLists(twitter.getId())); + userLists.addAll(account.getTwitter().list().getUserLists(account.getTwitter().getId())); return userLists.toArray(new UserList[userLists.size()]); } catch (TwitterException e) { Logger.error(e); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/HomeTimelineTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/HomeTimelineTask.java index 3f227965..e41eac2c 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/HomeTimelineTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/HomeTimelineTask.java @@ -25,42 +25,38 @@ package net.lacolaco.smileessence.twitter.task; import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.*; +import net.lacolaco.smileessence.util.BackgroundTask; +import twitter4j.Paging; +import twitter4j.TwitterException; import java.util.Collections; import java.util.List; -public class HomeTimelineTask extends TwitterTask> { +public class HomeTimelineTask extends BackgroundTask, Void> { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final Paging paging; // --------------------------- CONSTRUCTORS --------------------------- - public HomeTimelineTask(Twitter twitter, Paging paging) { - super(twitter); + public HomeTimelineTask(Account account, Paging paging) { + this.account = account; this.paging = paging; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(List tweets) { - for (Tweet tweet : tweets) { - // FavoriteCache.getInstance().put(tweet); - } - } - @Override protected List doInBackground(Void... params) { try { - return Tweet.fromTwitter(twitter.timelines().getHomeTimeline(paging)); + return Tweet.fromTwitter(account.getTwitter().timelines().getHomeTimeline(paging)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/MentionsTimelineTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/MentionsTimelineTask.java index 236d37b3..0f401d64 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/MentionsTimelineTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/MentionsTimelineTask.java @@ -24,46 +24,39 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.data.FavoriteCache; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.*; +import net.lacolaco.smileessence.util.BackgroundTask; +import twitter4j.Paging; +import twitter4j.TwitterException; import java.util.Collections; import java.util.List; -public class MentionsTimelineTask extends TwitterTask> { +public class MentionsTimelineTask extends BackgroundTask, Void> { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final Paging paging; // --------------------------- CONSTRUCTORS --------------------------- - public MentionsTimelineTask(Twitter twitter, Paging paging) { - super(twitter); + public MentionsTimelineTask(Account account, Paging paging) { + this.account = account; this.paging = paging; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(List tweets) { - for (Tweet tweet : tweets) { - //FavoriteCache.getInstance().put(tweet); - } - } - @Override protected List doInBackground(Void... params) { try { - return Tweet.fromTwitter(twitter.timelines().getMentionsTimeline(paging)); + return Tweet.fromTwitter(account.getTwitter().timelines().getMentionsTimeline(paging)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/MutesIDsTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/MutesIDsTask.java index fa5a93b1..d6dc4f99 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/MutesIDsTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/MutesIDsTask.java @@ -24,41 +24,34 @@ package net.lacolaco.smileessence.twitter.task; -import net.lacolaco.smileessence.entity.MuteUserIds; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.logging.Logger; - +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.IDs; -import twitter4j.Twitter; import twitter4j.TwitterException; import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class MutesIDsTask extends TwitterTask> { +public class MutesIDsTask extends BackgroundTask, Void> { + private final Account account; // --------------------------- CONSTRUCTORS --------------------------- - public MutesIDsTask(Twitter twitter) { - super(twitter); + public MutesIDsTask(Account account) { + this.account = account; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(List mutesIDs) { - for (Long mutesID : mutesIDs) { - MuteUserIds.add(mutesID); - } - } - @Override protected List doInBackground(Void... params) { try { List idList = new ArrayList<>(); long cursor = -1; do { - IDs mutesIDs = twitter.getMutesIDs(cursor); + IDs mutesIDs = account.getTwitter().getMutesIDs(cursor); cursor = mutesIDs.getNextCursor(); for (long id : mutesIDs.getIDs()) { idList.add(id); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ReportForSpamTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ReportForSpamTask.java index 51eb4b26..b002a6be 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ReportForSpamTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ReportForSpamTask.java @@ -24,45 +24,32 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - -import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.notification.NotificationType; -import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class ReportForSpamTask extends TwitterTask { +public class ReportForSpamTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long userID; // --------------------------- CONSTRUCTORS --------------------------- - public ReportForSpamTask(Twitter twitter, long userID) { - super(twitter); + public ReportForSpamTask(Account account, long userID) { + this.account = account; this.userID = userID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(User user) { - if (user != null) { - Notificator.getInstance().publish(R.string.notice_r4s_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_r4s_failed, NotificationType.ALERT); - } - } - @Override protected User doInBackground(Void... params) { try { - return User.fromTwitter(twitter.spamReporting().reportSpam(userID)); + return User.fromTwitter(account.getTwitter().spamReporting().reportSpam(userID)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/RequestTokenTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/RequestTokenTask.java index bee6484b..b53a7268 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/RequestTokenTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/RequestTokenTask.java @@ -25,20 +25,21 @@ package net.lacolaco.smileessence.twitter.task; import net.lacolaco.smileessence.logging.Logger; - +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.auth.RequestToken; -public class RequestTokenTask extends TwitterTask { +public class RequestTokenTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Twitter twitter; // --------------------------- CONSTRUCTORS --------------------------- public RequestTokenTask(Twitter twitter) { - super(twitter); + this.twitter = twitter; } @Override diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/RetweetTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/RetweetTask.java index 100f5ce4..e38e0372 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/RetweetTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/RetweetTask.java @@ -24,46 +24,41 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.Status; -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class RetweetTask extends TwitterTask { +public class RetweetTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long statusID; // --------------------------- CONSTRUCTORS --------------------------- - public RetweetTask(Twitter twitter, long statusID) { - super(twitter); + public RetweetTask(Account account, long statusID) { + this.account = account; this.statusID = statusID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(Tweet tweet) { - if (tweet != null) { - Notificator.getInstance().publish(R.string.notice_retweet_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_retweet_failed, NotificationType.ALERT); - } - } - @Override protected Tweet doInBackground(Void... params) { try { - return Tweet.fromTwitter(twitter.tweets().retweetStatus(statusID)); + Tweet tweet = Tweet.fromTwitter(account.getTwitter().tweets().retweetStatus(statusID)); + if (tweet != null) { // TODO + Notificator.getInstance().publish(R.string.notice_retweet_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_retweet_failed, NotificationType.ALERT); + } + return tweet; } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/SearchTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/SearchTask.java index 2fabfb1c..210d1ce1 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/SearchTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/SearchTask.java @@ -24,51 +24,36 @@ package net.lacolaco.smileessence.twitter.task; -import android.content.res.Configuration; - import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.data.FavoriteCache; -import net.lacolaco.smileessence.entity.Tweet; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; - +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.Query; import twitter4j.QueryResult; -import twitter4j.Twitter; import twitter4j.TwitterException; -public class SearchTask extends TwitterTask { +public class SearchTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final Query query; // --------------------------- CONSTRUCTORS --------------------------- - public SearchTask(Twitter twitter, Query query) { - super(twitter); + public SearchTask(Account account, Query query) { + this.account = account; this.query = query; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(QueryResult queryResult) { - if (queryResult != null) { - for (twitter4j.Status status : queryResult.getTweets()) { - Tweet.fromTwitter(status); - FavoriteCache.getInstance().put(status); - } - } - } - @Override protected QueryResult doInBackground(Void... params) { try { - return twitter.search(query); + return account.getTwitter().search(query); } catch (TwitterException e) { e.printStackTrace(); Logger.debug(e); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/SendMessageTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/SendMessageTask.java index ae6036bb..b96b66ea 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/SendMessageTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/SendMessageTask.java @@ -24,47 +24,34 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - -import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.notification.NotificationType; -import net.lacolaco.smileessence.notification.Notificator; - +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.DirectMessage; -import twitter4j.Twitter; +import net.lacolaco.smileessence.logging.Logger; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class SendMessageTask extends TwitterTask { +public class SendMessageTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final String userID; private final String text; // --------------------------- CONSTRUCTORS --------------------------- - public SendMessageTask(Twitter twitter, String screenName, String text) { - super(twitter); + public SendMessageTask(Account account, String screenName, String text) { + this.account = account; this.userID = screenName; this.text = text; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(DirectMessage message) { - if (message != null) { - Notificator.getInstance().publish(R.string.notice_message_send_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_message_send_failed, NotificationType.ALERT); - } - } - @Override protected DirectMessage doInBackground(Void... params) { try { - return DirectMessage.fromTwitter(twitter.directMessages().sendDirectMessage(userID, text)); + return DirectMessage.fromTwitter(account.getTwitter().directMessages().sendDirectMessage(userID, text)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/SentDirectMessagesTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/SentDirectMessagesTask.java index 324d57f2..0667ddf8 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/SentDirectMessagesTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/SentDirectMessagesTask.java @@ -24,44 +24,39 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.DirectMessage; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; - +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.Paging; -import twitter4j.Twitter; import twitter4j.TwitterException; import java.util.Collections; import java.util.List; -public class SentDirectMessagesTask extends TwitterTask> { +public class SentDirectMessagesTask extends BackgroundTask, Void> { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final Paging paging; // --------------------------- CONSTRUCTORS --------------------------- - public SentDirectMessagesTask(Twitter twitter, Paging paging) { - super(twitter); + public SentDirectMessagesTask(Account account, Paging paging) { + this.account = account; this.paging = paging; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(List directMessages) { - } - @Override protected List doInBackground(Void... params) { try { - return DirectMessage.fromTwitter(twitter.directMessages().getSentDirectMessages(paging)); + return DirectMessage.fromTwitter(account.getTwitter().directMessages().getSentDirectMessages(paging)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowDirectMessageTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowDirectMessageTask.java index ab5cd409..006cacec 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowDirectMessageTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowDirectMessageTask.java @@ -24,35 +24,32 @@ package net.lacolaco.smileessence.twitter.task; -import net.lacolaco.smileessence.logging.Logger; - +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.DirectMessage; -import twitter4j.Twitter; +import net.lacolaco.smileessence.logging.Logger; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class ShowDirectMessageTask extends TwitterTask { +public class ShowDirectMessageTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long messageID; // --------------------------- CONSTRUCTORS --------------------------- - public ShowDirectMessageTask(Twitter twitter, long messageID) { - super(twitter); + public ShowDirectMessageTask(Account account, long messageID) { + this.account = account; this.messageID = messageID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(DirectMessage directMessage) { - } - @Override protected DirectMessage doInBackground(Void... params) { try { - return DirectMessage.fromTwitter(twitter.directMessages().showDirectMessage(messageID)); + return DirectMessage.fromTwitter(account.getTwitter().directMessages().showDirectMessage(messageID)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowFriendshipTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowFriendshipTask.java index 48547d68..8fc9df06 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowFriendshipTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowFriendshipTask.java @@ -24,29 +24,30 @@ package net.lacolaco.smileessence.twitter.task; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.logging.Logger; - +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.Relationship; -import twitter4j.Twitter; import twitter4j.TwitterException; -public class ShowFriendshipTask extends TwitterTask { +public class ShowFriendshipTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long userID; private final String screenName; // --------------------------- CONSTRUCTORS --------------------------- - public ShowFriendshipTask(Twitter twitter, long userID) { - super(twitter); + public ShowFriendshipTask(Account account, long userID) { + this.account = account; this.userID = userID; this.screenName = null; } - public ShowFriendshipTask(Twitter twitter, String screenName) { - super(twitter); + public ShowFriendshipTask(Account account, String screenName) { + this.account = account; this.screenName = screenName; this.userID = -1; } @@ -55,9 +56,9 @@ public class ShowFriendshipTask extends TwitterTask { protected Relationship doInBackground(Void... params) { try { if (screenName != null) { - return twitter.friendsFollowers().showFriendship(twitter.getScreenName(), screenName); + return account.getTwitter().friendsFollowers().showFriendship(account.getTwitter().getScreenName(), screenName); } else { - return twitter.friendsFollowers().showFriendship(twitter.getId(), userID); + return account.getTwitter().friendsFollowers().showFriendship(account.getTwitter().getId(), userID); } } catch (TwitterException e) { e.printStackTrace(); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowStatusTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowStatusTask.java index 2da142ef..ae2b9736 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowStatusTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowStatusTask.java @@ -24,23 +24,23 @@ package net.lacolaco.smileessence.twitter.task; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; - -import twitter4j.Status; -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class ShowStatusTask extends TwitterTask { +public class ShowStatusTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long id; // --------------------------- CONSTRUCTORS --------------------------- - public ShowStatusTask(Twitter twitter, long id) { - super(twitter); + public ShowStatusTask(Account account, long id) { + this.account = account; this.id = id; } @@ -49,7 +49,7 @@ public class ShowStatusTask extends TwitterTask { @Override protected Tweet doInBackground(Void... params) { try { - twitter4j.Status status = twitter.tweets().showStatus(id); + twitter4j.Status status = account.getTwitter().tweets().showStatus(id); return Tweet.fromTwitter(status); } catch (TwitterException e) { e.printStackTrace(); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowUserTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowUserTask.java index bbea10c6..35eeb587 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowUserTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/ShowUserTask.java @@ -24,46 +24,43 @@ package net.lacolaco.smileessence.twitter.task; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.logging.Logger; - -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class ShowUserTask extends TwitterTask { +public class ShowUserTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long userID; private final String screenName; // --------------------------- CONSTRUCTORS --------------------------- - public ShowUserTask(Twitter twitter, long userID) { - super(twitter); + public ShowUserTask(Account account, long userID) { + this.account = account; this.userID = userID; this.screenName = null; } - public ShowUserTask(Twitter twitter, String screenName) { - super(twitter); + public ShowUserTask(Account account, String screenName) { + this.account = account; this.screenName = screenName; this.userID = -1; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(User user) { - } - @Override protected User doInBackground(Void... params) { try { if (screenName != null) { - return User.fromTwitter(twitter.users().showUser(screenName)); + return User.fromTwitter(account.getTwitter().users().showUser(screenName)); } else { - return User.fromTwitter(twitter.users().showUser(userID)); + return User.fromTwitter(account.getTwitter().users().showUser(userID)); } } catch (TwitterException e) { e.printStackTrace(); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/TweetTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/TweetTask.java index 41561374..d0225a11 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/TweetTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/TweetTask.java @@ -28,26 +28,26 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; import android.text.TextUtils; - import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; - +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.StatusUpdate; -import twitter4j.Twitter; import twitter4j.TwitterException; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -public class TweetTask extends TwitterTask { +public class TweetTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ private static final int MEDIA_SIZE_LIMIT = 2 * 1024 * 1024; + private final Account account; private final StatusUpdate update; private final String mediaPath; private String tempFilePath; @@ -55,12 +55,12 @@ public class TweetTask extends TwitterTask { // --------------------------- CONSTRUCTORS --------------------------- - public TweetTask(Twitter twitter, StatusUpdate update) { - this(twitter, update, null, false); + public TweetTask(Account account, StatusUpdate update) { + this(account, update, null, false); } - public TweetTask(Twitter twitter, StatusUpdate update, String mediaPath, boolean resize) { - super(twitter); + public TweetTask(Account account, StatusUpdate update, String mediaPath, boolean resize) { + this.account = account; this.update = update; this.mediaPath = mediaPath; resizeFlag = resize; @@ -104,15 +104,6 @@ public class TweetTask extends TwitterTask { // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(Tweet tweet) { - if (tweet != null) { - Notificator.getInstance().publish(R.string.notice_tweet_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_tweet_failed, NotificationType.ALERT); - } - } - @Override protected Tweet doInBackground(Void... params) { try { @@ -122,10 +113,15 @@ public class TweetTask extends TwitterTask { update.setMedia(mediaFile); } } - Tweet tweet = Tweet.fromTwitter(twitter.tweets().updateStatus(update)); + Tweet tweet = Tweet.fromTwitter(account.getTwitter().tweets().updateStatus(update)); if (tempFilePath != null) { new File(tempFilePath).delete(); } + if (tweet != null) { + Notificator.getInstance().publish(R.string.notice_tweet_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_tweet_failed, NotificationType.ALERT); + } return tweet; } catch (TwitterException e) { e.printStackTrace(); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/TwitterTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/TwitterTask.java deleted file mode 100644 index 3fa00e5a..00000000 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/TwitterTask.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2012-2014 lacolaco.net - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package net.lacolaco.smileessence.twitter.task; - -import twitter4j.Twitter; - -public abstract class TwitterTask extends TwitterTaskWithProgress { - protected TwitterTask(Twitter twitter) { - super(twitter); - } -} \ No newline at end of file diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/TwitterTaskWithProgress.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/TwitterTaskWithProgress.java deleted file mode 100644 index 6eb9fadd..00000000 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/TwitterTaskWithProgress.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.lacolaco.smileessence.twitter.task; - -import android.os.AsyncTask; -import twitter4j.Twitter; - -public abstract class TwitterTaskWithProgress extends AsyncTask { - protected Twitter twitter; - - protected TwitterTaskWithProgress(Twitter twitter) { - this.twitter = twitter; - } -} - diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnblockTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnblockTask.java index d741b73c..4e14813a 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnblockTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnblockTask.java @@ -24,45 +24,32 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - -import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; +import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.notification.NotificationType; -import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -import net.lacolaco.smileessence.entity.User; -public class UnblockTask extends TwitterTask { +public class UnblockTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long userID; // --------------------------- CONSTRUCTORS --------------------------- - public UnblockTask(Twitter twitter, long userID) { - super(twitter); + public UnblockTask(Account account, long userID) { + this.account = account; this.userID = userID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(User user) { - if (user != null) { - Notificator.getInstance().publish(R.string.notice_unblock_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_unblock_failed, NotificationType.ALERT); - } - } - @Override protected User doInBackground(Void... params) { try { - return User.fromTwitter(twitter.users().destroyBlock(userID)); + return User.fromTwitter(account.getTwitter().users().destroyBlock(userID)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnfavoriteTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnfavoriteTask.java index c936f4be..2770f332 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnfavoriteTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnfavoriteTask.java @@ -24,46 +24,32 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - -import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.notification.NotificationType; -import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.Status; -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class UnfavoriteTask extends TwitterTask { +public class UnfavoriteTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long statusID; // --------------------------- CONSTRUCTORS --------------------------- - public UnfavoriteTask(Twitter twitter, long statusID) { - super(twitter); + public UnfavoriteTask(Account account, long statusID) { + this.account = account; this.statusID = statusID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(Tweet tweet) { - if (tweet != null) { - Notificator.getInstance().publish(R.string.notice_unfavorite_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_unfavorite_failed, NotificationType.ALERT); - } - } - @Override protected Tweet doInBackground(Void... params) { try { - return Tweet.fromTwitter(twitter.favorites().destroyFavorite(statusID)); + return Tweet.fromTwitter(account.getTwitter().favorites().destroyFavorite(statusID)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnfollowTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnfollowTask.java index 53722bb0..f8b64522 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnfollowTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UnfollowTask.java @@ -24,45 +24,32 @@ package net.lacolaco.smileessence.twitter.task; -import android.app.Activity; - -import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.notification.NotificationType; -import net.lacolaco.smileessence.notification.Notificator; - -import twitter4j.Twitter; +import net.lacolaco.smileessence.util.BackgroundTask; import twitter4j.TwitterException; -public class UnfollowTask extends TwitterTask { +public class UnfollowTask extends BackgroundTask { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final long userID; // --------------------------- CONSTRUCTORS --------------------------- - public UnfollowTask(Twitter twitter, long userID) { - super(twitter); + public UnfollowTask(Account account, long userID) { + this.account = account; this.userID = userID; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(User user) { - if (user != null) { - Notificator.getInstance().publish(R.string.notice_unfollow_succeeded); - } else { - Notificator.getInstance().publish(R.string.notice_unfollow_failed, NotificationType.ALERT); - } - } - @Override protected User doInBackground(Void... params) { try { - return User.fromTwitter(twitter.friendsFollowers().destroyFriendship(userID)); + return User.fromTwitter(account.getTwitter().friendsFollowers().destroyFriendship(userID)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UserListStatusesTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UserListStatusesTask.java index a25b7511..d20739aa 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UserListStatusesTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UserListStatusesTask.java @@ -24,43 +24,39 @@ package net.lacolaco.smileessence.twitter.task; -import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.data.FavoriteCache; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; - -import twitter4j.*; +import net.lacolaco.smileessence.util.BackgroundTask; +import twitter4j.Paging; +import twitter4j.TwitterException; import java.util.Collections; import java.util.List; -public class UserListStatusesTask extends TwitterTask> { +public class UserListStatusesTask extends BackgroundTask, Void> { // ------------------------------ FIELDS ------------------------------ + private final Account account; private final String listFullName; private final Paging paging; // --------------------------- CONSTRUCTORS --------------------------- - public UserListStatusesTask(Twitter twitter, String listFullName, Paging paging) { - super(twitter); + public UserListStatusesTask(Account account, String listFullName, Paging paging) { + this.account = account; this.listFullName = listFullName; this.paging = paging; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(List tweets) { - } - @Override protected List doInBackground(Void... params) { try { String[] strings = listFullName.split("/"); - return Tweet.fromTwitter(twitter.list().getUserListStatuses(strings[0], strings[1], paging)); + return Tweet.fromTwitter(account.getTwitter().list().getUserListStatuses(strings[0], strings[1], paging)); } catch (TwitterException e) { e.printStackTrace(); Logger.error(e.toString()); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UserTimelineTask.java b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UserTimelineTask.java index 9faeb077..c7b0932e 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/task/UserTimelineTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/UserTimelineTask.java @@ -24,46 +24,45 @@ package net.lacolaco.smileessence.twitter.task; +import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.logging.Logger; - -import twitter4j.*; +import net.lacolaco.smileessence.util.BackgroundTask; +import twitter4j.Paging; +import twitter4j.TwitterException; import java.util.Collections; import java.util.List; -public class UserTimelineTask extends TwitterTask> { +public class UserTimelineTask extends BackgroundTask, Void> { // ------------------------------ FIELDS ------------------------------ private final long userID; + private final Account account; private final Paging paging; // --------------------------- CONSTRUCTORS --------------------------- - public UserTimelineTask(Twitter twitter, long userID) { - this(twitter, userID, null); + public UserTimelineTask(Account account, long userID) { + this(account, userID, null); } - public UserTimelineTask(Twitter twitter, long userID, Paging paging) { - super(twitter); + public UserTimelineTask(Account account, long userID, Paging paging) { + this.account = account; this.userID = userID; this.paging = paging; } // ------------------------ OVERRIDE METHODS ------------------------ - @Override - protected void onPostExecute(List tweets) { - } - @Override protected List doInBackground(Void... params) { try { if (paging == null) { - return Tweet.fromTwitter(twitter.timelines().getUserTimeline(userID)); + return Tweet.fromTwitter(account.getTwitter().timelines().getUserTimeline(userID)); } else { - return Tweet.fromTwitter(twitter.timelines().getUserTimeline(userID, paging)); + return Tweet.fromTwitter(account.getTwitter().timelines().getUserTimeline(userID, paging)); } } catch (TwitterException e) { e.printStackTrace(); diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/util/TwitterUtils.java b/app/src/main/java/net/lacolaco/smileessence/twitter/util/TwitterUtils.java index 284bb305..7a8c2490 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/util/TwitterUtils.java +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/util/TwitterUtils.java @@ -24,25 +24,7 @@ package net.lacolaco.smileessence.twitter.util; -import android.text.TextUtils; - -import com.twitter.Validator; - -import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.entity.*; -import net.lacolaco.smileessence.preference.UserPreferenceHelper; -import net.lacolaco.smileessence.twitter.task.ShowDirectMessageTask; -import net.lacolaco.smileessence.twitter.task.ShowStatusTask; -import net.lacolaco.smileessence.twitter.task.ShowUserTask; - -import net.lacolaco.smileessence.twitter.task.TwitterTask; import twitter4j.Paging; -import twitter4j.URLEntity; -import twitter4j.UserMentionEntity; - -import java.util.ArrayList; -import java.util.Collection; public class TwitterUtils { // -------------------------- STATIC METHODS -------------------------- diff --git a/app/src/main/java/net/lacolaco/smileessence/util/BackgroundTask.java b/app/src/main/java/net/lacolaco/smileessence/util/BackgroundTask.java index fce3470e..8ddfca88 100644 --- a/app/src/main/java/net/lacolaco/smileessence/util/BackgroundTask.java +++ b/app/src/main/java/net/lacolaco/smileessence/util/BackgroundTask.java @@ -28,10 +28,15 @@ public abstract class BackgroundTask extends AsyncTask execute() { + super.execute(); + return this; + } + @Override protected final void onProgressUpdate(Progress... values) { for (Progress value : values) { - if (!isCancelled()) { + if (!isCancelled() && progress != null) { progress.accept(value); } } @@ -39,7 +44,7 @@ public abstract class BackgroundTask extends AsyncTask { R apply(T t); /*default Function compose(Function before) { diff --git a/app/src/main/java/net/lacolaco/smileessence/util/IntentUtils.java b/app/src/main/java/net/lacolaco/smileessence/util/IntentUtils.java index 567939d5..4075c41a 100644 --- a/app/src/main/java/net/lacolaco/smileessence/util/IntentUtils.java +++ b/app/src/main/java/net/lacolaco/smileessence/util/IntentUtils.java @@ -28,7 +28,6 @@ import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; diff --git a/app/src/main/java/net/lacolaco/smileessence/util/Themes.java b/app/src/main/java/net/lacolaco/smileessence/util/Themes.java index de608060..60ed9506 100644 --- a/app/src/main/java/net/lacolaco/smileessence/util/Themes.java +++ b/app/src/main/java/net/lacolaco/smileessence/util/Themes.java @@ -27,7 +27,6 @@ package net.lacolaco.smileessence.util; import android.content.Context; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.logging.Logger; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/CustomListFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/CustomListFragment.java index 464d75c2..4cdd7d3f 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/CustomListFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/CustomListFragment.java @@ -30,10 +30,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.ListView; - import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.view.adapter.CustomListAdapter; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/DialogHelper.java b/app/src/main/java/net/lacolaco/smileessence/view/DialogHelper.java index 6f8af2f5..31c63963 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/DialogHelper.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/DialogHelper.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.view; import android.app.Activity; - import net.lacolaco.smileessence.view.dialog.StackableDialogFragment; import java.util.LinkedHashSet; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/HistoryFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/HistoryFragment.java index 6e6d96bd..78b8d103 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/HistoryFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/HistoryFragment.java @@ -26,10 +26,7 @@ package net.lacolaco.smileessence.view; import android.os.Bundle; import android.widget.ListView; - import com.handmark.pulltorefresh.library.PullToRefreshBase; -import net.lacolaco.smileessence.R; -import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.twitter.StatusFilter; import net.lacolaco.smileessence.view.adapter.EventListAdapter; import net.lacolaco.smileessence.viewmodel.EventViewModel; 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 e1291a8d..4ae0c142 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java @@ -26,9 +26,7 @@ package net.lacolaco.smileessence.view; import android.os.Bundle; import android.widget.ListView; - import com.handmark.pulltorefresh.library.PullToRefreshBase; - import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; @@ -38,11 +36,8 @@ import net.lacolaco.smileessence.twitter.util.TwitterUtils; import net.lacolaco.smileessence.util.UIHandler; import net.lacolaco.smileessence.view.adapter.StatusListAdapter; 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 { @@ -66,20 +61,16 @@ public class HomeFragment extends CustomListFragment { adapter.addToTop(tweet); adapter.update(); }); - final Twitter twitter = ((MainActivity) getActivity()).getCurrentAccount().getTwitter(); + final Account account = ((MainActivity) getActivity()).getCurrentAccount(); final Paging paging = TwitterUtils.getPaging(((MainActivity) getActivity()).getRequestCountPerPage()); - new HomeTimelineTask(twitter, paging) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (Tweet tweet : tweets) { - StatusViewModel statusViewModel = new StatusViewModel(tweet); - adapter.addToBottom(statusViewModel); - StatusFilter.getInstance().filter(statusViewModel); - } - adapter.updateForce(); + new HomeTimelineTask(account, paging).onDoneUI(tweets -> { + for (Tweet tweet : tweets) { + StatusViewModel statusViewModel = new StatusViewModel(tweet); + adapter.addToBottom(statusViewModel); + StatusFilter.getInstance().filter(statusViewModel); } - }.execute(); + adapter.updateForce(); + }).execute(); } @@ -97,25 +88,20 @@ public class HomeFragment extends CustomListFragment { return; } final Account currentAccount = activity.getCurrentAccount(); - Twitter twitter = currentAccount.getTwitter(); Paging paging = TwitterUtils.getPaging(activity.getRequestCountPerPage()); if (adapter.getCount() > 0) { paging.setSinceId(adapter.getTopID()); } - new HomeTimelineTask(twitter, paging) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - ListIterator li = tweets.listIterator(tweets.size()); - while (li.hasPrevious()) { - StatusViewModel viewModel = new StatusViewModel(li.previous()); - adapter.addToTop(viewModel); - StatusFilter.getInstance().filter(viewModel); - } - updateListViewWithNotice(refreshView.getRefreshableView(), true); - refreshView.onRefreshComplete(); + new HomeTimelineTask(currentAccount, paging).onDoneUI(tweets -> { + ListIterator li = tweets.listIterator(tweets.size()); + while (li.hasPrevious()) { + StatusViewModel viewModel = new StatusViewModel(li.previous()); + adapter.addToTop(viewModel); + StatusFilter.getInstance().filter(viewModel); } - }.execute(); + updateListViewWithNotice(refreshView.getRefreshableView(), true); + refreshView.onRefreshComplete(); + }).execute(); } @Override @@ -123,23 +109,18 @@ public class HomeFragment extends CustomListFragment { final MainActivity activity = (MainActivity) getActivity(); final StatusListAdapter adapter = getAdapter(); final Account currentAccount = activity.getCurrentAccount(); - Twitter twitter = currentAccount.getTwitter(); Paging paging = TwitterUtils.getPaging(activity.getRequestCountPerPage()); if (adapter.getCount() > 0) { paging.setMaxId(adapter.getLastID() - 1); } - new HomeTimelineTask(twitter, paging) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (Tweet tweet : tweets) { - StatusViewModel viewModel = new StatusViewModel(tweet); - adapter.addToBottom(viewModel); - StatusFilter.getInstance().filter(viewModel); - } - updateListViewWithNotice(refreshView.getRefreshableView(), false); - refreshView.onRefreshComplete(); + new HomeTimelineTask(currentAccount, paging).onDoneUI(tweets -> { + for (Tweet tweet : tweets) { + StatusViewModel viewModel = new StatusViewModel(tweet); + adapter.addToBottom(viewModel); + StatusFilter.getInstance().filter(viewModel); } - }.execute(); + updateListViewWithNotice(refreshView.getRefreshableView(), false); + refreshView.onRefreshComplete(); + }).execute(); } } 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 865322f0..affc18be 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java @@ -26,9 +26,7 @@ package net.lacolaco.smileessence.view; import android.os.Bundle; import android.widget.ListView; - import com.handmark.pulltorefresh.library.PullToRefreshBase; - import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.ExtractionWord; @@ -38,11 +36,8 @@ import net.lacolaco.smileessence.twitter.task.MentionsTimelineTask; import net.lacolaco.smileessence.twitter.util.TwitterUtils; import net.lacolaco.smileessence.view.adapter.StatusListAdapter; import net.lacolaco.smileessence.viewmodel.StatusViewModel; - import twitter4j.Paging; -import twitter4j.Twitter; -import java.util.List; import java.util.regex.Pattern; public class MentionsFragment extends CustomListFragment { @@ -71,21 +66,17 @@ public class MentionsFragment extends CustomListFragment { } } }); - final Twitter twitter = ((MainActivity) getActivity()).getCurrentAccount().getTwitter(); + final Account account = ((MainActivity) getActivity()).getCurrentAccount(); final Paging paging = TwitterUtils.getPaging(((MainActivity) getActivity()).getRequestCountPerPage()); final StatusListAdapter adapter_ = adapter; - new MentionsTimelineTask(twitter, paging) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (Tweet tweet : tweets) { - StatusViewModel statusViewModel = new StatusViewModel(tweet); - adapter_.addToBottom(statusViewModel); - StatusFilter.getInstance().filter(statusViewModel); - } - adapter_.updateForce(); + new MentionsTimelineTask(account, paging).onDoneUI(tweets -> { + for (Tweet tweet : tweets) { + StatusViewModel statusViewModel = new StatusViewModel(tweet); + adapter_.addToBottom(statusViewModel); + StatusFilter.getInstance().filter(statusViewModel); } - }.execute(); + adapter_.updateForce(); + }).execute(); } // --------------------- Interface OnRefreshListener2 --------------------- @@ -95,22 +86,17 @@ public class MentionsFragment extends CustomListFragment { final MainActivity activity = (MainActivity) getActivity(); final Account currentAccount = activity.getCurrentAccount(); final StatusListAdapter adapter = getAdapter(); - Twitter twitter = currentAccount.getTwitter(); Paging paging = TwitterUtils.getPaging(activity.getRequestCountPerPage()); if (adapter.getCount() > 0) { paging.setSinceId(adapter.getTopID()); } - new MentionsTimelineTask(twitter, paging) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (int i = tweets.size() - 1; i >= 0; i--) { - adapter.addToTop(new StatusViewModel(tweets.get(i))); - } - updateListViewWithNotice(refreshView.getRefreshableView(), true); - refreshView.onRefreshComplete(); + new MentionsTimelineTask(currentAccount, paging).onDoneUI(tweets -> { + for (int i = tweets.size() - 1; i >= 0; i--) { + adapter.addToTop(new StatusViewModel(tweets.get(i))); } - }.execute(); + updateListViewWithNotice(refreshView.getRefreshableView(), true); + refreshView.onRefreshComplete(); + }).execute(); } @Override @@ -118,21 +104,16 @@ public class MentionsFragment extends CustomListFragment { final MainActivity activity = (MainActivity) getActivity(); final Account currentAccount = activity.getCurrentAccount(); final StatusListAdapter adapter = getAdapter(); - Twitter twitter = currentAccount.getTwitter(); Paging paging = TwitterUtils.getPaging(activity.getRequestCountPerPage()); if (adapter.getCount() > 0) { paging.setMaxId(adapter.getLastID() - 1); } - new MentionsTimelineTask(twitter, paging) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (Tweet tweet : tweets) { - adapter.addToBottom(new StatusViewModel(tweet)); - } - updateListViewWithNotice(refreshView.getRefreshableView(), false); - refreshView.onRefreshComplete(); + new MentionsTimelineTask(currentAccount, paging).onDoneUI(tweets -> { + for (Tweet tweet : tweets) { + adapter.addToBottom(new StatusViewModel(tweet)); } - }.execute(); + updateListViewWithNotice(refreshView.getRefreshableView(), false); + refreshView.onRefreshComplete(); + }).execute(); } } 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 31fdd7db..f055d53c 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java @@ -26,23 +26,17 @@ package net.lacolaco.smileessence.view; import android.os.Bundle; import android.widget.ListView; - import com.handmark.pulltorefresh.library.PullToRefreshBase; - import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.entity.Account; +import net.lacolaco.smileessence.entity.DirectMessage; import net.lacolaco.smileessence.twitter.StatusFilter; import net.lacolaco.smileessence.twitter.task.DirectMessagesTask; import net.lacolaco.smileessence.twitter.task.SentDirectMessagesTask; import net.lacolaco.smileessence.twitter.util.TwitterUtils; import net.lacolaco.smileessence.view.adapter.MessageListAdapter; import net.lacolaco.smileessence.viewmodel.MessageViewModel; - -import net.lacolaco.smileessence.entity.DirectMessage; import twitter4j.Paging; -import twitter4j.Twitter; - -import java.util.List; /** * Fragment of messages list @@ -68,28 +62,20 @@ public class MessagesFragment extends CustomListFragment { adapter.addToTop(message); adapter.update(); }); - final Twitter twitter = ((MainActivity) getActivity()).getCurrentAccount().getTwitter(); + final Account account = ((MainActivity) getActivity()).getCurrentAccount(); final Paging paging = TwitterUtils.getPaging(((MainActivity) getActivity()).getRequestCountPerPage()); - new DirectMessagesTask(twitter, paging) { - @Override - protected void onPostExecute(List directMessages) { - super.onPostExecute(directMessages); - for (DirectMessage message : directMessages) { - adapter.addToBottom(new MessageViewModel(message)); - } - adapter.notifyDataSetChanged(); + new DirectMessagesTask(account, paging).onDoneUI(directMessages -> { + for (DirectMessage message : directMessages) { + adapter.addToBottom(new MessageViewModel(message)); } - }.execute(); - new SentDirectMessagesTask(twitter, paging) { - @Override - protected void onPostExecute(List directMessages) { - super.onPostExecute(directMessages); - for (DirectMessage message : directMessages) { - adapter.addToBottom(new MessageViewModel(message)); - } - adapter.notifyDataSetChanged(); + adapter.notifyDataSetChanged(); + }).execute(); + new SentDirectMessagesTask(account, paging).onDoneUI(directMessages -> { + for (DirectMessage message : directMessages) { + adapter.addToBottom(new MessageViewModel(message)); } - }.execute(); + adapter.notifyDataSetChanged(); + }).execute(); } // --------------------- Interface OnRefreshListener2 --------------------- @@ -98,45 +84,35 @@ public class MessagesFragment extends CustomListFragment { public void onPullDownToRefresh(final PullToRefreshBase refreshView) { final MainActivity activity = (MainActivity) getActivity(); final Account currentAccount = activity.getCurrentAccount(); - Twitter twitter = currentAccount.getTwitter(); final MessageListAdapter adapter = getAdapter(); Paging paging = TwitterUtils.getPaging(activity.getRequestCountPerPage()); if (adapter.getCount() > 0) { paging.setSinceId(adapter.getTopID()); } - new DirectMessagesTask(twitter, paging) { - @Override - protected void onPostExecute(List directMessages) { - super.onPostExecute(directMessages); - for (int i = directMessages.size() - 1; i >= 0; i--) { - adapter.addToTop(new MessageViewModel(directMessages.get(i))); - } - updateListViewWithNotice(refreshView.getRefreshableView(), true); - refreshView.onRefreshComplete(); + new DirectMessagesTask(currentAccount, paging).onDoneUI(directMessages -> { + for (int i = directMessages.size() - 1; i >= 0; i--) { + adapter.addToTop(new MessageViewModel(directMessages.get(i))); } - }.execute(); + updateListViewWithNotice(refreshView.getRefreshableView(), true); + refreshView.onRefreshComplete(); + }).execute(); } @Override public void onPullUpToRefresh(final PullToRefreshBase refreshView) { final MainActivity activity = (MainActivity) getActivity(); final Account currentAccount = activity.getCurrentAccount(); - Twitter twitter = currentAccount.getTwitter(); final MessageListAdapter adapter = getAdapter(); Paging paging = TwitterUtils.getPaging(activity.getRequestCountPerPage()); if (adapter.getCount() > 0) { paging.setMaxId(adapter.getLastID() - 1); } - new DirectMessagesTask(twitter, paging) { - @Override - protected void onPostExecute(List directMessages) { - super.onPostExecute(directMessages); - for (DirectMessage directMessage : directMessages) { - adapter.addToBottom(new MessageViewModel(directMessage)); - } - updateListViewWithNotice(refreshView.getRefreshableView(), false); - refreshView.onRefreshComplete(); + new DirectMessagesTask(currentAccount, paging).onDoneUI(directMessages -> { + for (DirectMessage directMessage : directMessages) { + adapter.addToBottom(new MessageViewModel(directMessage)); } - }.execute(); + updateListViewWithNotice(refreshView.getRefreshableView(), false); + refreshView.onRefreshComplete(); + }).execute(); } } 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 7826f457..01925833 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java @@ -36,24 +36,20 @@ import android.text.method.ArrowKeyMovementMethod; import android.view.*; import android.view.inputmethod.InputMethodManager; import android.widget.*; - import com.twitter.Validator; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; +import net.lacolaco.smileessence.data.PostState; 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.task.TweetTask; import net.lacolaco.smileessence.util.BitmapThumbnailTask; import net.lacolaco.smileessence.util.IntentUtils; import net.lacolaco.smileessence.util.UIHandler; -import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.view.dialog.PostMenuDialogFragment; import net.lacolaco.smileessence.view.dialog.SelectImageDialogFragment; import net.lacolaco.smileessence.viewmodel.StatusViewModel; - import twitter4j.StatusUpdate; import java.io.File; @@ -138,17 +134,13 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo if (postState.getInReplyToStatusID() >= 0) { viewGroupReply.setVisibility(View.VISIBLE); final Account account = activity.getCurrentAccount(); - account.tryGetStatus(postState.getInReplyToStatusID(), new Account.StatusCallback() { - @Override - public void success(Tweet tweet) { + account.fetchTweet(postState.getInReplyToStatusID(), tweet -> { + if (tweet != null) { View header = viewGroupReply.findViewById(R.id.layout_post_reply_status); header = new StatusViewModel(tweet).getView(activity, activity.getLayoutInflater(), header); header.setBackgroundColor(getResources().getColor(R.color.transparent)); header.setClickable(false); - } - - @Override - public void error() { + } else { viewGroupReply.setVisibility(View.GONE); } }); @@ -368,7 +360,7 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo StatusUpdate statusUpdate = state.toStatusUpdate(); MainActivity mainActivity = (MainActivity) getActivity(); boolean resizeFlag = UserPreferenceHelper.getInstance().get(R.string.key_setting_resize_post_image, false); - TweetTask tweetTask = new TweetTask(mainActivity.getCurrentAccount().getTwitter(), statusUpdate, state.getMediaFilePath(), resizeFlag); + TweetTask tweetTask = new TweetTask(mainActivity.getCurrentAccount(), statusUpdate, state.getMediaFilePath(), resizeFlag); tweetTask.execute(); PostState.newState().beginTransaction().commit(); mainActivity.openHomePage(); 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 edcb0a07..e14a3371 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java @@ -36,10 +36,8 @@ import android.widget.EditText; import android.widget.ImageButton; import android.widget.ListView; import android.widget.TextView; - import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; @@ -55,9 +53,7 @@ import net.lacolaco.smileessence.util.UIHandler; import net.lacolaco.smileessence.view.adapter.SearchListAdapter; import net.lacolaco.smileessence.view.dialog.SelectSearchQueryDialogFragment; import net.lacolaco.smileessence.viewmodel.StatusViewModel; - import twitter4j.Query; -import twitter4j.QueryResult; import twitter4j.Twitter; import java.util.List; @@ -86,10 +82,9 @@ public class SearchFragment extends CustomListFragment implem setAdapter(adapter); final MainActivity activity = (MainActivity) getActivity(); - final Twitter twitter = activity.getCurrentAccount().getTwitter(); String lastUsedSearchQuery = activity.getLastSearch(); if (!TextUtils.isEmpty(lastUsedSearchQuery)) { - startSearch(twitter, lastUsedSearchQuery); + startSearch(activity.getCurrentAccount(), lastUsedSearchQuery); } } @@ -136,7 +131,6 @@ public class SearchFragment extends CustomListFragment implem public void onPullDownToRefresh(final PullToRefreshBase refreshView) { final MainActivity activity = (MainActivity) getActivity(); final Account currentAccount = activity.getCurrentAccount(); - Twitter twitter = currentAccount.getTwitter(); final SearchListAdapter adapter = getAdapter(); String queryString = adapter.getQuery(); if (TextUtils.isEmpty(queryString)) { @@ -153,26 +147,22 @@ public class SearchFragment extends CustomListFragment implem if (adapter.getCount() > 0) { query.setSinceId(adapter.getTopID()); } - new SearchTask(twitter, query) { - @Override - protected void onPostExecute(QueryResult queryResult) { - super.onPostExecute(queryResult); - if (queryResult != null) { - List tweets = queryResult.getTweets(); - for (int i = tweets.size() - 1; i >= 0; i--) { - twitter4j.Status status = tweets.get(i); - if (!status.isRetweet()) { - StatusViewModel viewModel = new StatusViewModel(Tweet.fromTwitter(status)); - adapter.addToTop(viewModel); - StatusFilter.getInstance().filter(viewModel); - } + new SearchTask(currentAccount, query).onDoneUI(queryResult -> { + if (queryResult != null) { + List tweets = queryResult.getTweets(); + for (int i = tweets.size() - 1; i >= 0; i--) { + twitter4j.Status status = tweets.get(i); + if (!status.isRetweet()) { + StatusViewModel viewModel = new StatusViewModel(Tweet.fromTwitter(status)); + adapter.addToTop(viewModel); + StatusFilter.getInstance().filter(viewModel); } - updateListViewWithNotice(refreshView.getRefreshableView(), true); - adapter.setTopID(queryResult.getMaxId()); - refreshView.onRefreshComplete(); } + updateListViewWithNotice(refreshView.getRefreshableView(), true); + adapter.setTopID(queryResult.getMaxId()); + refreshView.onRefreshComplete(); } - }.execute(); + }).execute(); } @Override @@ -196,24 +186,20 @@ public class SearchFragment extends CustomListFragment implem if (adapter.getCount() > 0) { query.setMaxId(adapter.getLastID() - 1); } - new SearchTask(twitter, query) { - @Override - protected void onPostExecute(QueryResult queryResult) { - super.onPostExecute(queryResult); - if (queryResult != null) { - List tweets = queryResult.getTweets(); - for (twitter4j.Status status : tweets) { - if (!status.isRetweet()) { - StatusViewModel viewModel = new StatusViewModel(Tweet.fromTwitter(status)); - adapter.addToBottom(viewModel); - StatusFilter.getInstance().filter(viewModel); - } + new SearchTask(currentAccount, query).onDoneUI(queryResult -> { + if (queryResult != null) { + List tweets = queryResult.getTweets(); + for (twitter4j.Status status : tweets) { + if (!status.isRetweet()) { + StatusViewModel viewModel = new StatusViewModel(Tweet.fromTwitter(status)); + adapter.addToBottom(viewModel); + StatusFilter.getInstance().filter(viewModel); } - updateListViewWithNotice(refreshView.getRefreshableView(), false); - refreshView.onRefreshComplete(); } + updateListViewWithNotice(refreshView.getRefreshableView(), false); + refreshView.onRefreshComplete(); } - }.execute(); + }).execute(); } // ------------------------ OVERRIDE METHODS ------------------------ @@ -339,7 +325,7 @@ public class SearchFragment extends CustomListFragment implem } } - public void startSearch(final Twitter twitter, final String queryString) { + public void startSearch(final Account account, final String queryString) { ((MainActivity) getActivity()).setLastSearch(queryString); if (!TextUtils.isEmpty(queryString)) { final SearchListAdapter adapter = getAdapter(); @@ -350,25 +336,21 @@ public class SearchFragment extends CustomListFragment implem query.setQuery(queryString); query.setCount(((MainActivity) getActivity()).getRequestCountPerPage()); query.setResultType(Query.RECENT); - new SearchTask(twitter, query) { - @Override - protected void onPostExecute(QueryResult queryResult) { - super.onPostExecute(queryResult); - if (queryResult != null) { - List tweets = queryResult.getTweets(); - for (int i = tweets.size() - 1; i >= 0; i--) { - twitter4j.Status status = tweets.get(i); - if (!status.isRetweet()) { - StatusViewModel viewModel = new StatusViewModel(Tweet.fromTwitter(status)); - adapter.addToTop(viewModel); - StatusFilter.getInstance().filter(viewModel); - } + new SearchTask(account, query).onDoneUI(queryResult -> { + if (queryResult != null) { + List tweets = queryResult.getTweets(); + for (int i = tweets.size() - 1; i >= 0; i--) { + twitter4j.Status status = tweets.get(i); + if (!status.isRetweet()) { + StatusViewModel viewModel = new StatusViewModel(Tweet.fromTwitter(status)); + adapter.addToTop(viewModel); + StatusFilter.getInstance().filter(viewModel); } - adapter.setTopID(queryResult.getMaxId()); - adapter.updateForce(); } + adapter.setTopID(queryResult.getMaxId()); + adapter.updateForce(); } - }.execute(); + }).execute(); } } } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java index 894461a0..ce0bcd28 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/SettingFragment.java @@ -32,7 +32,6 @@ import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceFragment; import android.text.TextUtils; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.LicenseActivity; import net.lacolaco.smileessence.entity.Account; 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 da2c89ea..ccdf89f7 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java @@ -33,10 +33,8 @@ import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.ListView; import android.widget.TextView; - import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.entity.Account; @@ -49,11 +47,7 @@ import net.lacolaco.smileessence.util.UIHandler; import net.lacolaco.smileessence.view.dialog.SelectUserListDialogFragment; import net.lacolaco.smileessence.viewmodel.StatusViewModel; import net.lacolaco.smileessence.viewmodel.UserListListAdapter; - import twitter4j.Paging; -import twitter4j.Twitter; - -import java.util.List; public class UserListFragment extends CustomListFragment implements View.OnClickListener { @@ -74,16 +68,15 @@ public class UserListFragment extends CustomListFragment im // ------------------------ INTERFACE METHODS ------------------------ - @Override // onCreate って Fragment のインスタンスが作られるときは必ず呼ばれるって認識でいいんだよね? + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); UserListListAdapter adapter = new UserListListAdapter(getActivity()); setAdapter(adapter); - final Twitter twitter = ((MainActivity) getActivity()).getCurrentAccount().getTwitter(); String lastUserList = getMainActivity().getLastUserList(); if (!TextUtils.isEmpty(lastUserList)) { - startUserList(twitter, lastUserList); + startUserList(((MainActivity) getActivity()).getCurrentAccount(), lastUserList); } } // --------------------- Interface OnClickListener --------------------- @@ -105,8 +98,7 @@ public class UserListFragment extends CustomListFragment im public void onPullDownToRefresh(final PullToRefreshBase refreshView) { final MainActivity activity = getMainActivity(); final Account currentAccount = activity.getCurrentAccount(); - Twitter twitter = currentAccount.getTwitter(); - final UserListListAdapter adapter = (UserListListAdapter) getAdapter(); + final UserListListAdapter adapter = getAdapter(); String listFullName = adapter.getListFullName(); if (TextUtils.isEmpty(listFullName)) { new UIHandler().post(() -> { @@ -119,26 +111,21 @@ public class UserListFragment extends CustomListFragment im if (adapter.getCount() > 0) { paging.setSinceId(adapter.getTopID()); } - new UserListStatusesTask(twitter, listFullName, paging) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (int i = tweets.size() - 1; i >= 0; i--) { - StatusViewModel statusViewModel = new StatusViewModel(tweets.get(i)); - adapter.addToTop(statusViewModel); - StatusFilter.getInstance().filter(statusViewModel); - } - updateListViewWithNotice(refreshView.getRefreshableView(), true); - refreshView.onRefreshComplete(); + new UserListStatusesTask(currentAccount, listFullName, paging).onDoneUI(tweets -> { + for (int i = tweets.size() - 1; i >= 0; i--) { + StatusViewModel statusViewModel = new StatusViewModel(tweets.get(i)); + adapter.addToTop(statusViewModel); + StatusFilter.getInstance().filter(statusViewModel); } - }.execute(); + updateListViewWithNotice(refreshView.getRefreshableView(), true); + refreshView.onRefreshComplete(); + }).execute(); } @Override public void onPullUpToRefresh(final PullToRefreshBase refreshView) { final MainActivity activity = getMainActivity(); final Account currentAccount = activity.getCurrentAccount(); - Twitter twitter = currentAccount.getTwitter(); final UserListListAdapter adapter = getAdapter(); String listFullName = adapter.getListFullName(); if (TextUtils.isEmpty(listFullName)) { @@ -152,19 +139,15 @@ public class UserListFragment extends CustomListFragment im if (adapter.getCount() > 0) { paging.setMaxId(adapter.getLastID() - 1); } - new UserListStatusesTask(twitter, listFullName, paging) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (int i = 0; i < tweets.size(); i++) { - StatusViewModel statusViewModel = new StatusViewModel(tweets.get(i)); - adapter.addToBottom(statusViewModel); - StatusFilter.getInstance().filter(statusViewModel); - } - updateListViewWithNotice(refreshView.getRefreshableView(), false); - refreshView.onRefreshComplete(); + new UserListStatusesTask(currentAccount, listFullName, paging).onDoneUI(tweets -> { + for (int i = 0; i < tweets.size(); i++) { + StatusViewModel statusViewModel = new StatusViewModel(tweets.get(i)); + adapter.addToBottom(statusViewModel); + StatusFilter.getInstance().filter(statusViewModel); } - }.execute(); + updateListViewWithNotice(refreshView.getRefreshableView(), false); + refreshView.onRefreshComplete(); + }).execute(); } // ------------------------ OVERRIDE METHODS ------------------------ @@ -212,23 +195,19 @@ public class UserListFragment extends CustomListFragment im }); } - public void startUserList(Twitter twitter, String listFullName) { + public void startUserList(Account account, String listFullName) { getMainActivity().setLastUserList(listFullName); final UserListListAdapter adapter = getAdapter(); adapter.setListFullName(listFullName); adapter.clear(); adapter.updateForce(); - new UserListStatusesTask(twitter, listFullName, TwitterUtils.getPaging(getMainActivity().getRequestCountPerPage())) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (Tweet tweet : tweets) { - StatusViewModel statusViewModel = new StatusViewModel(tweet); - adapter.addToBottom(statusViewModel); - StatusFilter.getInstance().filter(statusViewModel); - } - adapter.updateForce(); + new UserListStatusesTask(account, listFullName, TwitterUtils.getPaging(getMainActivity().getRequestCountPerPage())).onDoneUI(tweets -> { + for (Tweet tweet : tweets) { + StatusViewModel statusViewModel = new StatusViewModel(tweet); + adapter.addToBottom(statusViewModel); + StatusFilter.getInstance().filter(statusViewModel); } - }.execute(); + adapter.updateForce(); + }).execute(); } } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java index 9c68b2e9..239b51b3 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/CustomListAdapter.java @@ -28,7 +28,6 @@ import android.app.Activity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; - import net.lacolaco.smileessence.util.UIHandler; import net.lacolaco.smileessence.viewmodel.IViewModel; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/EventListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/EventListAdapter.java index 3bd4e1c0..d381e9ae 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/EventListAdapter.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/EventListAdapter.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.view.adapter; import android.app.Activity; - import net.lacolaco.smileessence.viewmodel.EventViewModel; public class EventListAdapter extends CustomListAdapter { 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 f9731a94..6a9d4215 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 @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.view.adapter; import android.app.Activity; - import net.lacolaco.smileessence.viewmodel.MessageViewModel; import java.util.Collections; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java index 737c03aa..4fa2a8d2 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java @@ -30,18 +30,13 @@ import android.content.Context; import android.os.Bundle; import android.support.v13.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; - -import android.widget.Adapter; import android.widget.ArrayAdapter; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.logging.Logger; -import net.lacolaco.smileessence.view.HomeFragment; import net.lacolaco.smileessence.view.PageFragment; import java.lang.ref.WeakReference; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; 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 e69e5214..5abcc3bb 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 @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.view.adapter; import android.app.Activity; - import net.lacolaco.smileessence.entity.MuteUserIds; import net.lacolaco.smileessence.viewmodel.StatusViewModel; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ChooseTemplateDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ChooseTemplateDialogFragment.java index c69b02cc..efe2aeab 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ChooseTemplateDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ChooseTemplateDialogFragment.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.view.dialog; import android.app.Activity; - import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; import net.lacolaco.smileessence.command.post.PostCommandUseTemplate; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java index f86f0a5f..3ff84013 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ConfirmDialogFragment.java @@ -29,7 +29,6 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.preference.UserPreferenceHelper; import net.lacolaco.smileessence.view.DialogHelper; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/EditTextDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/EditTextDialogFragment.java index 70b6e7d7..f801a0d8 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/EditTextDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/EditTextDialogFragment.java @@ -30,7 +30,6 @@ import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.EditText; - import net.lacolaco.smileessence.R; public abstract class EditTextDialogFragment extends StackableDialogFragment { diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/HashtagDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/HashtagDialogFragment.java index 63ae6c54..d947758e 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/HashtagDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/HashtagDialogFragment.java @@ -27,7 +27,6 @@ package net.lacolaco.smileessence.view.dialog; import android.app.Activity; import android.app.Dialog; import android.os.Bundle; - import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; import net.lacolaco.smileessence.command.CommandPasteToPost; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java index bcd5e479..2a72579d 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/MenuDialogFragment.java @@ -30,7 +30,6 @@ import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; 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 8ad43c3c..1121e3b8 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 @@ -33,12 +33,13 @@ import android.view.View; import android.widget.ImageButton; import android.widget.LinearLayout; 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.CommandOpenURL; import net.lacolaco.smileessence.entity.Account; +import net.lacolaco.smileessence.entity.DirectMessage; +import net.lacolaco.smileessence.notification.NotificationType; import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.twitter.task.DeleteMessageTask; import net.lacolaco.smileessence.view.DialogHelper; @@ -48,10 +49,6 @@ import net.lacolaco.smileessence.viewmodel.MessageViewModel; import java.util.ArrayList; -import net.lacolaco.smileessence.entity.DirectMessage; -import twitter4j.MediaEntity; -import twitter4j.URLEntity; - public class MessageDetailDialogFragment extends StackableDialogFragment implements View.OnClickListener { // ------------------------------ FIELDS ------------------------------ @@ -168,12 +165,15 @@ public class MessageDetailDialogFragment extends StackableDialogFragment impleme // -------------------------- OTHER METHODS -------------------------- public void deleteMessage(final Account account, final DirectMessage message) { - ConfirmDialogFragment.show(getActivity(), getString(R.string.dialog_confirm_commands), new Runnable() { - @Override - public void run() { - new DeleteMessageTask(account.getTwitter(), message.getId()).execute(); - dismiss(); - } + ConfirmDialogFragment.show(getActivity(), getString(R.string.dialog_confirm_commands), () -> { + new DeleteMessageTask(account, message.getId()).onDoneUI(user -> { + if (message != null) { + Notificator.getInstance().publish(R.string.notice_message_delete_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_message_delete_failed, NotificationType.ALERT); + } + }).execute(); + dismiss(); }); } 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 8996ad02..8e9ee6d0 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 @@ -26,24 +26,15 @@ package net.lacolaco.smileessence.view.dialog; import android.app.Activity; import android.os.Bundle; - 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.command.CommandSaveAsTemplate; +import net.lacolaco.smileessence.command.*; import net.lacolaco.smileessence.entity.Account; +import net.lacolaco.smileessence.entity.DirectMessage; import net.lacolaco.smileessence.view.adapter.CustomListAdapter; import java.util.ArrayList; import java.util.List; -import net.lacolaco.smileessence.entity.DirectMessage; -import twitter4j.HashtagEntity; -import twitter4j.MediaEntity; -import twitter4j.URLEntity; - public class MessageMenuDialogFragment extends MenuDialogFragment { // ------------------------------ FIELDS ------------------------------ diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java index bfb1d36e..2563ad46 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/PostMenuDialogFragment.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.view.dialog; import android.app.Activity; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; 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 c41fd22c..80054abb 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 @@ -26,21 +26,16 @@ package net.lacolaco.smileessence.view.dialog; import android.app.Activity; import android.os.Bundle; - import net.lacolaco.smileessence.activity.MainActivity; 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; import java.util.ArrayList; import java.util.List; -import twitter4j.Status; - public class QuoteDialogFragment extends MenuDialogFragment { // ------------------------------ FIELDS ------------------------------ 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 df72ca35..92f95a7b 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 @@ -32,12 +32,10 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.RatingBar; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.data.PostState; - +import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.viewmodel.StatusViewModel; public class ReviewDialogFragment extends StackableDialogFragment implements View.OnClickListener { diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java index 795f4851..bb8fa6f3 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java @@ -37,7 +37,6 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.view.DialogHelper; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectImageDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectImageDialogFragment.java index 82d00472..329def30 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectImageDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectImageDialogFragment.java @@ -30,7 +30,6 @@ import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectSearchQueryDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectSearchQueryDialogFragment.java index 78d8fb3e..df0a399f 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectSearchQueryDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectSearchQueryDialogFragment.java @@ -30,7 +30,6 @@ import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectUserListDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectUserListDialogFragment.java index 514131f3..e31f1b28 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectUserListDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SelectUserListDialogFragment.java @@ -26,7 +26,6 @@ package net.lacolaco.smileessence.view.dialog; import android.app.Dialog; import android.os.Bundle; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java index acd9420b..aa90b3a6 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java @@ -37,15 +37,13 @@ import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.TextView; - import com.twitter.Validator; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; -import net.lacolaco.smileessence.twitter.task.SendMessageTask; import net.lacolaco.smileessence.data.PostState; - -import twitter4j.Twitter; +import net.lacolaco.smileessence.notification.NotificationType; +import net.lacolaco.smileessence.notification.Notificator; +import net.lacolaco.smileessence.twitter.task.SendMessageTask; public class SendMessageDialogFragment extends StackableDialogFragment implements TextWatcher, View.OnClickListener { @@ -153,11 +151,16 @@ public class SendMessageDialogFragment extends StackableDialogFragment implement } private void sendMessage() { + hideIME(); MainActivity activity = (MainActivity) getActivity(); - Twitter twitter = activity.getCurrentAccount().getTwitter(); String text = editText.getText().toString(); - new SendMessageTask(twitter, screenName, text).execute(); - hideIME(); + new SendMessageTask(activity.getCurrentAccount(), screenName, text).onDone(message -> { + if (message != null) { + Notificator.getInstance().publish(R.string.notice_message_send_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_message_send_failed, NotificationType.ALERT); + } + }).execute(); dismiss(); } } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SimpleDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SimpleDialogFragment.java index 304bb001..50cfce00 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SimpleDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SimpleDialogFragment.java @@ -30,7 +30,6 @@ import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; - import net.lacolaco.smileessence.R; public class SimpleDialogFragment extends StackableDialogFragment { diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StackableDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StackableDialogFragment.java index 925017b7..9f6d276b 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StackableDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StackableDialogFragment.java @@ -1,7 +1,6 @@ package net.lacolaco.smileessence.view.dialog; import android.app.DialogFragment; - import net.lacolaco.smileessence.view.DialogHelper; public class StackableDialogFragment extends DialogFragment { 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(); } }); } 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 55959e36..5d4b2662 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 @@ -26,13 +26,8 @@ package net.lacolaco.smileessence.view.dialog; import android.app.Activity; import android.os.Bundle; - 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.command.CommandSaveAsTemplate; +import net.lacolaco.smileessence.command.*; import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.view.adapter.CustomListAdapter; @@ -41,9 +36,6 @@ import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; -import twitter4j.HashtagEntity; -import twitter4j.MediaEntity; - public class StatusMenuDialogFragment extends MenuDialogFragment { // ------------------------------ FIELDS ------------------------------ 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 f31d6930..4c3a7daf 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 @@ -29,17 +29,12 @@ import android.app.Dialog; 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.entity.Account; -import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.twitter.task.GetTalkTask; -import net.lacolaco.smileessence.util.UIHandler; import net.lacolaco.smileessence.view.adapter.StatusListAdapter; - import net.lacolaco.smileessence.viewmodel.StatusViewModel; -import twitter4j.Twitter; public class TalkChainDialogFragment extends StackableDialogFragment { 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 2333bd4a..6751cee5 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 @@ -33,16 +33,10 @@ import android.text.Html; import android.text.TextUtils; import android.text.method.LinkMovementMethod; import android.view.View; -import android.widget.AbsListView; -import android.widget.Button; -import android.widget.ListView; -import android.widget.TabHost; -import android.widget.TextView; - +import android.widget.*; import com.android.volley.toolbox.NetworkImageView; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; @@ -52,6 +46,8 @@ 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.notification.NotificationType; +import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.twitter.task.FollowTask; import net.lacolaco.smileessence.twitter.task.ShowFriendshipTask; import net.lacolaco.smileessence.twitter.task.UnfollowTask; @@ -63,12 +59,7 @@ import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.adapter.CustomListAdapter; import net.lacolaco.smileessence.view.adapter.StatusListAdapter; import net.lacolaco.smileessence.viewmodel.StatusViewModel; - import twitter4j.Paging; -import twitter4j.Relationship; -import twitter4j.Twitter; - -import java.util.List; public class UserDetailDialogFragment extends StackableDialogFragment implements View.OnClickListener, PullToRefreshBase.OnRefreshListener2 { @@ -172,44 +163,34 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements public void onPullDownToRefresh(final PullToRefreshBase refreshView) { final MainActivity activity = (MainActivity) getActivity(); final Account currentAccount = activity.getCurrentAccount(); - Twitter twitter = currentAccount.getTwitter(); Paging paging = TwitterUtils.getPaging(activity.getRequestCountPerPage()); if (adapter.getCount() > 0) { paging.setSinceId(adapter.getTopID()); } - new UserTimelineTask(twitter, getUserID(), paging) { - @Override - protected void onPostExecute(List 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(); + new UserTimelineTask(currentAccount, getUserID(), paging).onDoneUI(tweets -> { + for (int i = tweets.size() - 1; i >= 0; i--) { + adapter.addToTop(new StatusViewModel(tweets.get(i))); } - }.execute(); + updateListView(refreshView.getRefreshableView(), adapter, true); + refreshView.onRefreshComplete(); + }).execute(); } @Override public void onPullUpToRefresh(final PullToRefreshBase refreshView) { final MainActivity activity = (MainActivity) getActivity(); final Account currentAccount = activity.getCurrentAccount(); - Twitter twitter = currentAccount.getTwitter(); Paging paging = TwitterUtils.getPaging(activity.getRequestCountPerPage()); if (adapter.getCount() > 0) { paging.setMaxId(adapter.getLastID() - 1); } - new UserTimelineTask(twitter, getUserID(), paging) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (Tweet tweet : tweets) { - adapter.addToBottom(new StatusViewModel(tweet)); - } - updateListView(refreshView.getRefreshableView(), adapter, false); - refreshView.onRefreshComplete(); + new UserTimelineTask(currentAccount, getUserID(), paging).onDoneUI(tweets -> { + for (Tweet tweet : tweets) { + adapter.addToBottom(new StatusViewModel(tweet)); } - }.execute(); + updateListView(refreshView.getRefreshableView(), adapter, false); + refreshView.onRefreshComplete(); + }).execute(); } // ------------------------ OVERRIDE METHODS ------------------------ @@ -276,18 +257,13 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements private void executeUserTimelineTask(final User user, final Account account, final StatusListAdapter adapter) { tabHost.getTabWidget().getChildTabViewAt(1).setVisibility(View.GONE); - Twitter twitter = account.getTwitter(); - new UserTimelineTask(twitter, user.getId()) { - @Override - protected void onPostExecute(List tweets) { - super.onPostExecute(tweets); - for (Tweet tweet : tweets) { - adapter.addToBottom(new StatusViewModel(tweet)); - } - adapter.updateForce(); - tabHost.getTabWidget().getChildTabViewAt(1).setVisibility(View.VISIBLE); + new UserTimelineTask(account, user.getId()).onDoneUI(tweets -> { + for (Tweet tweet : tweets) { + adapter.addToBottom(new StatusViewModel(tweet)); } - }.execute(); + adapter.updateForce(); + tabHost.getTabWidget().getChildTabViewAt(1).setVisibility(View.VISIBLE); + }).execute(); } private String getHtmlDescription(String description) { @@ -369,25 +345,26 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements private void toggleFollowing(final User user, final Account account, final Activity activity) { lockFollowButton(activity); Boolean isFollowing = buttonFollow.getTag() != null ? (Boolean) buttonFollow.getTag() : false; - Twitter twitter = account.getTwitter(); if (isFollowing) { - new UnfollowTask(twitter, user.getId()) { - @Override - public void onPostExecute(User result) { - super.onPostExecute(result); - updateRelationship(activity, user.getId()); - buttonFollow.setEnabled(true); + new UnfollowTask(account, user.getId()).onDoneUI(result -> { + if (result != null) { + Notificator.getInstance().publish(R.string.notice_unfollow_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_unfollow_failed, NotificationType.ALERT); } - }.execute(); + updateRelationship(activity, user.getId()); + buttonFollow.setEnabled(true); + }).execute(); } else { - new FollowTask(twitter, user.getId()) { - @Override - public void onPostExecute(User result) { - super.onPostExecute(result); - updateRelationship(activity, user.getId()); - buttonFollow.setEnabled(true); + new FollowTask(account, user.getId()).onDoneUI(result -> { + if (result != null) { + Notificator.getInstance().publish(R.string.notice_follow_succeeded); + } else { + Notificator.getInstance().publish(R.string.notice_follow_failed, NotificationType.ALERT); } - }.execute(); + updateRelationship(activity, user.getId()); + buttonFollow.setEnabled(true); + }).execute(); } } @@ -417,7 +394,6 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements private void updateRelationship(Activity activity, final long userId) { MainActivity mainActivity = (MainActivity) activity; Account account = mainActivity.getCurrentAccount(); - Twitter twitter = account.getTwitter(); if (userId == account.userID) { textViewFollowed.setText(R.string.user_detail_followed_is_me); buttonFollow.setVisibility(View.GONE); @@ -427,17 +403,14 @@ public class UserDetailDialogFragment extends StackableDialogFragment implements textViewFollowed.setText(R.string.user_detail_loading); final Drawable red = Themes.getStyledDrawable(activity, theme, R.attr.button_round_red); final Drawable blue = Themes.getStyledDrawable(activity, theme, R.attr.button_round_blue); - new ShowFriendshipTask(twitter, userId) { - @Override - protected void onPostExecute(Relationship relationship) { - if (relationship != null) { - boolean isFollowing = relationship.isSourceFollowingTarget(); - boolean isFollowed = relationship.isSourceFollowedByTarget(); - setFollowButtonState(isFollowing, red, blue); - textViewFollowed.setText(isFollowed ? R.string.user_detail_followed : R.string.user_detail_not_followed); - } + new ShowFriendshipTask(account, userId).onDoneUI(relationship -> { + if (relationship != null) { + boolean isFollowing = relationship.isSourceFollowingTarget(); + boolean isFollowed = relationship.isSourceFollowedByTarget(); + setFollowButtonState(isFollowing, red, blue); + textViewFollowed.setText(isFollowed ? R.string.user_detail_followed : R.string.user_detail_not_followed); } - }.execute(); + }).execute(); } } } 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 c8005e62..cf306402 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 @@ -26,7 +26,6 @@ package net.lacolaco.smileessence.view.dialog; import android.app.Activity; import android.os.Bundle; - import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.command.Command; import net.lacolaco.smileessence.command.CommandSearchOnTwitter; diff --git a/app/src/main/java/net/lacolaco/smileessence/view/listener/ListItemClickListener.java b/app/src/main/java/net/lacolaco/smileessence/view/listener/ListItemClickListener.java index 93a20c33..13f1b49c 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/listener/ListItemClickListener.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/listener/ListItemClickListener.java @@ -27,7 +27,6 @@ package net.lacolaco.smileessence.view.listener; import android.app.Activity; import android.graphics.drawable.ColorDrawable; import android.view.View; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.util.UIHandler; diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/CheckBoxModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/CheckBoxModel.java index eaa1ddf5..7e133384 100644 --- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/CheckBoxModel.java +++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/CheckBoxModel.java @@ -28,8 +28,6 @@ import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.widget.CheckBox; -import android.widget.CompoundButton; - import net.lacolaco.smileessence.R; public class CheckBoxModel implements IViewModel { diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EditableCheckBoxModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EditableCheckBoxModel.java index c9ad6ec9..d79f4bdd 100644 --- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EditableCheckBoxModel.java +++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EditableCheckBoxModel.java @@ -30,9 +30,7 @@ import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.widget.CheckBox; -import android.widget.CompoundButton; import android.widget.EditText; - import net.lacolaco.smileessence.R; public class EditableCheckBoxModel implements IViewModel { diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java index 284581aa..dadb462b 100644 --- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java +++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/EventViewModel.java @@ -30,13 +30,12 @@ import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; - import com.android.volley.toolbox.NetworkImageView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.data.ImageCache; import net.lacolaco.smileessence.entity.Tweet; +import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.preference.UserPreferenceHelper; import net.lacolaco.smileessence.util.StringUtils; import net.lacolaco.smileessence.util.Themes; @@ -44,9 +43,6 @@ import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.UserDetailDialogFragment; import net.lacolaco.smileessence.view.listener.ListItemClickListener; -import twitter4j.Status; -import net.lacolaco.smileessence.entity.User; - import java.util.Date; public class EventViewModel implements IViewModel { diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java index 7a7bb527..e2cfb9f1 100644 --- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java +++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/MessageViewModel.java @@ -29,9 +29,7 @@ import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; - import com.android.volley.toolbox.NetworkImageView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.data.ImageCache; diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java index 6f372562..b5fc6214 100644 --- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java +++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/StatusViewModel.java @@ -26,16 +26,13 @@ package net.lacolaco.smileessence.viewmodel; import android.app.Activity; import android.net.Uri; -import android.os.AsyncTask; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; - import com.android.volley.toolbox.NetworkImageView; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.data.FavoriteCache; @@ -43,10 +40,7 @@ import net.lacolaco.smileessence.data.ImageCache; import net.lacolaco.smileessence.entity.Account; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.preference.UserPreferenceHelper; -import net.lacolaco.smileessence.util.Morse; -import net.lacolaco.smileessence.util.NameStyles; -import net.lacolaco.smileessence.util.StringUtils; -import net.lacolaco.smileessence.util.Themes; +import net.lacolaco.smileessence.util.*; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.StatusDetailDialogFragment; import net.lacolaco.smileessence.view.dialog.UserDetailDialogFragment; @@ -61,7 +55,7 @@ public class StatusViewModel implements IViewModel { private boolean isMention; private boolean isRetweetOfMe; - private ArrayList lastTasks = new ArrayList<>(); // internal + private ArrayList lastTasks = new ArrayList<>(); // internal // --------------------------- CONSTRUCTORS --------------------------- @@ -151,8 +145,8 @@ public class StatusViewModel implements IViewModel { // -------------------------- OTHER METHODS -------------------------- public View getView(final Activity activity, final LayoutInflater inflater, View convertedView, boolean extendStatusURL) { - for (AsyncTask task : lastTasks) { - task.cancel(true); + for (BackgroundTask task : lastTasks) { + task.cancel(); } lastTasks.clear(); @@ -164,12 +158,7 @@ public class StatusViewModel implements IViewModel { int theme = ((MainActivity) activity).getThemeIndex(); NetworkImageView icon = (NetworkImageView) convertedView.findViewById(R.id.imageview_status_icon); ImageCache.getInstance().setImageToView(tweet.getUser().getProfileImageUrl(), icon); - icon.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - onIconClick(activity); - } - }); + icon.setOnClickListener(v -> onIconClick(activity)); TextView header = (TextView) convertedView.findViewById(R.id.textview_status_header); header.setTextSize(textSize); int colorHeader = Themes.getStyledColor(activity, theme, R.attr.color_status_text_header, 0); @@ -218,18 +207,13 @@ public class StatusViewModel implements IViewModel { embeddedStatus.setVisibility(View.VISIBLE); final Account account = ((MainActivity) activity).getCurrentAccount(); for (long id : embeddedStatusIDs) { - AsyncTask task = account.tryGetStatus(id, new Account.StatusCallback() { - @Override - public void success(Tweet tweet) { + BackgroundTask task = account.fetchTweet(id, embeddedTweet -> { + if (embeddedTweet != null) { StatusViewModel viewModel = new StatusViewModel(tweet); View embeddedHolder = viewModel.getView(activity, inflater, null, false); embeddedStatus.addView(embeddedHolder); embeddedStatus.invalidate(); } - - @Override - public void error() { - } }); lastTasks.add(task); } @@ -245,7 +229,7 @@ public class StatusViewModel implements IViewModel { return tweet.getMentions().contains(screenName); } - private boolean isReadMorseEnabled(MainActivity activity) { + private boolean isReadMorseEnabled(MainActivity activity) { return UserPreferenceHelper.getInstance().get(R.string.key_setting_read_morse, true); } diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/UserListListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/UserListListAdapter.java index 2d4bb6f8..083d107a 100644 --- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/UserListListAdapter.java +++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/UserListListAdapter.java @@ -25,7 +25,6 @@ package net.lacolaco.smileessence.viewmodel; import android.app.Activity; - import net.lacolaco.smileessence.view.adapter.StatusListAdapter; public class UserListListAdapter extends StatusListAdapter { diff --git a/app/src/main/java/net/lacolaco/smileessence/viewmodel/menu/MainActivityMenuHelper.java b/app/src/main/java/net/lacolaco/smileessence/viewmodel/menu/MainActivityMenuHelper.java index 9838500c..28bc5cd0 100644 --- a/app/src/main/java/net/lacolaco/smileessence/viewmodel/menu/MainActivityMenuHelper.java +++ b/app/src/main/java/net/lacolaco/smileessence/viewmodel/menu/MainActivityMenuHelper.java @@ -28,14 +28,12 @@ import android.content.Intent; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; - import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.*; import net.lacolaco.smileessence.command.CommandOpenURL; +import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.entity.User; import net.lacolaco.smileessence.notification.Notificator; -import net.lacolaco.smileessence.twitter.util.TwitterUtils; -import net.lacolaco.smileessence.data.PostState; public class MainActivityMenuHelper { -- cgit v1.2.3