From 7a1caa42ad3282ff22513785fa997953e084b188 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期一, 16 十二月 2024 15:50:31 +0800 Subject: [PATCH] 1.修改app的Icon。 2.优化取水口加载本地数据,改为异步加载。 3.添加取水口点击后显示取水口信息。 4.美化登录界面。 --- app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java | 134 ++++++++++++++++++-------------------------- 1 files changed, 55 insertions(+), 79 deletions(-) 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 a95d750..ffc7a1c 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java @@ -4,8 +4,6 @@ import android.content.Context; import android.content.Intent; -import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; @@ -31,10 +29,12 @@ import com.dayu.pipirrapp.net.BaseResponse; import com.dayu.pipirrapp.net.subscribers.SubscriberListener; import com.dayu.pipirrapp.net.upload.UploadFileListener; -import com.dayu.pipirrapp.service.MyLocationService; import com.dayu.pipirrapp.tool.FullyGridLayoutManager; import com.dayu.pipirrapp.tool.GlideEngine; +import com.dayu.pipirrapp.tool.ImageFileCompressEngine; import com.dayu.pipirrapp.utils.CommonKeyName; +import com.dayu.pipirrapp.utils.MyLog; +import com.dayu.pipirrapp.utils.ServiceUtils; import com.dayu.pipirrapp.utils.ToastUtil; import com.dayu.pipirrapp.view.TitleBar; import com.jeremyliao.liveeventbus.LiveEventBus; @@ -43,28 +43,21 @@ import com.luck.picture.lib.config.PictureMimeType; import com.luck.picture.lib.config.SelectMimeType; import com.luck.picture.lib.decoration.GridSpacingItemDecoration; -import com.luck.picture.lib.engine.CompressFileEngine; import com.luck.picture.lib.engine.ImageEngine; import com.luck.picture.lib.entity.LocalMedia; import com.luck.picture.lib.entity.MediaExtraInfo; import com.luck.picture.lib.interfaces.OnExternalPreviewEventListener; -import com.luck.picture.lib.interfaces.OnKeyValueResultCallbackListener; -import com.luck.picture.lib.utils.DateUtils; import com.luck.picture.lib.utils.DensityUtil; import com.luck.picture.lib.utils.MediaUtils; import com.luck.picture.lib.utils.PictureFileUtils; import com.tencent.bugly.crashreport.CrashReport; -import java.io.File; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; -import top.zibin.luban.CompressionPredicate; -import top.zibin.luban.Luban; -import top.zibin.luban.OnNewCompressListener; -import top.zibin.luban.OnRenameListener; +import retrofit2.Call; /** * OrderDealDetailActivity - @@ -75,7 +68,7 @@ * @since 2024-11-27 */ public class OrderDealActivity extends BaseActivity { - private String TAG = "OrderDealActivity"; + private final String TAG = "OrderDealActivity"; ActivityOrderDealBinding binding; RecyclerView mRecyclerView; AddPictureAdapter mAdapter; @@ -94,6 +87,7 @@ private Observer<Object> locationObserver = new Observer<Object>() { @Override public void onChanged(Object o) { + MyLog.d("OrderDealActivity>>>locationObserver>>"); latLonBean = (LatLonBean) o; } }; @@ -141,6 +135,11 @@ public void openPicture() { //娣诲姞鍥剧墖 mOpenPicture(); + } + + @Override + public void onDeleteClick(int position) { + deleteItem(position); } }); binding.dealButton.setOnClickListener(v -> { @@ -209,6 +208,7 @@ @Override public void onPreviewDelete(int position) { + deleteItem(position); mAdapter.remove(position); mAdapter.notifyItemRemoved(position); } @@ -225,10 +225,13 @@ * @param result */ private void analyticalSelectResults(ArrayList<LocalMedia> result) { + //鑾峰彇褰撳墠uplodFileStates鎵�鏈夌殑鍥剧墖鍦板潃 Set<String> existingPaths = new HashSet<>(); for (UplodFileState uplodData : uplodFileStates) { 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())) { @@ -261,73 +264,38 @@ //鍒ゆ柇鏄惁鏈夎繖涓矾寰勶紝娌℃湁鐨勮瘽涓婁紶璇ュ浘鐗� if (!existingPaths.contains(compressPath)) { UplodFileState uplodFileState = new UplodFileState(); - uplodFileState.setFilePath(media.getRealPath()); + uplodFileState.setFilePath(compressPath); uplodFileStates.add(uplodFileState); // 鎵ц涓婁紶鍥剧墖鐨勬搷浣� uplodeImg(uplodFileState); } - + resultPaths.add(media.getCompressPath()); } - 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()); - + //澶勭悊浠庣浉鍐岃繑鍥炴椂鍙栨秷鐨勫浘鐗囧鐞� + existingPaths.removeAll(resultPaths); + if (!existingPaths.isEmpty()) { + List<UplodFileState> toRemove = new ArrayList<>(); + for (String path : existingPaths) { + for (UplodFileState uplodFileState : uplodFileStates) { + if (path.equals(uplodFileState.getFilePath())) { + uplodFileState.getThisCall().cancel(); + toRemove.add(uplodFileState); + } + } } - }); - } - - - /** - * 鑷畾涔夊浘鐗囧帇缂� - */ - private static class ImageFileCompressEngine implements CompressFileEngine { - - @Override - public void onStartCompress(Context context, ArrayList<Uri> source, OnKeyValueResultCallbackListener call) { - Luban.with(context).load(source).ignoreBy(100).setRenameListener(new OnRenameListener() { - @Override - public String rename(String filePath) { - int indexOf = filePath.lastIndexOf("."); - String postfix = indexOf != -1 ? filePath.substring(indexOf) : ".jpg"; - return DateUtils.getCreateFileName("CMP_") + postfix; - } - }).filter(new CompressionPredicate() { - @Override - public boolean apply(String path) { - if (PictureMimeType.isUrlHasImage(path) && !PictureMimeType.isHasHttp(path)) { - return true; - } - return !PictureMimeType.isUrlHasGif(path); - } - }).setCompressListener(new OnNewCompressListener() { - @Override - public void onStart() { - - } - - @Override - public void onSuccess(String source, File compressFile) { - if (call != null) { - call.onCallback(source, compressFile.getAbsolutePath()); - } - } - - @Override - public void onError(String source, Throwable e) { - if (call != null) { - call.onCallback(source, null); - } - } - }).launch(); + uplodFileStates.removeAll(toRemove); } + runOnUiThread(() -> { + 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()); + + }); } @@ -387,14 +355,7 @@ * 寮�濮嬪畾浣嶇浉鍏抽�昏緫 */ private void startLocation() { - Intent location = new Intent(this, MyLocationService.class); - location.putExtra("isSingle", true); - //寮�鍚畾浣� - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(location); - } else { - startService(location); - } + ServiceUtils.startLocationService(this,true); //鑾峰彇瀹氫綅鏈嶅姟浼犺繃鏉ョ殑鍧愭爣鐐� LiveEventBus.get(CommonKeyName.locationData).observeForever(locationObserver); } @@ -405,4 +366,19 @@ super.onDestroy(); LiveEventBus.get(CommonKeyName.locationData).removeObserver(locationObserver); } + + /** + * 棰勮鍜屽浘鐗囧垪琛ㄥ垹闄ゅ浘鐗囨椂澶勭悊鍒犻櫎浜嬩欢 + */ + private void deleteItem(int position) { + try { + Call<BaseResponse> mCall = uplodFileStates.get(position).getThisCall(); + if (mCall != null) { + mCall.cancel(); + } + } catch (Exception e) { + e.printStackTrace(); + } + uplodFileStates.remove(position); + } } -- Gitblit v1.8.0