Java Code Examples for com.socks.jiandan.model.Commentator

The following examples show how to use com.socks.jiandan.model.Commentator. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: JianDanRxJava   Source File: CommentAdapter.java    License: Apache License 2.0 6 votes vote down vote up
public void loadData() {
    Subscription subscriptions = JDApi.getCommentator(mThread_key, obj -> thread_id = (String) obj)
            .subscribe(commentators1 -> {
                if (commentators1.size() == 0) {
                    mLoadResultCallBack.onSuccess(LoadResultCallBack.SUCCESS_NONE, null);
                } else {
                    mCommentators.clear();
                    Commentator.generateCommentator(commentators1, mCommentators);
                    notifyDataSetChanged();
                    mLoadResultCallBack.onSuccess(LoadResultCallBack.SUCCESS_OK, null);
                }
            }, e -> {
                mLoadResultCallBack.onError(LoadResultCallBack.ERROR_NET);
            });
    mActivity.addSubscription(subscriptions);
}
 
Example 2
Source Project: JianDanRxJava   Source File: JDApi.java    License: Apache License 2.0 6 votes vote down vote up
public static Observable<ArrayList<Commentator>> getCommentator(final String thread_key, LoadFinishCallBack callBack) {

        return Observable.create(new Observable.OnSubscribe<ArrayList<Commentator>>() {

            @Override
            public void call(Subscriber<? super ArrayList<Commentator>> subscriber) {
                String url = Commentator.getUrlCommentList(thread_key);
                try {
                    subscriber.onNext(new CommentListParser(callBack).parse(OkHttpProxy.get()
                            .url(url)
                            .execute()));
                    subscriber.onCompleted();
                } catch (IOException e) {
                    subscriber.onError(e);
                }
            }
        }).compose(applySchedulers());
    }
 
Example 3
Source Project: JianDan_OkHttpWithVolley   Source File: CommentAdapter.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public CommentViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    switch (viewType) {
        case Commentator.TYPE_HOT:
        case Commentator.TYPE_NEW:
            return new CommentViewHolder(mActivity.getLayoutInflater().inflate(R.layout
                    .item_comment_flag, parent, false));
        case Commentator.TYPE_NORMAL:
            return new CommentViewHolder(mActivity.getLayoutInflater().inflate(R.layout.item_comment, parent,
                    false));
        default:
            return null;
    }
}
 
Example 4
Source Project: JianDan_OkHttpWithVolley   Source File: CommentAdapter.java    License: Apache License 2.0 5 votes vote down vote up
private List<Commentator> addFloors(Commentator commentator) {
    //只有一层
    if (commentator.getFloorNum() == 1) {
        return null;
    }
    List<String> parentIds = Arrays.asList(commentator.getParents());
    ArrayList<Commentator> commentators = new ArrayList<>();
    for (Commentator comm : this.commentators) {
        if (parentIds.contains(comm.getPost_id())) {
            commentators.add(comm);
        }
    }
    Collections.reverse(commentators);
    return commentators;
}
 
Example 5
public Request4CommentList(String url, Response
        .Listener<ArrayList<Commentator>> listener,
                           Response.ErrorListener errorListener, LoadFinishCallBack callBack) {
    super(Method.GET, url, errorListener);
    this.listener = listener;
    this.callBack = callBack;
}
 
Example 6
Source Project: JianDan   Source File: CommentAdapter.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public CommentViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    switch (viewType) {
        case Commentator.TYPE_HOT:
        case Commentator.TYPE_NEW:
            return new CommentViewHolder(mActivity.getLayoutInflater().inflate(R.layout
                    .item_comment_flag, parent, false));
        case Commentator.TYPE_NORMAL:
            return new CommentViewHolder(mActivity.getLayoutInflater().inflate(R.layout.item_comment, parent,
                    false));
        default:
            return null;
    }
}
 
Example 7
Source Project: JianDan   Source File: CommentAdapter.java    License: Apache License 2.0 5 votes vote down vote up
private List<Commentator> addFloors(Commentator commentator) {
    //只有一层
    if (commentator.getFloorNum() == 1) {
        return null;
    }
    List<String> parentIds = Arrays.asList(commentator.getParents());
    ArrayList<Commentator> commentators = new ArrayList<>();
    for (Commentator comm : this.commentators) {
        if (parentIds.contains(comm.getPost_id())) {
            commentators.add(comm);
        }
    }
    Collections.reverse(commentators);
    return commentators;
}
 
