Skip to content

Commit e5f63b9

Browse files
committed
添加评论页面(有bug)
1 parent 6698ece commit e5f63b9

27 files changed

+591
-117
lines changed

.idea/gradle.xml

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/rae/cnblogs/RaeImageLoader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public static DisplayImageOptions.Builder defaultOptions() {
3232
* 头像的默认配置
3333
* @return
3434
*/
35-
public static DisplayImageOptions headerOptinos() {
35+
public static DisplayImageOptions headerOption() {
3636
return defaultOptions()
3737
.displayer(new FadeInBitmapDisplayer(800))
3838
.showImageForEmptyUri(R.drawable.ic_default_user_avatar)

app/src/main/java/com/rae/cnblogs/activity/BlogContentActivity.java

+13-4
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
import com.nostra13.universalimageloader.core.ImageLoader;
1414
import com.rae.cnblogs.R;
1515
import com.rae.cnblogs.RaeImageLoader;
16-
import com.rae.cnblogs.dialog.BlogContentDialog;
16+
import com.rae.cnblogs.dialog.BlogCommentDialog;
17+
import com.rae.cnblogs.dialog.BlogShareDialog;
1718
import com.rae.cnblogs.fragment.BlogContentFragment;
1819
import com.rae.cnblogs.sdk.bean.Blog;
1920

@@ -42,7 +43,8 @@ public class BlogContentActivity extends BaseActivity {
4243
@BindView(R.id.tv_like_badge)
4344
TextView mLikeBadgeView;
4445

45-
private BlogContentDialog mContentDialog;
46+
private BlogShareDialog mContentDialog;
47+
private BlogCommentDialog mCommentDialog;
4648
private BlogContentFragment mContentFragment;
4749

4850
@Override
@@ -54,7 +56,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
5456
showHomeAsUp(mToolbar);
5557

5658
Blog blog = getIntent().getParcelableExtra("blog");
57-
mContentDialog = new BlogContentDialog(this, blog) {
59+
mContentDialog = new BlogShareDialog(this, blog) {
5860
@Override
5961
protected void onViewSourceClick() {
6062
if (mContentFragment.isHidden() || mContentFragment.isDetached()) return;
@@ -70,8 +72,10 @@ protected String getUrl() {
7072
}
7173
};
7274

75+
mCommentDialog = BlogCommentDialog.newInstance(blog);
76+
7377
if (blog != null) {
74-
ImageLoader.getInstance().displayImage(blog.getAvatar(), mAvatarView, RaeImageLoader.headerOptinos());
78+
ImageLoader.getInstance().displayImage(blog.getAvatar(), mAvatarView, RaeImageLoader.headerOption());
7579
mAuthorView.setText(blog.getAuthor());
7680
if (!TextUtils.equals(blog.getComment(), "0")) {
7781
mCommentBadgeView.setText(blog.getComment());
@@ -96,6 +100,11 @@ public void onActionMenuMoreClick() {
96100
mContentDialog.show();
97101
}
98102

103+
@OnClick(R.id.layout_content_comment)
104+
public void onCommentClick() {
105+
mCommentDialog.show(getSupportFragmentManager());
106+
}
107+
99108
@Override
100109
public boolean onKeyDown(int keyCode, KeyEvent event) {
101110
if (mContentFragment != null && mContentFragment.isVisible() && mContentFragment.onKeyDown(keyCode, event)) {

app/src/main/java/com/rae/cnblogs/activity/TestActivity.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import android.util.Log;
88

99
import com.rae.cnblogs.R;
10-
import com.rae.cnblogs.dialog.BlogContentDialog;
10+
import com.rae.cnblogs.dialog.BlogShareDialog;
1111
import com.rae.cnblogs.widget.RaeLoadMoreView;
1212

1313
import butterknife.BindView;
@@ -30,7 +30,7 @@ public void handleMessage(Message msg) {
3030
};
3131

3232
private int mCurrent = -1;
33-
private BlogContentDialog mDialog;
33+
private BlogShareDialog mDialog;
3434

3535
private void toggle() {
3636
if (mCurrent > 27) {
@@ -53,7 +53,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
5353
super.onCreate(savedInstanceState);
5454
setContentView(R.layout.activity_test);
5555
bindView();
56-
mDialog = new BlogContentDialog(this, null);
56+
mDialog = new BlogShareDialog(this, null);
5757

5858

5959
// mLoadMoreView.setProgressStyle(ProgressStyle.BallScaleMultiple);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.rae.cnblogs.adapter;
2+
3+
import android.content.Context;
4+
import android.support.v7.widget.RecyclerView;
5+
import android.view.LayoutInflater;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
9+
import com.rae.core.Rae;
10+
11+
import java.util.List;
12+
13+
/**
14+
* ITEM 适配器
15+
* Created by ChenRui on 2016/12/15 22:50.
16+
*/
17+
abstract class BaseItemAdapter<T, VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
18+
19+
protected List<T> mDataList;
20+
private LayoutInflater mLayoutInflater;
21+
protected Context mContext;
22+
23+
24+
@Override
25+
public VH onCreateViewHolder(ViewGroup parent, int viewType) {
26+
if (mContext == null) {
27+
mContext = parent.getContext();
28+
}
29+
if (mLayoutInflater == null) {
30+
mLayoutInflater = LayoutInflater.from(parent.getContext());
31+
}
32+
33+
return onCreateViewHolder(mLayoutInflater, parent, viewType);
34+
}
35+
36+
@Override
37+
public void onBindViewHolder(VH holder, int position) {
38+
onBindViewHolder(holder, position, getDataItem(position));
39+
}
40+
41+
public abstract VH onCreateViewHolder(LayoutInflater inflater, ViewGroup parent, int viewType);
42+
43+
public abstract void onBindViewHolder(VH holder, int position, T m);
44+
45+
protected T getDataItem(int position) {
46+
return mDataList == null ? null : mDataList.get(position);
47+
}
48+
49+
@Override
50+
public int getItemCount() {
51+
return Rae.getCount(mDataList);
52+
}
53+
54+
public void invalidate(List<T> data) {
55+
mDataList = data;
56+
}
57+
58+
59+
protected View inflateView(ViewGroup parent, int layoutId) {
60+
return mLayoutInflater.inflate(layoutId, parent, false);
61+
}
62+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.rae.cnblogs.adapter;
2+
3+
import android.view.LayoutInflater;
4+
import android.view.ViewGroup;
5+
6+
import com.rae.cnblogs.R;
7+
import com.rae.cnblogs.model.BlogCommentViewHolder;
8+
import com.rae.cnblogs.sdk.bean.Blog;
9+
10+
/**
11+
* 评论列表ITEM
12+
* Created by ChenRui on 2016/12/15 22:48.
13+
*/
14+
public class BlogCommentItemAdapter extends BaseItemAdapter<Blog, BlogCommentViewHolder> {
15+
16+
17+
@Override
18+
public BlogCommentViewHolder onCreateViewHolder(LayoutInflater inflater, ViewGroup parent, int viewType) {
19+
return new BlogCommentViewHolder(inflateView(parent, R.layout.item_blog_comment));
20+
}
21+
22+
@Override
23+
public void onBindViewHolder(BlogCommentViewHolder holder, int position, Blog m) {
24+
25+
}
26+
}

app/src/main/java/com/rae/cnblogs/adapter/BlogListItemAdapter.java

+6-20
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.rae.cnblogs.adapter;
22

3-
import android.support.v7.widget.RecyclerView;
43
import android.view.LayoutInflater;
54
import android.view.View;
65
import android.view.ViewGroup;
@@ -12,31 +11,26 @@
1211
import com.rae.cnblogs.RaeImageLoader;
1312
import com.rae.cnblogs.model.BlogItemViewHolder;
1413
import com.rae.cnblogs.sdk.bean.Blog;
15-
import com.rae.core.Rae;
16-
17-
import java.util.List;
1814

1915
/**
16+
* 博客列表ITEM
2017
* Created by ChenRui on 2016/12/2 0002 19:43.
2118
*/
22-
public class BlogListItemAdapter extends RecyclerView.Adapter<BlogItemViewHolder> implements View.OnClickListener {
19+
public class BlogListItemAdapter extends BaseItemAdapter<Blog, BlogItemViewHolder> implements View.OnClickListener {
2320

24-
private List<Blog> mBlogList;
2521
private DisplayImageOptions mAvatarOptions;
2622

2723
public BlogListItemAdapter() {
28-
mAvatarOptions = RaeImageLoader.headerOptinos();
24+
mAvatarOptions = RaeImageLoader.headerOption();
2925
}
3026

3127
@Override
32-
public BlogItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
33-
return new BlogItemViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_blog_list, parent, false));
28+
public BlogItemViewHolder onCreateViewHolder(LayoutInflater inflater, ViewGroup parent, int viewType) {
29+
return new BlogItemViewHolder(inflateView(parent, R.layout.item_blog_list));
3430
}
3531

3632
@Override
37-
public void onBindViewHolder(BlogItemViewHolder holder, int position) {
38-
Blog m = mBlogList.get(position);
39-
33+
public void onBindViewHolder(BlogItemViewHolder holder, int position, Blog m) {
4034
ImageLoader.getInstance().displayImage(m.getAvatar(), holder.avatarView, mAvatarOptions);
4135
holder.authorView.setText(m.getAuthor());
4236
holder.titleView.setText(m.getTitle());
@@ -50,14 +44,6 @@ public void onBindViewHolder(BlogItemViewHolder holder, int position) {
5044
holder.itemView.setOnClickListener(this);
5145
}
5246

53-
@Override
54-
public int getItemCount() {
55-
return Rae.getCount(mBlogList);
56-
}
57-
58-
public void invalidate(List<Blog> data) {
59-
mBlogList = data;
60-
}
6147

6248
@Override
6349
public void onClick(View view) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.rae.cnblogs.dialog;
2+
3+
import android.app.Dialog;
4+
import android.os.Bundle;
5+
import android.support.annotation.NonNull;
6+
import android.support.annotation.Nullable;
7+
import android.support.v4.app.FragmentManager;
8+
9+
import com.rae.cnblogs.R;
10+
import com.rae.cnblogs.fragment.BlogCommentFragment;
11+
import com.rae.cnblogs.sdk.bean.Blog;
12+
13+
/**
14+
* 评论对话框
15+
* Created by ChenRui on 2016/12/15 23:25.
16+
*/
17+
public class BlogCommentDialog extends SlideDialogFragment {
18+
19+
private Blog mBlog;
20+
21+
public static BlogCommentDialog newInstance(Blog blog) {
22+
Bundle args = new Bundle();
23+
args.putParcelable("blog", blog);
24+
BlogCommentDialog fragment = new BlogCommentDialog();
25+
fragment.setArguments(args);
26+
return fragment;
27+
}
28+
29+
@NonNull
30+
@Override
31+
public Dialog onCreateDialog(Bundle savedInstanceState) {
32+
Dialog dialog = super.onCreateDialog(savedInstanceState);
33+
dialog.setContentView(R.layout.dialog_blog_comment);
34+
return dialog;
35+
}
36+
37+
@Override
38+
public void onCreate(@Nullable Bundle savedInstanceState) {
39+
super.onCreate(savedInstanceState);
40+
mBlog = getArguments().getParcelable("blog");
41+
}
42+
43+
@Override
44+
public void show(FragmentManager manager, String tag) {
45+
manager.beginTransaction().add(R.id.content, BlogCommentFragment.newInstance(mBlog)).commit();
46+
super.show(manager, tag);
47+
}
48+
49+
public void show(FragmentManager manager) {
50+
this.show(manager, "blogComment");
51+
}
52+
}

app/src/main/java/com/rae/cnblogs/dialog/BlogContentDialog.java app/src/main/java/com/rae/cnblogs/dialog/BlogShareDialog.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@
2424
import butterknife.OnClick;
2525

2626
/**
27+
* 分享对话框
2728
* Created by ChenRui on 2016/12/7 22:15.
2829
*/
29-
public class BlogContentDialog extends SlideDialog {
30+
public class BlogShareDialog extends SlideDialog {
3031

3132
private final Blog mBlog;
3233

@@ -51,7 +52,7 @@ public class BlogContentDialog extends SlideDialog {
5152
View mBrowseriew;
5253

5354

54-
public BlogContentDialog(Context context, Blog blog) {
55+
public BlogShareDialog(Context context, Blog blog) {
5556
super(context);
5657
mBlog = blog;
5758
setContentView(R.layout.dialog_blog_content);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.rae.cnblogs.dialog;
2+
3+
import android.app.Dialog;
4+
import android.os.Bundle;
5+
import android.support.annotation.NonNull;
6+
import android.support.v4.app.DialogFragment;
7+
8+
/**
9+
* Fragment Slide dialog
10+
* Created by ChenRui on 2016/12/16 00:12.
11+
*/
12+
public class SlideDialogFragment extends DialogFragment {
13+
14+
@NonNull
15+
@Override
16+
public Dialog onCreateDialog(Bundle savedInstanceState) {
17+
return new SlideDialog(getContext());
18+
}
19+
}

0 commit comments

Comments
 (0)