HomeworkDetailActivity.java 5.28 KB
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<ActivityHomeworkDetailBinding> {

    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<String, Object> 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);
        body.put("stuId", student.stuId);
        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<HomeWork, BaseViewHolder> {

        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);
            });
        }
    }
}