From 9c2908d8a110eaa28ec63a877291aeea61ee4e60 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 03 十二月 2024 09:38:24 +0800
Subject: [PATCH] 优化自定义二次确认Dialog回调

---
 app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java |  303 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 222 insertions(+), 81 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 9f0d1b5..c0efb85 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java
@@ -1,5 +1,7 @@
 package com.dayu.pipirrapp.fragment;
 
+import android.content.Intent;
+import android.graphics.Typeface;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -8,23 +10,30 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.lifecycle.Observer;
+import androidx.recyclerview.widget.LinearLayoutManager;
 
-import com.dayu.pipirrapp.bean.db.LatLonBean;
-import com.dayu.pipirrapp.bean.net.WeatherResponse;
-import com.dayu.pipirrapp.databinding.FragmentMainBinding;
+import com.dayu.pipirrapp.R;
+import com.dayu.pipirrapp.activity.OrderDetailActivity;
+import com.dayu.pipirrapp.adapter.OrderAdapter;
+import com.dayu.pipirrapp.bean.net.OrderListResult;
+import com.dayu.pipirrapp.databinding.FragmentOrderBinding;
 import com.dayu.pipirrapp.net.ApiManager;
-import com.dayu.pipirrapp.utils.ImageUtils;
-import com.dayu.pipirrapp.utils.MyJsonParser;
-import com.dayu.pipirrapp.utils.SharedPreferencesHelper;
-import com.dayu.pipirrapp.view.TitleBar;
+import com.dayu.pipirrapp.net.BaseResponse;
+import com.dayu.pipirrapp.net.Constants;
+import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
+import com.dayu.pipirrapp.utils.CommonKeyName;
+import com.dayu.pipirrapp.utils.ToastUtil;
 import com.jeremyliao.liveeventbus.LiveEventBus;
-import com.tencent.bugly.crashreport.CrashReport;
+import com.scwang.smart.refresh.footer.ClassicsFooter;
+import com.scwang.smart.refresh.header.ClassicsHeader;
+import com.scwang.smart.refresh.layout.api.RefreshLayout;
+import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
 
