diff --git a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java index 29092d09df..fdfdcda585 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java @@ -27,6 +27,7 @@ import com.gh.common.util.Utils; import com.gh.gamecenter.adapter.MessageDetailAdapter; import com.gh.gamecenter.entity.CommentEntity; import com.gh.gamecenter.entity.UserEntity; +import com.gh.gamecenter.manager.CommentManager; import org.json.JSONArray; import org.json.JSONException; @@ -228,6 +229,8 @@ public class MessageDetailActivity extends BaseActivity { // 完成评论操作,添加评论数 mMessageDetailAdapter.addCommentCount(); + //修改评论缓存 + CommentManager.updateOkhttpCache(newsId); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java index 754e903d02..cf93078144 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -422,15 +422,16 @@ public class MessageDetailAdapter extends RecyclerView.Adapter= 1) { holder.commentLikeCountTv.setTextColor(mContext.getResources().getColor(R.color.theme)); holder.commentLikeIv.setImageResource(R.drawable.comment_like_select); - } else { - holder.commentLikeCountTv.setTextColor(mContext.getResources().getColor(R.color.hint)); - holder.commentLikeIv.setImageResource(R.drawable.comment_like_unselect); } holder.commentLikeCountTv.setVisibility(View.VISIBLE); holder.commentLikeCountTv.setText(String.valueOf(commentEntity.getVote())); @@ -478,11 +479,11 @@ public class MessageDetailAdapter extends RecyclerView.Adapter urlList; + + private CommentManager() { + urlList = new ArrayList<>(); + } + + public void addUrl(String ids) { + String url = Config.COMMENT_HOST + "article/" + ids + "/comment/num"; + if (!urlList.contains(url)) { + urlList.add(url); + } + } + + public String getUrl(String id) { + for (int i = 0, size = urlList.size(); i < size; i++) { + if (urlList.get(i).contains(id)) { + return urlList.get(i); + } + } + return null; + } + + // 更新okhttp缓存数据 + public static void updateOkhttpCache(final String comment_id) { + ObservableUtil.io(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + String key = CommentManager.getInstance().getUrl(comment_id); + if (key == null) { + return; + } + byte[] data = RetrofitManager.getInstance().getCache(key); + if (data != null) { + try { + JSONArray jsonArray = new JSONArray(new String(data)); + JSONObject jsonObject; + for (int i = 0, size = jsonArray.length(); i < size; i++) { + jsonObject = jsonArray.getJSONObject(i); + if (jsonObject.getString("_id").equals(comment_id)) { + jsonObject.put("num", jsonObject.getInt("num") + 1); + break; + } + } + RetrofitManager.getInstance().updateCache(key, jsonArray.toString().getBytes()); + } catch (JSONException e) { + e.printStackTrace(); + } + } + } + }, null); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java index 8da15c560d..071ac3f761 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -33,6 +33,7 @@ import com.gh.gamecenter.entity.CommentnumEntity; import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.entity.ViewsEntity; import com.gh.gamecenter.listener.OnCallBackListener; +import com.gh.gamecenter.manager.CommentManager; import com.gh.gamecenter.manager.ConcernManager; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.manager.VisitManager; @@ -379,6 +380,7 @@ public class News1FragmentAdapter extends RecyclerView.Adapter