diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBUserFollow.java b/app/src/main/java/com/gh/gamecenter/eventbus/EBUserFollow.java new file mode 100644 index 0000000000..e82fde5303 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/eventbus/EBUserFollow.java @@ -0,0 +1,28 @@ +package com.gh.gamecenter.eventbus; + +public class EBUserFollow { + + private String userId; + private boolean follow; + + public EBUserFollow(String userId, boolean isFollow) { + this.userId = userId; + this.follow = isFollow; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public boolean isFollow() { + return follow; + } + + public void setFollow(boolean follow) { + this.follow = follow; + } +} diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeViewModel.kt index 1bf091fc38..2095017a45 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/PersonalHomeViewModel.kt @@ -9,6 +9,7 @@ import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.entity.PersonalEntity import com.gh.gamecenter.entity.PersonalHistoryEntity +import com.gh.gamecenter.eventbus.EBUserFollow import com.gh.gamecenter.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp @@ -17,6 +18,7 @@ import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import okhttp3.ResponseBody +import org.greenrobot.eventbus.EventBus import retrofit2.HttpException class PersonalHomeViewModel(application: Application, @@ -76,13 +78,10 @@ class PersonalHomeViewModel(application: Application, override fun onResponse(response: ResponseBody?) { super.onResponse(response) if (isFollow) { - // 关注成功 - callback(true) - Utils.toast(getApplication(), R.string.concern_success) - } else { - // 取消关注成功 - callback(false) + Utils.toast(getApplication(), R.string.concern_success) // 关注成功 } + callback(isFollow) + EventBus.getDefault().post(EBUserFollow(userId, isFollow)) } override fun onFailure(e: HttpException?) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailAdapter.java index d0624c90a5..01d967283e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailAdapter.java @@ -67,26 +67,13 @@ public class QuestionsDetailAdapter extends ListAdapter { @Override protected void setListData(List updateData) { - if (mQuestionsDetailEntity == null) { - notifyDataSetChanged(); - return; - } - int oldSize = TOP_ITEM_COUNT; - if (updateData != null && updateData.size() == 0) { mIsNoneData = true; } else { mIsNoneData = false; } - if (mEntityList != null && mEntityList.size() > 0) { - oldSize += mEntityList.size(); - } mEntityList = new ArrayList<>(updateData); - if (oldSize == 0 || oldSize > updateData.size()) { - notifyDataSetChanged(); - } else { - notifyItemRangeInserted(oldSize, updateData.size() + TOP_ITEM_COUNT - oldSize); - } + notifyDataSetChanged(); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java index e181fad44c..2731b3d28c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java @@ -21,6 +21,7 @@ import com.gh.gamecenter.baselist.ListFragment; import com.gh.gamecenter.baselist.LoadStatus; import com.gh.gamecenter.baselist.LoadType; import com.gh.gamecenter.eventbus.EBReuse; +import com.gh.gamecenter.eventbus.EBUserFollow; import com.gh.gamecenter.fragment.MainWrapperFragment; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.qa.AskFragment; @@ -238,6 +239,13 @@ public class AskQuestionsRecommendsFragment extends ListFragment value = mLiveData.getValue(); + if (value != null) { + for (RecommendItemData data : value) { + List followList = data.getFollowList(); + if (followList != null) { + for (SuggestedFollowEntity followEntity : followList) { + if (userId.equals(followEntity.getId())) { + followList.remove(followEntity); + mLiveData.postValue(value); + return; + } + } + } + } + } + } + } + private void loadData(boolean isUp, String sequenceId, LoadType loadType) { if (mIsLoading && !TextUtils.isEmpty(sequenceId) && !isUp) return; if (!isUp && mLiveData.getValue() != null && mLiveData.getValue().size() > 0) { @@ -369,6 +389,7 @@ public class AskQuestionsRecommendsViewModel extends BaseListViewModel) {