-import java.util.Calendar;
-
-import retrofit2.Call;
-import retrofit2.Callback;
-import retrofit2.Response;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * author: zuo
@@ -34,89 +43,221 @@
  */
 public class OrderFragment extends BaseFragment {
 
-    FragmentMainBinding binding;
-    WeatherResponse weatherResponse;
-    //鏀跺埌瀹氫綅骞挎挱鍚庤幏鍙栧ぉ姘斾俊鎭�
-    Observer<LatLonBean> myObserver = new Observer<LatLonBean>() {
-        @Override
-        public void onChanged(LatLonBean latLonBean) {
 
-            String jsonStr = SharedPreferencesHelper.getInstance(OrderFragment.this.getActivity()).get("WeatherResponse", "");
-            weatherResponse = MyJsonParser.getBeanFromJson(jsonStr, WeatherResponse.class);
-            if (weatherResponse == null) {
-                weatherResponse = new WeatherResponse();
-            }
-            // 鑾峰彇褰撳墠鏃堕棿
-            Calendar calendar = Calendar.getInstance();
-            // 鑾峰彇褰撳墠骞存湀鏃�
-            int year = calendar.get(Calendar.YEAR);
-            int month = calendar.get(Calendar.MONTH) + 1; // 娉ㄦ剰鏈堜唤鏄粠0寮�濮嬭鏁扮殑锛屾墍浠ヨ鍔�1
-            int day = calendar.get(Calendar.DAY_OF_MONTH);
-            String date = year + "骞�" + month + "鏈�" + day + "鏃�";
-            if (weatherResponse == null || !date.equals(weatherResponse.getDate())) {
-                weatherResponse.setDate(date);
-                ApiManager.getInstance().requestWeather(latLonBean.getLatitude() + ":" + latLonBean.getLongitude(), new Callback<WeatherResponse>() {
-                    @Override
-                    public void onResponse(Call<WeatherResponse> call, Response<WeatherResponse> response) {
+    private final int STATE_DONE = 2;
+    private final int STATE_UNDONE = 1;
 
-                        if (response.isSuccessful()) {
-                            weatherResponse.setResults(response.body().getResults());
-                            SharedPreferencesHelper.getInstance(OrderFragment.this.getActivity()).put("WeatherResponse", weatherResponse);
-                            setWeatherData(weatherResponse);
-                        }
-                    }
-
-                    @Override
-                    public void onFailure(Call<WeatherResponse> call, Throwable t) {
-
-                    }
-                });
-            } else {
-                setWeatherData(weatherResponse);
-            }
-            LiveEventBus.get("location", LatLonBean.class).removeObserver(myObserver);
-        }
-    };
-
+    FragmentOrderBinding binding;
+    OrderAdapter mAdapter;
+    int page = 1;
+    int pageSize = 10;
+    int state = 1;
+    List<OrderListResult.Data> recordsListDone = new ArrayList<>();
+    List<OrderListResult.Data> recordsList = new ArrayList<>();
 
     /**
      * 璁剧疆澶╂皵鐩稿叧淇℃伅
      *
-     * @param data
+     * @param
      */
-    private void setWeatherData(WeatherResponse data) {
-        try {
-            if (data.getResults() != null) {
-                binding.cityName.setText(data.getResults()[0].getLocation().getName());
-                binding.time.setText(data.getDate());
-                int weatherImg = ImageUtils.getWeatherDrawable(data.getResults()[0].getDaily()[0].getCode_day());
-                if (weatherImg != 0) {
-                    binding.weatherImg.setImageDrawable(getResources().getDrawable(weatherImg));
-                }
-                binding.weatherName.setText(data.getResults()[0].getDaily()[0].getText_day());
-                binding.weatherTemperature.setText(data.getResults()[0].getDaily()[0].getLow() + "掳C 锝� " + data.getResults()[0].getDaily()[0].getHigh() + "掳C");
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            CrashReport.postCatchedException(e);
-        }
-    }
-
-
+//    private void setWeatherData(WeatherResponse data) {
+//        try {
+//            if (data.getResults() != null) {
+//                binding.cityName.setText(data.getResults()[0].getLocation().getName());
+//                binding.time.setText(data.getDate());
+//                int weatherImg = ImageUtils.getWeatherDrawable(data.getResults()[0].getDaily()[0].getCode_day());
+//                if (weatherImg != 0) {
+//                    binding.weatherImg.setImageDrawable(getResources().getDrawable(weatherImg));
+//                }
+//                binding.weatherName.setText(data.getResults()[0].getDaily()[0].getText_day());
+//                binding.weatherTemperature.setText(data.getResults()[0].getDaily()[0].getLow() + "掳C 锝� " + data.getResults()[0].getDaily()[0].getHigh() + "掳C");
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//            CrashReport.postCatchedException(e);
+//        }
+//    }
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        binding = FragmentMainBinding.inflate(inflater, container, false);
-        //鑾峰彇鍒扮粡绾害鍚庤幏鍙栧ぉ姘斾俊鎭�
-        LiveEventBus
-                .get("location", LatLonBean.class)
-                .observeForever(myObserver);
+        binding = FragmentOrderBinding.inflate(inflater, container, false);
+        initView();
+        //鑾峰彇瀹氫綅鏈嶅姟浼犺繃鏉ョ殑鍧愭爣鐐�
+        LiveEventBus.get(CommonKeyName.MQTTData).observeForever(new Observer<Object>() {
+            @Override
+            public void onChanged(Object o) {
+
+            }
+        });
+
 
         return binding.getRoot();
     }
 
+
+    void initView() {
+        //鏈畬鎴�
+        binding.manageStateProgress.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                chooseStateView(true);
+                state = STATE_UNDONE;//1 鏈紑濮� 2 宸插畬鎴�
+
+            }
+        });
+        //宸插畬鎴�
+        binding.manageStateFinish.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                chooseStateView(false);
+                state = STATE_DONE;//1 鏈紑濮� 2 宸插畬鎴�
+            }
+        });
+        //鏈畬鎴�
+        RefreshLayout myRefreshLayout = (RefreshLayout) binding.refreshLayout;
+        myRefreshLayout.setRefreshHeader(new ClassicsHeader(this.getContext()));
+        myRefreshLayout.setRefreshFooter(new ClassicsFooter(this.getContext()));
+
+        myRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
+            @Override
+            public void onRefresh(RefreshLayout refreshlayout) {
+//                refreshlayout.finishRefresh(2000/*,false*/);//浼犲叆false琛ㄧず鍒锋柊澶辫触
+                recordsList.clear();
+                page = 0;
+                getMarkerData(refreshlayout, true, STATE_UNDONE);
+            }
+        });
+        myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+            @Override
+            public void onLoadMore(RefreshLayout refreshlayout) {
+                page = page + 1;
+                getMarkerData(refreshlayout, false, STATE_UNDONE);
+            }
+        });
+
+        mAdapter = new OrderAdapter(this.getContext(), recordsList, this);
+        LinearLayoutManager layoutManager = new LinearLayoutManager(this.getContext());
+        binding.recyclerView.setLayoutManager(layoutManager);
+        binding.recyclerView.setAdapter(mAdapter);
+        getMarkerData(myRefreshLayout, true, STATE_UNDONE);
+        //宸插畬鎴�
+        RefreshLayout myRefreshLayoutDone = (RefreshLayout) binding.refreshLayoutDone;
+        myRefreshLayoutDone.setRefreshHeader(new ClassicsHeader(this.getContext()));
+        myRefreshLayoutDone.setRefreshFooter(new ClassicsFooter(this.getContext()));
+        myRefreshLayoutDone.setOnRefreshListener(new OnRefreshListener() {
+            @Override
+            public void onRefresh(RefreshLayout refreshlayout) {
+//                refreshlayout.finishRefresh(2000/*,false*/);//浼犲叆false琛ㄧず鍒锋柊澶辫触
+                recordsList.clear();
+                page = 0;
+                getMarkerData(refreshlayout, true, STATE_DONE);
+            }
+        });
+        myRefreshLayoutDone.setOnLoadMoreListener(new OnLoadMoreListener() {
+            @Override
+            public void onLoadMore(RefreshLayout refreshlayout) {
+                page = page + 1;
+                getMarkerData(refreshlayout, false, STATE_DONE);
+            }
+        });
+        mAdapter = new OrderAdapter(this.getContext(), recordsListDone, this);
+        LinearLayoutManager layoutManagerDone = new LinearLayoutManager(this.getContext());
+        binding.recyclerViewDone.setLayoutManager(layoutManagerDone);
+        binding.recyclerViewDone.setAdapter(mAdapter);
+        getMarkerData(myRefreshLayoutDone, true, 2);
+    }
+
+
     @Override
     public void onStart() {
         super.onStart();
-        new TitleBar(OrderFragment.this.getActivity()).setTitleText("宸ュ崟");
     }
