package com.hjx.parent; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.bumptech.glide.Glide; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.hjx.parent.databinding.ActivityHomeworkDetailBinding; import com.hjx.parent.dialog.EditHomeworkDialog; import com.hjx.parent.dialog.MsgConfirmDialog; import com.hjx.parent.rx.BaseRxActivity; import com.prws.common.bean.ResponseResult; import com.prws.common.bean.Student; import com.prws.common.bean.homework.HomeWork; import com.prws.common.bean.homework.HomeworkList; import com.prws.common.net.NetWorks; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class HomeworkDetailActivity extends BaseRxActivity { private HomeworkList mData; private Student student; private Adapter mAdapter = new Adapter(); private EditHomeworkDialog mDialog; private MsgConfirmDialog noAnalyseDialog; @Override public void initView(Bundle savedInstanceState) { binding.toolbar.setNavigationOnClickListener(v -> onBackPressed()); mData = (HomeworkList) getIntent().getSerializableExtra("data"); student = (Student) getIntent().getSerializableExtra("student"); mDialog = new EditHomeworkDialog(this, mData); noAnalyseDialog = new MsgConfirmDialog.Builder(this) .setNegative("").setPositive("好的") .setMessage("尚未完成解析制作,\n请先去好记星平板端制作解析").build(); binding.tvTitle.setText(mData.getName()); binding.recyclerView.setAdapter(mAdapter); getDetail(); binding.btnFeedback.setOnClickListener(v -> { if (mAdapter.getData().size() == 0) return; if (mData.getCompleteFlag() == 0) { noAnalyseDialog.show(); return; } Intent intent = new Intent(this, HomeworkSelectActivity.class); intent.putExtra("data", mData); intent.putExtra("student", student); intent.putExtra("list", new ArrayList<>(mAdapter.getData())); startActivityForResult(intent, 0xA01); }); binding.btnEdit.setOnClickListener(v -> mDialog.show(data -> { edit(data); })); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 0xA01 && resultCode == RESULT_OK) { finish(); } } @SuppressLint("CheckResult") private void getDetail() { NetWorks.service_url.getHomeworkDetail(NetWorks.getHeader(), mData.getId()) .compose(transformSingle()) .map(ResponseResult::getData) .subscribe((list, th) -> { if (th != null) th.printStackTrace(); mAdapter.setNewData(list); }); } @SuppressLint("CheckResult") private void edit(HomeworkList data) { Map body = new HashMap<>(); body.put("homeworkId", data.getId()); body.put("name", data.getName()); body.put("grade", data.getGrade()); body.put("subject", data.getSubject()); body.put("term", data.getTerm()); body.put("uploadTime", data.uploadTime); showLoadingDialog("请稍等···"); NetWorks.service_url.editHomework(NetWorks.getHeader(), body) .compose(transformSingle()) .subscribe((response, th) -> { if (th != null) th.printStackTrace(); if (response != null && response.getSuccess()) { cancelLoadingDialog(); binding.tvTitle.setText(data.getName()); } else { loadFail(response == null ? "" : response.getMsg()); } }); } @Override protected ActivityHomeworkDetailBinding getViewBinding() { return ActivityHomeworkDetailBinding.inflate(getLayoutInflater()); } static class Adapter extends BaseQuickAdapter { public Adapter() { super(R.layout.item_homework_detail); } @SuppressLint("SetTextI18n") @Override protected void convert(@NonNull BaseViewHolder holder, HomeWork homeWork) { TextView tvNumber = holder.getView(R.id.tvNumber); ImageView imageView = holder.getView(R.id.ivTopic); int number = getData().indexOf(homeWork) + 1; tvNumber.setText("第" + number + "题"); Glide.with(mContext).load(homeWork.url).into(imageView); holder.itemView.setOnClickListener(v -> { Intent intent = new Intent(mContext, HomeworkTopicActivity.class); intent.putExtra("position", getData().indexOf(homeWork)); intent.putExtra("list", new ArrayList<>(getData())); mContext.startActivity(intent); }); } } }