From 4f7f99c6ea914bcd38de78bd8371be566026b905 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期三, 26 二月 2025 15:54:14 +0800 Subject: [PATCH] -为按钮和列表项添加波纹效果,以获得更好的视觉反馈 -改进MapFragment中的底部布局动画 -在MapFragment中添加设备状态和RTU地址显示 -更新BaseListResult以支持泛型类型 -为设备数据添加IntakeListResult和IntakeResult -通过数据库支持增强标记位置更新功能 -添加电话拨号意图以分隔标记详细信息 -通过过期检查改进磁贴缓存 -添加问题报告的确认对话框 -更新登录活动以限制用户名长度 -为波纹效果和UI元素添加新颜色 -重构XML布局以使用新的波纹图 -改进MapFragment中的错误处理和用户反馈 --- app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java | 164 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 111 insertions(+), 53 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 3eec0f5..ff99220 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,54 +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,null)); - binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(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(OrderDetailActivity.this.getResources().getDrawable(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(OrderDetailActivity.this.getResources().getDrawable(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(OrderDetailActivity.this.getResources().getDrawable(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()); + 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()); } - } else if (t.DATA_NULL.equals(t.getCode())) { - //宸ュ崟宸茶鍒犻櫎 - ToastUtil.showToast(OrderDetailActivity.this, "璁㈠崟宸茶鍒犻櫎锛�"); - setResult(OrderFragment.RESULT_REFRESH); - OrderDetailActivity.this.finish(); + 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.setBackground(getResources().getDrawable(R.drawable.bottom_butten_blue_ripple, 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.setBackground(getResources().getDrawable(R.drawable.bottom_butten_red_ripple, 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.setBackground(getResources().getDrawable(R.drawable.bottom_butten_blue_ripple, null)); + 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 @@ -176,6 +197,12 @@ super.onCloose(); } + @Override + public void onError(Throwable e) { + super.onError(e); + ToastUtil.showToastLong(OrderDetailActivity.this, "鑾峰彇璇︽儏澶辫触锛岃绋嶅悗鍐嶈瘯"); + OrderDetailActivity.this.finish(); + } }); } @@ -195,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