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/activity/AddIssueActivity.java | 70 +++------------------------------- 1 files changed, 7 insertions(+), 63 deletions(-) diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java index dea3805..d0f5976 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java @@ -147,7 +147,7 @@ @Override public void onReUpload(UplodFileState uplodFileState) { - uplodeImg(uplodFileState); + FileUploadUtils.uploadFile(AddIssueActivity.this, uplodFileState, uplodFileStates, mAdapter); } }); binding.dealButton.setOnClickListener(v -> { @@ -241,14 +241,6 @@ * @param result */ private void analyticalSelectResults(ArrayList<LocalMedia> result) { - //鑾峰彇褰撳墠uplodFileStates鎵�鏈夌殑鍥剧墖鍦板潃 - Set<String> existingPaths = new HashSet<>(); - for (UplodFileState uplodData : uplodFileStates.values()) { - existingPaths.add(uplodData.getFilePath()); - } - //鑾峰彇鍦≒ictureSelector鐨勭浉鍐屾椂鍙栨秷閫変腑鐨勫浘鐗� - Set<String> resultPaths = new HashSet<>(); - for (LocalMedia media : result) { if (media.getWidth() == 0 || media.getHeight() == 0) { if (PictureMimeType.isHasImage(media.getMimeType())) { @@ -278,63 +270,15 @@ Log.i(TAG, "鏂囦欢澶у皬: " + PictureFileUtils.formatAccurateUnitFileSize(media.getSize())); Log.i(TAG, "鏂囦欢鏃堕暱: " + media.getDuration()); Log.i(TAG, "鎵╁睍鍚�: " + media.getMimeType()); - String compressPath = media.getCompressPath(); - //鍒ゆ柇鏄惁鏈夎繖涓矾寰勶紝娌℃湁鐨勮瘽涓婁紶璇ュ浘鐗囧苟娣诲姞uplodFileStates涓� - if (TextUtils.isEmpty(compressPath)) { - compressPath = media.getRealPath(); - } - if (!existingPaths.contains(compressPath)) { - UplodFileState uplodFileState = new UplodFileState(); - uplodFileState.setFilePath(compressPath); - if (compressPath.toLowerCase().endsWith(".mp4") || compressPath.toLowerCase().endsWith(".avi") || compressPath.toLowerCase().endsWith(".mkv") || compressPath.toLowerCase().endsWith(".mov")) { - // 杩欐槸瑙嗛鏂囦欢 - uplodFileState.setUploadType(UplodFileState.VIDEO_TYPE); - } else { - uplodFileState.setUploadType(UplodFileState.IMG_TYPE); - } - uplodFileState.setExtName(media.getMimeType()); - uplodFileStates.put(compressPath, uplodFileState); - // 鎵ц涓婁紶鍥剧墖鐨勬搷浣� - uplodeImg(uplodFileState); - } - resultPaths.add(media.getCompressPath()); + FileUploadUtils.creatAndUploadFile(this, media, uplodFileStates, mAdapter); } - //澶勭悊浠庣浉鍐岃繑鍥炴椂鍙栨秷鐨勫浘鐗囧鐞� - existingPaths.removeAll(resultPaths); - if (!existingPaths.isEmpty()) { - List<UplodFileState> toRemove = new ArrayList<>(); - for (String path : existingPaths) { - for (UplodFileState uplodFileState : uplodFileStates.values()) { - if (path.equals(uplodFileState.getFilePath())) { - uplodFileState.getThisCall().cancel(); - toRemove.add(uplodFileState); - } - } - } - for (UplodFileState removeFile : toRemove) { - uplodFileStates.remove(removeFile.getFilePath()); - } - } - runOnUiThread(new Runnable() { - @Override - public void run() { - boolean isMaxSize = result.size() == mAdapter.getSelectMax(); - int oldSize = mAdapter.getData().size(); - mAdapter.notifyItemRangeRemoved(0, isMaxSize ? oldSize + 1 : oldSize); - mAdapter.getData().clear(); - mAdapter.getData().addAll(result); - mAdapter.notifyItemRangeInserted(0, result.size()); - - } - }); + // 鑾峰彇 result 涓病鏈夎�� uplodFileStates 涓湁鐨勫湴鍧� + FileUploadUtils.cancelRemovedUploads(result, uplodFileStates); + // 鏇存柊UI + FileUploadUtils.updateUI(result, mAdapter); } - - //涓婁紶鍥剧墖 - private void uplodeImg(UplodFileState uplodFileState) { - FileUploadUtils.uploadFile(this, uplodFileState, uplodFileStates, mAdapter); - } /** * 涓婃姤澶勭悊缁撴灉 @@ -401,7 +345,7 @@ if (uplodFileState != null) { path = uplodFileState.getFilePath(); try { - Call<BaseResponse> mCall = uplodFileStates.get(path).getThisCall(); + Call mCall = uplodFileStates.get(path).getThisCall(); if (mCall != null) { mCall.cancel(); MyLog.d("progressRequestBody>>>" + "cancel銆嬨�嬨�媝ath:" + path); -- Gitblit v1.8.0