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