diff options
author | laco0416 <laco0416@gmail.com> | 2014-06-05 22:07:38 +0900 |
---|---|---|
committer | laco0416 <laco0416@gmail.com> | 2014-06-05 22:08:23 +0900 |
commit | 1bd18a7495c9f76f0e0443807beac8cdc5a6989e (patch) | |
tree | e9b04cf298ba8eef1c7c8615e1963565f9ccfa36 | |
parent | 6325d415b010cff1319164a0e6a4b5688d0b1da7 (diff) | |
download | SmileEssence-1bd18a7495c9f76f0e0443807beac8cdc5a6989e.tar.gz |
Close #4 SE-ツイートの削除通知の時は強制的にListAdapterをnotifyする
5 files changed, 33 insertions, 21 deletions
diff --git a/src/net/lacolaco/smileessence/activity/MainActivity.java b/src/net/lacolaco/smileessence/activity/MainActivity.java index cdccf745..61ba84e9 100644 --- a/src/net/lacolaco/smileessence/activity/MainActivity.java +++ b/src/net/lacolaco/smileessence/activity/MainActivity.java @@ -72,6 +72,7 @@ import net.lacolaco.smileessence.viewmodel.menu.MainActivityMenuHelper; import twitter4j.*; import twitter4j.auth.AccessToken; +import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -162,9 +163,9 @@ public class MainActivity extends Activity return getAppPreferenceHelper().getValue(KEY_LAST_USER_LIST, ""); } - public int getPageIndexHistory() + public Collection<CustomListAdapter<?>> getListAdapters() { - return pageIndexHistory; + return adapterMap.values(); } public int getPageHome() @@ -172,9 +173,9 @@ public class MainActivity extends Activity return ADAPTER_HOME; } - public int getPageMentions() + public int getPageIndexHistory() { - return ADAPTER_MENTIONS; + return pageIndexHistory; } public int getPageIndexMessages() @@ -182,24 +183,29 @@ public class MainActivity extends Activity return pageIndexMessages; } - public int getPagePost() + public int getPageIndexSearch() { - return PAGE_POST; + return pageIndexSearch; } - public PageListAdapter getPagerAdapter() + public int getPageIndexUserlist() { - return pagerAdapter; + return pageIndexUserlist; } - public int getPageIndexSearch() + public int getPageMentions() { - return pageIndexSearch; + return ADAPTER_MENTIONS; } - public int getPageIndexUserlist() + public int getPagePost() { - return pageIndexUserlist; + return PAGE_POST; + } + + public PageListAdapter getPagerAdapter() + { + return pagerAdapter; } public int getThemeIndex() @@ -889,6 +895,11 @@ public class MainActivity extends Activity openUserListPage(); } + public void setListAdapter(int adapterIndex, CustomListAdapter<?> adapter) + { + adapterMap.put(adapterIndex, adapter); + } + private void openUserListPage() { setSelectedPageIndex(pageIndexUserlist); diff --git a/src/net/lacolaco/smileessence/twitter/UserStreamListener.java b/src/net/lacolaco/smileessence/twitter/UserStreamListener.java index e84a2618..0d92b5dd 100644 --- a/src/net/lacolaco/smileessence/twitter/UserStreamListener.java +++ b/src/net/lacolaco/smileessence/twitter/UserStreamListener.java @@ -121,13 +121,13 @@ public class UserStreamListener implements twitter4j.UserStreamListener, Connect @Override public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) { - for(int i = 0; i < getPagerCount(); i++) + for(CustomListAdapter<?> adapter : activity.getListAdapters()) { - CustomListAdapter adapter = activity.getListAdapter(i); if(adapter != null && adapter instanceof StatusListAdapter) { StatusListAdapter statusListAdapter = (StatusListAdapter) adapter; statusListAdapter.removeByStatusID(statusDeletionNotice.getStatusId()); + statusListAdapter.updateForce(); } } } @@ -162,6 +162,7 @@ public class UserStreamListener implements twitter4j.UserStreamListener, Connect { MessageListAdapter messages = (MessageListAdapter) activity.getListAdapter(MainActivity.ADAPTER_MESSAGES); messages.removeByMessageID(directMessageId); + messages.updateForce(); } @Override diff --git a/src/net/lacolaco/smileessence/view/adapter/MessageListAdapter.java b/src/net/lacolaco/smileessence/view/adapter/MessageListAdapter.java index 9895ec10..f273630c 100644 --- a/src/net/lacolaco/smileessence/view/adapter/MessageListAdapter.java +++ b/src/net/lacolaco/smileessence/view/adapter/MessageListAdapter.java @@ -84,7 +84,6 @@ public class MessageListAdapter extends CustomListAdapter<MessageViewModel> if(message.getID() == messageID) { iterator.remove(); - update(); return message; } } diff --git a/src/net/lacolaco/smileessence/view/adapter/StatusListAdapter.java b/src/net/lacolaco/smileessence/view/adapter/StatusListAdapter.java index 98899641..066fb8ef 100644 --- a/src/net/lacolaco/smileessence/view/adapter/StatusListAdapter.java +++ b/src/net/lacolaco/smileessence/view/adapter/StatusListAdapter.java @@ -91,7 +91,6 @@ public class StatusListAdapter extends CustomListAdapter<StatusViewModel> if(statusViewModel.getID() == statusID) { iterator.remove(); - update(); return statusViewModel; } } diff --git a/src/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java b/src/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java index 1f7f84a6..170c262f 100644 --- a/src/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java +++ b/src/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.java @@ -64,6 +64,7 @@ public class UserDetailDialogFragment extends DialogFragment implements View.OnC public static final String TAG = "userDialog"; private static final String KEY_USER_ID = "userID"; + private static final int ADAPTER_INDEX = 100; private TextView textViewScreenName; private TextView textViewName; private TextView textViewURL; @@ -239,9 +240,10 @@ public class UserDetailDialogFragment extends DialogFragment implements View.OnC textViewDescription.setMovementMethod(LinkMovementMethod.getInstance()); ImageCache.getInstance().setImageToView(user.getBiggerProfileImageURL(), imageViewIcon); ImageCache.getInstance().setImageToView(user.getProfileBannerURL(), imageViewHeader); - final StatusListAdapter adapter = new StatusListAdapter(getActivity()); + MainActivity activity = (MainActivity) getActivity(); + final StatusListAdapter adapter = new StatusListAdapter(activity); listViewTimeline.setAdapter(adapter); - + activity.setListAdapter(ADAPTER_INDEX, adapter); Twitter twitter = new TwitterApi(account).getTwitter(); if(user.getId() == account.userID) { @@ -250,9 +252,9 @@ public class UserDetailDialogFragment extends DialogFragment implements View.OnC } else { - int theme = ((MainActivity) getActivity()).getThemeIndex(); - final Drawable blue = Themes.getStyledDrawable(getActivity(), theme, R.attr.button_round_blue); - final Drawable red = Themes.getStyledDrawable(getActivity(), theme, R.attr.button_round_red); + int theme = ((MainActivity) activity).getThemeIndex(); + final Drawable blue = Themes.getStyledDrawable(activity, theme, R.attr.button_round_blue); + final Drawable red = Themes.getStyledDrawable(activity, theme, R.attr.button_round_red); new ShowFriendshipTask(twitter, user.getId()) { |