Example 8
Source Project: JianDan   Source File: Request4CommentList.java    License: Apache License 2.0 5 votes vote down vote up
public Request4CommentList(String url, Response
        .Listener<ArrayList<Commentator>> listener,
                           Response.ErrorListener errorListener, LoadFinishCallBack callBack) {
    super(Method.GET, url, errorListener);
    this.listener = listener;
    this.callBack = callBack;
}
 
Example 9
Source Project: JianDanRxJava   Source File: CommentAdapter.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public CommentViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    switch (viewType) {
        case Commentator.TYPE_HOT:
        case Commentator.TYPE_NEW:
            return new CommentViewHolder(mActivity.getLayoutInflater().inflate(R.layout
                    .item_comment_flag, parent, false));
        case Commentator.TYPE_NORMAL:
            return new CommentViewHolder(mActivity.getLayoutInflater().inflate(R.layout.item_comment, parent,
                    false));
        default:
            return null;
    }
}
 
Example 10
Source Project: JianDanRxJava   Source File: CommentAdapter.java    License: Apache License 2.0 5 votes vote down vote up
private List<Commentator> addFloors(Commentator commentator) {
    if (commentator.getFloorNum() == 1) {
        return null;
    }
    List<String> parentIds = Arrays.asList(commentator.getParents());
    ArrayList<Commentator> commentators = new ArrayList<>();
    for (Commentator comm : mCommentators) {
        if (parentIds.contains(comm.getPost_id())) {
            commentators.add(comm);
        }
    }
    Collections.reverse(commentators);
    return commentators;
}
 
Example 11
Source Project: JianDanRxJava   Source File: JDApi.java    License: Apache License 2.0 5 votes vote down vote up
public static Observable<Boolean> pushComment4DuoShuo(Map<String, String> params) {

        return Observable.create(new Observable.OnSubscribe<Boolean>() {
            @Override
            public void call(Subscriber<? super Boolean> subscriber) {
                try {
                    subscriber.onNext(new PushCommentParser().parse(OkHttpProxy.post().url(Commentator.URL_PUSH_COMMENT).setParams(params).execute()));
                    subscriber.onCompleted();
                } catch (IOException e) {
                    e.printStackTrace();
                    subscriber.onError(e);
                }
            }
        }).compose(applySchedulers());
    }
 
Example 12
Source Project: JianDan_OkHttp   Source File: CommentAdapter.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public CommentViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    switch (viewType) {
        case Commentator.TYPE_HOT:
        case Commentator.TYPE_NEW:
            return new CommentViewHolder(mActivity.getLayoutInflater().inflate(R.layout
                    .item_comment_flag, parent, false));
        case Commentator.TYPE_NORMAL:
            return new CommentViewHolder(mActivity.getLayoutInflater().inflate(R.layout.item_comment, parent,
                    false));
        default:
            return null;
    }
}
 
Example 13
Source Project: JianDan_OkHttp   Source File: CommentAdapter.java    License: Apache License 2.0 5 votes vote down vote up
private List<Commentator> addFloors(Commentator commentator) {
    //只有一层
    if (commentator.getFloorNum() == 1) {
        return null;
    }
    List<String> parentIds = Arrays.asList(commentator.getParents());
    ArrayList<Commentator> commentators = new ArrayList<>();
    for (Commentator comm : this.commentators) {
        if (parentIds.contains(comm.getPost_id())) {
            commentators.add(comm);
        }
    }
    Collections.reverse(commentators);
    return commentators;
}
 
Example 14
Source Project: JianDan_OkHttp   Source File: Request4CommentList.java    License: Apache License 2.0 5 votes vote down vote up
public Request4CommentList(String url, Response
        .Listener<ArrayList<Commentator>> listener,
                           Response.ErrorListener errorListener, LoadFinishCallBack callBack) {
    super(Method.GET, url, errorListener);
    this.listener = listener;
    this.callBack = callBack;
}
 
