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/activity/OrderDealActivity.java | 6 app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java | 24 + app/src/main/res/layout/activity_order_detail.xml | 7 app/src/main/res/layout/activity_add_question.xml | 64 ++++ app/src/main/res/values/colors.xml | 9 app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java | 155 ++++---- app/src/main/res/layout/fragment_map.xml | 15 app/src/main/java/com/dayu/pipirrapp/bean/net/ImageRequest.java | 29 + app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingRequest.java | 27 - app/src/main/res/drawable/ic_green_bg.xml | 7 app/src/main/res/drawable/ic_green_bg_up.xml | 8 app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java | 4 app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java | 4 app/src/main/java/com/dayu/pipirrapp/activity/AddQuestionActivity.java | 404 +++++++++++++++++++++++++ app/src/main/java/com/dayu/pipirrapp/bean/net/AddIssueRequest.java | 70 +-- app/src/main/java/com/dayu/pipirrapp/utils/MyLog.java | 4 app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java | 83 ++++ app/src/main/res/drawable/ic_green_bg_down.xml | 8 18 files changed, 750 insertions(+), 178 deletions(-) diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/AddQuestionActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/AddQuestionActivity.java new file mode 100644 index 0000000..a75fd74 --- /dev/null +++ b/app/src/main/java/com/dayu/pipirrapp/activity/AddQuestionActivity.java @@ -0,0 +1,404 @@ +package com.dayu.pipirrapp.activity; + +import static com.dayu.pipirrapp.net.Constants.BASE_URL; + +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; +import android.view.LayoutInflater; +import android.view.View; + +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.Nullable; +import androidx.lifecycle.Observer; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.SimpleItemAnimator; + +import com.dayu.pipirrapp.MyApplication; +import com.dayu.pipirrapp.adapter.AddPictureAdapter; +import com.dayu.pipirrapp.bean.db.LatLonBean; +import com.dayu.pipirrapp.bean.net.AddIssueRequest; +import com.dayu.pipirrapp.bean.net.InsectionResult; +import com.dayu.pipirrapp.bean.net.UplodFileState; +import com.dayu.pipirrapp.databinding.ActivityAddQuestionBinding; +import com.dayu.pipirrapp.fragment.OrderFragment; +import com.dayu.pipirrapp.net.ApiManager; +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.utils.CommonKeyName; +import com.dayu.pipirrapp.utils.ToastUtil; +import com.dayu.pipirrapp.view.TitleBar; +import com.jeremyliao.liveeventbus.LiveEventBus; +import com.luck.picture.lib.basic.PictureSelectionModel; +import com.luck.picture.lib.basic.PictureSelector; +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; + +/** + * AddQuestionActivity -闂涓婃姤 + * + * @author zuoxiao + * @version 1.0 + * @since 2024-12-09 + */ +public class AddQuestionActivity extends BaseActivity{ + private String TAG = "AddQuestionActivity"; + + ActivityAddQuestionBinding binding; + RecyclerView mRecyclerView; + AddPictureAdapter mAdapter; + int maxSelectNum = 10;//鏈�澶х収鐗� + int maxSelectVideoNum = 0;//鏈�澶ц棰� + private final List<LocalMedia> mData = new ArrayList<>(); + private ActivityResultLauncher<Intent> launcherResult; + private ImageEngine imageEngine; + List<UplodFileState> uplodFileStates = new ArrayList<>(); + LatLonBean latLonBean; + + /** + * 瀹氫綅鐩戝惉 + */ + private Observer<Object> locationObserver = new Observer<Object>() { + @Override + public void onChanged(Object o) { + latLonBean = (LatLonBean) o; + } + }; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding=ActivityAddQuestionBinding.inflate(LayoutInflater.from(this)); + setContentView(binding.getRoot()); + + } + + void initView() { + new TitleBar(this).setTitleText("澶勭悊宸ュ崟").setLeftIco().setLeftIcoListening(v -> AddQuestionActivity.this.finish()); + mRecyclerView = binding.recycler; + FullyGridLayoutManager manager = new FullyGridLayoutManager(this, + 4, GridLayoutManager.VERTICAL, false); + mRecyclerView.setLayoutManager(manager); + RecyclerView.ItemAnimator itemAnimator = mRecyclerView.getItemAnimator(); + if (itemAnimator != null) { + ((SimpleItemAnimator) itemAnimator).setSupportsChangeAnimations(false); + } + mRecyclerView.addItemDecoration(new GridSpacingItemDecoration(4, + DensityUtil.dip2px(this, 8), false)); + mAdapter = new AddPictureAdapter(this, mData); + mAdapter.setSelectMax(maxSelectNum + maxSelectVideoNum); + mRecyclerView.setAdapter(mAdapter); + imageEngine = GlideEngine.createGlideEngine(); + mAdapter.setOnItemClickListener(new AddPictureAdapter.OnItemClickListener() { + @Override + public void onItemClick(View v, int position) { + // 棰勮鍥剧墖銆佽棰戙�侀煶棰� + PictureSelector.create(AddQuestionActivity.this) + .openPreview() + .setImageEngine(imageEngine) + .setExternalPreviewEventListener(new AddQuestionActivity.MyExternalPreviewEventListener()) + .startActivityPreview(position, true, mAdapter.getData()); + } + + @Override + public void openPicture() { + //娣诲姞鍥剧墖 + mOpenPicture(); + } + }); + binding.dealButton.setOnClickListener(v -> { + boolean isAllPost = true; + for (UplodFileState imgData : uplodFileStates) { + if (imgData.getState() == 0) { + isAllPost = false; + } + } + + if (!TextUtils.isEmpty(binding.contentET.getText().toString())) { + if (isAllPost) { + if (uplodFileStates.size() > 0) { + postData(); + } else { + ToastUtil.showToast(AddQuestionActivity.this, "璇蜂笂浼犲浘鐗�"); + } + } else { + ToastUtil.showToast(AddQuestionActivity.this, "鍥剧墖姝e湪涓婁紶璇风◢鍚庢彁浜�"); + } + } else { + ToastUtil.showToast(AddQuestionActivity.this, "璇疯緭鍏ュ弽棣堝唴瀹�"); + } + }); + } + + /** + * 娣诲姞鍥剧墖 + */ + private void mOpenPicture() { + // 杩涘叆鐩稿唽 + PictureSelectionModel selectionModel = PictureSelector.create(this) + .openGallery(SelectMimeType.ofImage()) + .setMaxSelectNum(maxSelectNum) + .setMaxVideoSelectNum(maxSelectVideoNum) + .setImageEngine(imageEngine) + //璁剧疆鍥剧墖鍘嬬缉 + .setCompressEngine(new AddQuestionActivity.ImageFileCompressEngine()) + .setSelectedData(mAdapter.getData()); + + selectionModel.forResult(launcherResult); + } + + /** + * 鍒涘缓涓�涓狝ctivityResultLauncher + * + * @return + */ + private ActivityResultLauncher<Intent> createActivityResultLauncher() { + return registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), + result -> { + int resultCode = result.getResultCode(); + if (resultCode == RESULT_OK) { + ArrayList<LocalMedia> selectList = PictureSelector.obtainSelectorList(result.getData()); + analyticalSelectResults(selectList); + } else if (resultCode == RESULT_CANCELED) { + Log.i(TAG, "onActivityResult PictureSelector Cancel"); + } + }); + } + + /** + * 澶栭儴棰勮鐩戝惉浜嬩欢 + */ + private class MyExternalPreviewEventListener implements OnExternalPreviewEventListener { + + @Override + public void onPreviewDelete(int position) { + mAdapter.remove(position); + mAdapter.notifyItemRemoved(position); + } + + @Override + public boolean onLongPressDownload(Context context, LocalMedia media) { + return false; + } + } + + /** + * 澶勭悊閫夋嫨缁撴灉 + * + * @param result + */ + private void analyticalSelectResults(ArrayList<LocalMedia> result) { + Set<String> existingPaths = new HashSet<>(); + for (UplodFileState uplodData : uplodFileStates) { + existingPaths.add(uplodData.getFilePath()); + } + for (LocalMedia media : result) { + if (media.getWidth() == 0 || media.getHeight() == 0) { + if (PictureMimeType.isHasImage(media.getMimeType())) { + MediaExtraInfo imageExtraInfo = MediaUtils.getImageSize(this, media.getPath()); + media.setWidth(imageExtraInfo.getWidth()); + media.setHeight(imageExtraInfo.getHeight()); + } else if (PictureMimeType.isHasVideo(media.getMimeType())) { + MediaExtraInfo videoExtraInfo = MediaUtils.getVideoSize(this, media.getPath()); + media.setWidth(videoExtraInfo.getWidth()); + media.setHeight(videoExtraInfo.getHeight()); + } + } + Log.i(TAG, "鏂囦欢鍚�: " + media.getFileName()); + Log.i(TAG, "鏄惁鍘嬬缉:" + media.isCompressed()); + Log.i(TAG, "鍘嬬缉:" + media.getCompressPath()); + Log.i(TAG, "鍒濆璺緞:" + media.getPath()); + Log.i(TAG, "缁濆璺緞:" + media.getRealPath()); + Log.i(TAG, "鏄惁瑁佸壀:" + media.isCut()); + Log.i(TAG, "瑁佸壀璺緞:" + media.getCutPath()); + Log.i(TAG, "鏄惁寮�鍚師鍥�:" + media.isOriginal()); + Log.i(TAG, "鍘熷浘璺緞:" + media.getOriginalPath()); + Log.i(TAG, "娌欑洅璺緞:" + media.getSandboxPath()); + Log.i(TAG, "姘村嵃璺緞:" + media.getWatermarkPath()); + Log.i(TAG, "瑙嗛缂╃暐鍥�:" + media.getVideoThumbnailPath()); + Log.i(TAG, "鍘熷瀹介珮: " + media.getWidth() + "x" + media.getHeight()); + Log.i(TAG, "瑁佸壀瀹介珮: " + media.getCropImageWidth() + "x" + media.getCropImageHeight()); + Log.i(TAG, "鏂囦欢澶у皬: " + PictureFileUtils.formatAccurateUnitFileSize(media.getSize())); + Log.i(TAG, "鏂囦欢鏃堕暱: " + media.getDuration()); + String compressPath = media.getCompressPath(); + //鍒ゆ柇鏄惁鏈夎繖涓矾寰勶紝娌℃湁鐨勮瘽涓婁紶璇ュ浘鐗� + if (!existingPaths.contains(compressPath)) { + UplodFileState uplodFileState = new UplodFileState(); + uplodFileState.setFilePath(media.getRealPath()); + uplodFileStates.add(uplodFileState); + // 鎵ц涓婁紶鍥剧墖鐨勬搷浣� + uplodeImg(uplodFileState); + } + + + } + 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()); + + } + }); + } + + + /** + * 鑷畾涔夊浘鐗囧帇缂� + */ + 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(); + } + } + + + //涓婁紶鍥剧墖 + private void uplodeImg(UplodFileState uplodFileState) { + ApiManager.getInstance().uploadFile(this, uplodFileState, new UploadFileListener() { + @Override + public void onBack(UplodFileState state) { + for (UplodFileState uplodFile : uplodFileStates) { + if (uplodFile.getFilePath().equals(state.getFilePath())) { + int index = uplodFileStates.indexOf(uplodFile); + if (index != -1) { + uplodFileStates.set(index, uplodFile); // 鏇存柊瀵瑰簲鐨勯」 + } + } + + } + } + }); + } + + /** + * 涓婃姤澶勭悊缁撴灉 + */ + private void postData() { + AddIssueRequest result = new AddIssueRequest(); + result.setImages(uplodFileStates); + result.setContent(binding.contentET.getText().toString()); + result.setInspectorId(MyApplication.myApplication.userId); + result.setCompleteTime(com.dayu.pipirrapp.utils.DateUtils.getNowDateToMMStr()); + if (latLonBean != null) { + result.setLat(String.valueOf(latLonBean.getLatitude())); + result.setLng(String.valueOf(latLonBean.getLongitude())); + } + ApiManager.getInstance().requestPostHideLoading(this, BASE_URL + "/app/issue/addIssueReport", InsectionResult.class, result.toMap(result), new SubscriberListener<BaseResponse<List<InsectionResult>>>() { + @Override + public void onNext(BaseResponse<List<InsectionResult>> t) { + try { + if (t.isSuccess()) { + ToastUtil.showToastLong(AddQuestionActivity.this, "涓婃姤鎴愬姛"); + setResult(OrderFragment.RESULT_REFRESH); + AddQuestionActivity.this.finish(); + } else { + + } + } catch (Exception e) { + e.printStackTrace(); + CrashReport.postCatchedException(e); + } + + } + }); + } + + /** + * 寮�濮嬪畾浣嶇浉鍏抽�昏緫 + */ + 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); + } + //鑾峰彇瀹氫綅鏈嶅姟浼犺繃鏉ョ殑鍧愭爣鐐� + LiveEventBus.get(CommonKeyName.locationData).observeForever(locationObserver); + } + + + @Override + protected void onDestroy() { + super.onDestroy(); + LiveEventBus.get(CommonKeyName.locationData).removeObserver(locationObserver); + } + +} diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java index d04a7d7..767a6b9 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java @@ -58,7 +58,7 @@ } catch (Exception e) { e.printStackTrace(); } - mqttManager = new MqttManager(this); + mqttManager = new MqttManager(this, this); mqttManager.connect(); LiveEventBus.get(CommonKeyName.NetworkCallback).observeForever(new Observer<Object>() { @Override @@ -190,8 +190,6 @@ private void unregisterNetworkCallback() { NetUtils.unregisterReceiver(this); } - - } 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 58a4ea8..a95d750 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java @@ -22,10 +22,11 @@ import com.dayu.pipirrapp.MyApplication; import com.dayu.pipirrapp.adapter.AddPictureAdapter; import com.dayu.pipirrapp.bean.db.LatLonBean; -import com.dayu.pipirrapp.bean.net.AddProcessingResult; +import com.dayu.pipirrapp.bean.net.AddProcessingRequest; import com.dayu.pipirrapp.bean.net.InsectionResult; import com.dayu.pipirrapp.bean.net.UplodFileState; import com.dayu.pipirrapp.databinding.ActivityOrderDealBinding; +import com.dayu.pipirrapp.fragment.OrderFragment; import com.dayu.pipirrapp.net.ApiManager; import com.dayu.pipirrapp.net.BaseResponse; import com.dayu.pipirrapp.net.subscribers.SubscriberListener; @@ -352,7 +353,7 @@ * 涓婃姤澶勭悊缁撴灉 */ private void postData() { - AddProcessingResult result = new AddProcessingResult(); + AddProcessingRequest result = new AddProcessingRequest(); result.setImages(uplodFileStates); result.setContent(binding.contentET.getText().toString()); result.setInspectorId(MyApplication.myApplication.userId); @@ -368,6 +369,7 @@ try { if (t.isSuccess()) { ToastUtil.showToastLong(OrderDealActivity.this, "涓婃姤鎴愬姛"); + setResult(OrderFragment.RESULT_REFRESH); OrderDealActivity.this.finish(); } else { diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java index 8f1d943..9bcd497 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java @@ -6,28 +6,30 @@ import android.view.LayoutInflater; import android.view.View; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.Nullable; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; +import com.dayu.pipirrapp.MyApplication; import com.dayu.pipirrapp.R; import com.dayu.pipirrapp.adapter.ImageAdapter; import com.dayu.pipirrapp.bean.net.DealDetailResult; import com.dayu.pipirrapp.bean.net.ImageResult; import com.dayu.pipirrapp.bean.net.OrderDetailResult; import com.dayu.pipirrapp.databinding.ActivityOrderDetailBinding; +import com.dayu.pipirrapp.fragment.OrderFragment; 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.tool.FullyGridLayoutManager; -import com.dayu.pipirrapp.tool.GlideEngine; import com.dayu.pipirrapp.utils.ToastUtil; +import com.dayu.pipirrapp.view.ConfirmDialog; import com.dayu.pipirrapp.view.TitleBar; -import com.luck.picture.lib.basic.PictureSelector; import com.luck.picture.lib.decoration.GridSpacingItemDecoration; -import com.luck.picture.lib.engine.ImageEngine; import com.luck.picture.lib.utils.DensityUtil; import java.util.ArrayList; @@ -36,7 +38,6 @@ import java.util.Map; import cc.shinichi.library.ImagePreview; -import cc.shinichi.library.bean.ImageInfo; /** * OrderDetailActivity - @@ -54,6 +55,16 @@ List<ImageResult> images = new ArrayList<>(); RecyclerView mRecyclerView; final List<String> imageInfoList = new ArrayList<>(); + int ProResultStateId; + private ActivityResultLauncher<Intent> activityResultLauncher = + registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == OrderFragment.RESULT_REFRESH) { + setResult(OrderFragment.RESULT_REFRESH); + finish(); + } + }); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -68,8 +79,11 @@ void initView() { workOrderId = this.getIntent().getStringExtra("workOrderId"); if (this.getIntent().hasExtra("proResultId")) { + binding.orderDealLL.setVisibility(View.VISIBLE); proResultId = this.getIntent().getStringExtra("proResultId"); getHandleData(proResultId); + } else { + binding.orderDealLL.setVisibility(View.GONE); } if (!TextUtils.isEmpty(workOrderId)) { getMarkerData(workOrderId); @@ -114,15 +128,20 @@ if (!TextUtils.isEmpty(t.getContent().getProResultId()) && TextUtils.isEmpty(proResultId)) { getHandleData(orderDetailResult.getProResultId()); } - switch (orderDetailResult.getProResultStateId()) { + ProResultStateId = orderDetailResult.getProResultStateId(); + switch (ProResultStateId) { case 0://鏈笂鎶� binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.black)); binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_no_bg)); + binding.dealButton.setBackgroundColor(getResources().getColor(R.color.title_color)); + binding.dealButton.setVisibility(View.VISIBLE); break; case 1://宸蹭笂鎶� binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white)); binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_wait_bg)); - binding.dealButton.setVisibility(View.GONE); + binding.dealButton.setBackgroundColor(getResources().getColor(R.color.delete_color)); + binding.dealButton.setVisibility(View.VISIBLE); + binding.dealButton.setText("鍒犻櫎澶勭悊缁撴灉"); break; case 2://宸插畬鎴� binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white)); @@ -132,6 +151,8 @@ case 3://琚┏鍥� binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white)); binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_reject_bg)); + binding.dealButton.setBackgroundColor(getResources().getColor(R.color.title_color)); + binding.dealButton.setVisibility(View.VISIBLE); break; } @@ -190,11 +211,55 @@ }); } + /** + * 鍒犻櫎澶勭悊璇︽儏 + */ + private void deleteDealData() { + + Map<String, Object> params = new HashMap<>(); + params.put("proResultId", proResultId); + params.put("inspectorId", MyApplication.myApplication.userId); + ApiManager.getInstance().requestPost(this, Constants.BASE_URL + "/app/workOrder/deleteProResult", DealDetailResult.class, params, new SubscriberListener<BaseResponse<DealDetailResult>>() { + @Override + public void onNext(BaseResponse<DealDetailResult> t) { + if (t.isSuccess()) { + if (t.isSuccess()) { + ToastUtil.showToastLong(OrderDetailActivity.this, "鍒犻櫎鎴愬姛!"); + setResult(OrderFragment.RESULT_REFRESH); + OrderDetailActivity.this.finish(); + } + } else { + ToastUtil.showToast(OrderDetailActivity.this, t.getMsg()); + } + } + + @Override + public void onCloose() { + super.onCloose(); + } + + }); + } public void startDealActivity() { - Intent intent = new Intent(this, OrderDealActivity.class); - intent.putExtra("workOrderId", workOrderId); - startActivityForResult(intent, 1); + + switch (ProResultStateId) { + case 0: + case 3: + Intent intent = new Intent(this, OrderDealActivity.class); + intent.putExtra("workOrderId", workOrderId); + activityResultLauncher.launch(intent); + break; + case 1: + ConfirmDialog confirmDialog = new ConfirmDialog(this, "纭鍒犻櫎璇ュ鐞嗙粨鏋滃悧锛�", (confirmDialog1, v) -> { + confirmDialog1.dismiss(); + deleteDealData(); + }); + confirmDialog.show(); + break; + } + + } } diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/AddIssueRequest.java similarity index 70% copy from app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java copy to app/src/main/java/com/dayu/pipirrapp/bean/net/AddIssueRequest.java index 72c365e..de7c782 100644 --- a/app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java +++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/AddIssueRequest.java @@ -4,45 +4,20 @@ import java.util.List; /** - * AddProcessingResult -涓婃姤澶勭悊缁撴灉 + * AddIssueRequest - * * @author zuoxiao * @version 1.0 - * @since 2024-12-05 + * @since 2024-12-09 */ -public class AddProcessingResult extends BaseRequest { +public class AddIssueRequest extends BaseRequest{ String workOrderId;//宸ュ崟ID String inspectorId;//宸℃鍛業D String content;//缁撴灉鍐呭 - List<Image> images = new ArrayList<>(); + List<ImageRequest> images = new ArrayList<>(); String completeTime;//浠诲姟瀹屾垚鏃堕棿 String lng; String lat; - - - public String getLng() { - return lng; - } - - public void setLng(String lng) { - this.lng = lng; - } - - public String getLat() { - return lat; - } - - public void setLat(String lat) { - this.lat = lat; - } - - public String getCompleteTime() { - return completeTime; - } - - public void setCompleteTime(String completeTime) { - this.completeTime = completeTime; - } public String getWorkOrderId() { return workOrderId; @@ -68,38 +43,41 @@ this.content = content; } - public List<Image> getImages() { + public List<ImageRequest> getImages() { return images; } public void setImages(List<UplodFileState> states) { images.clear(); for (UplodFileState data : states) { - Image image = new Image(); + ImageRequest image = new ImageRequest(); image.setWebPath(data.getWebPath()); image.setId(data.getId()); images.add(image); } } - public class Image { - String id; - String webPath; + public String getCompleteTime() { + return completeTime; + } - public String getId() { - return id; - } + public void setCompleteTime(String completeTime) { + this.completeTime = completeTime; + } - public void setId(String id) { - this.id = id; - } + public String getLng() { + return lng; + } - public String getWebPath() { - return webPath; - } + public void setLng(String lng) { + this.lng = lng; + } - public void setWebPath(String webPath) { - this.webPath = webPath; - } + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; } } diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingRequest.java similarity index 73% rename from app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java rename to app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingRequest.java index 72c365e..16c65f9 100644 --- a/app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java +++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingRequest.java @@ -10,11 +10,11 @@ * @version 1.0 * @since 2024-12-05 */ -public class AddProcessingResult extends BaseRequest { +public class AddProcessingRequest extends BaseRequest { String workOrderId;//宸ュ崟ID String inspectorId;//宸℃鍛業D String content;//缁撴灉鍐呭 - List<Image> images = new ArrayList<>(); + List<ImageRequest> images = new ArrayList<>(); String completeTime;//浠诲姟瀹屾垚鏃堕棿 String lng; String lat; @@ -68,38 +68,19 @@ this.content = content; } - public List<Image> getImages() { + public List<ImageRequest> getImages() { return images; } public void setImages(List<UplodFileState> states) { images.clear(); for (UplodFileState data : states) { - Image image = new Image(); + ImageRequest image = new ImageRequest(); image.setWebPath(data.getWebPath()); image.setId(data.getId()); images.add(image); } } - public class Image { - String id; - String webPath; - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getWebPath() { - return webPath; - } - - public void setWebPath(String webPath) { - this.webPath = webPath; - } - } } diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/ImageRequest.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/ImageRequest.java new file mode 100644 index 0000000..ba2ae36 --- /dev/null +++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/ImageRequest.java @@ -0,0 +1,29 @@ +package com.dayu.pipirrapp.bean.net; + +/** + * ImageRequest - + * + * @author zuoxiao + * @version 1.0 + * @since 2024-12-09 + */ +public class ImageRequest { + String id; + String webPath; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWebPath() { + return webPath; + } + + public void setWebPath(String webPath) { + this.webPath = webPath; + } +} 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 87a0040..7c63b91 100644 --- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java +++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java @@ -371,6 +371,10 @@ binding.inspectClose.setOnClickListener(v -> { chageInspecState(InspectionUtils.STOP_INSPECTION); }); + //涓婃姤闂 + binding.putButton.setOnClickListener(v->{ + + }); } diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java index 68aa844..0c356c5 100644 --- a/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java +++ b/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java @@ -8,6 +8,8 @@ import android.view.View; import android.view.ViewGroup; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; @@ -41,7 +43,7 @@ * 澶囨敞锛氶椤� */ public class OrderFragment extends BaseFragment { - + public static final int RESULT_REFRESH = 1001; private final int STATE_DONE = 2; private final int STATE_UNDONE = 1; @@ -54,6 +56,16 @@ int state = 1; List<OrderListResult.Data> recordsListDone = new ArrayList<>(); List<OrderListResult.Data> recordsList = new ArrayList<>(); + RefreshLayout myRefreshLayout; + + private ActivityResultLauncher<Intent> activityResultLauncher = + registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == RESULT_REFRESH) { + myRefreshLayout.autoRefresh(); + } + }); /** * 璁剧疆澶╂皵鐩稿叧淇℃伅 @@ -83,9 +95,7 @@ initView(); //鑾峰彇瀹氫綅鏈嶅姟浼犺繃鏉ョ殑鍧愭爣鐐� LiveEventBus.get(CommonKeyName.MQTTData).observeForever(o -> { - }); - return binding.getRoot(); } @@ -104,7 +114,7 @@ state = STATE_DONE;//1 鏈紑濮� 2 宸插畬鎴� }); //鏈畬鎴� - RefreshLayout myRefreshLayout = (RefreshLayout) binding.refreshLayout; + myRefreshLayout = (RefreshLayout) binding.refreshLayout; myRefreshLayout.setRefreshHeader(new ClassicsHeader(this.getContext())); myRefreshLayout.setRefreshFooter(new ClassicsFooter(this.getContext())); @@ -181,7 +191,7 @@ } else { recordsListDone.addAll(t.getContent().getObj()); } - if (t.getContent().getObj().size() < pageSize) { + if (t.getContent().getPageTotal() == page) { refreshlayout.finishLoadMoreWithNoMoreData(); } } else { @@ -202,8 +212,6 @@ } else { mDoneAdapter.notifyDataSetChanged(); } - - } }); @@ -215,7 +223,7 @@ if (!TextUtils.isEmpty(proResultId)) { intent.putExtra("proResultId", proResultId); } - startActivity(intent); + activityResultLauncher.launch(intent); } diff --git a/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java b/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java index dbea4cd..d669dd5 100644 --- a/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java +++ b/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java @@ -4,7 +4,12 @@ import android.net.ConnectivityManager; import android.util.Log; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.Observer; + import com.dayu.pipirrapp.utils.CommonKeyName; +import com.dayu.pipirrapp.utils.MyLog; +import com.dayu.pipirrapp.utils.NetUtils; import com.jeremyliao.liveeventbus.LiveEventBus; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; @@ -28,15 +33,15 @@ public class MqttManager { private static final String MQTT_BROKER_URL = "tcp://115.236.153.170:30764"; // 淇敼涓轰綘鐨� broker 鍦板潃 - private static final String CLIENT_ID = "mqttx_54052fa0"; + private static final String CLIENT_ID = "mqttx_f62ef124"; private static final String TOPIC = "workOrder"; // 璁㈤槄鐨勪富棰� - private ConnectivityManager connectivityManager; private MqttClient mqttClient; private MqttConnectOptions connectOptions; - boolean isHasNet = false; + boolean isHasNet = true; + private ExecutorService executorService = Executors.newSingleThreadExecutor(); - public MqttManager(Context context) { + public MqttManager(Context context, LifecycleOwner lifecycleOwner) { try { mqttClient = new MqttClient(MQTT_BROKER_URL, CLIENT_ID, new MemoryPersistence()); connectOptions = new MqttConnectOptions(); @@ -45,28 +50,25 @@ connectOptions.setCleanSession(false); connectOptions.setKeepAliveInterval(60); // 璁剧疆淇濇寔杩炴帴鐨勬椂闂� connectOptions.setAutomaticReconnect(true); // 鍚敤鑷姩閲嶈繛 - connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); -// LiveEventBus.get(CommonKeyName.NetworkCallback).observeForever(new Observer<Object>() { -// @Override -// public void onChanged(Object o) { -// switch ((int) o) { -// case NetUtils.Available: -// MyLog.i("MqttManager>>>Available"); -// isHasNet = true; -// reconnect(); -// break; -// case NetUtils.Lost: -// MyLog.i("MqttManager>>>Lost"); -// isHasNet = false; -// try { -// mqttClient.disconnect(); -// } catch (MqttException e) { -// e.printStackTrace(); -// } -// break; -// } -// } -// }); + LiveEventBus.get(CommonKeyName.NetworkCallback).observe(lifecycleOwner, new Observer<Object>() { + @Override + public void onChanged(Object o) { + if (o instanceof Integer) { + switch ((int) o) { + case NetUtils.Available: + MyLog.i("MqttManager>>>Available"); + isHasNet = true; + reconnect(); + break; + case NetUtils.Lost: + MyLog.i("MqttManager>>>Lost"); + isHasNet = false; + disconnect(); + break; + } + } + } + }); } catch (MqttException e) { e.printStackTrace(); } @@ -74,16 +76,43 @@ // 杩炴帴鍒� MQTT broker public void connect() { - ExecutorService executorService = Executors.newSingleThreadExecutor(); executorService.execute(new Runnable() { @Override public void run() { try { + Log.d("MqttManager", "connect寮�濮嬭繛鎺sHasNet:" + isHasNet); if (isHasNet) { + Log.d("MqttManager", "connect寮�濮嬭繛鎺�"); + mqttClient.setCallback(new MqttCallback() { + @Override + public void connectionLost(Throwable cause) { + Log.d("MqttManager", "杩炴帴涓㈠け锛�" + cause.getMessage()); + // 澶勭悊杩炴帴涓㈠け锛屽彲浠ュ皾璇曢噸鏂拌繛鎺� + reconnect(); + } + + @Override + public void messageArrived(String topic, MqttMessage message) throws Exception { + Log.d("MqttManager", "鏀跺埌鐨勬秷:" + new String(message.getPayload())); + // 澶勭悊鏀跺埌鐨勬秷鎭� + } + + @Override + public void deliveryComplete(IMqttDeliveryToken token) { + // 澶勭悊娑堟伅鍙戦�佸畬鎴� + try { + Log.d("MqttManager", "鍙戦�佸畬鎴愶細" + new String(token.getMessage().toString())); + } catch (MqttException e) { + e.printStackTrace(); + } + } + }); mqttClient.connect(connectOptions); if (mqttClient.isConnected()) { - Log.d("MqttManager", "Connected to MQTT broker"); + Log.d("MqttManager", "connect杩炴帴鎴愬姛"); subscribeToTopic(); + } else { + Log.d("MqttManager", "connect杩炴帴澶辫触"); } } else { reconnect(); @@ -102,34 +131,11 @@ try { mqttClient.subscribe(TOPIC, (topic, message) -> { // 鏀跺埌娑堟伅鏃剁殑澶勭悊閫昏緫 - Log.d("MqttManager", "Received message:" + new String(message.getPayload())); + Log.d("MqttManager", "鏀跺埌娑堟伅锛�" + new String(message.getPayload())); //浼犻�扢Q鏀跺埌鐨勪俊鎭� LiveEventBus.get(CommonKeyName.locationData).post(message.getPayload()); }); - mqttClient.setCallback(new MqttCallback() { - @Override - public void connectionLost(Throwable cause) { - Log.d("MqttManager", "connectionLost" + cause.getMessage()); - reconnect(); - // 澶勭悊杩炴帴涓㈠け锛屽彲浠ュ皾璇曢噸鏂拌繛鎺� - } - @Override - public void messageArrived(String topic, MqttMessage message) throws Exception { - Log.d("MqttManager", "Received messageArrived:" + new String(message.getPayload())); - // 澶勭悊鏀跺埌鐨勬秷鎭� - } - - @Override - public void deliveryComplete(IMqttDeliveryToken token) { - // 澶勭悊娑堟伅鍙戦�佸畬鎴� - try { - Log.d("MqttManager", "deliveryComplete锛�" + new String(token.getMessage().toString())); - } catch (MqttException e) { - e.printStackTrace(); - } - } - }); } catch (MqttException e) { e.printStackTrace(); } @@ -147,10 +153,11 @@ // 鏂紑杩炴帴 public void disconnect() { + MyLog.d("MqttManager>>>>鍏抽棴杩炴帴"); try { if (mqttClient != null && mqttClient.isConnected()) { mqttClient.disconnect(); - System.out.println("Disconnected from MQTT broker"); + MyLog.d("MqttManager>>>>鍏抽棴杩炴帴鎴愬姛"); } } catch (MqttException e) { e.printStackTrace(); @@ -159,32 +166,22 @@ // 鑷姩閲嶈繛鏂规硶 private void reconnect() { - try { - if (isHasNet) { - while (!mqttClient.isConnected() && isHasNet) { - Log.d("MqttManager", "Attempting to reconnect..."); - mqttClient.connect(connectOptions); // 閲嶈瘯杩炴帴 - if (mqttClient.isConnected()) { - Log.d("MqttManager", "Connected to MQTT broker"); - subscribeToTopic(); - } - Thread.sleep(5000); // 姣� 5 绉掗噸璇曚竴娆� - } - Log.d("MqttManager", "Reconnected to MQTT broker! isHasNet=true"); - } else { - Log.d("MqttManager", "isHasNet is false"); -// Thread.sleep(5000); -// reconnect(); - } - - } catch (MqttException | InterruptedException e) { +// executorService.execute(() -> { // try { -// Thread.sleep(5000); -// } catch (InterruptedException ex) { -// e.printStackTrace(); -// }// 姣� 5 绉掗噸璇曚竴娆� -// reconnect(); - - } +// MyLog.d("MqttManager>>>>寮�濮嬮噸杩�+isHasNet:" + isHasNet + ">>>mqttClient.isConnected():" + mqttClient.isConnected()); +// while (!mqttClient.isConnected() && isHasNet) { +// MyLog.d("MqttManager>>>>寮�濮嬭繛鎺�"); +// mqttClient.connect(connectOptions); +// if (mqttClient.isConnected()) { +// MyLog.d("MqttManager>>>杩炴帴鎴愬姛"); +// subscribeToTopic(); +// break; +// } +// Thread.sleep(5000); // 姣�5绉掗噸璇曚竴娆� +// } +// } catch (MqttException | InterruptedException e) { +// MyLog.e("MqttManager>>>Reconnection failed" + e.toString()); +// } +// }); } } diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/MyLog.java b/app/src/main/java/com/dayu/pipirrapp/utils/MyLog.java index 265e172..8183869 100644 --- a/app/src/main/java/com/dayu/pipirrapp/utils/MyLog.java +++ b/app/src/main/java/com/dayu/pipirrapp/utils/MyLog.java @@ -19,5 +19,7 @@ Log.d(TAG, data); } - + public static void e(String data) { + Log.e(TAG, data); + } } diff --git a/app/src/main/res/drawable/ic_green_bg.xml b/app/src/main/res/drawable/ic_green_bg.xml new file mode 100644 index 0000000..6b2a18a --- /dev/null +++ b/app/src/main/res/drawable/ic_green_bg.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + + <item android:drawable="@drawable/ic_green_bg_up" /> + <item android:drawable="@drawable/ic_green_bg_down" android:state_pressed="true" /> + +</selector> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_green_bg_down.xml b/app/src/main/res/drawable/ic_green_bg_down.xml new file mode 100644 index 0000000..8f94f74 --- /dev/null +++ b/app/src/main/res/drawable/ic_green_bg_down.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <solid android:color="@color/down_green_down" /> + <corners android:radius="10dp" /> + <stroke + android:width="1dp" + android:color="@color/down_green_down" /> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_green_bg_up.xml b/app/src/main/res/drawable/ic_green_bg_up.xml new file mode 100644 index 0000000..7027858 --- /dev/null +++ b/app/src/main/res/drawable/ic_green_bg_up.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <solid android:color="@color/down_green_up" /> + <corners android:radius="10dp" /> + <stroke + android:width="1dp" + android:color="@color/down_green_up" /> +</shape> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_add_question.xml b/app/src/main/res/layout/activity_add_question.xml new file mode 100644 index 0000000..1817042 --- /dev/null +++ b/app/src/main/res/layout/activity_add_question.xml @@ -0,0 +1,64 @@ +<?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" /> + <LinearLayout + android:id="@+id/center" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_above="@+id/deal_button" + android:layout_below="@+id/title" + android:orientation="vertical" + android:padding="20dp"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍙嶉鍐呭锛�" + android:textColor="@color/black" + android:textSize="@dimen/order_detail_button_size" /> + + + <EditText + android:id="@+id/contentET" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:text="" + android:gravity="start" + android:background="@drawable/edittext_backgroud" + android:minHeight="100dp" + android:maxHeight="200dp"/> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鎻愪氦鍥剧墖锛�" + android:layout_marginTop="10dp" + android:textColor="@color/black" + android:textSize="@dimen/order_detail_button_size" /> + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recycler" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="5dp" + android:background="@color/white" + android:layout_marginTop="10dp" + android:overScrollMode="never" /> + + </LinearLayout> + <TextView + android:id="@+id/deal_button" + android:layout_width="match_parent" + android:layout_height="@dimen/order_detail_button_height" + android:layout_alignParentBottom="true" + android:background="@color/title_color" + android:gravity="center" + android:text="涓婃姤闂" + android:textColor="@color/white" + android:textSize="@dimen/order_detail_button_size" /> +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_order_detail.xml b/app/src/main/res/layout/activity_order_detail.xml index 2650288..5d73d1c 100644 --- a/app/src/main/res/layout/activity_order_detail.xml +++ b/app/src/main/res/layout/activity_order_detail.xml @@ -285,7 +285,7 @@ android:layout_height="wrap_content" android:layout_marginTop="15dp" android:orientation="vertical" - android:visibility="visible"> + android:visibility="gone"> <View android:layout_width="match_parent" @@ -305,7 +305,7 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="5dp" + android:layout_marginTop="10dp" android:gravity="center_vertical" android:orientation="horizontal"> @@ -394,7 +394,8 @@ android:onClick="@{()->itemclidk.startDealActivity()}" android:text="澶勭悊宸ュ崟" android:textColor="@color/white" - android:textSize="@dimen/order_detail_button_size" /> + android:textSize="@dimen/order_detail_button_size" + android:visibility="gone" /> </RelativeLayout> diff --git a/app/src/main/res/layout/fragment_map.xml b/app/src/main/res/layout/fragment_map.xml index e51d0dc..bc3f685 100644 --- a/app/src/main/res/layout/fragment_map.xml +++ b/app/src/main/res/layout/fragment_map.xml @@ -67,7 +67,6 @@ android:layout_alignParentRight="true" android:layout_marginTop="60dp" android:layout_marginRight="15dp" - android:background="@drawable/ic_blue_background" android:padding="10dp" android:text="宸�" @@ -75,6 +74,20 @@ android:textSize="18sp" /> + <TextView + android:id="@+id/putButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:layout_marginTop="120dp" + android:layout_marginRight="15dp" + android:background="@drawable/ic_green_bg" + android:padding="10dp" + android:text="鎶�" + android:textColor="@color/white" + android:textSize="18sp" /> + + <LinearLayout android:id="@+id/bottomLL" android:layout_width="match_parent" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 0510356..8ceb6d4 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,15 +2,17 @@ <resources> <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> - <color name="base_blue">#1890FF</color> + <color name="base_blue">#3D8BFF</color> <color name="down_blue">#3a68fc</color> + <color name="down_green_up">#00cc00</color> + <color name="down_green_down">#006600</color> <color name="ws_pay_alpha">#00000000</color> - <color name="title_color">#1890FF</color> + <color name="title_color">#3D8BFF</color> <color name="bg_color">#F5F5F5</color> <color name="grey">#757575</color> <color name="colorSelected">#ffffff</color> <color name="colorUnselected">#000000</color> - <color name="bottom_color">#1890FF</color> + <color name="bottom_color">#3D8BFF</color> <color name="dialog_btn">#1FA9EC</color> <color name="line_bg">#DADADA</color> <color name="text_on">#BEBEBE</color> @@ -24,4 +26,5 @@ <color name="inspect_text_color_close">#ff0000</color> <color name="inspect_text_color_pause">#7fff00</color> <color name="inspect_rl_bg_color">#ff6347</color> + <color name="delete_color">#ff0000</color> </resources> \ No newline at end of file -- Gitblit v1.8.0