From fbb64f0b4151a4fefb90191991aa0fba7b26c52a Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期一, 09 十二月 2024 18:08:59 +0800 Subject: [PATCH] 1.优化MQ相关设置 2.上报问题界面相关 --- app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java | 109 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 92 insertions(+), 17 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..7c63b91 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; @@ -45,12 +46,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; @@ -278,14 +284,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 +304,9 @@ // } } else { //涓嬭浇鐡︾墖 - ApiManager.getInstance().donwLoadTile(androidUrl); + ApiManager.getInstance().donwLoadTile(MapFragment.this.getContext(), androidUrl); } - Log.i(TAG, "鍦ㄧ嚎鍔犺浇>>>" + url); +// Log.d(TAG, "鍦ㄧ嚎鍔犺浇>>>" + url); } @@ -341,7 +347,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 +370,10 @@ //鍋滄宸℃ binding.inspectClose.setOnClickListener(v -> { chageInspecState(InspectionUtils.STOP_INSPECTION); + }); + //涓婃姤闂 + binding.putButton.setOnClickListener(v->{ + }); } @@ -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); @@ -431,12 +454,6 @@ }); } - /** - * 寮�濮嬪贰妫� - */ - private void startInspection() { - - } /** @@ -454,6 +471,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 +495,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 +512,7 @@ startLocation(location); break; - case 2://鏆傚仠 + case InspectionUtils.PAUSE_INSPECTION://鏆傚仠 try { //鍏抽棴瀹氫綅 this.getActivity().stopService(location); @@ -501,17 +520,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 +605,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