Example 15
Source Project: JianDan_OkHttpWithVolley   Source File: CommentAdapter.java    License: Apache License 2.0 4 votes vote down vote up
public void loadData() {
    RequestManager.addRequest(new Request4CommentList(Commentator.getUrlCommentList(thread_key), new Response
            .Listener<ArrayList<Commentator>>() {
        @Override
        public void onResponse(ArrayList<Commentator> response) {

            if (response.size() == 0) {
                mLoadResultCallBack.onSuccess(LoadResultCallBack.SUCCESS_NONE, null);
            } else {
                commentators.clear();

                ArrayList<Commentator> hotCommentator = new ArrayList<>();
                ArrayList<Commentator> normalComment = new ArrayList<>();

                //添加热门评论
                for (Commentator commentator : response) {
                    if (commentator.getTag().equals(Commentator.TAG_HOT)) {
                        hotCommentator.add(commentator);
                    } else {
                        normalComment.add(commentator);
                    }
                }

                //添加热门评论标签
                if (hotCommentator.size() != 0) {
                    Collections.sort(hotCommentator);
                    Commentator hotCommentFlag = new Commentator();
                    hotCommentFlag.setType(Commentator.TYPE_HOT);
                    hotCommentator.add(0, hotCommentFlag);
                    commentators.addAll(hotCommentator);
                }

                //添加最新评论及标签
                if (normalComment.size() != 0) {
                    Commentator newCommentFlag = new Commentator();
                    newCommentFlag.setType(Commentator.TYPE_NEW);
                    commentators.add(newCommentFlag);
                    Collections.sort(normalComment);
                    commentators.addAll(normalComment);
                }

                notifyDataSetChanged();
                mLoadResultCallBack.onSuccess(LoadResultCallBack.SUCCESS_OK, null);
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            mLoadResultCallBack.onError(LoadResultCallBack.ERROR_NET, error.getMessage());
        }
    }, new LoadFinishCallBack() {
        @Override
        public void loadFinish(Object obj) {
            thread_id = (String) obj;
        }
    }), mActivity);
}
 
Example 16
@Override
protected Response<ArrayList<Commentator>> parseNetworkResponse(NetworkResponse response) {

    try {
        //获取到所有的数据
        String jsonStr = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
        JSONObject resultJson = new JSONObject(jsonStr);
        String allThreadId = resultJson.getString("response").replace("[", "").replace
                ("]", "").replace("\"", "");
        String[] threadIds = allThreadId.split("\\,");

        callBack.loadFinish(resultJson.optJSONObject("thread").optString("thread_id"));

        if (TextUtils.isEmpty(threadIds[0])) {
            return Response.success(new ArrayList<Commentator>(), HttpHeaderParser
                    .parseCacheHeaders(response));
        } else {

            //然后根据thread_id再去获得对应的评论和作者信息
            JSONObject parentPostsJson = resultJson.getJSONObject("parentPosts");
            //找出热门评论
            String hotPosts = resultJson.getString("hotPosts").replace("[", "").replace
                    ("]", "").replace("\"", "");
            String[] allHotPosts = hotPosts.split("\\,");

            ArrayList<Commentator> commentators = new ArrayList<>();
            List<String> allHotPostsArray = Arrays.asList(allHotPosts);

            for (String threadId : threadIds) {
                Commentator commentator = new Commentator();
                JSONObject threadObject = parentPostsJson.getJSONObject(threadId);

                //解析评论,打上TAG
                if (allHotPostsArray.contains(threadId)) {
                    commentator.setTag(Commentator.TAG_HOT);
                } else {
                    commentator.setTag(Commentator.TAG_NORMAL);
                }

                commentator.setPost_id(threadObject.optString("post_id"));
                commentator.setParent_id(threadObject.optString("parent_id"));

                String parentsString = threadObject.optString("parents").replace("[", "").replace
                        ("]", "").replace("\"", "");

                String[] parents = parentsString.split("\\,");
                commentator.setParents(parents);

                //如果第一个数据为空,则只有一层
                if (TextUtil.isNull(parents[0])) {
                    commentator.setFloorNum(1);
                } else {
                    commentator.setFloorNum(parents.length + 1);
                }

                commentator.setMessage(threadObject.optString("message"));
                commentator.setCreated_at(threadObject.optString("created_at"));
                JSONObject authorObject = threadObject.optJSONObject("author");
                commentator.setName(authorObject.optString("name"));
                commentator.setAvatar_url(authorObject.optString("avatar_url"));
                commentator.setType(Commentator.TYPE_NORMAL);
                commentators.add(commentator);
            }

            return Response.success(commentators, HttpHeaderParser.parseCacheHeaders(response));
        }
    } catch (Exception e) {
        e.printStackTrace();
        return Response.error(new ParseError(e));
    }
}
 
Example 17
@Override
protected void deliverResponse(ArrayList<Commentator> response) {
    listener.onResponse(response);
}
 
Example 18
Source Project: JianDan   Source File: CommentAdapter.java    License: Apache License 2.0 4 votes vote down vote up
public void loadData() {
    RequestManager.addRequest(new Request4CommentList(Commentator.getUrlCommentList(thread_key), new Response
            .Listener<ArrayList<Commentator>>() {
        @Override
        public void onResponse(ArrayList<Commentator> response) {

            if (response.size() == 0) {
                mLoadResultCallBack.onSuccess(LoadResultCallBack.SUCCESS_NONE, null);
            } else {
                commentators.clear();

                ArrayList<Commentator> hotCommentator = new ArrayList<>();
                ArrayList<Commentator> normalComment = new ArrayList<>();

                //添加热门评论
                for (Commentator commentator : response) {
                    if (commentator.getTag().equals(Commentator.TAG_HOT)) {
                        hotCommentator.add(commentator);
                    } else {
                        normalComment.add(commentator);
                    }
                }

                //添加热门评论标签
                if (hotCommentator.size() != 0) {
                    Collections.sort(hotCommentator);
                    Commentator hotCommentFlag = new Commentator();
                    hotCommentFlag.setType(Commentator.TYPE_HOT);
                    hotCommentator.add(0, hotCommentFlag);
                    commentators.addAll(hotCommentator);
                }

                //添加最新评论及标签
                if (normalComment.size() != 0) {
                    Commentator newCommentFlag = new Commentator();
                    newCommentFlag.setType(Commentator.TYPE_NEW);
                    commentators.add(newCommentFlag);
                    Collections.sort(normalComment);
                    commentators.addAll(normalComment);
                }

                notifyDataSetChanged();
                mLoadResultCallBack.onSuccess(LoadResultCallBack.SUCCESS_OK, null);
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            mLoadResultCallBack.onError(LoadResultCallBack.ERROR_NET, error.getMessage());
        }
    }, new LoadFinishCallBack() {
        @Override
        public void loadFinish(Object obj) {
            thread_id = (String) obj;
        }
    }), mActivity);
}
 
Example 19
Source Project: JianDan   Source File: Request4CommentList.java    License: Apache License 2.0 4 votes vote down vote up
@Override
protected Response<ArrayList<Commentator>> parseNetworkResponse(NetworkResponse response) {

    try {
        //获取到所有的数据
        String jsonStr = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
        JSONObject resultJson = new JSONObject(jsonStr);
        String allThreadId = resultJson.getString("response").replace("[", "").replace
                ("]", "").replace("\"", "");
        String[] threadIds = allThreadId.split("\\,");

        callBack.loadFinish(resultJson.optJSONObject("thread").optString("thread_id"));

        if (TextUtils.isEmpty(threadIds[0])) {
            return Response.success(new ArrayList<Commentator>(), HttpHeaderParser
                    .parseCacheHeaders(response));
        } else {

            //然后根据thread_id再去获得对应的评论和作者信息
            JSONObject parentPostsJson = resultJson.getJSONObject("parentPosts");
            //找出热门评论
            String hotPosts = resultJson.getString("hotPosts").replace("[", "").replace
                    ("]", "").replace("\"", "");
            String[] allHotPosts = hotPosts.split("\\,");

            ArrayList<Commentator> commentators = new ArrayList<>();
            List<String> allHotPostsArray = Arrays.asList(allHotPosts);

            for (String threadId : threadIds) {
                Commentator commentator = new Commentator();
                JSONObject threadObject = parentPostsJson.getJSONObject(threadId);

                //解析评论,打上TAG
                if (allHotPostsArray.contains(threadId)) {
                    commentator.setTag(Commentator.TAG_HOT);
                } else {
                    commentator.setTag(Commentator.TAG_NORMAL);
                }

                commentator.setPost_id(threadObject.optString("post_id"));
                commentator.setParent_id(threadObject.optString("parent_id"));

                String parentsString = threadObject.optString("parents").replace("[", "").replace
                        ("]", "").replace("\"", "");

                String[] parents = parentsString.split("\\,");
                commentator.setParents(parents);

                //如果第一个数据为空,则只有一层
                if (TextUtil.isNull(parents[0])) {
                    commentator.setFloorNum(1);
                } else {
                    commentator.setFloorNum(parents.length + 1);
                }

                commentator.setMessage(threadObject.optString("message"));
                commentator.setCreated_at(threadObject.optString("created_at"));
                JSONObject authorObject = threadObject.optJSONObject("author");
                commentator.setName(authorObject.optString("name"));
                commentator.setAvatar_url(authorObject.optString("avatar_url"));
                commentator.setType(Commentator.TYPE_NORMAL);
                commentators.add(commentator);
            }

            return Response.success(commentators, HttpHeaderParser.parseCacheHeaders(response));
        }
    } catch (Exception e) {
        e.printStackTrace();
        return Response.error(new ParseError(e));
    }
}
 
Example 20
Source Project: JianDan   Source File: Request4CommentList.java    License: Apache License 2.0 4 votes vote down vote up
@Override
protected void deliverResponse(ArrayList<Commentator> response) {
    listener.onResponse(response);
}
 
Example 21
Source Project: JianDanRxJava   Source File: CommentListParser.java    License: Apache License 2.0 4 votes vote down vote up
@Nullable
@Override
public ArrayList<Commentator> parse(Response response) {

    if (!response.isSuccessful())
        return null;


    try {
        //获取到所有的数据
        String jsonStr = response.body().string();
        JSONObject resultJson = new JSONObject(jsonStr);
        String allThreadId = resultJson.getString("response").replace("[", "").replace
                ("]", "").replace("\"", "");
        String[] threadIds = allThreadId.split("\\,");

        mCallBack.loadFinish(resultJson.optJSONObject("thread").optString("thread_id"));

        if (TextUtils.isEmpty(threadIds[0])) {
            return new ArrayList<>();
        } else {

            //然后根据thread_id再去获得对应的评论和作者信息
            JSONObject parentPostsJson = resultJson.getJSONObject("parentPosts");
            //找出热门评论
            String hotPosts = resultJson.getString("hotPosts").replace("[", "").replace
                    ("]", "").replace("\"", "");
            String[] allHotPosts = hotPosts.split("\\,");

            ArrayList<Commentator> commentators = new ArrayList<>();
            List<String> allHotPostsArray = Arrays.asList(allHotPosts);

            for (String threadId : threadIds) {
                Commentator commentator = new Commentator();
                JSONObject threadObject = parentPostsJson.getJSONObject(threadId);

                //解析评论,打上TAG
                if (allHotPostsArray.contains(threadId)) {
                    commentator.setTag(Commentator.TAG_HOT);
                } else {
                    commentator.setTag(Commentator.TAG_NORMAL);
                }

                commentator.setPost_id(threadObject.optString("post_id"));
                commentator.setParent_id(threadObject.optString("parent_id"));

                String parentsString = threadObject.optString("parents").replace("[", "").replace
                        ("]", "").replace("\"", "");

                String[] parents = parentsString.split("\\,");
                commentator.setParents(parents);

                //如果第一个数据为空,则只有一层
                if (TextUtil.isNull(parents[0])) {
                    commentator.setFloorNum(1);
                } else {
                    commentator.setFloorNum(parents.length + 1);
                }

                commentator.setMessage(threadObject.optString("message"));
                commentator.setCreated_at(threadObject.optString("created_at"));
                JSONObject authorObject = threadObject.optJSONObject("author");
                commentator.setName(authorObject.optString("name"));
                commentator.setAvatar_url(authorObject.optString("avatar_url"));
                commentator.setType(Commentator.TYPE_NORMAL);
                commentators.add(commentator);
            }

            return commentators;
        }
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}
 
Example 22
Source Project: JianDan_OkHttp   Source File: CommentListParser.java    License: Apache License 2.0 4 votes vote down vote up
@Nullable
@Override
public ArrayList<Commentator> parse(Response response) {

    code = wrapperCode(response.code());
    if (!response.isSuccessful())
        return null;


    try {
        //获取到所有的数据
        String jsonStr = response.body().string();
        JSONObject resultJson = new JSONObject(jsonStr);
        String allThreadId = resultJson.getString("response").replace("[", "").replace
                ("]", "").replace("\"", "");
        String[] threadIds = allThreadId.split("\\,");

        callBack.loadFinish(resultJson.optJSONObject("thread").optString("thread_id"));

        if (TextUtils.isEmpty(threadIds[0])) {
            return new ArrayList<>();
        } else {

            //然后根据thread_id再去获得对应的评论和作者信息
            JSONObject parentPostsJson = resultJson.getJSONObject("parentPosts");
            //找出热门评论
            String hotPosts = resultJson.getString("hotPosts").replace("[", "").replace
                    ("]", "").replace("\"", "");
            String[] allHotPosts = hotPosts.split("\\,");

            ArrayList<Commentator> commentators = new ArrayList<>();
            List<String> allHotPostsArray = Arrays.asList(allHotPosts);

            for (String threadId : threadIds) {
                Commentator commentator = new Commentator();
                JSONObject threadObject = parentPostsJson.getJSONObject(threadId);

                //解析评论,打上TAG
                if (allHotPostsArray.contains(threadId)) {
                    commentator.setTag(Commentator.TAG_HOT);
                } else {
                    commentator.setTag(Commentator.TAG_NORMAL);
                }

                commentator.setPost_id(threadObject.optString("post_id"));
                commentator.setParent_id(threadObject.optString("parent_id"));

                String parentsString = threadObject.optString("parents").replace("[", "").replace
                        ("]", "").replace("\"", "");

                String[] parents = parentsString.split("\\,");
                commentator.setParents(parents);

                //如果第一个数据为空,则只有一层
                if (TextUtil.isNull(parents[0])) {
                    commentator.setFloorNum(1);
                } else {
                    commentator.setFloorNum(parents.length + 1);
                }

                commentator.setMessage(threadObject.optString("message"));
                commentator.setCreated_at(threadObject.optString("created_at"));
                JSONObject authorObject = threadObject.optJSONObject("author");
                commentator.setName(authorObject.optString("name"));
                commentator.setAvatar_url(authorObject.optString("avatar_url"));
                commentator.setType(Commentator.TYPE_NORMAL);
                commentators.add(commentator);
            }

            return commentators;
        }
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}
 
Example 23
Source Project: JianDan_OkHttp   Source File: Request4CommentList.java    License: Apache License 2.0 4 votes vote down vote up
@Override
protected Response<ArrayList<Commentator>> parseNetworkResponse(NetworkResponse response) {

    try {
        //获取到所有的数据
        String jsonStr = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
        JSONObject resultJson = new JSONObject(jsonStr);
        String allThreadId = resultJson.getString("response").replace("[", "").replace
                ("]", "").replace("\"", "");
        String[] threadIds = allThreadId.split("\\,");

        callBack.loadFinish(resultJson.optJSONObject("thread").optString("thread_id"));

        if (TextUtils.isEmpty(threadIds[0])) {
            return Response.success(new ArrayList<Commentator>(), HttpHeaderParser
                    .parseCacheHeaders(response));
        } else {

            //然后根据thread_id再去获得对应的评论和作者信息
            JSONObject parentPostsJson = resultJson.getJSONObject("parentPosts");
            //找出热门评论
            String hotPosts = resultJson.getString("hotPosts").replace("[", "").replace
                    ("]", "").replace("\"", "");
            String[] allHotPosts = hotPosts.split("\\,");

            ArrayList<Commentator> commentators = new ArrayList<>();
            List<String> allHotPostsArray = Arrays.asList(allHotPosts);

            for (String threadId : threadIds) {
                Commentator commentator = new Commentator();
                JSONObject threadObject = parentPostsJson.getJSONObject(threadId);

                //解析评论,打上TAG
                if (allHotPostsArray.contains(threadId)) {
                    commentator.setTag(Commentator.TAG_HOT);
                } else {
                    commentator.setTag(Commentator.TAG_NORMAL);
                }

                commentator.setPost_id(threadObject.optString("post_id"));
                commentator.setParent_id(threadObject.optString("parent_id"));

                String parentsString = threadObject.optString("parents").replace("[", "").replace
                        ("]", "").replace("\"", "");

                String[] parents = parentsString.split("\\,");
                commentator.setParents(parents);

                //如果第一个数据为空,则只有一层
                if (TextUtil.isNull(parents[0])) {
                    commentator.setFloorNum(1);
                } else {
                    commentator.setFloorNum(parents.length + 1);
                }

                commentator.setMessage(threadObject.optString("message"));
                commentator.setCreated_at(threadObject.optString("created_at"));
                JSONObject authorObject = threadObject.optJSONObject("author");
                commentator.setName(authorObject.optString("name"));
                commentator.setAvatar_url(authorObject.optString("avatar_url"));
                commentator.setType(Commentator.TYPE_NORMAL);
                commentators.add(commentator);
            }

            return Response.success(commentators, HttpHeaderParser.parseCacheHeaders(response));
        }
    } catch (Exception e) {
        e.printStackTrace();
        return Response.error(new ParseError(e));
    }
}
 
Example 24
Source Project: JianDan_OkHttp   Source File: Request4CommentList.java    License: Apache License 2.0 4 votes vote down vote up
@Override
protected void deliverResponse(ArrayList<Commentator> response) {
    listener.onResponse(response);
}