From ec6193939600ca7930193b1d5942b1700baf9e06 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 21 二月 2025 09:20:15 +0800
Subject: [PATCH] 1.巡检记录列表页的实现 2.巡检记录地图展示路径的详情页。 3.处理巡检记录详情页因打开同一个网址导致的webView不显示问题。 4.实现地图页搜索后的地图跳转功能。 5.巡检记录详情页数据加载的优化,默认加载本地数据,当本地没有数据时从服务端获取数据。
---
app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java | 160 +++++++++++++++++++++++++++++++++++++----------------
1 files changed, 112 insertions(+), 48 deletions(-)
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
index 9bcd497..fe15c6c 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
@@ -1,5 +1,7 @@
package com.dayu.pipirrapp.activity;
+import android.app.NotificationManager;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
@@ -9,6 +11,7 @@
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
+import androidx.core.content.res.ResourcesCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.SimpleItemAnimator;
@@ -16,19 +19,24 @@
import com.dayu.pipirrapp.MyApplication;
import com.dayu.pipirrapp.R;
import com.dayu.pipirrapp.adapter.ImageAdapter;
+import com.dayu.pipirrapp.bean.ImageBean;
import com.dayu.pipirrapp.bean.net.DealDetailResult;
import com.dayu.pipirrapp.bean.net.ImageResult;
import com.dayu.pipirrapp.bean.net.OrderDetailResult;
+import com.dayu.pipirrapp.bean.net.UplodFileState;
import com.dayu.pipirrapp.databinding.ActivityOrderDetailBinding;
import com.dayu.pipirrapp.fragment.OrderFragment;
import com.dayu.pipirrapp.net.ApiManager;
import com.dayu.pipirrapp.net.BaseResponse;
import com.dayu.pipirrapp.net.Constants;
import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
+import com.dayu.pipirrapp.tool.BigimageUtils;
import com.dayu.pipirrapp.tool.FullyGridLayoutManager;
+import com.dayu.pipirrapp.utils.CommonKeyName;
import com.dayu.pipirrapp.utils.ToastUtil;
import com.dayu.pipirrapp.view.ConfirmDialog;
import com.dayu.pipirrapp.view.TitleBar;
+import com.jeremyliao.liveeventbus.LiveEventBus;
import com.luck.picture.lib.decoration.GridSpacingItemDecoration;
import com.luck.picture.lib.utils.DensityUtil;
@@ -37,7 +45,8 @@
import java.util.List;
import java.util.Map;
-import cc.shinichi.library.ImagePreview;
+import cc.shinichi.library.bean.ImageInfo;
+import cc.shinichi.library.bean.Type;
/**
* OrderDetailActivity -
@@ -52,9 +61,9 @@
String workOrderId;
String proResultId;
ImageAdapter mAdapter;
- List<ImageResult> images = new ArrayList<>();
+ List<ImageBean> images = new ArrayList<>();
RecyclerView mRecyclerView;
- final List<String> imageInfoList = new ArrayList<>();
+ List<ImageInfo> imageInfoList = new ArrayList<>();
int ProResultStateId;
private ActivityResultLauncher<Intent> activityResultLauncher =
registerForActivityResult(
@@ -71,13 +80,22 @@
super.onCreate(savedInstanceState);
binding = ActivityOrderDetailBinding.inflate(LayoutInflater.from(this));
setContentView(binding.getRoot());
-
new TitleBar(this).setTitleText("宸ュ崟璇︽儏").setLeftIco().setLeftIcoListening(v -> OrderDetailActivity.this.finish());
initView();
+ getData(this.getIntent());
}
- void initView() {
- workOrderId = this.getIntent().getStringExtra("workOrderId");
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ getData(intent);
+ }
+
+ private void getData(Intent intent) {
+
+ workOrderId = intent.getStringExtra("workOrderId");
+ NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
+ notificationManager.cancel(workOrderId.hashCode());
if (this.getIntent().hasExtra("proResultId")) {
binding.orderDealLL.setVisibility(View.VISIBLE);
proResultId = this.getIntent().getStringExtra("proResultId");
@@ -91,10 +109,11 @@
this.finish();
ToastUtil.showToastLong(this, "褰撳墠workOrderId涓虹┖");
}
+ }
+ void initView() {
binding.setItemclidk(OrderDetailActivity.this);
-
mRecyclerView = binding.recyclerView;
FullyGridLayoutManager manager = new FullyGridLayoutManager(this, 4, GridLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(manager);
@@ -105,7 +124,7 @@
// 娣诲姞闂磋窛瑁呴グ锛岀‘淇濆浘鐗囨湁鍚堥�傜殑闂撮殧
mRecyclerView.addItemDecoration(new GridSpacingItemDecoration(4, DensityUtil.dip2px(this, 8), false));
mAdapter = new ImageAdapter(this, images, (v, position) -> {
- ImagePreview.getInstance().setContext(OrderDetailActivity.this).setImageList(imageInfoList).start();
+ BigimageUtils.showImages(this, position, imageInfoList);
});
mRecyclerView.setAdapter(mAdapter);
@@ -121,48 +140,56 @@
@Override
public void onNext(BaseResponse<OrderDetailResult> t) {
if (t.isSuccess()) {
- if (t.isSuccess()) {
- if (t.getContent() != null) {
- OrderDetailResult orderDetailResult = t.getContent();
- binding.setData(orderDetailResult);
- if (!TextUtils.isEmpty(t.getContent().getProResultId()) && TextUtils.isEmpty(proResultId)) {
- getHandleData(orderDetailResult.getProResultId());
- }
- ProResultStateId = orderDetailResult.getProResultStateId();
- switch (ProResultStateId) {
- case 0://鏈笂鎶�
- binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.black));
- binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_no_bg));
- binding.dealButton.setBackgroundColor(getResources().getColor(R.color.title_color));
- binding.dealButton.setVisibility(View.VISIBLE);
- break;
- case 1://宸蹭笂鎶�
- binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white));
- binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_wait_bg));
- binding.dealButton.setBackgroundColor(getResources().getColor(R.color.delete_color));
- binding.dealButton.setVisibility(View.VISIBLE);
- binding.dealButton.setText("鍒犻櫎澶勭悊缁撴灉");
- break;
- case 2://宸插畬鎴�
- binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white));
- binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_finish_bg));
- binding.dealButton.setVisibility(View.GONE);
- break;
- case 3://琚┏鍥�
- binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white));
- binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_reject_bg));
- binding.dealButton.setBackgroundColor(getResources().getColor(R.color.title_color));
- binding.dealButton.setVisibility(View.VISIBLE);
- break;
-
- }
- } else {
- ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
+ LiveEventBus.get(CommonKeyName.RedLotRefresh).post(workOrderId);
+ if (t.getContent() != null) {
+ OrderDetailResult orderDetailResult = t.getContent();
+ binding.setData(orderDetailResult);
+ if (!TextUtils.isEmpty(t.getContent().getProResultId()) && TextUtils.isEmpty(proResultId)) {
+ getHandleData(orderDetailResult.getProResultId());
}
+ ProResultStateId = orderDetailResult.getProResultStateId();
+ switch (ProResultStateId) {
+ case 0://鏈笂鎶�
+ binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.black, null));
+ binding.stateText.setBackground(ResourcesCompat.getDrawable(OrderDetailActivity.this.getResources(), R.drawable.order_state_no_bg, null));
+ binding.dealButton.setBackgroundColor(getResources().getColor(R.color.title_color, null));
+ binding.dealButton.setVisibility(View.VISIBLE);
+ break;
+ case 1://宸蹭笂鎶�
+ binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white, null));
+ binding.stateText.setBackground(ResourcesCompat.getDrawable(OrderDetailActivity.this.getResources(), R.drawable.order_state_wait_bg, null));
+ binding.dealButton.setBackgroundColor(getResources().getColor(R.color.delete_color, null));
+ binding.dealButton.setVisibility(View.VISIBLE);
+ binding.dealButton.setText("鍒犻櫎澶勭悊缁撴灉");
+ break;
+ case 2://宸插畬鎴�
+ binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white, null));
+ binding.stateText.setBackground(ResourcesCompat.getDrawable(OrderDetailActivity.this.getResources(), R.drawable.order_state_finish_bg, null));
+ binding.dealButton.setVisibility(View.GONE);
+ break;
+ case 3://琚┏鍥�
+ binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white, null));
+ binding.stateText.setBackground(ResourcesCompat.getDrawable(OrderDetailActivity.this.getResources(), R.drawable.order_state_reject_bg, null));
+ binding.dealButton.setBackgroundColor(getResources().getColor(R.color.title_color));
+ binding.dealButton.setVisibility(View.VISIBLE);
+ break;
+
+ }
+ } else {
+ ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
}
+ } else if (t.DATA_NULL.equals(t.getCode())) {
+ //宸ュ崟宸茶鍒犻櫎
+ ToastUtil.showToast(OrderDetailActivity.this, "璁㈠崟宸茶鍒犻櫎锛�");
+ setResult(OrderFragment.RESULT_REFRESH);
+ OrderDetailActivity.this.finish();
+
} else {
+
ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
+ OrderDetailActivity.this.finish();
}
+
}
@Override
@@ -170,6 +197,12 @@
super.onCloose();
}
+ @Override
+ public void onError(Throwable e) {
+ super.onError(e);
+ ToastUtil.showToastLong(OrderDetailActivity.this, "鑾峰彇璇︽儏澶辫触锛岃绋嶅悗鍐嶈瘯");
+ OrderDetailActivity.this.finish();
+ }
});
}
@@ -189,9 +222,40 @@
if (t.getContent() != null) {
binding.orderDealLL.setVisibility(View.VISIBLE);
binding.setDealData(t.getContent());
- images.addAll(t.getContent().getImages());
- for (ImageResult imageResult : images) {
- imageInfoList.add(imageResult.getWebPath());
+
+ if (!t.getContent().getImages().isEmpty()){
+ for (ImageResult imageResult:t.getContent().getImages()){
+ ImageBean imageBean = new ImageBean();
+ imageBean.setId(imageResult.getId());
+ imageBean.setWebPath(imageResult.getWebPathZip());
+ imageBean.setType(UplodFileState.IMG_TYPE);
+ images.add(imageBean);
+ ImageInfo info = new ImageInfo();
+ info.setOriginUrl(imageResult.getWebPath());
+ info.setType(Type.IMAGE);
+ if (imageResult.getWebPathZip()!=null){
+ info.setThumbnailUrl(imageResult.getWebPathZip());
+ }
+
+ imageInfoList.add(info);
+ }
+ }
+ if (!t.getContent().getVideos().isEmpty()){
+ for (ImageResult imageResult:t.getContent().getVideos()){
+ ImageBean imageBean = new ImageBean();
+ imageBean.setId(imageResult.getId());
+ imageBean.setWebPath(imageResult.getWebPathZip());
+ imageBean.setType(UplodFileState.VIDEO_TYPE);
+ images.add(imageBean);
+ ImageInfo info = new ImageInfo();
+ info.setOriginUrl(imageResult.getWebPath());
+ info.setThumbnailUrl(imageResult.getWebPath());
+ if (imageResult.getWebPathZip()!=null){
+ info.setThumbnailUrl(imageResult.getWebPathZip());
+ }
+ info.setType(Type.VIDEO);
+ imageInfoList.add(info);
+ }
}
mAdapter.notifyDataSetChanged();
} else {
--
Gitblit v1.8.0