Commit 79e1a4d1 by 段启岩

博客详情完成

parent fa55e8c8
......@@ -12,17 +12,32 @@ import androidx.annotation.Nullable;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Priority;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;
import javax.inject.Inject;
import cn.yunliyunwai.beyondclouds.R;
import cn.yunliyunwai.beyondclouds.base.BaseActivity;
import cn.yunliyunwai.beyondclouds.data.model.UserInfo;
import cn.yunliyunwai.beyondclouds.databinding.ActivityBlogDetailBinding;
import cn.yunliyunwai.beyondclouds.util.ContextUtils;
import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform;
import cn.yunliyunwai.beyondclouds.util.StatusBarUtils;
import cn.yunliyunwai.beyondclouds.viewmodel.BlogDetailViewModel;
public class BlogDetailActivity extends BaseActivity<BlogDetailViewModel, ActivityBlogDetailBinding> {
private static final RequestOptions glideRequestOptions = new RequestOptions()
.centerCrop()
.placeholder(R.drawable.placeholder_circle)
.error(R.drawable.placeholder_circle)
.priority(Priority.HIGH)
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.transform(new GlideRoundTransform(19));
public static final String ARG_BLOG_ID = "BLOG_ID";
private String blogId;
......@@ -90,6 +105,15 @@ public class BlogDetailActivity extends BaseActivity<BlogDetailViewModel, Activi
}
});
viewModel.getUserInfo().observe(this, new Observer<UserInfo>() {
@Override
public void onChanged(UserInfo userInfo) {
if (null != userInfo) {
Glide.with(BlogDetailActivity.this).load(userInfo.getUserAvatar()).apply(glideRequestOptions).into(binding.imageUserAvatar);
}
}
});
viewModel.fetchBlog(blogId);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
......
......@@ -70,7 +70,7 @@ public class BlogDetailViewModel extends ViewModel {
}
private void fetchUserInfo(String userId) {
userRepository.getUserInfo(userId).removeObserver(new Observer<Result<UserInfo>>() {
userRepository.getUserInfo(userId).observeForever(new Observer<Result<UserInfo>>() {
@Override
public void onChanged(Result<UserInfo> userInfoResult) {
if (userInfoResult.getCode() == 0) {
......
......@@ -57,8 +57,8 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:src="@drawable/placeholder_circle"
android:layout_width="32dp"
android:layout_height="32dp" />
android:layout_width="36dp"
android:layout_height="36dp" />
<TextView
android:id="@+id/txt_user_nick"
android:text='@{viewModel.blog == null ? "作者" : viewModel.blog.userNick}'
......@@ -73,7 +73,7 @@
<TextView
android:id="@+id/txt_user_visit_num"
android:text='@{viewModel.userInfo == null ? "人气0·粉丝0" : "人气" + viewModel.userInfo.statistics.visitedNum + "粉丝" + viewModel.userInfo.statistics.fansNum}'
android:text='@{viewModel.userInfo == null ? "人气0·粉丝0" : "人气" + viewModel.userInfo.statistics.visitedNum + ".粉丝" + viewModel.userInfo.statistics.fansNum}'
app:layout_constraintStart_toEndOf="@id/image_user_avatar"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginStart="6dp"
......@@ -88,9 +88,17 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:text="+关注"
android:textColor="#75d098"
android:text='@{viewModel.blog == null ? "关注" : (viewModel.blog.followedAuthor ? "已关注" : "关注")}'
android:clickable="true"
android:background="@drawable/background_white_touchable"
android:textColor='@{viewModel.blog == null ? @color/colorUnFollowed : (viewModel.blog.followedAuthor ? @color/colorFollowed : @color/colorUnFollowed)}'
android:textSize="13sp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:paddingEnd="10dp"
android:paddingRight="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
......
......@@ -17,6 +17,9 @@
<color name="colorTextLevel5">#999999</color>
<color name="colorTextLevel6">#bec7cb</color>
<color name="colorUnFollowed">#75d098</color>
<color name="colorFollowed">#999999</color>
<color name="colorBackgroundTopicTouched">#3000AAE6</color>
<color name="colorPopupMenuItemTouched">#475256</color>
<color name="colorPopupMenuItem">#374246</color>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment