From 9032462238327b971df1a5f72ef343200a5e0103 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 11 十二月 2024 18:13:44 +0800
Subject: [PATCH] 1.问题上报相关 2.问题上报列表相关 3.添加图片上传中断功能 4.图片添加的bug
---
app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java | 114 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 94 insertions(+), 20 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 b4d3094..d4f825f 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -8,6 +8,7 @@
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
+import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -24,6 +25,7 @@
import androidx.lifecycle.Observer;
import com.dayu.pipirrapp.R;
+import com.dayu.pipirrapp.activity.AddIssueActivity;
import com.dayu.pipirrapp.bean.db.CenterPointBean;
import com.dayu.pipirrapp.bean.db.InspectionBean;
import com.dayu.pipirrapp.bean.db.InspectionLocationBean;
@@ -45,12 +47,17 @@
import com.dayu.pipirrapp.tool.InspectionUtils;
import com.dayu.pipirrapp.utils.CommonData;
import com.dayu.pipirrapp.utils.CommonKeyName;
+import com.dayu.pipirrapp.utils.DateUtils;
import com.dayu.pipirrapp.utils.MapJpgUtils;
import com.dayu.pipirrapp.utils.MyLog;
import com.dayu.pipirrapp.utils.SharedPreferencesHelper;
import com.dayu.pipirrapp.utils.ToastUtil;
import com.dayu.pipirrapp.utils.WebViewUtils;
import com.dayu.pipirrapp.view.ConfirmDialog;
+import com.dayu.pipirrapp.view.TipUtil;
+import com.hjq.permissions.OnPermissionCallback;
+import com.hjq.permissions.Permission;
+import com.hjq.permissions.XXPermissions;
import com.jeremyliao.liveeventbus.LiveEventBus;
import com.tencent.bugly.crashreport.CrashReport;
@@ -74,8 +81,6 @@
static String TAG = "MapFragment";
FragmentMapBinding binding;
- //瀹氫綅鐩稿叧
- LocationManager locationManager;
WebView mWebView;
CenterPointBean centerPointBean;
@@ -278,14 +283,14 @@
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
String url = request.getUrl().toString();
- Log.i(TAG, "鍔犺浇鍦板潃>>>" + url);
+// Log.d(TAG, "鍔犺浇鍦板潃>>>" + url);
//鍒ゆ柇褰撳墠鏄惁涓哄姞杞界摝鐗�
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.i(TAG, "鏈湴缂撳瓨>>>" + androidUrl);
+// Log.d(TAG, "鏈湴缂撳瓨>>>" + androidUrl);
// if (MapJpgUtils.getInsatance().validateImageFile(androidUrl,request.))
// 鍒ゆ柇缂撳瓨鏄惁杩囨湡
// if (!MapJpgUtils.getInsatance(MapFragment.this.getContext()).isCacheExpired(cachedTile)) {
@@ -298,9 +303,9 @@
// }
} else {
//涓嬭浇鐡︾墖
- ApiManager.getInstance().donwLoadTile(androidUrl);
+ ApiManager.getInstance().donwLoadTile(MapFragment.this.getContext(), androidUrl);
}
- Log.i(TAG, "鍦ㄧ嚎鍔犺浇>>>" + url);
+// Log.d(TAG, "鍦ㄧ嚎鍔犺浇>>>" + url);
}
@@ -341,7 +346,17 @@
});
//宸℃鎸夐挳
binding.inspectButton.setOnClickListener(v -> {
- chageInspecState(InspectionUtils.STAT_INSPECTION_ONCLICK);
+ if (XXPermissions.isGranted(MapFragment.this.getContext(), Permission.ACCESS_BACKGROUND_LOCATION)) {
+ chageInspecState(InspectionUtils.STAT_INSPECTION_ONCLICK);
+ } else {
+ TipUtil.show(MapFragment.this.getActivity(), "宸℃瀹氫綅闇�瑕佹偍閫夋嫨\"濮嬬粓鍏佽\"瀹氫綅淇℃伅锛屽惁鍒欐棤娉曞贰妫�銆�", new TipUtil.TipListener() {
+ @Override
+ public void onCancle() {
+ getPermissions();
+ }
+ });
+ }
+
});
//鏆傚仠宸℃
binding.inspectPause.setOnClickListener(v -> {
@@ -354,6 +369,11 @@
//鍋滄宸℃
binding.inspectClose.setOnClickListener(v -> {
chageInspecState(InspectionUtils.STOP_INSPECTION);
+ });
+ //涓婃姤闂
+ binding.putButton.setOnClickListener(v -> {
+ Intent issue = new Intent(MapFragment.this.getActivity(), AddIssueActivity.class);
+ MapFragment.this.getActivity().startActivity(issue);
});
}
@@ -398,10 +418,12 @@
*/
private void pushLocationData(InspectionLocationBean inspectionLocationBean) {
inspectionRequest.setInspectId(inspectionLocationBean.getInspectId());
- inspectionRequest.setInspectorId(inspectionLocationBean.getInspectorId());
+ inspectionRequest.setInspectorId(mInspectionBean.getInspectorId());
if (mInspectionBean != null) {
inspectionRequest.setStartTime(mInspectionBean.getStartTime());
- inspectionRequest.setStopTime(mInspectionBean.getStopTime());
+ if (!TextUtils.isEmpty(mInspectionBean.getStopTime())) {
+ inspectionRequest.setStopTime(mInspectionBean.getStopTime());
+ }
}
InspectionRequest.Track track = new InspectionRequest.Track();
track.setLat(inspectionLocationBean.getLat());
@@ -415,7 +437,8 @@
try {
if (t.isSuccess()) {
if (t.getContent() != null) {
-
+ mInspectionBean.setInspectId(String.valueOf(t.getContent().get(0).getInspectId()));
+ InspectionUtils.upataInspectionData(MapFragment.this.getContext(), mInspectionBean);
}
inspectionLocationBean.setPost(true);
InspectionUtils.updateInspectionLocationData(MapFragment.this.getContext(), inspectionLocationBean);
@@ -429,13 +452,6 @@
}
});
- }
-
- /**
- * 寮�濮嬪贰妫�
- */
- private void startInspection() {
-
}
@@ -454,6 +470,8 @@
InspectionLocationBean inspectionLocationBean = InspectionUtils.createInspectionLocation(latLonBean, mInspectionBean);
InspectionUtils.addInspectionLocationData(MapFragment.this.getContext(), inspectionLocationBean);
//鏇存柊鍒板湴鍥�
+ mWebView.evaluateJavascript("javascript:updateInspectionLocation(\"" + latLonBean.getLongitude() + "\",\"" + latLonBean.getLatitude() + "\")", value -> {
+ });
mWebView.evaluateJavascript("javascript:updateLocation(\"" + latLonBean.getLongitude() + "\",\"" + latLonBean.getLatitude() + "\")", value -> {
});
//涓婁紶鍧愭爣
@@ -476,7 +494,7 @@
location.putExtra("isSingle", false);
//0娌℃湁寮�濮嬶紝1寮�濮嬶紝2鏆傚仠,3鍏抽棴
switch (inspectionState) {
- case 0:
+ case InspectionUtils.NO_INSPECTION:
binding.inspectButton.setVisibility(View.VISIBLE);
binding.inspectRL.setVisibility(View.GONE);
binding.inspectButton.setText("宸�");
@@ -493,7 +511,7 @@
startLocation(location);
break;
- case 2://鏆傚仠
+ case InspectionUtils.PAUSE_INSPECTION://鏆傚仠
try {
//鍏抽棴瀹氫綅
this.getActivity().stopService(location);
@@ -501,17 +519,35 @@
binding.inspectPause.setText("缁х画");
binding.inspectRL.setBackgroundColor(this.getContext().getResources().getColor(R.color.inspect_rl_bg_color));
SharedPreferencesHelper.getInstance(this.getContext()).put(CommonKeyName.inspectionState, InspectionUtils.PAUSE_INSPECTION);
+ //娓呴櫎鍦板浘宸℃杞ㄨ抗
+ mWebView.evaluateJavascript("javascript:cleanLoclLay()", value -> {
+ });
} catch (Resources.NotFoundException e) {
e.printStackTrace();
}
break;
- case 3:
+ case InspectionUtils.STOP_INSPECTION://鍏抽棴
ConfirmDialog confirmDialog = new ConfirmDialog(MapFragment.this.getActivity(), "鎻愮ず", "纭鍏抽棴宸℃鍚楋紵", new ConfirmDialog.ConfirmOnClickListener() {
@Override
public void onClick(ConfirmDialog confirmDialog, View v) {
confirmDialog.dismiss();
chageInspecState(InspectionUtils.NO_INSPECTION);
SharedPreferencesHelper.getInstance(MapFragment.this.getContext()).put(CommonKeyName.inspectionState, InspectionUtils.NO_INSPECTION);
+ //鏈夊彲鑳借繕娌¤幏鍙栧埌瀹氫綅淇℃伅灏辩粨鏉熷贰妫�浜�
+ if (lastLatLonBean != null) {
+ //鏇存柊鏈湴鏁版嵁搴撶粨鏉熸椂闂�
+ mInspectionBean.setStopTime(DateUtils.getNowDateStr());
+ InspectionUtils.upataInspectionData(MapFragment.this.getContext(), mInspectionBean);
+ //涓婃姤缁撴潫鏃堕棿
+ InspectionLocationBean inspectionLocationBean = InspectionUtils.createInspectionLocation(lastLatLonBean, mInspectionBean);
+ InspectionUtils.addInspectionLocationData(MapFragment.this.getContext(), inspectionLocationBean);
+ pushLocationData(inspectionLocationBean);
+ mInspectionBean = new InspectionBean();
+ //娓呴櫎鍦板浘宸℃杞ㄨ抗
+ mWebView.evaluateJavascript("javascript:cleanLocationLay()", value -> {
+ });
+ lastLatLonBean = null;
+ }
}
});
confirmDialog.show();
@@ -568,4 +604,42 @@
SharedPreferencesHelper.getInstance(this.getContext()).put(CommonKeyName.inspectionState, InspectionUtils.STAT_INSPECTION);
}
+
+ /**
+ * 鐢宠鍚庡彴瀹氫綅鏉冮檺
+ */
+ private void getPermissions() {
+ try {
+ XXPermissions.with(MapFragment.this.getContext())
+ // 鐢宠澶氫釜鏉冮檺
+ .permission(Permission.ACCESS_BACKGROUND_LOCATION)
+ .request(new OnPermissionCallback() {
+
+ @Override
+ public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
+ if (allGranted) {
+ chageInspecState(InspectionUtils.STAT_INSPECTION_ONCLICK);
+ }
+ }
+
+ @Override
+ public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
+ if (doNotAskAgain) {
+ // 濡傛灉鏄姘镐箙鎷掔粷灏辫烦杞埌搴旂敤鏉冮檺绯荤粺璁剧疆椤甸潰
+ TipUtil.show(MapFragment.this.getActivity(), "琚案涔呮嫆缁濇巿鏉冿紝璇锋墜鍔ㄦ巿浜堝畾浣嶅缁堝厑璁告潈闄�!閫夋嫨鈥滄潈闄愨��-->鈥滀綅缃俊鎭��-->鈥滃缁堝厑璁糕��,鐒跺悗杩斿洖搴旂敤銆�", new TipUtil.TipListener() {
+ @Override
+ public void onCancle() {
+ XXPermissions.startPermissionActivity(MapFragment.this.getContext(), permissions);
+ }
+ });
+ } else {
+ ToastUtil.showToastLong(MapFragment.this.getContext(), "鑾峰彇瀹氫綅濮嬬粓鍏佽鏉冮檺澶辫触");
+ }
+ }
+ });
+
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
}
--
Gitblit v1.8.0