From ec6193939600ca7930193b1d5942b1700baf9e06 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 21 二月 2025 09:20:15 +0800
Subject: [PATCH] 1.巡检记录列表页的实现 2.巡检记录地图展示路径的详情页。 3.处理巡检记录详情页因打开同一个网址导致的webView不显示问题。 4.实现地图页搜索后的地图跳转功能。 5.巡检记录详情页数据加载的优化,默认加载本地数据,当本地没有数据时从服务端获取数据。
---
app/src/main/java/com/dayu/pipirrapp/dao/InspectionLocationDao.java | 9
app/src/main/res/layout/activity_inspect_list.xml | 25 +
app/src/main/java/com/dayu/pipirrapp/activity/InspectDetailActivity.java | 251 +++++++++++++++
app/src/main/java/com/dayu/pipirrapp/adapter/InspectAdapter.java | 92 +++++
app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java | 7
app/src/main/assets/js/map.js | 43 ++
app/src/main/java/com/dayu/pipirrapp/bean/db/SearchResultBean.java | 70 ++++
app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java | 11
app/src/main/res/layout/activity_inspect_detail.xml | 15
app/src/main/res/layout/item_inspect.xml | 45 ++
app/src/main/AndroidManifest.xml | 2
app/src/main/assets/img/marker_blue_start.svg | 9
app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java | 2
app/src/main/res/layout/dialog_search_result.xml | 1
app/src/main/assets/img/marker_blue_end.svg | 9
app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java | 14
app/src/main/res/drawable/ic_pipenetwork_line.xml | 8
app/src/main/java/com/dayu/pipirrapp/bean/net/InspectListResult.java | 59 +++
app/src/main/java/com/dayu/pipirrapp/dao/InspectionDao.java | 10
app/src/main/res/layout/fragment_my.xml | 26 +
app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java | 3
app/src/main/java/com/dayu/pipirrapp/bean/net/InspectResult.java | 89 +++++
app/src/main/java/com/dayu/pipirrapp/activity/InspectListActivity.java | 141 ++++++++
23 files changed, 915 insertions(+), 26 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7f4bbfe..090e664 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -109,6 +109,8 @@
<activity android:name=".activity.AddIssueActivity" />
<activity android:name=".activity.IssueListActivity" />
<activity android:name=".activity.IssueDetailActivity" />
+ <activity android:name=".activity.InspectListActivity"/>
+ <activity android:name=".activity.InspectDetailActivity"/>
<!-- <activity android:name=".activity.MainActivity" />-->
diff --git a/app/src/main/assets/img/marker_blue_end.svg b/app/src/main/assets/img/marker_blue_end.svg
new file mode 100644
index 0000000..ad4cc14
--- /dev/null
+++ b/app/src/main/assets/img/marker_blue_end.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px"
+ viewBox="0 0 24 24" width="24px" fill="#D81E06">
+ <rect fill="none" height="24" width="24" />
+ <path
+ d="M12,2L12,2C8.13,2,5,5.13,5,9c0,1.74,0.5,3.37,1.41,4.84c0.95,1.54,2.2,2.86,3.16,4.4c0.47,0.75,0.81,1.45,1.17,2.26 C11,21.05,11.21,22,12,22h0c0.79,0,1-0.95,1.25-1.5c0.37-0.81,0.7-1.51,1.17-2.26c0.96-1.53,2.21-2.85,3.16-4.4 C18.5,12.37,19,10.74,19,9C19,5.13,15.87,2,12,2z" />
+ <text x="12" y="12" text-anchor="middle" fill="white" font-size="8"
+ font-family="Arial, sans-serif">缁�
+ </text>
+</svg>
\ No newline at end of file
diff --git a/app/src/main/assets/img/marker_blue_start.svg b/app/src/main/assets/img/marker_blue_start.svg
new file mode 100644
index 0000000..d1c101b
--- /dev/null
+++ b/app/src/main/assets/img/marker_blue_start.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px"
+ viewBox="0 0 24 24" width="24px" fill="#1890FF">
+ <rect fill="none" height="24" width="24" />
+ <path
+ d="M12,2L12,2C8.13,2,5,5.13,5,9c0,1.74,0.5,3.37,1.41,4.84c0.95,1.54,2.2,2.86,3.16,4.4c0.47,0.75,0.81,1.45,1.17,2.26 C11,21.05,11.21,22,12,22h0c0.79,0,1-0.95,1.25-1.5c0.37-0.81,0.7-1.51,1.17-2.26c0.96-1.53,2.21-2.85,3.16-4.4 C18.5,12.37,19,10.74,19,9C19,5.13,15.87,2,12,2z" />
+ <text x="12" y="12" text-anchor="middle" fill="white" font-size="8"
+ font-family="Arial, sans-serif">璧�
+ </text>
+</svg>
\ No newline at end of file
diff --git a/app/src/main/assets/js/map.js b/app/src/main/assets/js/map.js
index af17e60..aed2047 100644
--- a/app/src/main/assets/js/map.js
+++ b/app/src/main/assets/js/map.js
@@ -8,7 +8,9 @@
MARKER_BLUE: 'img/marker_blue.svg',
CENTER_PIN: 'img/push_pin.svg',
DIVIDE_BLUE: 'img/divide_home_blue.svg',
- DIVIDE_RED: 'img/divide_home_red.svg'
+ DIVIDE_RED: 'img/divide_home_red.svg',
+ MARKER_START: 'img/marker_blue_start.svg',
+ MARKER_END: 'img/marker_blue_end.svg'
},
MAP: {
DEFAULT_ZOOM: 12,
@@ -56,6 +58,7 @@
window.showAllWaterIntakes = showAllWaterIntakes;
window.hideAllDivides = hideAllDivides;
window.showAllDivides = showAllDivides;
+ window.showHistoryLocation = showHistoryLocation;
}
@@ -143,7 +146,7 @@
// 鎵嬫満鑾峰彇鍒板畾浣嶅悗鏄剧ず瀹氫綅
function locationOverLay(lng, lag) {
-// console.log("function銆嬨�嬨�嬨�嬨�媗ocationOverLay");
+ // console.log("function銆嬨�嬨�嬨�嬨�媗ocationOverLay");
map.centerAndZoom(new T.LngLat(lng, lag), map.getZoom());
let icon = new T.Icon({
iconUrl: CONFIG.IMAGES.LOCATION,
@@ -161,7 +164,7 @@
//璁剧疆鍦板浘涓績鐐�
function setCenterAndZoom(lng, lat, thiszoom) {
zoom = thiszoom;
-// console.log("function銆嬨�嬨�嬨�嬨�媠etCenterAndZoom>>>>lng:" + lng + ",lat:" + lat);
+ // console.log("function銆嬨�嬨�嬨�嬨�媠etCenterAndZoom>>>>lng:" + lng + ",lat:" + lat);
map.centerAndZoom(new T.LngLat(lng, lat), zoom);
}
@@ -322,7 +325,7 @@
},
addPoint(lng, lat, isNewLine, isShow) {
-// console.log(`Adding point: ${lng}, ${lat}, isNewLine: ${isNewLine}`); // 娣诲姞鏃ュ織
+ // console.log(`Adding point: ${lng}, ${lat}, isNewLine: ${isNewLine}`); // 娣诲姞鏃ュ織
const point = new T.LngLat(lng, lat);
@@ -352,7 +355,7 @@
},
showAll() {
-// console.log("showAllpipe" + this.lines.length);
+ // console.log("showAllpipe" + this.lines.length);
this.lines.forEach(line => {
if (line.overlay) {
map.addOverLay(line.overlay);
@@ -362,7 +365,7 @@
},
hideAll() {
-// console.log("hideAllpipe" + this.lines.length);
+ // console.log("hideAllpipe" + this.lines.length);
this.lines.forEach(line => {
if (line.overlay) {
map.removeOverLay(line.overlay);
@@ -610,5 +613,31 @@
map.addOverLay(item.label);
});
}
+ var historyPoint = [];
+ //鏄剧ず鍘嗗彶宸℃璁板綍
+ function showHistoryLocation(lng, lat, start, end) {
+ // 璋冪敤 Android 鎻愪緵鐨勬帴鍙o紝鑾峰彇鏁版嵁
+ console.log("aginShowLocation>>lng:" + lng + ">>>lat:" + lat+">>>start:"+start+">>>end:"+end);
+ var newPoint = new T.LngLat(lng, lat);
+ historyPoint.push(newPoint);
+ if (start === "true" || start === true) {
+ map.panTo(newPoint);
+ let marker = new T.Marker(
+ newPoint,
+ { icon: createIcon(CONFIG.IMAGES.MARKER_START, 35) }
+ );
+ map.addOverLay(marker);
+ } else if (end === "true" || end === true) {
+ let marker = new T.Marker(
+ newPoint,
+ { icon: createIcon(CONFIG.IMAGES.MARKER_END, 35) }
+ );
+ map.addOverLay(marker);
+ }
+ oldLineLayer.setLngLats(historyPoint);
+ map.addOverLay(oldLineLayer);
+ }
-})();
+}
+
+)();
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/InspectDetailActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/InspectDetailActivity.java
new file mode 100644
index 0000000..3c33518
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/InspectDetailActivity.java
@@ -0,0 +1,251 @@
+package com.dayu.pipirrapp.activity;
+
+
+import android.os.Build;
+import android.os.Bundle;
+import android.util.Log;
+import android.webkit.ConsoleMessage;
+import android.webkit.WebChromeClient;
+import android.webkit.WebResourceError;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebResourceResponse;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+
+import androidx.annotation.Nullable;
+
+import com.dayu.pipirrapp.R;
+import com.dayu.pipirrapp.bean.db.InspectionLocationBean;
+import com.dayu.pipirrapp.dao.DaoSingleton;
+import com.dayu.pipirrapp.net.ApiManager;
+import com.dayu.pipirrapp.utils.CommonData;
+import com.dayu.pipirrapp.utils.MapJpgUtils;
+import com.dayu.pipirrapp.view.TitleBar;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.util.List;
+
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
+import io.reactivex.rxjava3.schedulers.Schedulers;
+
+/**
+ * InspectDetailActivity - 宸℃璇︽儏椤�
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2025-02-20
+ */
+public class InspectDetailActivity extends BaseActivity {
+
+ WebView mWebView;
+ String inspectId;
+ List<InspectionLocationBean> aginShowlocationBeans;
+ boolean webViewIsFinished;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ inspectId = getIntent().getStringExtra("inspectId");
+ setContentView(R.layout.activity_inspect_detail);
+ new TitleBar(this).setTitleText("宸℃璇︽儏").setLeftIco().setLeftIcoListening(v -> InspectDetailActivity.this.finish());
+ mWebView = findViewById(R.id.InspectWebView);
+
+ Log.d("InspectDetail", "寮�濮嬪垵濮嬪寲WebView");
+
+ // 鍒濆鍖朩ebView璁剧疆
+ WebSettings webSettings = mWebView.getSettings();
+ mWebView.clearCache(true);
+ webSettings.setJavaScriptEnabled(true);
+ webSettings.setAllowFileAccess(true);
+ webSettings.setAllowFileAccessFromFileURLs(true);
+ webSettings.setAllowUniversalAccessFromFileURLs(true);
+ webSettings.setDomStorageEnabled(true);
+ webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
+ webSettings.setDefaultTextEncodingName("utf-8");
+ webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+ webSettings.setBlockNetworkImage(false);
+ webSettings.setBlockNetworkLoads(false);
+ webSettings.setDatabaseEnabled(true);
+ webSettings.setGeolocationEnabled(true);
+
+ // 璁剧疆鐙珛鐨勬暟鎹洰褰�
+ File cacheDir = new File(getDir("webview", MODE_PRIVATE), "cache");
+ if (!cacheDir.exists()) {
+ cacheDir.mkdirs();
+ }
+ webSettings.setDatabasePath(cacheDir.getAbsolutePath());
+ webSettings.setGeolocationDatabasePath(cacheDir.getAbsolutePath());
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ WebView.setWebContentsDebuggingEnabled(true);
+ }
+
+ initWeb();
+ Log.d("InspectDetail", "寮�濮嬪姞杞紿TML椤甸潰");
+ mWebView.loadUrl("file:///android_asset/index.html");
+ showLocation();
+ }
+
+ @Override
+ protected void onDestroy() {
+ if (mWebView != null) {
+ mWebView.loadUrl("about:blank");
+ mWebView.clearHistory();
+ mWebView.clearCache(true);
+ mWebView.removeAllViews();
+ mWebView.destroy();
+ mWebView = null;
+ }
+ super.onDestroy();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ if (mWebView != null) {
+ mWebView.onPause();
+ mWebView.pauseTimers();
+ }
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if (mWebView != null) {
+ mWebView.onResume();
+ mWebView.resumeTimers();
+ }
+ }
+
+ private void initWeb() {
+ mWebView.setWebViewClient(new WebViewClient() {
+ @Override
+ public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
+ String url = request.getUrl().toString();
+ //鍒ゆ柇褰撳墠鏄惁涓哄姞杞界摝鐗�
+ if (MapJpgUtils.getInsatance().isTianDiTuTileRequest(url)) {
+ String androidUrl = url.replace(CommonData.webKey, CommonData.androidKey);
+ // 妫�鏌ユ湰鍦扮紦瀛�
+ File cachedTile = MapJpgUtils.getInsatance().getCachedTile(androidUrl);
+ if (cachedTile != null && cachedTile.exists()) {
+// Log.d(TAG, "鏈湴缂撳瓨>>>" + androidUrl);
+// if (MapJpgUtils.getInsatance().validateImageFile(androidUrl,request.))
+ // 鍒ゆ柇缂撳瓨鏄惁杩囨湡
+// if (!MapJpgUtils.getInsatance(MapFragment.this.getContext()).isCacheExpired(cachedTile)) {
+ try {
+ // 浠庣紦瀛樺姞杞界摝鐗�
+ return new WebResourceResponse("image/jpg", "utf-8", new FileInputStream(cachedTile));
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+// }
+ } else {
+ //涓嬭浇鐡︾墖
+ ApiManager.getInstance().donwLoadTile(InspectDetailActivity.this, androidUrl);
+ }
+ }
+ return super.shouldInterceptRequest(view, request);
+ }
+
+ @Override
+ public void onReceivedError(WebView view, WebResourceRequest
+ request, WebResourceError error) {
+ super.onReceivedError(view, request, error);
+ String url = request.getUrl().toString();
+ int errorCode = error.getErrorCode();
+ String description = error.getDescription().toString();
+
+ Log.e("InspectDetail", String.format("鍔犺浇閿欒 - URL: %s\n閿欒鐮�: %d\n鎻忚堪: %s",
+ url, errorCode, description));
+ }
+
+ @Override
+ public void onReceivedHttpError(WebView view, WebResourceRequest
+ request, WebResourceResponse errorResponse) {
+ super.onReceivedHttpError(view, request, errorResponse);
+ String url = request.getUrl().toString();
+ int statusCode = errorResponse.getStatusCode();
+ String description = errorResponse.getReasonPhrase();
+
+ Log.e("InspectDetail", String.format("HTTP閿欒 - URL: %s\n鐘舵�佺爜: %d\n鎻忚堪: %s",
+ url, statusCode, description));
+ }
+
+ @Override
+ public void onPageFinished(WebView view, String url) {
+ super.onPageFinished(view, url);
+ Log.d("InspectDetail", "椤甸潰鍔犺浇瀹屾垚: " + url);
+ webViewIsFinished = true;
+ // 娉ㄥ叆涓�涓爣璇嗭紝閬垮厤涓嶮apFragment鍐茬獊
+ mWebView.evaluateJavascript(
+ "window.WEBVIEW_TYPE = 'INSPECT_DETAIL';",
+ null
+ );
+ aginShowLocation(null);
+ }
+ });
+
+ mWebView.setWebChromeClient(new WebChromeClient() {
+ @Override
+ public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
+ Log.d("InspectDetail", "Console: " + consoleMessage.message() +
+ " at " + consoleMessage.sourceId() + ":" + consoleMessage.lineNumber());
+ return true;
+ }
+ });
+ }
+
+ /**
+ * 鍔犺浇宸℃璁板綍
+ */
+ private void showLocation() {
+ // 鏌ヨ褰撳墠鏈叧闂殑宸℃璁板綍涓嬫墍鏈夌殑鍧愭爣
+ DaoSingleton.getAsynchInstance(this).inspectionLocationDao().findByInspectId(inspectId).subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread()).subscribe(inspectionLocationBeans -> {
+ aginShowLocation(inspectionLocationBeans);
+ });
+ }
+
+ /**
+ * 鎰忓閫�鍑哄悗缁х画鏄剧ず涔嬪墠鐨勫潗鏍�
+ */
+ public void aginShowLocation(List<InspectionLocationBean> locationBeans) {
+ if (locationBeans != null) {
+ aginShowlocationBeans = locationBeans;
+ }
+ if (webViewIsFinished) {
+ if (aginShowlocationBeans != null) {
+ int index = 0;
+ int size = aginShowlocationBeans.size();
+ boolean isStart, isEnd;
+ for (InspectionLocationBean inspectionLocationBean : aginShowlocationBeans) {
+
+ if (index == 0) {
+ isStart = true;
+ } else {
+ isStart = false;
+ }
+ if (index == size - 1) {
+ isEnd = true;
+ } else {
+ isEnd = false;
+ }
+ Log.i("mWebView", "showHistoryLocation" + inspectionLocationBean.getLng() + "\",\"" + inspectionLocationBean.getLat());
+ mWebView.evaluateJavascript("javascript:showHistoryLocation(\"" + inspectionLocationBean.getLng() + "\",\"" + inspectionLocationBean.getLat() + "\",\"" + isStart + "\",\"" + isEnd + "\")", value -> {
+ });
+ index++;
+ }
+ // 鍚� WebView 娉ㄥ叆鏁版嵁
+ aginShowlocationBeans.clear();
+ }
+ }
+ }
+
+
+ public void getHttpLocation() {
+
+ }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/InspectListActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/InspectListActivity.java
new file mode 100644
index 0000000..bb2de3b
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/InspectListActivity.java
@@ -0,0 +1,141 @@
+package com.dayu.pipirrapp.activity;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import com.dayu.pipirrapp.MyApplication;
+import com.dayu.pipirrapp.adapter.InspectAdapter;
+import com.dayu.pipirrapp.bean.net.InspectListResult;
+import com.dayu.pipirrapp.bean.net.InspectResult;
+import com.dayu.pipirrapp.databinding.ActivityInspectListBinding;
+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.utils.ToastUtil;
+import com.dayu.pipirrapp.view.TitleBar;
+import com.scwang.smart.refresh.footer.ClassicsFooter;
+import com.scwang.smart.refresh.header.ClassicsHeader;
+import com.scwang.smart.refresh.layout.api.RefreshLayout;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import io.reactivex.rxjava3.disposables.CompositeDisposable;
+
+/**
+ * InspectActivity - 宸℃璁板綍鍒楄〃
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2025-02-17
+ */
+public class InspectListActivity extends BaseActivity {
+ private ActivityInspectListBinding binding;
+ private RefreshLayout myRefreshLayout;
+ private List<InspectResult> recordsList = new ArrayList<>();
+ private InspectAdapter mAdapter;
+ private CompositeDisposable compositeDisposable = new CompositeDisposable();
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ binding = ActivityInspectListBinding.inflate(LayoutInflater.from(this));
+ setContentView(binding.getRoot());
+ initView();
+ getData(true);
+ }
+
+ private void initView() {
+ new TitleBar(this).setTitleText("宸℃璁板綍").setLeftIco().setLeftIcoListening(v -> InspectListActivity.this.finish());
+ myRefreshLayout = binding.refreshLayout;
+ myRefreshLayout.setRefreshHeader(new ClassicsHeader(this));
+ myRefreshLayout.setRefreshFooter(new ClassicsFooter(this));
+
+ myRefreshLayout.setOnRefreshListener(refreshlayout -> {
+ recordsList.clear();
+ getData(true);
+ });
+ myRefreshLayout.setOnLoadMoreListener(refreshlayout -> {
+ getData(false);
+ });
+
+ mAdapter = new InspectAdapter(this, recordsList);
+ LinearLayoutManager layoutManager = new LinearLayoutManager(this);
+ binding.recyclerView.setLayoutManager(layoutManager);
+ binding.recyclerView.setAdapter(mAdapter);
+ }
+
+// private void getData(boolean isRefresh) {
+// if (isRefresh) {
+// recordsList.clear();
+// }
+//
+// compositeDisposable.add(
+// DaoSingleton.getAsynchInstance(this).inspectionDao().findAll()
+// .subscribeOn(Schedulers.io())
+// .observeOn(AndroidSchedulers.mainThread())
+// .subscribe(inspectionList -> {
+// if (inspectionList != null && !inspectionList.isEmpty()) {
+// recordsList.addAll(inspectionList);
+// }
+// mAdapter.notifyDataSetChanged();
+// layoutFinish(myRefreshLayout, isRefresh);
+// }, throwable -> {
+// // 澶勭悊閿欒
+// layoutFinish(myRefreshLayout, isRefresh);
+// })
+// );
+// }
+
+ private void getData(boolean isRefresh) {
+ Map<String, Object> params = new HashMap<>();
+ if (isRefresh) {
+ page = 1;
+ recordsList.clear();
+ }
+ params.put("pageSize", pageSize);
+ params.put("pageCurr", page);
+ params.put("inspectorId", MyApplication.myApplication.userId);
+
+ ApiManager.getInstance().requestGetHideLoading(this, Constants.BASE_URL + "/app/inspect/getInspectRecords", InspectListResult.class, params, new SubscriberListener<BaseResponse<InspectListResult>>() {
+ @Override
+ public void onNext(BaseResponse<InspectListResult> t) {
+ if (t.isSuccess()) {
+ if (t.isSuccess()) {
+ if (t.getContent().getObj() != null && t.getContent().getObj().size() > 0) {
+ recordsList.addAll(t.getContent().getObj());
+ if (t.getContent().getPageTotal() == page) {
+ myRefreshLayout.finishLoadMoreWithNoMoreData();
+ }
+ } else {
+ myRefreshLayout.finishLoadMoreWithNoMoreData();
+ }
+ }
+ } else {
+ ToastUtil.showToast(InspectListActivity.this, t.getMsg());
+ }
+ }
+
+ @Override
+ public void onCloose() {
+ super.onCloose();
+ layoutFinish(myRefreshLayout, isRefresh);
+ mAdapter.notifyDataSetChanged();
+
+ }
+
+ });
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ compositeDisposable.clear();
+ }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
index 411a8e2..3ff4f31 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
@@ -76,6 +76,7 @@
AddPictureAdapter mAdapter;
int maxSelectNum = 10;//鏈�澶х収鐗�
int maxSelectVideoNum = 0;//鏈�澶ц棰�
+ int videoMaxSecond = 60;
private final List<LocalMedia> mData = new ArrayList<>();
private ActivityResultLauncher<Intent> launcherResult;
private ImageEngine imageEngine;
@@ -204,12 +205,20 @@
private void mOpenPicture() {
// 杩涘叆鐩稿唽
PictureSelectionModel selectionModel = PictureSelector.create(this)
- .openGallery(SelectMimeType.ofImage())
+ .openGallery(SelectMimeType.ofAll())
.setMaxSelectNum(maxSelectNum)
.setMaxVideoSelectNum(maxSelectVideoNum)
.setImageEngine(imageEngine)
//璁剧疆鍥剧墖鍘嬬缉
.setCompressEngine(new ImageFileCompressEngine())
+ //璁剧疆瑙嗛鍥剧墖涓�璧峰湪鐩稿唽閫夋嫨
+ .isWithSelectVideoImage(true)
+ //璁剧疆鏈�澶ц棰戞椂闀�
+ .setRecordVideoMaxSecond(videoMaxSecond)
+ // 杩囨护瑙嗛鏈�澶ф椂闀�
+ .setFilterVideoMaxSecond(videoMaxSecond)
+ // 鎷嶇収鏄惁绾犳鏃嬭浆鍥剧墖
+ .isCameraRotateImage(true)
.setSelectedData(mAdapter.getData());
selectionModel.forResult(launcherResult);
diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/InspectAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/InspectAdapter.java
new file mode 100644
index 0000000..a8c74b3
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/InspectAdapter.java
@@ -0,0 +1,92 @@
+package com.dayu.pipirrapp.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.dayu.pipirrapp.R;
+import com.dayu.pipirrapp.activity.InspectDetailActivity;
+import com.dayu.pipirrapp.activity.InspectListActivity;
+import com.dayu.pipirrapp.bean.net.InspectResult;
+import com.dayu.pipirrapp.databinding.ItemInspectBinding;
+import com.dayu.pipirrapp.databinding.ItemNoMoreBinding;
+
+import java.util.List;
+
+public class InspectAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> {
+ private InspectListActivity activity;
+ private List<InspectResult> list;
+
+ public InspectAdapter(InspectListActivity activity, List<InspectResult> list) {
+ this.activity = activity;
+ this.list = list;
+ }
+
+ @NonNull
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ if (viewType == VIEW_TYPE_EMPTY) {
+ ItemNoMoreBinding emptyView = DataBindingUtil.inflate((LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE),
+ R.layout.item_no_more, parent, false);
+ return new BaseRecyclerAdapter.ViewHolderEmpty(emptyView);
+ } else {
+ ItemInspectBinding binding = DataBindingUtil.inflate((LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE),
+ R.layout.item_inspect, parent, false);
+ return new ViewHolder(binding);
+ }
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
+ if (holder instanceof ViewHolder && list != null && list.size() > 0) {
+ InspectResult item = list.get(position);
+ ViewHolder viewHolder = (ViewHolder) holder;
+ viewHolder.binding.tvInspectId.setText("宸℃ID: " + item.getInspectId());
+ viewHolder.binding.tvStartTime.setText("寮�濮嬫椂闂�: " + item.getStartTime());
+ viewHolder.binding.tvStopTime.setText("缁撴潫鏃堕棿: " + item.getStopTime());
+ viewHolder.binding.tvInspectDistance.setText("宸℃璺濈: " + item.getInspectDistance()+" KM");
+
+ // 娣诲姞鐐瑰嚮浜嬩欢
+ viewHolder.itemView.setOnClickListener(v -> {
+ android.content.Intent intent = new android.content.Intent(activity, InspectDetailActivity.class);
+ intent.putExtra("inspectId", item.getInspectId());
+ activity.startActivity(intent);
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ if (list != null) {
+ if (list.size() == 0) {
+ return 1;
+ }
+ return list.size();
+ }
+ return 1;
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ if (list != null) {
+ if (list.size() == 0) {
+ return VIEW_TYPE_EMPTY;
+ }
+ return VIEW_TYPE_ITEM;
+ }
+ return VIEW_TYPE_EMPTY;
+ }
+
+ static class ViewHolder extends RecyclerView.ViewHolder {
+ ItemInspectBinding binding;
+
+ public ViewHolder(ItemInspectBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/db/SearchResultBean.java b/app/src/main/java/com/dayu/pipirrapp/bean/db/SearchResultBean.java
new file mode 100644
index 0000000..d9cefc2
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/db/SearchResultBean.java
@@ -0,0 +1,70 @@
+package com.dayu.pipirrapp.bean.db;
+
+/**
+ * 鎼滅储缁撴灉Bean
+ */
+public class SearchResultBean {
+ private String name; // 鍚嶇О
+ private String type; // 绫诲瀷锛歞ivide-鍒嗘按鎴匡紝marker-鍙栨按鍙�
+ private String lat; // 绾害
+ private String lng; // 缁忓害
+ private String address; // 鍦板潃
+ private String id; // ID
+
+ public SearchResultBean(String name, String type, String lat, String lng, String address, String id) {
+ this.name = name;
+ this.type = type;
+ this.lat = lat;
+ this.lng = lng;
+ this.address = address;
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getLat() {
+ return lat;
+ }
+
+ public void setLat(String lat) {
+ this.lat = lat;
+ }
+
+ public String getLng() {
+ return lng;
+ }
+
+ public void setLng(String lng) {
+ this.lng = lng;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/InspectListResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/InspectListResult.java
new file mode 100644
index 0000000..9495fb1
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/InspectListResult.java
@@ -0,0 +1,59 @@
+package com.dayu.pipirrapp.bean.net;
+
+import java.util.List;
+
+/**
+ * InspectListResult -
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2025-02-18
+ */
+public class InspectListResult {
+
+ int itemTotal;
+ int pageCurr;
+ int pageSize;
+ int pageTotal;
+ List<InspectResult> obj;
+
+ public int getItemTotal() {
+ return itemTotal;
+ }
+
+ public void setItemTotal(int itemTotal) {
+ this.itemTotal = itemTotal;
+ }
+
+ public int getPageCurr() {
+ return pageCurr;
+ }
+
+ public void setPageCurr(int pageCurr) {
+ this.pageCurr = pageCurr;
+ }
+
+ public int getPageSize() {
+ return pageSize;
+ }
+
+ public void setPageSize(int pageSize) {
+ this.pageSize = pageSize;
+ }
+
+ public int getPageTotal() {
+ return pageTotal;
+ }
+
+ public void setPageTotal(int pageTotal) {
+ this.pageTotal = pageTotal;
+ }
+
+ public List<InspectResult> getObj() {
+ return obj;
+ }
+
+ public void setObj(List<InspectResult> obj) {
+ this.obj = obj;
+ }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/InspectResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/InspectResult.java
new file mode 100644
index 0000000..ba14340
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/InspectResult.java
@@ -0,0 +1,89 @@
+package com.dayu.pipirrapp.bean.net;
+
+import java.util.List;
+
+/**
+ * InspectResult -
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2025-02-19
+ */
+public class InspectResult {
+
+ private String inspectorId; // 宸℃鍛業D
+ private String inspectorName; // 宸℃鍛樺鍚�
+ private String inspectId; // 宸℃ID
+ private String startTime; // 寮�濮嬫椂闂�
+ private String stopTime; // 缁撴潫鏃堕棿
+ private Double inspectDistance; // 宸℃璺濈
+ private List<String> tracks; // 宸℃鑺傜偣鍒楄〃
+
+ // 鏋勯�犲嚱鏁�
+ public InspectResult(String inspectorId, String inspectorName, String inspectId, String startTime, String stopTime, Double inspectDistance, List<String> tracks) {
+ this.inspectorId = inspectorId;
+ this.inspectorName = inspectorName;
+ this.inspectId = inspectId;
+ this.startTime = startTime;
+ this.stopTime = stopTime;
+ this.inspectDistance = inspectDistance;
+ this.tracks = tracks;
+ }
+
+ // Getter 鍜� Setter 鏂规硶
+ public String getInspectorId() {
+ return inspectorId;
+ }
+
+ public void setInspectorId(String inspectorId) {
+ this.inspectorId = inspectorId;
+ }
+
+ public String getInspectorName() {
+ return inspectorName;
+ }
+
+ public void setInspectorName(String inspectorName) {
+ this.inspectorName = inspectorName;
+ }
+
+ public String getInspectId() {
+ return inspectId;
+ }
+
+ public void setInspectId(String inspectId) {
+ this.inspectId = inspectId;
+ }
+
+ public String getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public String getStopTime() {
+ return stopTime;
+ }
+
+ public void setStopTime(String stopTime) {
+ this.stopTime = stopTime;
+ }
+
+ public Double getInspectDistance() {
+ return inspectDistance;
+ }
+
+ public void setInspectDistance(Double inspectDistance) {
+ this.inspectDistance = inspectDistance;
+ }
+
+ public List<String> getTracks() {
+ return tracks;
+ }
+
+ public void setTracks(List<String> tracks) {
+ this.tracks = tracks;
+ }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/dao/InspectionDao.java b/app/src/main/java/com/dayu/pipirrapp/dao/InspectionDao.java
index 8903dff..be79f76 100644
--- a/app/src/main/java/com/dayu/pipirrapp/dao/InspectionDao.java
+++ b/app/src/main/java/com/dayu/pipirrapp/dao/InspectionDao.java
@@ -9,7 +9,10 @@
import com.dayu.pipirrapp.bean.db.InspectionBean;
+import java.util.List;
+
import io.reactivex.rxjava3.core.Completable;
+import io.reactivex.rxjava3.core.Maybe;
import io.reactivex.rxjava3.core.Single;
@@ -41,4 +44,11 @@
@Query("SELECT * FROM InspectionBean WHERE mInspectId =:mInspectId ORDER BY startTime DESC LIMIT 1")
Single<InspectionBean> findBymInspectId(String mInspectId);
+
+ /**
+ * 鑾峰彇鎵�鏈夊贰妫�璁板綍
+ * @return
+ */
+ @Query("SELECT * FROM InspectionBean ORDER BY startTime DESC LIMIT 1")
+ Maybe<List<InspectionBean>> findAll();
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/dao/InspectionLocationDao.java b/app/src/main/java/com/dayu/pipirrapp/dao/InspectionLocationDao.java
index efb9a3a..1f87eb9 100644
--- a/app/src/main/java/com/dayu/pipirrapp/dao/InspectionLocationDao.java
+++ b/app/src/main/java/com/dayu/pipirrapp/dao/InspectionLocationDao.java
@@ -38,7 +38,14 @@
//鏌ヨ鎵�鏈夎宸℃id鐨勫潗鏍�
@Query("select * from InspectionLocationBean where mInspectId=:mInspectId ORDER BY locateTime ASC")
- Single<List<InspectionLocationBean>> findByInspectId(String mInspectId);
+ Single<List<InspectionLocationBean>> findBymInspectId(String mInspectId);
+
+
+ //鏌ヨ鎵�鏈夎宸℃id鐨勫潗鏍�
+ @Query("select * from InspectionLocationBean where InspectId=:inspectId ORDER BY locateTime ASC")
+ Single<List<InspectionLocationBean>> findByInspectId(String inspectId);
+
+
//鏌ヨ鎵�鏈夋湭涓婁紶鐨刴InspectId
@Query("SELECT DISTINCT mInspectId FROM InspectionLocationBean WHERE isPost = false")
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 e01d39b..82ab38e 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -84,9 +84,6 @@
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.disposables.CompositeDisposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
-import kotlin.Triple;
-import kotlin.Unit;
-import kotlin.jvm.functions.Function1;
/**
* author: zuo
diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
index 4f63ea2..7218451 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
@@ -12,6 +12,7 @@
import androidx.annotation.Nullable;
import com.dayu.pipirrapp.activity.ChangePSActivity;
+import com.dayu.pipirrapp.activity.InspectListActivity;
import com.dayu.pipirrapp.activity.IssueListActivity;
import com.dayu.pipirrapp.activity.LoginActivity;
import com.dayu.pipirrapp.bean.db.LoginBean;
@@ -95,10 +96,14 @@
Intent intent = new Intent(MyFragment.this.getContext(), IssueListActivity.class);
MyFragment.this.getActivity().startActivity(intent);
});
- binding.refreshDataTV.setOnClickListener(v->{
+ binding.refreshDataTV.setOnClickListener(v -> {
// 鍙戦�佸埛鏂颁簨浠堕�氱煡MapFragment鍒锋柊鏁版嵁
LiveEventBus.get(CommonKeyName.refreshData).post(true);
});
+ binding.inspectListRL.setOnClickListener(v -> {
+ Intent intent = new Intent(MyFragment.this.getContext(), InspectListActivity.class);
+ MyFragment.this.getActivity().startActivity(intent);
+ });
}
private void initData() {
diff --git a/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java b/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java
index 645aff0..0da7abd 100644
--- a/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java
+++ b/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java
@@ -76,7 +76,7 @@
.observeOn(Schedulers.io()).subscribe(inspectionBean -> {
fragment.mInspectionBean = inspectionBean;
// 鏌ヨ褰撳墠鏈叧闂殑宸℃璁板綍涓嬫墍鏈夌殑鍧愭爣
- DaoSingleton.getAsynchInstance(fragment.getContext()).inspectionLocationDao().findByInspectId(inspectionBean.getmInspectId()).subscribeOn(Schedulers.io())
+ DaoSingleton.getAsynchInstance(fragment.getContext()).inspectionLocationDao().findBymInspectId(inspectionBean.getmInspectId()).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).subscribe(inspectionLocationBeans -> {
fragment.aginShowLocation(inspectionLocationBeans);
});
diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java b/app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java
index e5e2620..04f7cf8 100644
--- a/app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java
+++ b/app/src/main/java/com/dayu/pipirrapp/utils/CommonData.java
@@ -7,14 +7,16 @@
* 澶囨敞锛氬叕鍏卞弬鏁�
*/
public class CommonData {
- //澶╁湴鍥�
- public static String webKey = "d8beed89b43160a9a185e5aff431f85d";
- public static String androidKey = "4dace6fd6dad43a9bc08d1ed94ec28d8";
-
+ //澶╁湴鍥続PI瀵嗛挜
+ public static String webKey = "d8beed89b43160a9a185e5aff431f85d"; // Web绔娇鐢ㄧ殑瀵嗛挜
+ public static String androidKey = "4dace6fd6dad43a9bc08d1ed94ec28d8"; // Android绔娇鐢ㄧ殑瀵嗛挜
+
+ // 鑾峰彇褰撳墠浣跨敤鐨勫瘑閽�
+ public static String getCurrentMapKey() {
+ return androidKey; // 鍦ˋndroid搴旂敤涓紭鍏堜娇鐢╝ndroidKey
+ }
public final static String NoTag = "-1";
public final static int TestTag = 0;
public final static int YuanMouTag = 1;
-
-
}
diff --git a/app/src/main/res/drawable/ic_pipenetwork_line.xml b/app/src/main/res/drawable/ic_pipenetwork_line.xml
index a60a4c1..0bc1ca2 100644
--- a/app/src/main/res/drawable/ic_pipenetwork_line.xml
+++ b/app/src/main/res/drawable/ic_pipenetwork_line.xml
@@ -1,12 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
- android:height="2dp"
+ android:height="1dp"
android:viewportWidth="24"
- android:viewportHeight="2">
+ android:viewportHeight="1">
<path
- android:pathData="M0,1L24,1"
- android:strokeWidth="2"
+ android:pathData="M0,0.5L24,0.5"
+ android:strokeWidth="1"
android:strokeColor="#1890FF"
android:strokeLineCap="round"/>
</vector>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_inspect_detail.xml b/app/src/main/res/layout/activity_inspect_detail.xml
new file mode 100644
index 0000000..b19595d
--- /dev/null
+++ b/app/src/main/res/layout/activity_inspect_detail.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <include
+ android:id="@+id/title"
+ layout="@layout/top_title" />
+
+ <WebView
+ android:id="@+id/InspectWebView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@+id/title" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_inspect_list.xml b/app/src/main/res/layout/activity_inspect_list.xml
new file mode 100644
index 0000000..f16090c
--- /dev/null
+++ b/app/src/main/res/layout/activity_inspect_list.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/title"
+ layout="@layout/top_title" />
+
+ <com.scwang.smart.refresh.layout.SmartRefreshLayout
+ android:id="@+id/refresh_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recycler_view"
+ android:layout_width="match_parent"
+
+ android:layout_height="match_parent"
+ android:padding="10dp" />
+
+ </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_search_result.xml b/app/src/main/res/layout/dialog_search_result.xml
index 3711c14..82e4a40 100644
--- a/app/src/main/res/layout/dialog_search_result.xml
+++ b/app/src/main/res/layout/dialog_search_result.xml
@@ -13,7 +13,6 @@
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
-
android:divider="@android:color/darker_gray"
android:dividerHeight="0.5dp"
android:maxHeight="300dp" />
diff --git a/app/src/main/res/layout/fragment_my.xml b/app/src/main/res/layout/fragment_my.xml
index 6478c63..de9e5b5 100644
--- a/app/src/main/res/layout/fragment_my.xml
+++ b/app/src/main/res/layout/fragment_my.xml
@@ -102,13 +102,37 @@
android:layout_marginRight="15dp"
android:src="@drawable/ic_right" />
</RelativeLayout>
+ <RelativeLayout
+ android:id="@+id/inspectListRL"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/item_height"
+ android:layout_below="@+id/issueListRL">
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/item_height"
+ android:background="@color/white"
+ android:gravity="center_vertical"
+ android:paddingLeft="30dp"
+ android:text="宸℃璁板綍"
+ android:layout_marginTop="1dp"
+ android:textColor="@color/black"
+ android:textSize="@dimen/my_item_text_size" />
+
+ <ImageView
+ android:layout_width="25dp"
+ android:layout_height="25dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="15dp"
+ android:src="@drawable/ic_right" />
+ </RelativeLayout>
<RelativeLayout
android:id="@+id/passwordRL"
android:layout_width="match_parent"
android:layout_height="@dimen/item_height"
- android:layout_below="@+id/issueListRL"
+ android:layout_below="@+id/inspectListRL"
android:layout_marginTop="1dp">
<TextView
diff --git a/app/src/main/res/layout/item_inspect.xml b/app/src/main/res/layout/item_inspect.xml
new file mode 100644
index 0000000..bdbaecf
--- /dev/null
+++ b/app/src/main/res/layout/item_inspect.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:background="@drawable/ic_choose_gray_edge"
+ android:orientation="vertical"
+ android:padding="16dp">
+
+ <TextView
+ android:id="@+id/tv_inspect_id"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="#333333"
+ android:textSize="16sp" />
+
+ <TextView
+ android:id="@+id/tv_start_time"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:textColor="#666666"
+ android:textSize="14sp" />
+
+ <TextView
+ android:id="@+id/tv_stop_time"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:textColor="#666666"
+ android:textSize="14sp" />
+
+ <TextView
+ android:id="@+id/tv_inspectDistance"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:textColor="#666666"
+ android:textSize="14sp" />
+
+ </LinearLayout>
+</layout>
\ No newline at end of file
--
Gitblit v1.8.0