+
+    /**
+     * 鑾峰彇鏈垹闄ゅ伐鍗�
+     */
+    private void getMarkerData(RefreshLayout refreshlayout, boolean isRefresh, int state) {
+
+        Map<String, Object> params = new HashMap<>();
+        if (isRefresh) {
+            page = 1;
+            if (state == STATE_UNDONE) {
+                recordsList.clear();
+            } else {
+                recordsListDone.clear();
+            }
+        }
+        params.put("pageSize", pageSize);
+        params.put("pageCurr", page);
+        params.put("state", state);
+//        params.put("inspectorId", MyApplication.myApplication.userId);
+
+        ApiManager.getInstance().requestGetHideLoading(this.getContext(), Constants.BASE_URL + "/app/workOrder/getWorkOrders", OrderListResult.class, params, new SubscriberListener<BaseResponse<OrderListResult>>() {
+            @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().getObj().size() < pageSize) {
+                                refreshlayout.finishLoadMoreWithNoMoreData();
+                            }
+                        } else {
+                            refreshlayout.finishLoadMoreWithNoMoreData();
+                        }
+                    }
+                } else {
+                    ToastUtil.showToast(OrderFragment.this.getContext(), t.getMsg());
+                }
+            }
+
+            @Override
+            public void onCloose() {
+                super.onCloose();
+                layoutFinish(refreshlayout, isRefresh);
+                mAdapter.notifyDataSetChanged();
+            }
+
+        });
+    }
+
+    public void startDetail(String id) {
+        Intent intent = new Intent(this.getContext(), OrderDetailActivity.class);
+        intent.putExtra("workOrderId", id);
+        startActivity(intent);
+    }
+
+
+    /**
+     * 淇敼杩涘害鐘舵��
+     *
+     * @param state true涓烘湭瀹屾垚 false涓哄凡瀹屾垚
+     */
+
+    void chooseStateView(boolean state) {
+        if (state) {
+            binding.manageStateProgress.setTextColor(getResources().getColor(R.color.title_color));
+            binding.manageStateProgress.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit));
+            binding.manageStateProgress.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
+            binding.manageStateFinish.setTextColor(getResources().getColor(R.color.black));
+            binding.manageStateFinish.setBackground(getResources().getDrawable(R.color.title_choose_bg));
+            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));
+            binding.manageStateFinish.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit));
+            binding.manageStateFinish.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
+            binding.manageStateProgress.setTextColor(getResources().getColor(R.color.black));
+            binding.manageStateProgress.setBackground(getResources().getDrawable(R.color.title_choose_bg));
+            binding.manageStateProgress.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
+            binding.refreshLayout.setVisibility(View.GONE);
+            binding.refreshLayoutDone.setVisibility(View.VISIBLE);
+        }
+    }
+
+
 }

--
Gitblit v1.8.0