ff7e192c8a3cf56bcdfab03266c3427ad8fbb0c6.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. package eVVM.apk.ui.toreview;
  2. import android.app.Dialog;
  3. import android.content.Intent;
  4. import android.text.SpannableString;
  5. import android.text.Spanned;
  6. import android.text.TextUtils;
  7. import android.text.method.LinkMovementMethod;
  8. import android.text.style.ClickableSpan;
  9. import android.util.Log;
  10. import android.view.Gravity;
  11. import android.view.View;
  12. import android.widget.ImageView;
  13. import android.widget.LinearLayout;
  14. import android.widget.TextView;
  15. import com.hjq.base.BaseDialog;
  16. import com.hjq.dialog.MenuDialog;
  17. import com.hjq.image.ImageLoader;
  18. import org.greenrobot.eventbus.EventBus;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import butterknife.BindView;
  22. import butterknife.OnClick;
  23. import eVVM.apk.R;
  24. import eVVM.apk.helper.MyClickListener;
  25. import eVVM.apk.helper.SPUtils;
  26. import eVVM.apk.mvp.MvpActivity;
  27. import eVVM.apk.ui.bean.ModelListBean;
  28. import eVVM.apk.ui.bean.VerificationCodeBean;
  29. import eVVM.apk.ui.bean.VnDetailBean;
  30. import eVVM.apk.ui.event.ReviewEvent;
  31. import eVVM.apk.ui.login.LoginActivity;
  32. import eVVM.apk.ui.report.vndetail.VnDetailContract;
  33. import eVVM.apk.ui.report.vndetail.VnDetailPresenter;
  34. import eVVM.apk.ui.webview.WebActivity;
  35. public class VnToreViewActivity extends MvpActivity<VnDetailPresenter> implements VnDetailContract.View, MyClickListener.MyClickCallBack {
  36. @BindView(R.id.vndetail_tv_vncode)
  37. TextView vndetailTvVncode;
  38. @BindView(R.id.vndetail_tv_vndate)
  39. TextView vndetailTvVndate;
  40. @BindView(R.id.vndetail_tv_factoryName)
  41. TextView vndetailTvFactoryName;
  42. @BindView(R.id.vndetail_tv_gmpName)
  43. TextView vndetailTvGmpName;
  44. @BindView(R.id.vndetail_tv_gmpPath)
  45. TextView vndetailTvGmpPath;
  46. @BindView(R.id.vndetail_tv_hospitalName)
  47. TextView vndetailTvHospitalName;
  48. @BindView(R.id.vndetail_tv_doctorName)
  49. TextView vndetailTvDoctorName;
  50. @BindView(R.id.vndetail_tv_doctorTelephone)
  51. TextView vndetailTvDoctorTelephone;
  52. @BindView(R.id.vndetail_tv_chatImage)
  53. ImageView vndetailTvChatImage;
  54. @BindView(R.id.vndetail_tv_othervn1)
  55. TextView vndetailTvOthervn1;
  56. @BindView(R.id.vndetail_tv_othervn2)
  57. TextView vndetailTvOthervn2;
  58. @BindView(R.id.vndetail_tv_othervn3)
  59. TextView vndetailTvOthervn3;
  60. @BindView(R.id.vndetail_iv_tipsimg)
  61. ImageView vndetailIvTipsimg;
  62. @BindView(R.id.vndetail_tv_tips)
  63. TextView vndetailTvTips;
  64. @BindView(R.id.vndetail_tv_disclaimer)
  65. TextView vndetailTvDisclaimer;
  66. @BindView(R.id.tobigll)
  67. LinearLayout tobigll;
  68. private String toreviewid;
  69. private int rsReviewType;
  70. @Override
  71. protected int getLayoutId() {
  72. return R.layout.activity_vn_tore_view;
  73. }
  74. @Override
  75. protected int getTitleId() {
  76. return R.id.tb_vndetail_title;
  77. }
  78. @Override
  79. protected void initView() {
  80. if (SPUtils.get("USER_TOKEN", "").equals("")) {
  81. Intent in = new Intent(this, LoginActivity.class);
  82. startActivityFinish(in);
  83. }
  84. }
  85. @Override
  86. protected void initData() {
  87. Intent in = getIntent();
  88. showLoading();
  89. String vnchipNumber = in.getStringExtra("VnchipNumber");
  90. toreviewid = in.getStringExtra("toreviewid");
  91. rsReviewType = in.getIntExtra("rsReviewType", 0);
  92. getPresenter().getDetail(vnchipNumber);
  93. }
  94. @Override
  95. protected VnDetailPresenter createPresenter() {
  96. return new VnDetailPresenter();
  97. }
  98. @Override
  99. public void getDetailError(String msg) {
  100. showComplete();
  101. toast(msg);
  102. finish();
  103. }
  104. @Override
  105. public void getDetailSuccess(VnDetailBean data) {
  106. showComplete();
  107. VnDetailBean.DataBean dataBean = data.getData();
  108. //给页面赋值
  109. setViewData(dataBean);
  110. // toast(data.getData().toString());
  111. i("getDetailSuccess", data.getData().toString());
  112. }
  113. @Override
  114. public void getSendMailError(String msg) {
  115. }
  116. @Override
  117. public void getSendMailSuccess(VnDetailBean data) {
  118. }
  119. @Override
  120. public void getmlistError(String msg) {
  121. toast(msg);
  122. }
  123. @Override
  124. public void getmlistSuccess(ModelListBean data) {
  125. //toast("huoquliebiaocehgngong ");
  126. final List<ModelListBean.DataBean> data1 = data.getData();
  127. List<String> liststr = new ArrayList<>();
  128. for (int i = 0; i < data1.size(); i++) {
  129. liststr.add(data1.get(i).getContent());
  130. }
  131. new MenuDialog.Builder(this)
  132. .setCancel("取消") // 设置 null 表示不显示取消按钮
  133. //.setAutoDismiss(false) // 设置点击按钮后不关闭对话框
  134. .setList(liststr)
  135. .setListener(new MenuDialog.OnListener() {
  136. @Override
  137. public void onSelected(Dialog dialog, int position, String text) {
  138. // toast("位置:" + position + ",文本:" + text);
  139. getPresenter().getToReview(toreviewid, data1.get(position).getId(), text);
  140. }
  141. @Override
  142. public void onCancel(Dialog dialog) {
  143. //toast("取消了");
  144. }
  145. })
  146. .setGravity(Gravity.BOTTOM)
  147. .setAnimStyle(BaseDialog.AnimStyle.BOTTOM)
  148. .show();
  149. }
  150. @Override
  151. public void getToReviewError(String msg) {
  152. toast(msg);
  153. }
  154. @Override
  155. public void getToReviewSuccess(VerificationCodeBean data) {
  156. toast("复核成功");
  157. EventBus.getDefault().postSticky(new ReviewEvent(rsReviewType));
  158. finish();
  159. }
  160. private void setViewData(final VnDetailBean.DataBean dataBean) {
  161. vndetailTvVncode.setText("evvm Code " + dataBean.getCode());
  162. vndetailTvVndate.setText("" + dataBean.getBeginDate());
  163. vndetailTvFactoryName.setText("" + dataBean.getFactoryName());
  164. vndetailTvGmpName.setText("" + dataBean.getGmpName());
  165. vndetailTvHospitalName.setText("" + dataBean.getHospitalName());
  166. vndetailTvDoctorName.setText("" + dataBean.getDoctorName());
  167. vndetailTvDoctorTelephone.setText("" + dataBean.getDoctorTelephone());
  168. if (!TextUtils.isEmpty(dataBean.getChatImageUrl())) {
  169. ImageLoader.loadImage(vndetailTvChatImage, dataBean.getChatImageUrl());
  170. }
  171. SpannableString spanGmpPath = new SpannableString("点击查看");
  172. spanGmpPath.setSpan(new ClickableSpan() {
  173. @Override
  174. public void onClick(View view) {
  175. //点击的响应事件
  176. if (TextUtils.isEmpty(dataBean.getGmpPath())) {
  177. startActivity(WebActivity.class);
  178. } else {
  179. Intent in = new Intent(VnToreViewActivity.this, WebActivity.class);
  180. in.putExtra("WebViewUrl", "" + dataBean.getGmpPath() + "");
  181. startActivity(in);
  182. }
  183. }
  184. }, 0, spanGmpPath.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  185. //vndetailTvGmpPath.setText("这是一条测试文本");
  186. vndetailTvGmpPath.setText(spanGmpPath);
  187. vndetailTvGmpPath.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  188. SpannableString spanvndetailTvOthervn1 = new SpannableString("点击查询");
  189. spanvndetailTvOthervn1.setSpan(new ClickableSpan() {
  190. @Override
  191. public void onClick(View view) {
  192. //点击的响应事件
  193. if (TextUtils.isEmpty(dataBean.getGmpPath())) {
  194. startActivity(WebActivity.class);
  195. } else {
  196. Intent in = new Intent(VnToreViewActivity.this, WebActivity.class);
  197. in.putExtra("WebViewUrl", "" + dataBean.getSameBatchOtherColdChain() + "");
  198. startActivity(in);
  199. }
  200. }
  201. }, 0, spanvndetailTvOthervn1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  202. //vndetailTvGmpPath.setText("这是一条测试文本");
  203. vndetailTvOthervn1.setText(spanvndetailTvOthervn1);
  204. vndetailTvOthervn1.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  205. SpannableString spanvndetailTvOthervn2 = new SpannableString("点击查询");
  206. spanvndetailTvOthervn2.setSpan(new ClickableSpan() {
  207. @Override
  208. public void onClick(View view) {
  209. //点击的响应事件
  210. if (TextUtils.isEmpty(dataBean.getGmpPath())) {
  211. startActivity(WebActivity.class);
  212. } else {
  213. Intent in = new Intent(VnToreViewActivity.this, WebActivity.class);
  214. in.putExtra("WebViewUrl", "" + dataBean.getSameBatchOtherFlow() + "");
  215. startActivity(in);
  216. }
  217. }
  218. }, 0, spanvndetailTvOthervn2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  219. //vndetailTvGmpPath.setText("这是一条测试文本");
  220. vndetailTvOthervn2.setText(spanvndetailTvOthervn2);
  221. vndetailTvOthervn2.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  222. SpannableString spanvndetailTvOthervn3 = new SpannableString("点击查询");
  223. spanvndetailTvOthervn3.setSpan(new ClickableSpan() {
  224. @Override
  225. public void onClick(View view) {
  226. //点击的响应事件
  227. if (TextUtils.isEmpty(dataBean.getGmpPath())) {
  228. startActivity(WebActivity.class);
  229. } else {
  230. Intent in = new Intent(VnToreViewActivity.this, WebActivity.class);
  231. in.putExtra("WebViewUrl", "" + dataBean.getSameFactoryOtherVaccines() + "");
  232. startActivity(in);
  233. }
  234. }
  235. }, 0, spanvndetailTvOthervn3.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  236. //vndetailTvGmpPath.setText("这是一条测试文本");
  237. vndetailTvOthervn3.setText(spanvndetailTvOthervn3);
  238. vndetailTvOthervn3.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  239. }
  240. public static void i(String tag, String msg) { //信息太长,分段打印
  241. //因为String的length是字符数量不是字节数量所以为了防止中文字符过多,
  242. // 把4*1024的MAX字节打印长度改为2001字符数
  243. int max_str_length = 2001 - tag.length();
  244. //大于4000时
  245. while (msg.length() > max_str_length) {
  246. Log.i(tag, msg.substring(0, max_str_length));
  247. msg = msg.substring(max_str_length);
  248. }
  249. //剩余部分
  250. Log.i(tag, msg);
  251. }
  252. @OnClick(R.id.send_btn_report)
  253. public void onViewClicked() {
  254. getPresenter().getMessageModelList(1);
  255. }
  256. @Override
  257. public void onDown() {
  258. }
  259. @Override
  260. public void onUp() {
  261. }
  262. @Override
  263. public void oneClick() {
  264. //danji
  265. }
  266. private int doubleType = 0;
  267. @Override
  268. public void doubleClick() {
  269. //Toast.makeText(this, "双击", Toast.LENGTH_SHORT).show();
  270. /*
  271. if (doubleType == 0) {
  272. doubleType = 1;
  273. AnimatorSet animatorSetsuofang = new AnimatorSet();//组合动画
  274. ObjectAnimator scaleX = ObjectAnimator.ofFloat(tobigll, "scaleX", 1, 1.5f);
  275. ObjectAnimator scaleY = ObjectAnimator.ofFloat(tobigll, "scaleY", 1, 1.5f);
  276. animatorSetsuofang.setDuration(500);
  277. animatorSetsuofang.setInterpolator(new DecelerateInterpolator());
  278. animatorSetsuofang.play(scaleX).with(scaleY);//两个动画同时开始
  279. animatorSetsuofang.start();
  280. } else if (doubleType == 1) {
  281. doubleType = 0;
  282. AnimatorSet animatorSetsuofang = new AnimatorSet();//组合动画
  283. ObjectAnimator scaleX = ObjectAnimator.ofFloat(tobigll, "scaleX", 1.5f, 1f);
  284. ObjectAnimator scaleY = ObjectAnimator.ofFloat(tobigll, "scaleY", 1.5f, 1f);
  285. animatorSetsuofang.setDuration(500);
  286. animatorSetsuofang.setInterpolator(new DecelerateInterpolator());
  287. animatorSetsuofang.play(scaleX).with(scaleY);//两个动画同时开始
  288. animatorSetsuofang.start();
  289. }
  290. */
  291. }
  292. }