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