From dde9027478b772dd60371937413ac2838c4f3bbd Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 11 二月 2025 09:56:33 +0800
Subject: [PATCH] 1.修改library名称 2.取水口接口相关代码

---
 app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java |  262 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 169 insertions(+), 93 deletions(-)

diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
index ddfb4c4..27486c3 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -20,6 +20,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
 import androidx.lifecycle.Observer;
 
 import com.dayu.pipirrapp.MyApplication;
@@ -39,7 +40,6 @@
 import com.dayu.pipirrapp.bean.net.InspectionRequest;
 import com.dayu.pipirrapp.bean.net.MarkerListResult;
 import com.dayu.pipirrapp.bean.net.MarkerResult;
-import com.dayu.pipirrapp.bean.net.PipeNetworkListResult;
 import com.dayu.pipirrapp.bean.net.PipeNetworkResult;
 import com.dayu.pipirrapp.dao.DaoSingleton;
 import com.dayu.pipirrapp.databinding.FragmentMapBinding;
@@ -80,6 +80,7 @@
 import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
 import io.reactivex.rxjava3.disposables.CompositeDisposable;
 import io.reactivex.rxjava3.schedulers.Schedulers;
+import kotlin.Triple;
 
 /**
  * author: zuo
@@ -140,6 +141,7 @@
             getCenterPoint();
             getMarkerData();
             getDivideList();
+            getPipeNetworkList();
         });
     }
 
@@ -178,69 +180,91 @@
     private void loadLocalData() {
         // 寮傛鍔犺浇涓績鐐规暟鎹�
         compositeDisposable.add(
-            DaoSingleton.getAsynchInstance(this.getContext()).centerPointDao().findFirst()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(result -> {
-                    centerPointBean = result;
-                    if (centerPointBean == null) {
-                        getCenterPoint();
-                    } else {
-                        jumpCenterPoint();
-                    }
-                }, throwable -> {
-                    Log.e(TAG, "Load centerPoint error: " + throwable);
-                    getCenterPoint();
-                }, () -> {
-                    // 褰揗aybe涓虹┖鏃惰皟鐢�
-                    getCenterPoint();
-                })
+                DaoSingleton.getAsynchInstance(this.getContext()).centerPointDao().findFirst()
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(result -> {
+                            centerPointBean = result;
+                            if (centerPointBean == null) {
+                                getCenterPoint();
+                            } else {
+                                jumpCenterPoint();
+                            }
+                        }, throwable -> {
+                            Log.e(TAG, "Load centerPoint error: " + throwable);
+                            getCenterPoint();
+                        }, () -> {
+                            // 褰揗aybe涓虹┖鏃惰皟鐢�
+                            getCenterPoint();
+                        })
         );
 
         // 寮傛鍔犺浇鍙栨按鍙f暟鎹�
         compositeDisposable.add(
-            DaoSingleton.getAsynchInstance(this.getContext()).markerDao().getAll()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(markers -> {
-                    if (markers == null || markers.isEmpty()) {
-                        getMarkerData();
-                    } else {
-                        for (MarkerBean marker : markers) {
-                            markerBeanSet.put(marker.getId(), marker);
-                            setMapMarker(marker);
-                        }
-                    }
-                }, throwable -> {
-                    Log.e(TAG, "Load markers error: " + throwable.getMessage());
-                    getMarkerData();
-                }, () -> {
-                    // 褰揗aybe涓虹┖鏃惰皟鐢�
-                    getMarkerData();
-                })
+                DaoSingleton.getAsynchInstance(this.getContext()).markerDao().getAll()
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(markers -> {
+                            if (markers == null || markers.isEmpty()) {
+                                getMarkerData();
+                            } else {
+                                for (MarkerBean marker : markers) {
+                                    markerBeanSet.put(marker.getId(), marker);
+                                    setMapMarker(marker);
+                                }
+                            }
+                        }, throwable -> {
+                            Log.e(TAG, "Load markers error: " + throwable.getMessage());
+                            getMarkerData();
+                        }, () -> {
+                            // 褰揗aybe涓虹┖鏃惰皟鐢�
+                            getMarkerData();
+                        })
         );
 
         // 寮傛鍔犺浇鍒嗘按鎴挎暟鎹�
         compositeDisposable.add(
-            DaoSingleton.getAsynchInstance(this.getContext()).divideDao().getAll()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(divides -> {
-                    if (divides == null || divides.isEmpty()) {
-                        getDivideList();
-                    } else {
-                        for (DivideBean divide : divides) {
-                            divideBeanMap.put(divide.getId(), divide);
-                            setMapDivide(divide);
-                        }
-                    }
-                }, throwable -> {
-                    Log.e(TAG, "Load divides error: " + throwable.getMessage());
-                    getDivideList();
-                }, () -> {
-                    // 褰揗aybe涓虹┖鏃惰皟鐢�
-                    getDivideList();
-                })
+                DaoSingleton.getAsynchInstance(this.getContext()).divideDao().getAll()
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(divides -> {
+                            if (divides == null || divides.isEmpty()) {
+                                getDivideList();
+                            } else {
+                                for (DivideBean divide : divides) {
+                                    divideBeanMap.put(divide.getId(), divide);
+                                    setMapDivide(divide);
+                                }
+                            }
+                        }, throwable -> {
+                            Log.e(TAG, "Load divides error: " + throwable.getMessage());
+                            getDivideList();
+                        }, () -> {
+                            // 褰揗aybe涓虹┖鏃惰皟鐢�
+                            getDivideList();
+                        })
+        );
+        //寮傛鍔犺浇绠$綉鏁版嵁
+        compositeDisposable.add(
+                DaoSingleton.getAsynchInstance(this.getContext()).pipeNetDao().getAll()
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(pipeNetworkBeans -> {
+                            if (pipeNetworkBeans == null || pipeNetworkBeans.isEmpty()) {
+                                getPipeNetworkList();
+                            } else {
+                                for (PipeNetworkBean pipeNetworkBean : pipeNetworkBeans) {
+
+
+                                }
+                            }
+                        }, throwable -> {
+                            Log.e(TAG, "Load divides error: " + throwable.getMessage());
+                            getDivideList();
+                        }, () -> {
+                            // 褰揗aybe涓虹┖鏃惰皟鐢�
+                            getDivideList();
+                        })
         );
     }
 
@@ -370,19 +394,19 @@
 
                         // 浣跨敤 CompositeDisposable 绠$悊鏁版嵁搴撴彃鍏ユ搷浣�
                         compositeDisposable.add(
-                            DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).markerDao().insertAll(markerBeans)
-                                .subscribeOn(Schedulers.io())
-                                .observeOn(AndroidSchedulers.mainThread())
-                                .subscribe(
-                                    () -> {
-                                        // 鎻掑叆鎴愬姛
-                                        Log.i("mWebView", "鏁版嵁鎻掑叆鎴愬姛");
-                                    },
-                                    throwable -> {
-                                        // 鎻掑叆澶辫触
-                                        Log.e("mWebView", "鏁版嵁鎻掑叆澶辫触: " + throwable.getMessage());
-                                    }
-                                )
+                                DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).markerDao().insertAll(markerBeans)
+                                        .subscribeOn(Schedulers.io())
+                                        .observeOn(AndroidSchedulers.mainThread())
+                                        .subscribe(
+                                                () -> {
+                                                    // 鎻掑叆鎴愬姛
+                                                    Log.i("mWebView", "鏁版嵁鎻掑叆鎴愬姛");
+                                                },
+                                                throwable -> {
+                                                    // 鎻掑叆澶辫触
+                                                    Log.e("mWebView", "鏁版嵁鎻掑叆澶辫触: " + throwable.getMessage());
+                                                }
+                                        )
                         );
                     }
 
@@ -432,8 +456,27 @@
             Intent issue = new Intent(MapFragment.this.getActivity(), AddIssueActivity.class);
             MapFragment.this.getActivity().startActivity(issue);
         });
+        binding.expandButton.setLegendsArray(new Triple<>(
+                        ContextCompat.getDrawable(requireContext(), R.drawable.marker_blue),
+                        ContextCompat.getDrawable(requireContext(), R.drawable.marker_unselected),
+                        "鍙栨按鍙�"
+                ),
+                new Triple<>(
+                        ContextCompat.getDrawable(requireContext(), R.drawable.divide_home_blue),
+                        ContextCompat.getDrawable(requireContext(), R.drawable.divide_home_unselected),
+                        "鍒嗘按鎴�"
+                ));
+        binding.expandButton.setOnLegendItemClickListener((position, isSelected) -> {
+            switch (position) {
+                case 0:
+                    showMarkers(isSelected);
+                    break;
+                case 1:
+                    showDivideMarkers(isSelected);
+                    break;
 
-
+            }
+        });
     }
 
     /**
@@ -1010,22 +1053,22 @@
                                 setMapDivide(divideBean);
                                 divideBeans.add(divideBean);
                             }
-                            
+
                             // 浣跨敤 CompositeDisposable 绠$悊鏁版嵁搴撴彃鍏ユ搷浣�
                             compositeDisposable.add(
-                                DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).divideDao().insertAll(divideBeans)
-                                    .subscribeOn(Schedulers.io())
-                                    .observeOn(AndroidSchedulers.mainThread())
-                                    .subscribe(
-                                        () -> {
-                                            // 鎻掑叆鎴愬姛
-                                            Log.i("mWebView", "鏁版嵁鎻掑叆鎴愬姛");
-                                        },
-                                        throwable -> {
-                                            // 鎻掑叆澶辫触
-                                            Log.e("mWebView", "鏁版嵁鎻掑叆澶辫触: " + throwable.getMessage());
-                                        }
-                                    )
+                                    DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).divideDao().insertAll(divideBeans)
+                                            .subscribeOn(Schedulers.io())
+                                            .observeOn(AndroidSchedulers.mainThread())
+                                            .subscribe(
+                                                    () -> {
+                                                        // 鎻掑叆鎴愬姛
+                                                        Log.i("mWebView", "鏁版嵁鎻掑叆鎴愬姛");
+                                                    },
+                                                    throwable -> {
+                                                        // 鎻掑叆澶辫触
+                                                        Log.e("mWebView", "鏁版嵁鎻掑叆澶辫触: " + throwable.getMessage());
+                                                    }
+                                            )
                             );
                         }
                     } else {
@@ -1043,21 +1086,22 @@
      * 鑾峰彇绠$綉
      */
     private void getPipeNetworkList() {
-        ApiManager.getInstance().requestGetHideLoading(MapFragment.this.getContext(), BASE_URL + "/project/network/all", PipeNetworkListResult.class, null, new SubscriberListener<BaseResponse<PipeNetworkListResult>>() {
+        ApiManager.getInstance().requestGetHideLoading(MapFragment.this.getContext(), BASE_URL + "/project/network/all", PipeNetworkResult.class, null, new SubscriberListener<BaseResponse<List<PipeNetworkResult>>>() {
             @Override
-            public void onNext(BaseResponse<PipeNetworkListResult> t) {
+            public void onNext(BaseResponse<List<PipeNetworkResult>> t) {
                 try {
                     if (t.isSuccess()) {
-                        if (t.getContent().getObj() != null && !t.getContent().getObj().isEmpty()) {
+                        if (t.getContent() != null && t.getContent().size() > 0) {
 
-                            List<DivideBean> divideBeans = new ArrayList<>();
-                            for (PipeNetworkResult divideResult : t.getContent().getObj()) {
-                                PipeNetworkBean divideBean = getPipeNetworkBean(divideResult);
-                                setMapDivide(divideBean);
-//                                divideBeans.add(divideBean);
+                            List<PipeNetworkBean> pipeNetBeans = new ArrayList<>();
+                            PipeNetworkBean pipeNetBean = new PipeNetworkBean();
+                            for (PipeNetworkResult pipeNetworkResult : t.getContent()) {
+                                pipeNetBean.setNetworkId(pipeNetworkResult.getNetworkId());
+                                pipeNetBean.setType(pipeNetworkResult.getType());
+                                pipeNetBean.setData(pipeNetworkResult.getData());
                             }
                             // 浣跨敤 RxJava 寮傛鎻掑叆鏁版嵁
-                            DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).divideDao().insertAll(divideBeans)
+                            DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).pipeNetDao().insertAll(pipeNetBeans)
                                     .subscribeOn(Schedulers.io()) // 鍦� IO 绾跨▼涓婃墽琛�
                                     .observeOn(AndroidSchedulers.mainThread()) // 鍦ㄤ富绾跨▼涓婅瀵�
                                     .subscribe(() -> {
@@ -1157,4 +1201,36 @@
             mWebView.restoreState(savedInstanceState);
         }
     }
+
+    /**
+     * 鏄剧ず鎴栭殣钘忓湴鍥句笂鐨勫彇姘村彛
+     *
+     * @param isShow
+     */
+    private void showMarkers(boolean isShow) {
+        if (isShow) {
+            mWebView.evaluateJavascript("javascript:showAllWaterIntakes()", value -> {
+            });
+        } else {
+            mWebView.evaluateJavascript("javascript:hideAllWaterIntakes()", value -> {
+            });
+        }
+
+    }
+
+    /**
+     * 鏄剧ず鎴栭殣钘忓湴鍥句笂鐨勫垎姘存埧
+     *
+     * @param isShow
+     */
+    private void showDivideMarkers(boolean isShow) {
+        if (isShow) {
+            mWebView.evaluateJavascript("javascript:showAllDivides()", value -> {
+            });
+        } else {
+            mWebView.evaluateJavascript("javascript:hideAllDivides()", value -> {
+            });
+        }
+    }
+
 }

--
Gitblit v1.8.0