aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-10-03 20:31:30 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-10-03 20:31:30 +0900
commitc7e44bfdf9c9934f6879258c6d50967bc93f08fc (patch)
tree24a84b8c223eb5c8785b838120efd1e3217a0369
parent8e99b32745345bc3b76fb9249d0c73ba7c713116 (diff)
downloadSmileEssence-c7e44bfdf9c9934f6879258c6d50967bc93f08fc.tar.gz
アカウント変更時全てのページをリロードさせる
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java42
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/util/BackgroundTask.java13
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/CustomListFragment.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/HistoryFragment.java9
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java82
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java63
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java80
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/PageFragment.java2
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java5
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java115
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java72
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.java85
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/adapter/SearchListAdapter.java19
13 files changed, 268 insertions, 321 deletions
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 f8fb631e..424a6cbd 100644
--- a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java
+++ b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.java
@@ -69,7 +69,6 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
private TwitterStream stream;
private Uri cameraTempFilePath;
private UserStreamListener userStreamListener;
- private boolean waitingAccount = true;
public Uri getCameraTempFilePath() {
return cameraTempFilePath;
@@ -121,7 +120,7 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
}
public void openSearchPage(String query) {
- SearchFragment fragment = pagerAdapter.getFragment(SearchFragment.class);
+ SearchFragment fragment = (SearchFragment) pagerAdapter.getCachedFragment(pagerAdapter.getIndex(SearchFragment.class));
if (fragment != null) {
fragment.startSearch(query);
openSearchPage();
@@ -129,7 +128,7 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
}
public void openUserListPage(String listFullName) {
- UserListFragment fragment = pagerAdapter.getFragment(UserListFragment.class);
+ UserListFragment fragment = (UserListFragment) pagerAdapter.getCachedFragment(pagerAdapter.getIndex(UserListFragment.class));
if (fragment != null) {
fragment.startUserList(listFullName);
openUserListPage();
@@ -168,14 +167,6 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
- case REQUEST_MANAGE_ACCOUNT: {
- if (waitingAccount) {
- // first run
- waitingAccount = false;
- initializePages();
- }
- break;
- }
case REQUEST_GET_PICTURE_FROM_GALLERY:
case REQUEST_GET_PICTURE_FROM_CAMERA: {
getImageUri(requestCode, resultCode, data);
@@ -189,7 +180,6 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
Logger.debug("onCreate");
Application app = (Application) getApplication();
app.resetState();
- app.addOnCurrentAccountChangedListener(this);
setTheme(app.getThemeResId());
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
@@ -203,12 +193,12 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
CommandSetting.initialize();
Account.load();
ExtractionWord.load();
+ initializePages();
+ app.addOnCurrentAccountChangedListener(this);
Account account = getLastUsedAccount();
if (account != null) {
- waitingAccount = false;
app.setCurrentAccount(account);
- initializePages();
IntentRouter.onNewIntent(this, getIntent());
} else {
startActivityForResult(new Intent(this, ManageAccountsActivity.class), REQUEST_MANAGE_ACCOUNT);
@@ -219,7 +209,7 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
protected void onDestroy() {
super.onDestroy();
if (stream != null) {
- new Thread(stream::shutdown).run();
+ new Thread(stream::shutdown).start();
}
Logger.debug("onDestroy");
}
@@ -329,9 +319,9 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
openPostPageWithImage(uri);
}
- public boolean startStream() {
+ private boolean startStream() {
if (stream != null) {
- stream.shutdown();
+ new Thread(stream::cleanUp).start();
}
stream = Application.getInstance().getCurrentAccount().getTwitterStream();
userStreamListener = new UserStreamListener(Application.getInstance().getCurrentAccount());
@@ -343,12 +333,15 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
@Override
public void onCurrentAccountChanged(Account account) {
+ Logger.debug(String.format("onCurrentAccountChanged: %s", account.getUser().getScreenName()));
User user = account.getUser();
+ // update cache
account.refreshListSubscriptions();
account.refreshUserMuteList();
new ShowUserTask(account, account.getUserId()).execute();
+ // update actionbar
Runnable update = () -> {
getActionBar().setTitle(user.getScreenName());
String newUrl = user.getProfileImageUrl();
@@ -369,10 +362,20 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
if (changes.contains(RBinding.BASIC)) update.run();
});
+ // refresh all pages
+ for (int i = 0; i < pagerAdapter.getCount(); ++i) {
+ PageFragment pf = pagerAdapter.getCachedFragment(i);
+ if (pf != null && pf.isAdded()) {
+ Logger.debug(String.format("PageFragment %s is already attached; refreshing", pf.getClass().getName()));
+ pf.refresh();
+ }
+ }
+
+ // start user stream
startStream();
}
- // TODO: page fragments requires Application#getCurrentAccount returns Account
+ // TODO: tab order?
private void initializePages() {
pagerAdapter.addPage(PostFragment.class, getString(R.string.page_name_post), null, false);
pagerAdapter.addPage(HomeFragment.class, getString(R.string.page_name_home), null, false);
@@ -387,8 +390,9 @@ public class MainActivity extends Activity implements Application.OnCurrentAccou
pagerAdapter.addPage(UserListFragment.class, getString(R.string.page_name_list), null, false);
pagerAdapter.notifyDataSetChanged();
viewPager.setOffscreenPageLimit(pagerAdapter.getCount());
- PostState.newState().beginTransaction().commit();
+ viewPager.setAdapter(pagerAdapter);
setSelectedPageIndex(pagerAdapter.getIndex(HomeFragment.class), false);
+ PostState.newState().beginTransaction().commit();
}
private Account getLastUsedAccount() {
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 be5dd09f..dbe13d77 100644
--- a/app/src/main/java/net/lacolaco/smileessence/util/BackgroundTask.java
+++ b/app/src/main/java/net/lacolaco/smileessence/util/BackgroundTask.java
@@ -7,6 +7,7 @@ public abstract class BackgroundTask<Result, Progress> {
private Consumer<Result> then;
private Consumer<Progress> progress;
private Consumer<Exception> fail;
+ private Runnable finish;
private Exception exception;
private final InnerAsyncTask task;
@@ -29,6 +30,11 @@ public abstract class BackgroundTask<Result, Progress> {
return this;
}
+ public BackgroundTask<Result, Progress> onFinish(Runnable cb) {
+ this.finish = cb;
+ return this;
+ }
+
public BackgroundTask<Result, Progress> onDoneUI(Consumer<Result> cb) {
return onDone(r -> new UIHandler().post(() -> cb.accept(r)));
}
@@ -41,6 +47,10 @@ public abstract class BackgroundTask<Result, Progress> {
return onFail(e -> new UIHandler().post(() -> cb.accept(e)));
}
+ public BackgroundTask<Result, Progress> onFinishUI(Runnable cb) {
+ return onFinish(() -> new UIHandler().post(cb::run));
+ }
+
public boolean cancel() {
return task.cancel(true);
}
@@ -83,6 +93,9 @@ public abstract class BackgroundTask<Result, Progress> {
if (!isCancelled() && exception == null && then != null) {
then.accept(result);
}
+ if (finish != null) {
+ finish.run();
+ }
}
@Override
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 1d04a741..eb92b201 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/CustomListFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/CustomListFragment.java
@@ -55,12 +55,10 @@ public abstract class CustomListFragment<T extends CustomListAdapter> extends Pa
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
-
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
-
}
// --------------------- Interface OnScrollListener ---------------------
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 9e1833e6..f7716721 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/HistoryFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/HistoryFragment.java
@@ -25,7 +25,6 @@
package net.lacolaco.smileessence.view;
import android.os.Bundle;
-import android.widget.ListView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import net.lacolaco.smileessence.twitter.StatusFilter;
import net.lacolaco.smileessence.view.adapter.EventListAdapter;
@@ -57,13 +56,7 @@ public class HistoryFragment extends CustomListFragment<EventListAdapter> {
}, null);
}
- // --------------------- Interface OnRefreshListener2 ---------------------
-
- @Override
- public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
- }
-
@Override
- public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+ public void refresh() {
}
}
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 9f4dbed2..fed8cf7d 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/HomeFragment.java
@@ -30,19 +30,17 @@ import com.handmark.pulltorefresh.library.PullToRefreshBase;
import net.lacolaco.smileessence.Application;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
-import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.entity.Tweet;
+import net.lacolaco.smileessence.logging.Logger;
import net.lacolaco.smileessence.notification.NotificationType;
import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.twitter.StatusFilter;
import net.lacolaco.smileessence.twitter.task.HomeTimelineTask;
-import net.lacolaco.smileessence.util.UIHandler;
+import net.lacolaco.smileessence.twitter.task.TimelineTask;
import net.lacolaco.smileessence.view.adapter.StatusListAdapter;
import net.lacolaco.smileessence.viewmodel.StatusViewModel;
-import java.util.ListIterator;
-
public class HomeFragment extends CustomListFragment<StatusListAdapter> {
// --------------------- GETTER / SETTER METHODS ---------------------
@@ -67,66 +65,58 @@ public class HomeFragment extends CustomListFragment<StatusListAdapter> {
adapter.removeByStatusID(id);
adapter.updateForce();
});
- final Account account = Application.getInstance().getCurrentAccount();
- new HomeTimelineTask(account)
- .setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .onFail(e -> Notificator.getInstance().publish(R.string.notice_error_get_home, NotificationType.ALERT))
- .onDoneUI(tweets -> {
- for (Tweet tweet : tweets) {
- StatusViewModel statusViewModel = new StatusViewModel(tweet);
- adapter.addToBottom(statusViewModel);
- }
- adapter.updateForce();
- }).execute();
+
+ if (Application.getInstance().getCurrentAccount() != null) {
+ Logger.debug(String.format("Current account %s is set; refreshing", Application.getInstance().getCurrentAccount().getUser().getScreenName()));
+ refresh();
+ }
}
+ @Override
+ public void refresh() {
+ runRefreshTask(new HomeTimelineTask(Application.getInstance().getCurrentAccount()), () -> getAdapter().updateForce());
+ }
// --------------------- Interface OnRefreshListener2 ---------------------
@Override
public void onPullDownToRefresh(final PullToRefreshBase<ListView> refreshView) {
final MainActivity activity = (MainActivity) getActivity();
- final StatusListAdapter adapter = getAdapter();
if (activity.isStreaming()) {
- new UIHandler().post(() -> {
- updateListViewWithNotice(refreshView.getRefreshableView(), true);
- refreshView.onRefreshComplete();
- });
- return;
+ updateListViewWithNotice(refreshView.getRefreshableView(), true);
+ refreshView.onRefreshComplete();
+ } else {
+ runRefreshTask(
+ new HomeTimelineTask(Application.getInstance().getCurrentAccount())
+ .setSinceId(getAdapter().getTopID()),
+ () -> {
+ updateListViewWithNotice(refreshView.getRefreshableView(), true);
+ refreshView.onRefreshComplete();
+ });
}
- final Account currentAccount = Application.getInstance().getCurrentAccount();
- new HomeTimelineTask(currentAccount)
- .setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .setSinceId(adapter.getTopID())
- .onFail(e -> Notificator.getInstance().publish(R.string.notice_error_get_home, NotificationType.ALERT))
- .onDoneUI(tweets -> {
- ListIterator<Tweet> 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();
- }).execute();
}
@Override
public void onPullUpToRefresh(final PullToRefreshBase<ListView> refreshView) {
- final StatusListAdapter adapter = getAdapter();
- final Account currentAccount = Application.getInstance().getCurrentAccount();
- new HomeTimelineTask(currentAccount)
+ runRefreshTask(
+ new HomeTimelineTask(Application.getInstance().getCurrentAccount())
+ .setMaxId(getAdapter().getLastID() - 1),
+ () -> {
+ updateListViewWithNotice(refreshView.getRefreshableView(), false);
+ refreshView.onRefreshComplete();
+ });
+ }
+
+ private void runRefreshTask(TimelineTask<Tweet> task, Runnable onFinish) {
+ task
.setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .setMaxId(adapter.getLastID() - 1)
.onFail(e -> Notificator.getInstance().publish(R.string.notice_error_get_home, NotificationType.ALERT))
.onDoneUI(tweets -> {
for (Tweet tweet : tweets) {
- StatusViewModel viewModel = new StatusViewModel(tweet);
- adapter.addToBottom(viewModel);
- StatusFilter.getInstance().filter(viewModel);
+ StatusFilter.getInstance().filter(new StatusViewModel(tweet));
}
- updateListViewWithNotice(refreshView.getRefreshableView(), false);
- refreshView.onRefreshComplete();
- }).execute();
+ })
+ .onFinishUI(onFinish)
+ .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 7da1df18..8eb1d9e6 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/MentionsFragment.java
@@ -29,7 +29,6 @@ import android.widget.ListView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import net.lacolaco.smileessence.Application;
import net.lacolaco.smileessence.R;
-import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.entity.ExtractionWord;
import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.notification.NotificationType;
@@ -37,6 +36,7 @@ import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.twitter.StatusFilter;
import net.lacolaco.smileessence.twitter.task.MentionsTimelineTask;
+import net.lacolaco.smileessence.twitter.task.TimelineTask;
import net.lacolaco.smileessence.view.adapter.StatusListAdapter;
import net.lacolaco.smileessence.viewmodel.StatusViewModel;
@@ -73,54 +73,51 @@ public class MentionsFragment extends CustomListFragment<StatusListAdapter> {
adapter.removeByStatusID(id);
adapter.updateForce();
});
- final Account account = Application.getInstance().getCurrentAccount();
- final StatusListAdapter adapter_ = adapter;
- new MentionsTimelineTask(account)
- .setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_mentions, NotificationType.ALERT))
- .onDoneUI(tweets -> {
- for (Tweet tweet : tweets) {
- StatusViewModel statusViewModel = new StatusViewModel(tweet);
- adapter_.addToBottom(statusViewModel);
- StatusFilter.getInstance().filter(statusViewModel);
- }
- adapter_.updateForce();
- }).execute();
+
+ if (Application.getInstance().getCurrentAccount() != null) {
+ refresh();
+ }
+ }
+
+ @Override
+ public void refresh() {
+ runRefreshTask(new MentionsTimelineTask(Application.getInstance().getCurrentAccount()), () -> getAdapter().updateForce());
}
// --------------------- Interface OnRefreshListener2 ---------------------
@Override
public void onPullDownToRefresh(final PullToRefreshBase<ListView> refreshView) {
- final Account currentAccount = Application.getInstance().getCurrentAccount();
- final StatusListAdapter adapter = getAdapter();
- new MentionsTimelineTask(currentAccount)
- .setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .setSinceId(adapter.getTopID())
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_mentions, NotificationType.ALERT))
- .onDoneUI(tweets -> {
- for (int i = tweets.size() - 1; i >= 0; i--) {
- adapter.addToTop(new StatusViewModel(tweets.get(i)));
- }
+ runRefreshTask(
+ new MentionsTimelineTask(Application.getInstance().getCurrentAccount())
+ .setSinceId(getAdapter().getTopID()),
+ () -> {
updateListViewWithNotice(refreshView.getRefreshableView(), true);
refreshView.onRefreshComplete();
- }).execute();
+ });
}
@Override
public void onPullUpToRefresh(final PullToRefreshBase<ListView> refreshView) {
- final Account currentAccount = Application.getInstance().getCurrentAccount();
- final StatusListAdapter adapter = getAdapter();
- new MentionsTimelineTask(currentAccount)
+ runRefreshTask(
+ new MentionsTimelineTask(Application.getInstance().getCurrentAccount())
+ .setMaxId(getAdapter().getLastID() - 1),
+ () -> {
+ updateListViewWithNotice(refreshView.getRefreshableView(), false);
+ refreshView.onRefreshComplete();
+ });
+ }
+
+ private void runRefreshTask(TimelineTask<Tweet> task, Runnable onFinish) {
+ task
.setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .setMaxId(adapter.getLastID() - 1)
.onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_mentions, NotificationType.ALERT))
.onDoneUI(tweets -> {
for (Tweet tweet : tweets) {
- adapter.addToBottom(new StatusViewModel(tweet));
+ StatusFilter.getInstance().filter(new StatusViewModel(tweet));
}
- updateListViewWithNotice(refreshView.getRefreshableView(), false);
- refreshView.onRefreshComplete();
- }).execute();
+ })
+ .onFinishUI(onFinish)
+ .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 e3d77721..ed738fd1 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/MessagesFragment.java
@@ -29,7 +29,6 @@ import android.widget.ListView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import net.lacolaco.smileessence.Application;
import net.lacolaco.smileessence.R;
-import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.entity.DirectMessage;
import net.lacolaco.smileessence.notification.NotificationType;
import net.lacolaco.smileessence.notification.Notificator;
@@ -37,6 +36,7 @@ import net.lacolaco.smileessence.preference.UserPreferenceHelper;
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.task.TimelineTask;
import net.lacolaco.smileessence.view.adapter.MessageListAdapter;
import net.lacolaco.smileessence.viewmodel.MessageViewModel;
@@ -67,60 +67,52 @@ public class MessagesFragment extends CustomListFragment<MessageListAdapter> {
adapter.removeByMessageID(id);
adapter.updateForce();
});
- final Account account = Application.getInstance().getCurrentAccount();
- new DirectMessagesTask(account)
- .setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_messages, NotificationType.ALERT))
- .onDoneUI(directMessages -> {
- for (DirectMessage message : directMessages) {
- adapter.addToBottom(new MessageViewModel(message));
- }
- adapter.notifyDataSetChanged();
- }).execute();
- new SentDirectMessagesTask(account)
- .setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_messages, NotificationType.ALERT))
- .onDoneUI(directMessages -> {
- for (DirectMessage message : directMessages) {
- adapter.addToBottom(new MessageViewModel(message));
- }
- adapter.notifyDataSetChanged();
- }).execute();
+
+ if (Application.getInstance().getCurrentAccount() != null) {
+ refresh();
+ }
+ }
+
+ @Override
+ public void refresh() {
+ runRefreshTask(new DirectMessagesTask(Application.getInstance().getCurrentAccount()), () -> getAdapter().updateForce());
+ runRefreshTask(new SentDirectMessagesTask(Application.getInstance().getCurrentAccount()), () -> getAdapter().updateForce());
}
// --------------------- Interface OnRefreshListener2 ---------------------
@Override
public void onPullDownToRefresh(final PullToRefreshBase<ListView> refreshView) {
- final Account currentAccount = Application.getInstance().getCurrentAccount();
- final MessageListAdapter adapter = getAdapter();
- new DirectMessagesTask(currentAccount)
- .setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .setSinceId(adapter.getTopID())
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_messages, NotificationType.ALERT))
- .onDoneUI(directMessages -> {
- for (int i = directMessages.size() - 1; i >= 0; i--) {
- adapter.addToTop(new MessageViewModel(directMessages.get(i)));
- }
- updateListViewWithNotice(refreshView.getRefreshableView(), true);
- refreshView.onRefreshComplete();
- }).execute();
+ runRefreshTask(
+ new DirectMessagesTask(Application.getInstance().getCurrentAccount())
+ .setSinceId(getAdapter().getTopID()),
+ () -> {
+ updateListViewWithNotice(refreshView.getRefreshableView(), true);
+ refreshView.onRefreshComplete();
+ }); // TODO: sent?
}
@Override
public void onPullUpToRefresh(final PullToRefreshBase<ListView> refreshView) {
- final Account currentAccount = Application.getInstance().getCurrentAccount();
- final MessageListAdapter adapter = getAdapter();
- new DirectMessagesTask(currentAccount)
+ runRefreshTask(
+ new DirectMessagesTask(Application.getInstance().getCurrentAccount())
+ .setMaxId(getAdapter().getLastID() - 1),
+ () -> {
+ updateListViewWithNotice(refreshView.getRefreshableView(), false);
+ refreshView.onRefreshComplete();
+ }); // TODO: sent?
+ }
+
+ private void runRefreshTask(TimelineTask<DirectMessage> task, Runnable onFinish) {
+ task
.setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .setMaxId(adapter.getLastID() - 1)
.onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_messages, NotificationType.ALERT))
- .onDoneUI(directMessages -> {
- for (DirectMessage directMessage : directMessages) {
- adapter.addToBottom(new MessageViewModel(directMessage));
- }
- updateListViewWithNotice(refreshView.getRefreshableView(), false);
- refreshView.onRefreshComplete();
- }).execute();
+ .onDoneUI(messages -> {
+ for (DirectMessage message : messages) {
+ StatusFilter.getInstance().filter(new MessageViewModel(message));
+ }
+ })
+ .onFinishUI(onFinish)
+ .execute();
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/PageFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/PageFragment.java
index a9108276..2fa199b3 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/PageFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/PageFragment.java
@@ -14,4 +14,6 @@ public abstract class PageFragment<T extends Adapter> extends Fragment {
protected void setAdapter(T _adapter) {
adapter = _adapter;
}
+
+ public abstract void refresh();
}
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 b5457222..c864c45e 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/PostFragment.java
@@ -64,8 +64,9 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo
private ViewGroup viewGroupReply;
private ViewGroup viewGroupMedia;
- // ------------------------ INTERFACE METHODS ------------------------
-
+ @Override
+ public void refresh() {
+ }
// --------------------- Interface OnClickListener ---------------------
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 6025e8bb..9e808a66 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/SearchFragment.java
@@ -40,7 +40,6 @@ import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import net.lacolaco.smileessence.Application;
import net.lacolaco.smileessence.R;
-import net.lacolaco.smileessence.activity.MainActivity;
import net.lacolaco.smileessence.command.Command;
import net.lacolaco.smileessence.command.CommandOpenSearch;
import net.lacolaco.smileessence.entity.Account;
@@ -52,7 +51,6 @@ import net.lacolaco.smileessence.preference.InternalPreferenceHelper;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.twitter.StatusFilter;
import net.lacolaco.smileessence.twitter.task.SearchTask;
-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;
@@ -83,6 +81,13 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem
SearchListAdapter adapter = new SearchListAdapter(getActivity());
setAdapter(adapter);
+ if (Application.getInstance().getCurrentAccount() != null) {
+ refresh();
+ }
+ }
+
+ @Override
+ public void refresh() { //TODO
String lastUsedSearchQuery = InternalPreferenceHelper.getInstance().get(R.string.key_last_used_search_query, "");
if (!TextUtils.isEmpty(lastUsedSearchQuery)) {
startSearch(lastUsedSearchQuery);
@@ -130,14 +135,11 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem
@Override
public void onPullDownToRefresh(final PullToRefreshBase<ListView> refreshView) {
- final Account currentAccount = Application.getInstance().getCurrentAccount();
final SearchListAdapter adapter = getAdapter();
String queryString = adapter.getQuery();
if (TextUtils.isEmpty(queryString)) {
- new UIHandler().post(() -> {
- notifyTextEmpty();
- refreshView.onRefreshComplete();
- });
+ notifyTextEmpty();
+ refreshView.onRefreshComplete();
return;
}
final Query query = new Query();
@@ -147,25 +149,12 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem
if (adapter.getCount() > 0) {
query.setSinceId(adapter.getTopID());
}
- new SearchTask(currentAccount, query)
- .onDoneUI(queryResult -> {
- if (queryResult != null) {
- List<twitter4j.Status> 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, currentAccount.getUserId()));
- adapter.addToTop(viewModel);
- StatusFilter.getInstance().filter(viewModel);
- }
- }
- updateListViewWithNotice(refreshView.getRefreshableView(), true);
- adapter.setTopID(queryResult.getMaxId());
- refreshView.onRefreshComplete();
- }
- })
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_search, NotificationType.ALERT))
- .execute();
+ runRefreshTask(
+ new SearchTask(Application.getInstance().getCurrentAccount(), query),
+ () -> {
+ updateListViewWithNotice(refreshView.getRefreshableView(), true);
+ refreshView.onRefreshComplete();
+ });
}
@Override
@@ -174,10 +163,8 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem
final SearchListAdapter adapter = getAdapter();
String queryString = adapter.getQuery();
if (TextUtils.isEmpty(queryString)) {
- new UIHandler().post(() -> {
- notifyTextEmpty();
- refreshView.onRefreshComplete();
- });
+ notifyTextEmpty();
+ refreshView.onRefreshComplete();
return;
}
final Query query = new Query();
@@ -187,23 +174,12 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem
if (adapter.getCount() > 0) {
query.setMaxId(adapter.getLastID() - 1);
}
- new SearchTask(currentAccount, query)
- .onDoneUI(queryResult -> {
- if (queryResult != null) {
- List<twitter4j.Status> tweets = queryResult.getTweets();
- for (twitter4j.Status status : tweets) {
- if (!status.isRetweet()) {
- StatusViewModel viewModel = new StatusViewModel(Tweet.fromTwitter(status, currentAccount.getUserId()));
- adapter.addToBottom(viewModel);
- StatusFilter.getInstance().filter(viewModel);
- }
- }
- updateListViewWithNotice(refreshView.getRefreshableView(), false);
- refreshView.onRefreshComplete();
- }
- })
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_search, NotificationType.ALERT))
- .execute();
+ runRefreshTask(
+ new SearchTask(Application.getInstance().getCurrentAccount(), query),
+ () -> {
+ updateListViewWithNotice(refreshView.getRefreshableView(), false);
+ refreshView.onRefreshComplete();
+ });
}
// ------------------------ OVERRIDE METHODS ------------------------
@@ -320,7 +296,7 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem
if (TextUtils.isEmpty(text)) {
Notificator.getInstance().publish(R.string.notice_query_is_empty, NotificationType.ALERT);
} else {
- ((MainActivity) getActivity()).openSearchPage(text);
+ startSearch(text);
hideIME();
}
}
@@ -331,30 +307,37 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem
if (!TextUtils.isEmpty(queryString)) {
final SearchListAdapter adapter = getAdapter();
adapter.initSearch(queryString);
- adapter.clear();
adapter.updateForce();
final Query query = new Query();
query.setQuery(queryString);
query.setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage());
query.setResultType(Query.RECENT);
- new SearchTask(Application.getInstance().getCurrentAccount(), query)
- .onDoneUI(queryResult -> {
- if (queryResult != null) {
- List<twitter4j.Status> 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, Application.getInstance().getCurrentAccount().getUserId()));
- adapter.addToTop(viewModel);
- StatusFilter.getInstance().filter(viewModel);
- }
+ runRefreshTask(
+ new SearchTask(Application.getInstance().getCurrentAccount(), query),
+ () -> {
+ adapter.updateForce();
+ });
+ }
+ }
+
+ private void runRefreshTask(SearchTask task, Runnable onFinish) {
+ final SearchListAdapter adapter = getAdapter();
+ final Account account = Application.getInstance().getCurrentAccount();
+ task
+ .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_search, NotificationType.ALERT))
+ .onDoneUI(queryResult -> {
+ if (queryResult != null) {
+ List<Tweet> tweets = Tweet.fromTwitter(queryResult.getTweets(), account.getUserId());
+ for (Tweet tweet : tweets) {
+ if (!tweet.isRetweet()) {
+ StatusViewModel viewModel = new StatusViewModel(tweet);
+ StatusFilter.getInstance().filter(viewModel);
+ adapter.addToTop(viewModel);
}
- adapter.setTopID(queryResult.getMaxId());
- adapter.updateForce();
}
- })
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_search, NotificationType.ALERT))
- .execute();
- }
+ }
+ })
+ .onFinishUI(onFinish)
+ .execute();
}
}
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 e282287f..ec6575de 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/UserListFragment.java
@@ -38,15 +38,14 @@ import com.handmark.pulltorefresh.library.PullToRefreshListView;
import net.lacolaco.smileessence.Application;
import net.lacolaco.smileessence.R;
import net.lacolaco.smileessence.activity.MainActivity;
-import net.lacolaco.smileessence.entity.Account;
import net.lacolaco.smileessence.entity.Tweet;
import net.lacolaco.smileessence.notification.NotificationType;
import net.lacolaco.smileessence.notification.Notificator;
import net.lacolaco.smileessence.preference.InternalPreferenceHelper;
import net.lacolaco.smileessence.preference.UserPreferenceHelper;
import net.lacolaco.smileessence.twitter.StatusFilter;
+import net.lacolaco.smileessence.twitter.task.TimelineTask;
import net.lacolaco.smileessence.twitter.task.UserListStatusesTask;
-import net.lacolaco.smileessence.util.UIHandler;
import net.lacolaco.smileessence.view.adapter.UserListListAdapter;
import net.lacolaco.smileessence.view.dialog.SelectUserListDialogFragment;
import net.lacolaco.smileessence.viewmodel.StatusViewModel;
@@ -76,11 +75,19 @@ public class UserListFragment extends CustomListFragment<UserListListAdapter> im
UserListListAdapter adapter = new UserListListAdapter(getActivity());
setAdapter(adapter);
+ if (Application.getInstance().getCurrentAccount() != null) {
+ refresh();
+ }
+ }
+
+ @Override
+ public void refresh() {//TODO
String lastUserList = InternalPreferenceHelper.getInstance().get(R.string.key_last_used_user_list, "");
if (!TextUtils.isEmpty(lastUserList)) {
startUserList(lastUserList);
}
}
+
// --------------------- Interface OnClickListener ---------------------
@Override
@@ -98,58 +105,38 @@ public class UserListFragment extends CustomListFragment<UserListListAdapter> im
@Override
public void onPullDownToRefresh(final PullToRefreshBase<ListView> refreshView) {
- final Account currentAccount = Application.getInstance().getCurrentAccount();
final UserListListAdapter adapter = getAdapter();
String listFullName = adapter.getListFullName();
if (TextUtils.isEmpty(listFullName)) {
- new UIHandler().post(() -> {
- notifyTextEmpty();
- refreshView.onRefreshComplete();
- });
+ notifyTextEmpty();
+ refreshView.onRefreshComplete();
return;
}
- new UserListStatusesTask(currentAccount, listFullName)
- .setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .setSinceId(adapter.getTopID())
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_list, NotificationType.ALERT))
- .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);
- }
+ runRefreshTask(
+ new UserListStatusesTask(Application.getInstance().getCurrentAccount(), listFullName)
+ .setSinceId(adapter.getTopID()),
+ () -> {
updateListViewWithNotice(refreshView.getRefreshableView(), true);
refreshView.onRefreshComplete();
- })
- .execute();
+ });
}
@Override
public void onPullUpToRefresh(final PullToRefreshBase<ListView> refreshView) {
- final Account currentAccount = Application.getInstance().getCurrentAccount();
final UserListListAdapter adapter = getAdapter();
String listFullName = adapter.getListFullName();
if (TextUtils.isEmpty(listFullName)) {
- new UIHandler().post(() -> {
- notifyTextEmpty();
- refreshView.onRefreshComplete();
- });
+ notifyTextEmpty();
+ refreshView.onRefreshComplete();
return;
}
- new UserListStatusesTask(currentAccount, listFullName)
- .setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
- .setMaxId(adapter.getLastID() - 1)
- .onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_list, NotificationType.ALERT))
- .onDoneUI(tweets -> {
- for (Tweet tweet : tweets) {
- StatusViewModel statusViewModel = new StatusViewModel(tweet);
- adapter.addToBottom(statusViewModel);
- StatusFilter.getInstance().filter(statusViewModel);
- }
+ runRefreshTask(
+ new UserListStatusesTask(Application.getInstance().getCurrentAccount(), listFullName)
+ .setMaxId(adapter.getLastID() - 1),
+ () -> {
updateListViewWithNotice(refreshView.getRefreshableView(), false);
refreshView.onRefreshComplete();
- })
- .execute();
+ });
}
// ------------------------ OVERRIDE METHODS ------------------------
@@ -203,17 +190,24 @@ public class UserListFragment extends CustomListFragment<UserListListAdapter> im
adapter.setListFullName(listFullName);
adapter.clear();
adapter.updateForce();
- new UserListStatusesTask(Application.getInstance().getCurrentAccount(), listFullName)
+ runRefreshTask(
+ new UserListStatusesTask(Application.getInstance().getCurrentAccount(), listFullName),
+ () -> adapter.updateForce());
+ }
+
+ private void runRefreshTask(TimelineTask<Tweet> task, Runnable onFinish) {
+ final UserListListAdapter adapter = getAdapter();
+ task
.setCount(UserPreferenceHelper.getInstance().getRequestCountPerPage())
.onFail(x -> Notificator.getInstance().publish(R.string.notice_error_get_list, NotificationType.ALERT))
.onDoneUI(tweets -> {
for (Tweet tweet : tweets) {
StatusViewModel statusViewModel = new StatusViewModel(tweet);
- adapter.addToBottom(statusViewModel);
StatusFilter.getInstance().filter(statusViewModel);
+ adapter.addToBottom(statusViewModel);
}
- adapter.updateForce();
})
+ .onFinishUI(onFinish)
.execute();
}
}
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 a404e823..aa32563f 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
@@ -24,42 +24,57 @@
package net.lacolaco.smileessence.view.adapter;
-import android.app.Fragment;
-import android.content.Context;
import android.os.Bundle;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
-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.PageFragment;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
-public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.OnPageChangeListener {//, ActionBar.OnNavigationListener {
+public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.OnPageChangeListener {
// ------------------------------ FIELDS ------------------------------
- private final MainActivity context;
- //private final ActionBar actionBar;
- private final ViewPager viewPager;
private final List<PageInfo> pages = new ArrayList<>();
+ private final Map<Integer, WeakReference<PageFragment>> fragmentCache = new HashMap<>();
- // --------------------------- CONSTRUCTORS ---------------------------
+ // --------------------------- FragmentPagerAdapter ---------------------------
public PageListAdapter(MainActivity _activity, ViewPager _viewPager) {
super(_activity.getFragmentManager());
- context = _activity;
- //actionBar = _activity.getActionBar();
- viewPager = _viewPager;
- viewPager.setAdapter(this);
- viewPager.addOnPageChangeListener(this);
+ _viewPager.addOnPageChangeListener(this);
}
- // --------------------- GETTER / SETTER METHODS ---------------------
+ @Override
+ public synchronized PageFragment getItem(int position) {
+ PageFragment pf;
+ PageInfo info = pages.get(position);
+ try {
+ pf = info.getFragmentClass().newInstance();
+ } catch (Exception e) {
+ Logger.error("should not happen: fragmentClass is private or Android is broken?");
+ e.printStackTrace();
+ throw new RuntimeException(e);
+ }
+ pf.setArguments(info.getArgs());
+ fragmentCache.put(position, new WeakReference<>(pf));
+ return pf;
+ }
+
+ public synchronized PageFragment getCachedFragment(int pos) {
+ WeakReference<PageFragment> wpf = fragmentCache.get(pos);
+ if (wpf == null) {
+ return null;
+ } else {
+ return wpf.get();
+ }
+ }
@Override
public synchronized int getCount() {
@@ -68,15 +83,6 @@ public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.O
// ------------------------ INTERFACE METHODS ------------------------
-
- // --------------------- Interface OnNavigationListener ---------------------
-
- //@Override
- //public synchronized boolean onNavigationItemSelected(int itemPosition, long itemId) {
- // viewPager.setCurrentItem(itemPosition, true);
- // return true;
- //}
-
// --------------------- Interface OnPageChangeListener ---------------------
@Override
@@ -86,7 +92,7 @@ public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.O
@Override
public synchronized void onPageSelected(int position) {
//Synchronize pager and navigation.
- Logger.debug(String.format("Page selected:%d", position));
+ Logger.debug(String.format("Page selected: %d", position));
//actionBar.setSelectedNavigationItem(position);
}
@@ -96,12 +102,6 @@ public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.O
// -------------------------- OTHER METHODS --------------------------
- @Override
- public synchronized Fragment getItem(int position) {
- PageInfo info = pages.get(position);
- return info.instantiate(context);
- }
-
public void addPage(Class<? extends PageFragment> klass, String name, Bundle args) {
this.addPage(klass, name, args, true);
}
@@ -125,7 +125,7 @@ public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.O
for (PageInfo f : pages) {
itemList.add(f.getName());
}
- ArrayAdapter<String> adapter = new ArrayAdapter<>(context, R.layout.navigation_list_item, R.id.navigation_list_item_text, itemList);
+ //ArrayAdapter<String> adapter = new ArrayAdapter<>(context, R.layout.navigation_list_item, R.id.navigation_list_item_text, itemList);
//actionBar.setListNavigationCallbacks(adapter, this);
super.notifyDataSetChanged();
}
@@ -140,21 +140,10 @@ public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.O
return -1;
}
- @Deprecated @SuppressWarnings("unchecked")
- public <T extends PageFragment> T getFragment(Class<T> fragmentClass) {
- for(PageInfo info : pages) {
- if (info.getFragmentClass() == fragmentClass) {
- return (T) info.getCachedInstance();
- }
- }
- return null;
- }
-
private static final class PageInfo {
private final Class<? extends PageFragment> fragmentClass;
private final Bundle args;
private final String name;
- private WeakReference<PageFragment> fragmentCache;
PageInfo(Class<? extends PageFragment> _fragmentClass, String _name, Bundle _args) {
fragmentClass = _fragmentClass;
@@ -171,15 +160,5 @@ public class PageListAdapter extends FragmentPagerAdapter implements ViewPager.O
public Bundle getArgs() {
return args;
}
-
- public PageFragment instantiate(Context context) {
- PageFragment fragment = (PageFragment) Fragment.instantiate(context, getFragmentClass().getName(), getArgs());
- fragmentCache = new WeakReference<>(fragment);
- return fragment;
- }
-
- public PageFragment getCachedInstance() {
- return fragmentCache.get();
- }
}
}
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/SearchListAdapter.java b/app/src/main/java/net/lacolaco/smileessence/view/adapter/SearchListAdapter.java
index 3cf4e6a5..8c535c85 100644
--- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/SearchListAdapter.java
+++ b/app/src/main/java/net/lacolaco/smileessence/view/adapter/SearchListAdapter.java
@@ -30,7 +30,7 @@ public class SearchListAdapter extends StatusListAdapter {
// ------------------------------ FIELDS ------------------------------
- private long topID;
+ //private long topID;
private String query;
private OnQueryChangeListener listener;
@@ -50,14 +50,14 @@ public class SearchListAdapter extends StatusListAdapter {
return query;
}
- @Override
- public long getTopID() {
- return topID;
- }
+ //@Override
+ //public long getTopID() {
+ // return topID;
+ //}
- public void setTopID(long topID) {
- this.topID = topID;
- }
+ //public void setTopID(long topID) {
+ // this.topID = topID;
+ //}
public void setOnQueryChangeListener(OnQueryChangeListener listener) {
this.listener = listener;
@@ -67,7 +67,8 @@ public class SearchListAdapter extends StatusListAdapter {
public void initSearch(String query) {
this.query = query;
- topID = 0;
+ clear();
+ // topID = 0;
if (listener != null) {
listener.onQueryChange(query);
}