package eVVM.apk.ui.toreview; import android.app.Dialog; import android.content.Intent; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.util.Log; import android.view.Gravity; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.hjq.base.BaseDialog; import com.hjq.dialog.MenuDialog; import com.hjq.image.ImageLoader; import org.greenrobot.eventbus.EventBus; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.OnClick; import eVVM.apk.R; import eVVM.apk.helper.MyClickListener; import eVVM.apk.helper.SPUtils; import eVVM.apk.mvp.MvpActivity; import eVVM.apk.ui.bean.ModelListBean; import eVVM.apk.ui.bean.VerificationCodeBean; import eVVM.apk.ui.bean.VnDetailBean; import eVVM.apk.ui.event.ReviewEvent; import eVVM.apk.ui.login.LoginActivity; import eVVM.apk.ui.report.vndetail.VnDetailContract; import eVVM.apk.ui.report.vndetail.VnDetailPresenter; import eVVM.apk.ui.webview.WebActivity; public class VnToreViewActivity extends MvpActivity implements VnDetailContract.View, MyClickListener.MyClickCallBack { @BindView(R.id.vndetail_tv_vncode) TextView vndetailTvVncode; @BindView(R.id.vndetail_tv_vndate) TextView vndetailTvVndate; @BindView(R.id.vndetail_tv_factoryName) TextView vndetailTvFactoryName; @BindView(R.id.vndetail_tv_gmpName) TextView vndetailTvGmpName; @BindView(R.id.vndetail_tv_gmpPath) TextView vndetailTvGmpPath; @BindView(R.id.vndetail_tv_hospitalName) TextView vndetailTvHospitalName; @BindView(R.id.vndetail_tv_doctorName) TextView vndetailTvDoctorName; @BindView(R.id.vndetail_tv_doctorTelephone) TextView vndetailTvDoctorTelephone; @BindView(R.id.vndetail_tv_chatImage) ImageView vndetailTvChatImage; @BindView(R.id.vndetail_tv_othervn1) TextView vndetailTvOthervn1; @BindView(R.id.vndetail_tv_othervn2) TextView vndetailTvOthervn2; @BindView(R.id.vndetail_tv_othervn3) TextView vndetailTvOthervn3; @BindView(R.id.vndetail_iv_tipsimg) ImageView vndetailIvTipsimg; @BindView(R.id.vndetail_tv_tips) TextView vndetailTvTips; @BindView(R.id.vndetail_tv_disclaimer) TextView vndetailTvDisclaimer; @BindView(R.id.tobigll) LinearLayout tobigll; private String toreviewid; private int rsReviewType; @Override protected int getLayoutId() { return R.layout.activity_vn_tore_view; } @Override protected int getTitleId() { return R.id.tb_vndetail_title; } @Override protected void initView() { if (SPUtils.get("USER_TOKEN", "").equals("")) { Intent in = new Intent(this, LoginActivity.class); startActivityFinish(in); } } @Override protected void initData() { Intent in = getIntent(); showLoading(); String vnchipNumber = in.getStringExtra("VnchipNumber"); toreviewid = in.getStringExtra("toreviewid"); rsReviewType = in.getIntExtra("rsReviewType", 0); getPresenter().getDetail(vnchipNumber); } @Override protected VnDetailPresenter createPresenter() { return new VnDetailPresenter(); } @Override public void getDetailError(String msg) { showComplete(); toast(msg); finish(); } @Override public void getDetailSuccess(VnDetailBean data) { showComplete(); VnDetailBean.DataBean dataBean = data.getData(); //给页面赋值 setViewData(dataBean); // toast(data.getData().toString()); i("getDetailSuccess", data.getData().toString()); } @Override public void getSendMailError(String msg) { } @Override public void getSendMailSuccess(VnDetailBean data) { } @Override public void getmlistError(String msg) { toast(msg); } @Override public void getmlistSuccess(ModelListBean data) { //toast("huoquliebiaocehgngong "); final List data1 = data.getData(); List liststr = new ArrayList<>(); for (int i = 0; i < data1.size(); i++) { liststr.add(data1.get(i).getContent()); } new MenuDialog.Builder(this) .setCancel("取消") // 设置 null 表示不显示取消按钮 //.setAutoDismiss(false) // 设置点击按钮后不关闭对话框 .setList(liststr) .setListener(new MenuDialog.OnListener() { @Override public void onSelected(Dialog dialog, int position, String text) { // toast("位置:" + position + ",文本:" + text); getPresenter().getToReview(toreviewid, data1.get(position).getId(), text); } @Override public void onCancel(Dialog dialog) { //toast("取消了"); } }) .setGravity(Gravity.BOTTOM) .setAnimStyle(BaseDialog.AnimStyle.BOTTOM) .show(); } @Override public void getToReviewError(String msg) { toast(msg); } @Override public void getToReviewSuccess(VerificationCodeBean data) { toast("复核成功"); EventBus.getDefault().postSticky(new ReviewEvent(rsReviewType)); finish(); } private void setViewData(final VnDetailBean.DataBean dataBean) { vndetailTvVncode.setText("evvm Code " + dataBean.getCode()); vndetailTvVndate.setText("" + dataBean.getBeginDate()); vndetailTvFactoryName.setText("" + dataBean.getFactoryName()); vndetailTvGmpName.setText("" + dataBean.getGmpName()); vndetailTvHospitalName.setText("" + dataBean.getHospitalName()); vndetailTvDoctorName.setText("" + dataBean.getDoctorName()); vndetailTvDoctorTelephone.setText("" + dataBean.getDoctorTelephone()); if (!TextUtils.isEmpty(dataBean.getChatImageUrl())) { ImageLoader.loadImage(vndetailTvChatImage, dataBean.getChatImageUrl()); } SpannableString spanGmpPath = new SpannableString("点击查看"); spanGmpPath.setSpan(new ClickableSpan() { @Override public void onClick(View view) { //点击的响应事件 if (TextUtils.isEmpty(dataBean.getGmpPath())) { startActivity(WebActivity.class); } else { Intent in = new Intent(VnToreViewActivity.this, WebActivity.class); in.putExtra("WebViewUrl", "" + dataBean.getGmpPath() + ""); startActivity(in); } } }, 0, spanGmpPath.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //vndetailTvGmpPath.setText("这是一条测试文本"); vndetailTvGmpPath.setText(spanGmpPath); vndetailTvGmpPath.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件 SpannableString spanvndetailTvOthervn1 = new SpannableString("点击查询"); spanvndetailTvOthervn1.setSpan(new ClickableSpan() { @Override public void onClick(View view) { //点击的响应事件 if (TextUtils.isEmpty(dataBean.getGmpPath())) { startActivity(WebActivity.class); } else { Intent in = new Intent(VnToreViewActivity.this, WebActivity.class); in.putExtra("WebViewUrl", "" + dataBean.getSameBatchOtherColdChain() + ""); startActivity(in); } } }, 0, spanvndetailTvOthervn1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //vndetailTvGmpPath.setText("这是一条测试文本"); vndetailTvOthervn1.setText(spanvndetailTvOthervn1); vndetailTvOthervn1.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件 SpannableString spanvndetailTvOthervn2 = new SpannableString("点击查询"); spanvndetailTvOthervn2.setSpan(new ClickableSpan() { @Override public void onClick(View view) { //点击的响应事件 if (TextUtils.isEmpty(dataBean.getGmpPath())) { startActivity(WebActivity.class); } else { Intent in = new Intent(VnToreViewActivity.this, WebActivity.class); in.putExtra("WebViewUrl", "" + dataBean.getSameBatchOtherFlow() + ""); startActivity(in); } } }, 0, spanvndetailTvOthervn2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //vndetailTvGmpPath.setText("这是一条测试文本"); vndetailTvOthervn2.setText(spanvndetailTvOthervn2); vndetailTvOthervn2.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件 SpannableString spanvndetailTvOthervn3 = new SpannableString("点击查询"); spanvndetailTvOthervn3.setSpan(new ClickableSpan() { @Override public void onClick(View view) { //点击的响应事件 if (TextUtils.isEmpty(dataBean.getGmpPath())) { startActivity(WebActivity.class); } else { Intent in = new Intent(VnToreViewActivity.this, WebActivity.class); in.putExtra("WebViewUrl", "" + dataBean.getSameFactoryOtherVaccines() + ""); startActivity(in); } } }, 0, spanvndetailTvOthervn3.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //vndetailTvGmpPath.setText("这是一条测试文本"); vndetailTvOthervn3.setText(spanvndetailTvOthervn3); vndetailTvOthervn3.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件 } public static void i(String tag, String msg) { //信息太长,分段打印 //因为String的length是字符数量不是字节数量所以为了防止中文字符过多, // 把4*1024的MAX字节打印长度改为2001字符数 int max_str_length = 2001 - tag.length(); //大于4000时 while (msg.length() > max_str_length) { Log.i(tag, msg.substring(0, max_str_length)); msg = msg.substring(max_str_length); } //剩余部分 Log.i(tag, msg); } @OnClick(R.id.send_btn_report) public void onViewClicked() { getPresenter().getMessageModelList(1); } @Override public void onDown() { } @Override public void onUp() { } @Override public void oneClick() { //danji } private int doubleType = 0; @Override public void doubleClick() { //Toast.makeText(this, "双击", Toast.LENGTH_SHORT).show(); /* if (doubleType == 0) { doubleType = 1; AnimatorSet animatorSetsuofang = new AnimatorSet();//组合动画 ObjectAnimator scaleX = ObjectAnimator.ofFloat(tobigll, "scaleX", 1, 1.5f); ObjectAnimator scaleY = ObjectAnimator.ofFloat(tobigll, "scaleY", 1, 1.5f); animatorSetsuofang.setDuration(500); animatorSetsuofang.setInterpolator(new DecelerateInterpolator()); animatorSetsuofang.play(scaleX).with(scaleY);//两个动画同时开始 animatorSetsuofang.start(); } else if (doubleType == 1) { doubleType = 0; AnimatorSet animatorSetsuofang = new AnimatorSet();//组合动画 ObjectAnimator scaleX = ObjectAnimator.ofFloat(tobigll, "scaleX", 1.5f, 1f); ObjectAnimator scaleY = ObjectAnimator.ofFloat(tobigll, "scaleY", 1.5f, 1f); animatorSetsuofang.setDuration(500); animatorSetsuofang.setInterpolator(new DecelerateInterpolator()); animatorSetsuofang.play(scaleX).with(scaleY);//两个动画同时开始 animatorSetsuofang.start(); } */ } }