Commit eab052eaa41cff36322301e71be74de549cb02e4

Authored by shixianjie
1 parent 290fa02e0a
Exists in master

题目详情bugfix

app/src/main/java/com/hjx/parent/HomeworkDetailActivity.java
1 package com.hjx.parent; 1 package com.hjx.parent;
2 2
3 import android.annotation.SuppressLint; 3 import android.annotation.SuppressLint;
4 import android.content.Intent; 4 import android.content.Intent;
5 import android.os.Bundle; 5 import android.os.Bundle;
6 import android.widget.ImageView; 6 import android.widget.ImageView;
7 import android.widget.TextView; 7 import android.widget.TextView;
8 8
9 import androidx.annotation.NonNull; 9 import androidx.annotation.NonNull;
10 import androidx.annotation.Nullable; 10 import androidx.annotation.Nullable;
11 11
12 import com.bumptech.glide.Glide; 12 import com.bumptech.glide.Glide;
13 import com.chad.library.adapter.base.BaseQuickAdapter; 13 import com.chad.library.adapter.base.BaseQuickAdapter;
14 import com.chad.library.adapter.base.BaseViewHolder; 14 import com.chad.library.adapter.base.BaseViewHolder;
15 import com.hjx.parent.databinding.ActivityHomeworkDetailBinding; 15 import com.hjx.parent.databinding.ActivityHomeworkDetailBinding;
16 import com.hjx.parent.dialog.EditHomeworkDialog; 16 import com.hjx.parent.dialog.EditHomeworkDialog;
17 import com.hjx.parent.rx.BaseRxActivity; 17 import com.hjx.parent.rx.BaseRxActivity;
18 import com.prws.common.bean.ResponseResult; 18 import com.prws.common.bean.ResponseResult;
19 import com.prws.common.bean.Student; 19 import com.prws.common.bean.Student;
20 import com.prws.common.bean.homework.HomeWork; 20 import com.prws.common.bean.homework.HomeWork;
21 import com.prws.common.bean.homework.HomeworkList; 21 import com.prws.common.bean.homework.HomeworkList;
22 import com.prws.common.net.NetWorks; 22 import com.prws.common.net.NetWorks;
23 23
24 import java.util.ArrayList; 24 import java.util.ArrayList;
25 import java.util.HashMap; 25 import java.util.HashMap;
26 import java.util.Map; 26 import java.util.Map;
27 27
28 public class HomeworkDetailActivity extends BaseRxActivity<ActivityHomeworkDetailBinding> { 28 public class HomeworkDetailActivity extends BaseRxActivity<ActivityHomeworkDetailBinding> {
29 29
30 private HomeworkList mData; 30 private HomeworkList mData;
31 private Student student; 31 private Student student;
32 32
33 private Adapter mAdapter = new Adapter(); 33 private Adapter mAdapter = new Adapter();
34 private EditHomeworkDialog mDialog; 34 private EditHomeworkDialog mDialog;
35 35
36 @Override 36 @Override
37 public void initView(Bundle savedInstanceState) { 37 public void initView(Bundle savedInstanceState) {
38 binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); 38 binding.toolbar.setNavigationOnClickListener(v -> onBackPressed());
39 mData = (HomeworkList) getIntent().getSerializableExtra("data"); 39 mData = (HomeworkList) getIntent().getSerializableExtra("data");
40 student = (Student) getIntent().getSerializableExtra("student"); 40 student = (Student) getIntent().getSerializableExtra("student");
41 mDialog = new EditHomeworkDialog(this, mData); 41 mDialog = new EditHomeworkDialog(this, mData);
42 binding.tvTitle.setText(mData.getName()); 42 binding.tvTitle.setText(mData.getName());
43 43
44 binding.recyclerView.setAdapter(mAdapter); 44 binding.recyclerView.setAdapter(mAdapter);
45 getDetail(); 45 getDetail();
46 46
47 binding.btnFeedback.setOnClickListener(v -> { 47 binding.btnFeedback.setOnClickListener(v -> {
48 if (mAdapter.getData().size() == 0) return; 48 if (mAdapter.getData().size() == 0) return;
49 Intent intent = new Intent(this, HomeworkSelectActivity.class); 49 Intent intent = new Intent(this, HomeworkSelectActivity.class);
50 intent.putExtra("data", mData); 50 intent.putExtra("data", mData);
51 intent.putExtra("student", student); 51 intent.putExtra("student", student);
52 intent.putExtra("list", new ArrayList<>(mAdapter.getData())); 52 intent.putExtra("list", new ArrayList<>(mAdapter.getData()));
53 startActivityForResult(intent, 0xA01); 53 startActivityForResult(intent, 0xA01);
54 }); 54 });
55 binding.btnEdit.setOnClickListener(v -> mDialog.show(data -> { 55 binding.btnEdit.setOnClickListener(v -> mDialog.show(data -> {
56 edit(data); 56 edit(data);
57 })); 57 }));
58 } 58 }
59 59
60 @Override 60 @Override
61 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { 61 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
62 super.onActivityResult(requestCode, resultCode, data); 62 super.onActivityResult(requestCode, resultCode, data);
63 if (requestCode == 0xA01 && resultCode == RESULT_OK) { 63 if (requestCode == 0xA01 && resultCode == RESULT_OK) {
64 finish(); 64 finish();
65 } 65 }
66 } 66 }
67 67
68 @SuppressLint("CheckResult") 68 @SuppressLint("CheckResult")
69 private void getDetail() { 69 private void getDetail() {
70 NetWorks.service_url.getHomeworkDetail(NetWorks.getHeader(), mData.getId()) 70 NetWorks.service_url.getHomeworkDetail(NetWorks.getHeader(), mData.getId())
71 .compose(transformSingle()) 71 .compose(transformSingle())
72 .map(ResponseResult::getData) 72 .map(ResponseResult::getData)
73 .subscribe((list, th) -> { 73 .subscribe((list, th) -> {
74 if (th != null) th.printStackTrace(); 74 if (th != null) th.printStackTrace();
75 mAdapter.setNewData(list); 75 mAdapter.setNewData(list);
76 }); 76 });
77 } 77 }
78 78
79 @SuppressLint("CheckResult") 79 @SuppressLint("CheckResult")
80 private void edit(HomeworkList data) { 80 private void edit(HomeworkList data) {
81 Map<String, Object> body = new HashMap<>(); 81 Map<String, Object> body = new HashMap<>();
82 body.put("homeworkId", data.getId()); 82 body.put("homeworkId", data.getId());
83 body.put("name", data.getName()); 83 body.put("name", data.getName());
84 body.put("grade", data.getGrade()); 84 body.put("grade", data.getGrade());
85 body.put("subject", data.getSubject()); 85 body.put("subject", data.getSubject());
86 body.put("term", data.getTerm()); 86 body.put("term", data.getTerm());
87 body.put("uploadTime", data.uploadTime); 87 body.put("uploadTime", data.uploadTime);
88 showLoadingDialog("请稍等···"); 88 showLoadingDialog("请稍等···");
89 NetWorks.service_url.editHomework(NetWorks.getHeader(), body) 89 NetWorks.service_url.editHomework(NetWorks.getHeader(), body)
90 .compose(transformSingle()) 90 .compose(transformSingle())
91 .subscribe((response, th) -> { 91 .subscribe((response, th) -> {
92 if (th != null) th.printStackTrace(); 92 if (th != null) th.printStackTrace();
93 if (response != null && response.getSuccess()) { 93 if (response != null && response.getSuccess()) {
94 cancelLoadingDialog(); 94 cancelLoadingDialog();
95 binding.tvTitle.setText(data.getName()); 95 binding.tvTitle.setText(data.getName());
96 } else { 96 } else {
97 loadFail(response == null ? "" : response.getMsg()); 97 loadFail(response == null ? "" : response.getMsg());
98 } 98 }
99 }); 99 });
100 } 100 }
101 101
102 @Override 102 @Override
103 protected ActivityHomeworkDetailBinding getViewBinding() { 103 protected ActivityHomeworkDetailBinding getViewBinding() {
104 return ActivityHomeworkDetailBinding.inflate(getLayoutInflater()); 104 return ActivityHomeworkDetailBinding.inflate(getLayoutInflater());
105 } 105 }
106 106
107 static class Adapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> { 107 static class Adapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> {
108 108
109 public Adapter() { 109 public Adapter() {
110 super(R.layout.item_homework_detail); 110 super(R.layout.item_homework_detail);
111 } 111 }
112 112
113 @SuppressLint("SetTextI18n") 113 @SuppressLint("SetTextI18n")
114 @Override 114 @Override
115 protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) { 115 protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) {
116 TextView tvNumber = holder.getView(R.id.tvNumber); 116 TextView tvNumber = holder.getView(R.id.tvNumber);
117 ImageView imageView = holder.getView(R.id.ivTopic); 117 ImageView imageView = holder.getView(R.id.ivTopic);
118 int number = getData().indexOf(homeWork) + 1; 118 int number = getData().indexOf(homeWork) + 1;
119 tvNumber.setText("第" + number + "题"); 119 tvNumber.setText("第" + number + "题");
120 Glide.with(mContext).load(homeWork.url).into(imageView); 120 Glide.with(mContext).load(homeWork.url).into(imageView);
121
122 holder.itemView.setOnClickListener(v -> {
123 Intent intent = new Intent(mContext, HomeworkTopicActivity.class);
124 intent.putExtra("position", getData().indexOf(homeWork));
125 intent.putExtra("list", new ArrayList<>(getData()));
126 mContext.startActivity(intent);
127 });
121 } 128 }
122 } 129 }
123 } 130 }
124 131
app/src/main/java/com/hjx/parent/HomeworkTopicActivity.java
1 package com.hjx.parent; 1 package com.hjx.parent;
2 2
3 import android.annotation.SuppressLint; 3 import android.annotation.SuppressLint;
4 import android.content.res.ColorStateList; 4 import android.content.res.ColorStateList;
5 import android.os.Bundle; 5 import android.os.Bundle;
6 import android.view.View; 6 import android.view.View;
7 import android.widget.TextView; 7 import android.widget.TextView;
8 8
9 import androidx.annotation.NonNull; 9 import androidx.annotation.NonNull;
10 import androidx.annotation.Nullable; 10 import androidx.annotation.Nullable;
11 11
12 import com.bumptech.glide.Glide; 12 import com.bumptech.glide.Glide;
13 import com.chad.library.adapter.base.BaseQuickAdapter; 13 import com.chad.library.adapter.base.BaseQuickAdapter;
14 import com.chad.library.adapter.base.BaseViewHolder; 14 import com.chad.library.adapter.base.BaseViewHolder;
15 import com.google.gson.Gson; 15 import com.google.gson.Gson;
16 import com.hjx.parent.databinding.ActivityTopicDetailBinding; 16 import com.hjx.parent.databinding.ActivityTopicDetailBinding;
17 import com.hjx.parent.rx.BaseRxActivity; 17 import com.hjx.parent.rx.BaseRxActivity;
18 import com.prws.common.bean.homework.HomeWork; 18 import com.prws.common.bean.homework.HomeWork;
19 import com.prws.common.bean.homework.KeyValue; 19 import com.prws.common.bean.homework.KeyValue;
20 20
21 import java.util.ArrayList; 21 import java.util.ArrayList;
22 import java.util.List; 22 import java.util.List;
23 23
24 public class HomeworkTopicActivity extends BaseRxActivity<ActivityTopicDetailBinding> { 24 public class HomeworkTopicActivity extends BaseRxActivity<ActivityTopicDetailBinding> {
25 private ArrayList<HomeWork> mList; 25 private ArrayList<HomeWork> mList;
26 private int position; 26 private int position;
27 27
28 @SuppressWarnings("unchecked") 28 @SuppressWarnings("unchecked")
29 @Override 29 @Override
30 public void initView(Bundle savedInstanceState) { 30 public void initView(Bundle savedInstanceState) {
31 mList = (ArrayList<HomeWork>) getIntent().getSerializableExtra("list"); 31 mList = (ArrayList<HomeWork>) getIntent().getSerializableExtra("list");
32 position = getIntent().getIntExtra("position", 0); 32 position = getIntent().getIntExtra("position", 0);
33 binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); 33 binding.toolbar.setNavigationOnClickListener(v -> onBackPressed());
34 NumberAdapter adapter = new NumberAdapter(mList); 34 NumberAdapter adapter = new NumberAdapter(mList);
35 binding.rvNumber.setAdapter(adapter); 35 binding.rvNumber.setAdapter(adapter);
36 36
37 binding.btnPre.setOnClickListener(v -> showTopic(position - 1)); 37 binding.btnPre.setOnClickListener(v -> showTopic(position - 1));
38 binding.btnNext.setOnClickListener(v -> showTopic(position + 1)); 38 binding.btnNext.setOnClickListener(v -> showTopic(position + 1));
39 adapter.setOnItemChildClickListener((baseQuickAdapter, view, i) -> { 39 adapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
40 if (position == 1) return; 40 if (position == i) return;
41 showTopic(i); 41 showTopic(i);
42 }); 42 });
43 showTopic(position); 43 showTopic(position);
44 } 44 }
45 45
46 @SuppressLint("SetTextI18n") 46 @SuppressLint("SetTextI18n")
47 private void showTopic(int position) { 47 private void showTopic(int position) {
48 if (position < 0 || position >= mList.size()) return; 48 if (position < 0 || position >= mList.size()) return;
49 this.position = position; 49 this.position = position;
50 binding.btnPre.setEnabled(position > 0); 50 binding.btnPre.setEnabled(position > 0);
51 binding.btnNext.setEnabled(position < mList.size() - 1); 51 binding.btnNext.setEnabled(position < mList.size() - 1);
52 binding.tvTitle.setText((position + 1) + "/" + mList.size()); 52 binding.tvTitle.setText((position + 1) + "/" + mList.size());
53 binding.tvNo.setText("题目" + (position + 1)); 53 binding.tvNo.setText("题目" + (position + 1));
54 54
55 HomeWork homeWork = mList.get(position); 55 HomeWork homeWork = mList.get(position);
56 Glide.with(this).load(homeWork.url).into(binding.ivTopic); 56 Glide.with(this).load(homeWork.url).into(binding.ivTopic);
57 Glide.with(this).load(homeWork.analyseUrl).into(binding.ivAnalyse); 57 Glide.with(this).load(homeWork.analyseUrl).into(binding.ivAnalyse);
58 String answer = homeWork.answer == null ? "" : homeWork.answer 58 String answer = homeWork.answer == null ? "" : homeWork.answer
59 .replace("<br />", "\n") 59 .replace("<br />", "\n")
60 .replace("${", "") 60 .replace("${", "")
61 .replace("}$", ""); 61 .replace("}$", "");
62 binding.tvAnswer.setText(answer); 62 binding.tvAnswer.setText(answer);
63 if (homeWork.pointsObj == null) homeWork.formatPoints(new Gson()); 63 if (homeWork.pointsObj == null) homeWork.formatPoints(new Gson());
64 StringBuilder pointBuilder = new StringBuilder(); 64 StringBuilder pointBuilder = new StringBuilder();
65 for (KeyValue point: homeWork.pointsObj) { 65 for (KeyValue point: homeWork.pointsObj) {
66 pointBuilder.append("\n").append(point.Value); 66 pointBuilder.append("\n").append(point.Value);
67 } 67 }
68 binding.tvPoint.setText(homeWork.pointsObj.size() == 0 ? "" : pointBuilder.substring(1)); 68 binding.tvPoint.setText(homeWork.pointsObj.size() == 0 ? "" : pointBuilder.substring(1));
69 } 69 }
70 70
71 @Override 71 @Override
72 protected ActivityTopicDetailBinding getViewBinding() { 72 protected ActivityTopicDetailBinding getViewBinding() {
73 return ActivityTopicDetailBinding.inflate(getLayoutInflater()); 73 return ActivityTopicDetailBinding.inflate(getLayoutInflater());
74 } 74 }
75 75
76 static class NumberAdapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> { 76 static class NumberAdapter extends BaseQuickAdapter<HomeWork, BaseViewHolder> {
77 77
78 public NumberAdapter(@Nullable List<HomeWork> data) { 78 public NumberAdapter(@Nullable List<HomeWork> data) {
79 super(R.layout.item_topic_number, data); 79 super(R.layout.item_topic_number, data);
80 } 80 }
81 81
82 @Override 82 @Override
83 protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) { 83 protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) {
84 TextView textView = (TextView) holder.itemView; 84 TextView textView = (TextView) holder.itemView;
85 textView.setText(String.valueOf(getData().indexOf(homeWork) + 1)); 85 textView.setText(String.valueOf(getData().indexOf(homeWork) + 1));
86 86
87 int color = homeWork.check ? 0xFFFF4133 : 0xFF4ABC78; 87 int color = homeWork.check ? 0xFFFF4133 : 0xFF4ABC78;
88 textView.setBackgroundTintList(ColorStateList.valueOf(color)); 88 textView.setBackgroundTintList(ColorStateList.valueOf(color));
89 } 89 }
90 } 90 }
91 } 91 }
92 92