From 5f4c3669ddd8fe27449b04a4b9db12b2ca4b3688 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期二, 14 一月 2025 16:27:29 +0800 Subject: [PATCH] 1.文件上传和显示添加缩略图功能。 --- app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java | 122 +++++++++++++++++++++++++++++++--------- 1 files changed, 94 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java index 377837d..036ca77 100644 --- a/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java +++ b/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java @@ -1,8 +1,18 @@ package com.dayu.pipirrapp.fragment; +import static androidx.core.content.ContextCompat.getSystemService; + +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; import android.content.Intent; import android.graphics.Typeface; +import android.os.Build; import android.os.Bundle; +import android.os.VibrationEffect; +import android.os.Vibrator; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -12,12 +22,16 @@ import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.app.NotificationCompat; +import androidx.lifecycle.Observer; import androidx.recyclerview.widget.LinearLayoutManager; import com.dayu.pipirrapp.MyApplication; import com.dayu.pipirrapp.R; +import com.dayu.pipirrapp.activity.MainActivity; import com.dayu.pipirrapp.activity.OrderDetailActivity; import com.dayu.pipirrapp.adapter.OrderAdapter; +import com.dayu.pipirrapp.bean.net.OrderDetailResult; import com.dayu.pipirrapp.bean.net.OrderListResult; import com.dayu.pipirrapp.databinding.FragmentOrderBinding; import com.dayu.pipirrapp.net.ApiManager; @@ -25,6 +39,7 @@ import com.dayu.pipirrapp.net.Constants; import com.dayu.pipirrapp.net.subscribers.SubscriberListener; import com.dayu.pipirrapp.utils.CommonKeyName; +import com.dayu.pipirrapp.utils.MyLog; import com.dayu.pipirrapp.utils.ToastUtil; import com.jeremyliao.liveeventbus.LiveEventBus; import com.scwang.smart.refresh.footer.ClassicsFooter; @@ -32,6 +47,7 @@ import com.scwang.smart.refresh.layout.api.RefreshLayout; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -54,9 +70,14 @@ int page = 1; int pageSize = 10; int state = 1; - List<OrderListResult.Data> recordsListDone = new ArrayList<>(); - List<OrderListResult.Data> recordsList = new ArrayList<>(); + List<OrderDetailResult> recordsListDone = new ArrayList<>(); + List<OrderDetailResult> recordsList = new ArrayList<>(); RefreshLayout myRefreshLayout; + //鏈�鍚庡埛鏂扮殑鏃堕棿 + long lastRefreshDate; + //鏄剧ず绾㈢偣鐨勬椂闂� + long showRedlotDate; + private ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult( @@ -93,17 +114,22 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { binding = FragmentOrderBinding.inflate(inflater, container, false); initView(); - //鑾峰彇瀹氫綅鏈嶅姟浼犺繃鏉ョ殑鍧愭爣鐐� - LiveEventBus.get(CommonKeyName.MQTTData).observeForever(o -> { + //mq浼犳潵鐨勬秷鎭� + LiveEventBus.get(CommonKeyName.MQTTData).observeForever(new Observer<Object>() { + @Override + public void onChanged(Object o) { + showRedlotDate = new Date().getTime(); +// binding.redDotImg.setVisibility(View.VISIBLE); + getMarkerData((String) o); + } }); - return binding.getRoot(); } void initView() { //鏈畬鎴� - binding.manageStateProgress.setOnClickListener(v -> { + binding.manageStateProgressRL.setOnClickListener(v -> { chooseStateView(true); state = STATE_UNDONE;//1 鏈紑濮� 2 宸插畬鎴� @@ -120,6 +146,12 @@ myRefreshLayout.setOnRefreshListener(refreshlayout -> { // refreshlayout.finishRefresh(2000/*,false*/);//浼犲叆false琛ㄧず鍒锋柊澶辫触 + lastRefreshDate = new Date().getTime(); + if (lastRefreshDate > showRedlotDate) { + //娑堥櫎绾㈢偣 + LiveEventBus.get(CommonKeyName.RedLotRefresh).post(true); +// binding.redDotImg.setVisibility(View.GONE); + } recordsList.clear(); page = 0; getMarkerData(refreshlayout, true, STATE_UNDONE); @@ -135,11 +167,10 @@ binding.recyclerView.setAdapter(mAdapter); getMarkerData(myRefreshLayout, true, STATE_UNDONE); //宸插畬鎴� - RefreshLayout myRefreshLayoutDone = (RefreshLayout) binding.refreshLayoutDone; + RefreshLayout myRefreshLayoutDone = binding.refreshLayoutDone; myRefreshLayoutDone.setRefreshHeader(new ClassicsHeader(this.getContext())); myRefreshLayoutDone.setRefreshFooter(new ClassicsFooter(this.getContext())); myRefreshLayoutDone.setOnRefreshListener(refreshlayout -> { -// refreshlayout.finishRefresh(2000/*,false*/);//浼犲叆false琛ㄧず鍒锋柊澶辫触 recordsListDone.clear(); page = 0; getMarkerData(refreshlayout, true, STATE_DONE); @@ -157,8 +188,20 @@ @Override - public void onStart() { - super.onStart(); + public void onResume() { + super.onResume(); + MyLog.d("OrderFragment>>onResume"); +// if (showRedlotDate > lastRefreshDate) { +// binding.redDotImg.setVisibility(View.VISIBLE); +// } else { +// binding.redDotImg.setVisibility(View.GONE); +// } + } + + @Override + public void onPause() { + super.onPause(); + MyLog.d("OrderFragment>>onPause"); } /** @@ -184,19 +227,17 @@ @Override public void onNext(BaseResponse<OrderListResult> t) { if (t.isSuccess()) { - if (t.isSuccess()) { - if (t.getContent().getObj() != null && t.getContent().getObj().size() > 0) { - if (state == STATE_UNDONE) { - recordsList.addAll(t.getContent().getObj()); - } else { - recordsListDone.addAll(t.getContent().getObj()); - } - if (t.getContent().getPageTotal() == page) { - refreshlayout.finishLoadMoreWithNoMoreData(); - } + if (t.getContent().getObj() != null && t.getContent().getObj().size() > 0) { + if (state == STATE_UNDONE) { + recordsList.addAll(t.getContent().getObj()); } else { + recordsListDone.addAll(t.getContent().getObj()); + } + if (t.getContent().getPageTotal() == page) { refreshlayout.finishLoadMoreWithNoMoreData(); } + } else { + refreshlayout.finishLoadMoreWithNoMoreData(); } } else { ToastUtil.showToast(OrderFragment.this.getContext(), t.getMsg()); @@ -235,20 +276,23 @@ void chooseStateView(boolean state) { if (state) { - binding.manageStateProgress.setTextColor(getResources().getColor(R.color.title_color,null)); - binding.manageStateProgress.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit,null)); + binding.manageStateProgress.setTextColor(getResources().getColor(R.color.title_color, null)); + binding.manageStateProgress.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit, null)); + binding.manageStateProgressRL.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit, null)); binding.manageStateProgress.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); - binding.manageStateFinish.setTextColor(getResources().getColor(R.color.black,null)); - binding.manageStateFinish.setBackground(getResources().getDrawable(R.color.title_choose_bg,null)); + binding.manageStateFinish.setTextColor(getResources().getColor(R.color.black, null)); + binding.manageStateFinish.setBackground(getResources().getDrawable(R.color.title_choose_bg, null)); binding.manageStateFinish.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); binding.refreshLayout.setVisibility(View.VISIBLE); binding.refreshLayoutDone.setVisibility(View.GONE); + } else { - binding.manageStateFinish.setTextColor(getResources().getColor(R.color.title_color,null)); - binding.manageStateFinish.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit,null)); + binding.manageStateFinish.setTextColor(getResources().getColor(R.color.title_color, null)); + binding.manageStateFinish.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit, null)); binding.manageStateFinish.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); - binding.manageStateProgress.setTextColor(getResources().getColor(R.color.black,null)); - binding.manageStateProgress.setBackground(getResources().getDrawable(R.color.title_choose_bg,null)); + binding.manageStateProgress.setTextColor(getResources().getColor(R.color.black, null)); + binding.manageStateProgress.setBackground(getResources().getDrawable(R.color.title_choose_bg, null)); + binding.manageStateProgressRL.setBackground(getResources().getDrawable(R.color.title_choose_bg, null)); binding.manageStateProgress.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); binding.refreshLayout.setVisibility(View.GONE); binding.refreshLayoutDone.setVisibility(View.VISIBLE); @@ -256,4 +300,26 @@ } + /** + * 鑾峰彇宸ュ崟璇︽儏 + */ + private void getMarkerData(String workOrderId) { + Map<String, Object> params = new HashMap<>(); + params.put("workOrderId", workOrderId); + ApiManager.getInstance().requestGetHideLoading(this.getContext(), Constants.BASE_URL + "/app/workOrder/getOneWorkOrder", OrderDetailResult.class, params, new SubscriberListener<BaseResponse<OrderDetailResult>>() { + @Override + public void onNext(BaseResponse<OrderDetailResult> t) { + if (t.isSuccess()) { + if (MainActivity.workerIddata != null) { + if (!MainActivity.workerIddata.containsKey(workOrderId)) { + LiveEventBus.get(CommonKeyName.CreateNotification).post(t.getContent()); + recordsList.add(0, t.getContent()); + mAdapter.notifyItemInserted(0); + } + } + } + } + }); + } + } -- Gitblit v1.8.0