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/res/mipmap-xhdpi/logo2.png | 0 app/src/main/java/com/dayu/pipirrapp/utils/WebViewUtils.java | 16 app/src/main/assets/js/map.js | 68 +-- app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java | 21 app/src/main/res/layout/item_issue.xml | 1 app/src/main/java/com/dayu/pipirrapp/tool/MyWebViewInterface.java | 8 app/src/main/java/com/dayu/pipirrapp/activity/IssueListActivity.java | 20 + app/src/main/java/com/dayu/pipirrapp/bean/net/MarkerResult.java | 18 + app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java | 6 app/src/main/java/com/dayu/pipirrapp/adapter/IssueAdapter.java | 8 app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java | 31 + app/src/main/res/layout/activity_issue_detail.xml | 148 +++++++- app/src/main/AndroidManifest.xml | 9 app/src/main/res/layout/item_order.xml | 83 ---- app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java | 8 app/src/main/java/com/dayu/pipirrapp/dao/MarkerDao.java | 4 app/src/main/java/com/dayu/pipirrapp/bean/db/MarkerBean.java | 35 ++ /dev/null | 0 app/src/main/res/layout/fragment_map.xml | 79 +++ app/src/main/java/com/dayu/pipirrapp/activity/IssueDetailActivity.java | 192 +++++++++++ app/src/main/res/layout/activity_login.xml | 16 app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java | 161 ++++----- app/src/main/java/com/dayu/pipirrapp/tool/MarkerUtils.java | 35 ++ app/src/main/res/drawable/ic_right_blue.xml | 13 app/src/main/res/mipmap-xhdpi/logo1.png | 0 25 files changed, 707 insertions(+), 273 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 826c166..3940e11 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,9 +69,9 @@ android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:hardwareAccelerated="true" - android:icon="@mipmap/ic_launcher" + android:icon="@mipmap/logo2" android:label="@string/app_name" - android:roundIcon="@mipmap/ic_launcher_round" + android:roundIcon="@mipmap/logo2" android:supportsRtl="true" android:theme="@style/Theme.PipIrrApp" android:usesCleartextTraffic="true" @@ -104,8 +104,9 @@ </activity> <activity android:name=".activity.OrderDetailActivity" /> <activity android:name=".activity.OrderDealActivity" /> - <activity android:name=".activity.AddIssueActivity"/> - <activity android:name=".activity.IssueListActivity"/> + <activity android:name=".activity.AddIssueActivity" /> + <activity android:name=".activity.IssueListActivity" /> + <activity android:name=".activity.IssueDetailActivity" /> <!-- <activity android:name=".activity.MainActivity" />--> diff --git a/app/src/main/assets/js/map.js b/app/src/main/assets/js/map.js index 367686b..3df1bb6 100644 --- a/app/src/main/assets/js/map.js +++ b/app/src/main/assets/js/map.js @@ -18,11 +18,11 @@ mountMethodToWindow(); }); - window.onload = function () { - console.log(window.onload); // 鎵撳嵃鏁扮粍鏁版嵁 - //鍔犺浇鍧愭爣鐐� - window.Android.loadMarker(); - }; + // window.onload = function () { + // console.log(window.onload); // 鎵撳嵃鏁扮粍鏁版嵁 + // //鍔犺浇鍧愭爣鐐� + // window.Android.loadMarker(); + // }; // 鍒濆鍖栧湴鍥� function initMap() { // 褰卞儚搴曞浘 @@ -170,8 +170,8 @@ window.updateLocation = updateLocation; window.aginShowLocation = aginShowLocation; window.cleanLocationLay = cleanLocationLay; - window.updateInspectionLocation=updateInspectionLocation; - window.cleanLoclLay=cleanLoclLay; + window.updateInspectionLocation = updateInspectionLocation; + window.cleanLoclLay = cleanLoclLay; } @@ -204,9 +204,9 @@ } // 鐐瑰嚮鏍囨敞鐨勪簨浠� - function addMarkerListener(data) { + function addMarkerListener(id,data) { chageMarkerIcon(data); - showWaterIntakeDetail("妯℃嫙鏁版嵁"); + showWaterIntakeDetail(id); } // 淇敼鐐瑰嚮鏍囨敞鐨勫浘鏍� @@ -244,35 +244,33 @@ return data1.lat === data2.lat && data1.lng === data2.lng; } //娣诲姞浠庡師鐢熶紶杩囨潵鐨勫潗鏍囧苟鏄剧ず鍦ㄥ湴鍥句笂 - function addMarker(jsonData) { + function addMarker(id,lng,lat,name) { console.log("function銆嬨�嬨�嬨�嬨�媋ddMarker"); - var array = JSON.parse(jsonData); + var icon = new T.Icon({ iconUrl: markerBluePath, iconSize: new T.Point(27, 27), iconAnchor: new T.Point(10, 25) }); - array.forEach(element => { - let marker = new T.Marker( - new T.LngLat(element[0], element[1]) // 鍒涘缓鏍囨敞 - , { icon: icon }); - //娣诲姞鐐瑰嚮浜嬩欢 - marker.addEventListener("click", (data) => { - addMarkerListener(data) - }); - map.addOverLay(marker); // 灏嗘爣娉ㄦ坊鍔犲埌鍦板浘涓� - let label = new T.Label({ - text: element[2], - position: marker.getLngLat(), - offset: new T.Point(-35, 8), // 璁剧疆鏍囨敞鏂囧瓧鐨勪綅缃� - opacity: 1, // 璁剧疆鏂囨湰鐨勬樉绀轰笉閫忔槑搴︼紙鑼冨洿0-1锛� - }); - label.setBorderLine(0); // 璁剧疆鏂囨湰鐨勮竟妗嗙嚎瀹� - label.setBackgroundColor("transparent"); // 璁剧疆鏂囨湰鐨勮儗鏅壊锛堥�忔槑鑹诧級 - label.setFontColor("#0000FF"); - label.setFontSize(10); - map.addOverLay(label); + let marker = new T.Marker( + new T.LngLat(lng, lat) // 鍒涘缓鏍囨敞 + , { icon: icon }); + //娣诲姞鐐瑰嚮浜嬩欢 + marker.addEventListener("click", (data) => { + addMarkerListener(id,data) }); + map.addOverLay(marker); // 灏嗘爣娉ㄦ坊鍔犲埌鍦板浘涓� + let label = new T.Label({ + text: name, + position: marker.getLngLat(), + offset: new T.Point(-35, 8), // 璁剧疆鏍囨敞鏂囧瓧鐨勪綅缃� + opacity: 1, // 璁剧疆鏂囨湰鐨勬樉绀轰笉閫忔槑搴︼紙鑼冨洿0-1锛� + }); + label.setBorderLine(0); // 璁剧疆鏂囨湰鐨勮竟妗嗙嚎瀹� + label.setBackgroundColor("transparent"); // 璁剧疆鏂囨湰鐨勮儗鏅壊锛堥�忔槑鑹诧級 + label.setFontColor("#0000FF"); + label.setFontSize(10); + map.addOverLay(label); return "addMarker鍔犺浇鎴愬姛" } //鏇存柊瀹氫綅鍧愭爣 @@ -303,7 +301,7 @@ lineLayer.setLngLats(path); map.addOverLay(lineLayer); // 绉诲姩鍦板浘瑙嗚鍒版渶鍚庝竴涓綅缃� - + // }, 500); } @@ -322,18 +320,18 @@ function cleanLocationLay() { if (lineLayer) { map.removeOverLay(lineLayer); - path=[] + path = [] } if (locationMarker) { map.removeOverLay(locationMarker); } if (oldLineLayer) { - aginPath=[] + aginPath = [] map.removeOverLay(oldLineLayer); } } //娓呴櫎鏈湴瀹氫綅鍧愭爣浣嶇疆 - function cleanLoclLay(){ + function cleanLoclLay() { if (locationMarker) { map.removeOverLay(locationMarker); } diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java index 22792da..d1e451e 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java @@ -271,14 +271,16 @@ //澶勭悊浠庣浉鍐岃繑鍥炴椂鍙栨秷鐨勫浘鐗囧鐞� 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(); - uplodFileStates.remove(uplodFileState); + toRemove.add(uplodFileState); } } } + uplodFileStates.removeAll(toRemove); } runOnUiThread(new Runnable() { @Override @@ -351,7 +353,7 @@ * 寮�濮嬪畾浣嶇浉鍏抽�昏緫 */ private void startLocation() { - ServiceUtils.startLocationService(this, true); + ServiceUtils.startLocationService(this, true); //鑾峰彇瀹氫綅鏈嶅姟浼犺繃鏉ョ殑鍧愭爣鐐� LiveEventBus.get(CommonKeyName.locationData).observeForever(locationObserver); } diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/IssueDetailActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/IssueDetailActivity.java new file mode 100644 index 0000000..ce34a36 --- /dev/null +++ b/app/src/main/java/com/dayu/pipirrapp/activity/IssueDetailActivity.java @@ -0,0 +1,192 @@ +package com.dayu.pipirrapp.activity; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import androidx.annotation.Nullable; +import androidx.core.content.res.ResourcesCompat; +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.ImageResult; +import com.dayu.pipirrapp.bean.net.IssueResult; +import com.dayu.pipirrapp.databinding.ActivityIssueDetailBinding; +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.utils.ToastUtil; +import com.dayu.pipirrapp.view.ConfirmDialog; +import com.dayu.pipirrapp.view.TitleBar; +import com.luck.picture.lib.decoration.GridSpacingItemDecoration; +import com.luck.picture.lib.utils.DensityUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import cc.shinichi.library.ImagePreview; + +/** + * IssueDetailActivity - 闂涓婃姤璇︽儏鐣岄潰 + * + * @author zuoxiao + * @version 1.0 + * @since 2024-12-12 + */ +public class IssueDetailActivity extends BaseActivity { + + RecyclerView mRecyclerView; + ActivityIssueDetailBinding binding; + ImageAdapter mAdapter; + List<String> imageInfoList = new ArrayList<>(); + List<ImageResult> images = new ArrayList<>(); + int state; + String issueReportId; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = ActivityIssueDetailBinding.inflate(LayoutInflater.from(this)); + setContentView(binding.getRoot()); + issueReportId = this.getIntent().getStringExtra("issueReportId"); + initView(); + + getData(issueReportId); + } + + private void initView() { + new TitleBar(this).setTitleText("闂璇︽儏").setLeftIco().setLeftIcoListening(v -> IssueDetailActivity.this.finish()); + mRecyclerView = binding.recyclerView; + 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 ImageAdapter(this, images, (v, position) -> { + ImagePreview.getInstance().setContext(IssueDetailActivity.this).setImageList(imageInfoList).start(); + + }); + mRecyclerView.setAdapter(mAdapter); + } + + private void getData(String issueReportId) { + Map<String, Object> params = new HashMap<>(); + params.put("issueReportId", issueReportId); + ApiManager.getInstance().requestGet(this, Constants.BASE_URL + "/app/issue/getOneIssueReport", IssueResult.class, params, new SubscriberListener<BaseResponse<IssueResult>>() { + @Override + public void onNext(BaseResponse<IssueResult> t) { + if (t.isSuccess()) { + if (t.isSuccess()) { + if (t.getContent() != null) { + IssueResult orderDetailResult = t.getContent(); + binding.setData(orderDetailResult); + binding.setItemclidk(IssueDetailActivity.this); + state = orderDetailResult.getStateId(); + images.addAll(t.getContent().getImages()); + for (ImageResult imageResult : images) { + imageInfoList.add(imageResult.getWebPath()); + } + mAdapter.notifyDataSetChanged(); + switch (state) { + case 1://鏈彈鐞� + binding.stateText.setTextColor(IssueDetailActivity.this.getResources().getColor(R.color.black, null)); + binding.stateText.setBackground(ResourcesCompat.getDrawable(IssueDetailActivity.this.getResources(), R.drawable.order_state_no_bg, null)); + binding.callBackLL.setVisibility(View.GONE); + binding.deleteButton.setVisibility(View.VISIBLE); + break; + case 2://宸插彈鐞� + binding.stateText.setTextColor(IssueDetailActivity.this.getResources().getColor(R.color.white, null)); + binding.stateText.setBackground(ResourcesCompat.getDrawable(IssueDetailActivity.this.getResources(), R.drawable.order_state_wait_bg, null)); + binding.callBackLL.setVisibility(View.VISIBLE); + binding.deleteButton.setVisibility(View.GONE); + break; + case 3://3宸插垹闄� + binding.stateText.setTextColor(IssueDetailActivity.this.getResources().getColor(R.color.white, null)); + binding.stateText.setBackground(ResourcesCompat.getDrawable(IssueDetailActivity.this.getResources(), R.drawable.order_state_reject_bg, null)); + binding.callBackLL.setVisibility(View.VISIBLE); + binding.deleteButton.setVisibility(View.GONE); + break; + + } + } else { + ToastUtil.showToast(IssueDetailActivity.this, t.getMsg()); + } + } else if (t.DATA_NULL.equals(t.getCode())) { + //宸ュ崟宸茶鍒犻櫎 + ToastUtil.showToast(IssueDetailActivity.this, "璁㈠崟宸茶鍒犻櫎锛�"); + setResult(OrderFragment.RESULT_REFRESH); + IssueDetailActivity.this.finish(); + + } else { + ToastUtil.showToast(IssueDetailActivity.this, t.getMsg()); + IssueDetailActivity.this.finish(); + } + } else { + ToastUtil.showToast(IssueDetailActivity.this, t.getMsg()); + } + } + + @Override + public void onCloose() { + super.onCloose(); + } + + @Override + public void onError(Throwable e) { + super.onError(e); + ToastUtil.showToastLong(IssueDetailActivity.this, "鑾峰彇璇︽儏澶辫触锛岃绋嶅悗鍐嶈瘯"); + IssueDetailActivity.this.finish(); + } + }); + } + + public void deleteIssue() { + ConfirmDialog confirmDialog = new ConfirmDialog(IssueDetailActivity.this, "纭鍒犻櫎褰撳墠闂鍚楋紵", (confirmDialog1, v1) -> { + confirmDialog1.dismiss(); + delete(issueReportId); + }); + confirmDialog.show(); + } + + private void delete(String issueReportId) { + Map<String, Object> params = new HashMap<>(); + params.put("issueReportId", issueReportId); + params.put("inspectorId", MyApplication.myApplication.userId); + ApiManager.getInstance().requestPost(this, Constants.BASE_URL + "/app/issue/deleteIssueReport", IssueResult.class, params, new SubscriberListener<BaseResponse<IssueResult>>() { + @Override + public void onNext(BaseResponse<IssueResult> t) { + if (t.isSuccess()) { + setResult(IssueListActivity.RESULT_REFRESH); + ToastUtil.showToastLong(IssueDetailActivity.this, "鍒犻櫎鎴愬姛!"); + IssueDetailActivity.this.finish(); + } else { + ToastUtil.showToast(IssueDetailActivity.this, t.getMsg()); + } + } + + @Override + public void onCloose() { + super.onCloose(); + } + + @Override + public void onError(Throwable e) { + super.onError(e); + ToastUtil.showToastLong(IssueDetailActivity.this, "鍒犻櫎澶辫触锛岃绋嶅悗鍐嶈瘯"); + + } + }); + } +} diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/IssueListActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/IssueListActivity.java index 26283d2..a97eef8 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/IssueListActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/IssueListActivity.java @@ -1,8 +1,13 @@ package com.dayu.pipirrapp.activity; +import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; +import androidx.activity.result.ActivityResult; +import androidx.activity.result.ActivityResultCallback; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; @@ -34,11 +39,22 @@ * @since 2024-12-10 */ public class IssueListActivity extends BaseActivity { + public static final int RESULT_REFRESH = 1001; + ActivityIssueListBinding binding; RefreshLayout myRefreshLayout; List<IssueResult> recordsList = new ArrayList<>(); IssueAdapter mAdapter; + + private final ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() { + @Override + public void onActivityResult(ActivityResult result) { + if (result.getResultCode() == RESULT_REFRESH) { + myRefreshLayout.autoRefresh(); + } + } + }); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -114,6 +130,8 @@ } public void startDetail(String issueReportId) { - + Intent intent = new Intent(IssueListActivity.this, IssueDetailActivity.class); + intent.putExtra("issueReportId", issueReportId); + activityResultLauncher.launch(intent); } } 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 2d796c5..ffc7a1c 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java @@ -275,27 +275,26 @@ //澶勭悊浠庣浉鍐岃繑鍥炴椂鍙栨秷鐨勫浘鐗囧鐞� 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(); - uplodFileStates.remove(uplodFileState); + toRemove.add(uplodFileState); } } } + uplodFileStates.removeAll(toRemove); } - 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(); + 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()); + mAdapter.getData().addAll(result); + mAdapter.notifyItemRangeInserted(0, result.size()); - } }); } 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 3eec0f5..9fad7c6 100644 --- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java +++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java @@ -9,6 +9,7 @@ import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.Nullable; +import androidx.core.content.res.ResourcesCompat; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; @@ -131,26 +132,26 @@ ProResultStateId = orderDetailResult.getProResultStateId(); switch (ProResultStateId) { case 0://鏈笂鎶� - binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.black,null)); - binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_no_bg,null)); - binding.dealButton.setBackgroundColor(getResources().getColor(R.color.title_color,null)); + binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.black, null)); + binding.stateText.setBackground(ResourcesCompat.getDrawable(OrderDetailActivity.this.getResources(), R.drawable.order_state_no_bg, null)); + binding.dealButton.setBackgroundColor(getResources().getColor(R.color.title_color, null)); binding.dealButton.setVisibility(View.VISIBLE); break; case 1://宸蹭笂鎶� - binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white,null)); - binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_wait_bg,null)); - binding.dealButton.setBackgroundColor(getResources().getColor(R.color.delete_color,null)); + binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white, null)); + binding.stateText.setBackground(ResourcesCompat.getDrawable(OrderDetailActivity.this.getResources(), R.drawable.order_state_wait_bg, null)); + binding.dealButton.setBackgroundColor(getResources().getColor(R.color.delete_color, null)); binding.dealButton.setVisibility(View.VISIBLE); binding.dealButton.setText("鍒犻櫎澶勭悊缁撴灉"); break; case 2://宸插畬鎴� - binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white,null)); - binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_finish_bg,null)); + binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white, null)); + binding.stateText.setBackground(ResourcesCompat.getDrawable(OrderDetailActivity.this.getResources(), R.drawable.order_state_finish_bg, null)); binding.dealButton.setVisibility(View.GONE); break; case 3://琚┏鍥� - binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white,null)); - binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_reject_bg,null)); + binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white, null)); + binding.stateText.setBackground(ResourcesCompat.getDrawable(OrderDetailActivity.this.getResources(), R.drawable.order_state_reject_bg, null)); binding.dealButton.setBackgroundColor(getResources().getColor(R.color.title_color)); binding.dealButton.setVisibility(View.VISIBLE); break; @@ -165,6 +166,10 @@ setResult(OrderFragment.RESULT_REFRESH); OrderDetailActivity.this.finish(); + } else { + + ToastUtil.showToast(OrderDetailActivity.this, t.getMsg()); + OrderDetailActivity.this.finish(); } } else { ToastUtil.showToast(OrderDetailActivity.this, t.getMsg()); @@ -176,6 +181,12 @@ super.onCloose(); } + @Override + public void onError(Throwable e) { + super.onError(e); + ToastUtil.showToastLong(OrderDetailActivity.this, "鑾峰彇璇︽儏澶辫触锛岃绋嶅悗鍐嶈瘯"); + OrderDetailActivity.this.finish(); + } }); } diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/IssueAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/IssueAdapter.java index 34e5c85..bbb7266 100644 --- a/app/src/main/java/com/dayu/pipirrapp/adapter/IssueAdapter.java +++ b/app/src/main/java/com/dayu/pipirrapp/adapter/IssueAdapter.java @@ -54,18 +54,18 @@ if (recordsList.size() > 0) { IssueResult record = recordsList.get(position); ((ViewHolder) holder).getBinding().setData(record); - ViewHolder mHolder= ((ViewHolder) holder); + ViewHolder mHolder = ((ViewHolder) holder); //鐘舵��;1-鏈彈鐞嗭紝2-宸插彈鐞嗭紝3宸插垹闄� switch (record.getStateId()) { case 1://鏈彈鐞� - mHolder.mBinding.stateText.setTextColor(activity.getResources().getColor(R.color.white, null)); - mHolder.mBinding.stateText.setBackground(activity.getResources().getDrawable(R.drawable.order_state_wait_bg, null)); + mHolder.mBinding.stateText.setTextColor(activity.getResources().getColor(R.color.black, null)); + mHolder.mBinding.stateText.setBackground(activity.getResources().getDrawable(R.drawable.order_state_no_bg, null)); mHolder.mBinding.replyContentLL.setVisibility(View.GONE); mHolder.mBinding.replyTimeLL.setVisibility(View.GONE); break; case 2://宸插彈鐞� mHolder.mBinding.stateText.setTextColor(activity.getResources().getColor(R.color.white, null)); - mHolder.mBinding.stateText.setBackground(activity.getResources().getDrawable(R.drawable.order_state_finish_bg, null)); + mHolder.mBinding.stateText.setBackground(activity.getResources().getDrawable(R.drawable.order_state_wait_bg, null)); mHolder.mBinding.replyContentLL.setVisibility(View.VISIBLE); mHolder.mBinding.replyTimeLL.setVisibility(View.VISIBLE); break; diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/db/MarkerBean.java b/app/src/main/java/com/dayu/pipirrapp/bean/db/MarkerBean.java index 04913c0..c922e95 100644 --- a/app/src/main/java/com/dayu/pipirrapp/bean/db/MarkerBean.java +++ b/app/src/main/java/com/dayu/pipirrapp/bean/db/MarkerBean.java @@ -15,7 +15,9 @@ @PrimaryKey(autoGenerate = true) public long localid; @Nullable - String blockId; + String id;//鏈嶅姟鍣ㄨ繑鍥炵殑鍙栨按鍙d + @Nullable + String blockId;//鍖哄煙id @Nullable String deleted;//閫昏緫鍒犻櫎鏍囪瘑 @Nullable @@ -37,6 +39,37 @@ String villageId;//鎵�鍦ㄦ潙缂栧彿 @Nullable String countyId;//鎵�鍦ㄥ幙缂栧彿 + @Nullable + String address;//鍦板潃 + @Nullable + String blockName;//鐗囧尯鍚嶇О + + @Nullable + public String getAddress() { + return address; + } + + public void setAddress(@Nullable String address) { + this.address = address; + } + + @Nullable + public String getBlockName() { + return blockName; + } + + public void setBlockName(@Nullable String blockName) { + this.blockName = blockName; + } + + @Nullable + public String getId() { + return id; + } + + public void setId(@Nullable String id) { + this.id = id; + } public String getBlockId() { return blockId; diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/MarkerResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/MarkerResult.java index 57ee3ff..8d49c0f 100644 --- a/app/src/main/java/com/dayu/pipirrapp/bean/net/MarkerResult.java +++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/MarkerResult.java @@ -73,6 +73,24 @@ String townId;//鎵�鍦ㄩ晣缂栧彿 String villageId;//鎵�鍦ㄦ潙缂栧彿 String countyId;//鎵�鍦ㄥ幙缂栧彿 + String blockName; + String address; + + public String getBlockName() { + return blockName; + } + + public void setBlockName(String blockName) { + this.blockName = blockName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } public String getBlockId() { return blockId; diff --git a/app/src/main/java/com/dayu/pipirrapp/dao/MarkerDao.java b/app/src/main/java/com/dayu/pipirrapp/dao/MarkerDao.java index 7bae65a..295e868 100644 --- a/app/src/main/java/com/dayu/pipirrapp/dao/MarkerDao.java +++ b/app/src/main/java/com/dayu/pipirrapp/dao/MarkerDao.java @@ -12,6 +12,7 @@ import java.util.List; import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Single; /** * author: zuo @@ -44,4 +45,7 @@ @Query("select * from MarkerBean") List<MarkerBean> findAll(); + + @Query("select * from MarkerBean") + Single<List<MarkerBean>> findAllToSingle(); } 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 fb357d8..986247b 100644 --- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java +++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java @@ -35,13 +35,14 @@ import com.dayu.pipirrapp.bean.net.MarkerResult; import com.dayu.pipirrapp.dao.DaoSingleton; import com.dayu.pipirrapp.databinding.FragmentMapBinding; -import com.dayu.pipirrapp.js.MyWebViewInterface; +import com.dayu.pipirrapp.tool.MyWebViewInterface; 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.observer.MapFragmenObserver; import com.dayu.pipirrapp.tool.InspectionUtils; +import com.dayu.pipirrapp.tool.MarkerUtils; import com.dayu.pipirrapp.utils.CommonData; import com.dayu.pipirrapp.utils.CommonKeyName; import com.dayu.pipirrapp.utils.DateUtils; @@ -63,8 +64,9 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; -import java.util.Random; +import java.util.Map; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.schedulers.Schedulers; @@ -82,7 +84,6 @@ WebView mWebView; CenterPointBean centerPointBean; - String strMarkerJson; //褰撳墠宸℃鐘舵�� int mInspectionState; MapFragmenObserver mapFragmenObserver; @@ -90,9 +91,13 @@ public InspectionBean mInspectionBean; LatLonBean lastLatLonBean; InspectionRequest inspectionRequest; - volatile boolean isHaseAginData = false; + // volatile boolean isHaseAginData = false; volatile boolean webViewIsFinished = false; List<InspectionLocationBean> aginShowlocationBeans; + //web鍔犺浇鏃剁綉椤佃繕娌″姞杞藉畬鏃剁殑鏁版嵁 + List<MarkerBean> webNoFinishMarkerData = new ArrayList<>(); + //鎵�鏈夌殑Marker鏁版嵁閿负marker鐨処d + Map<String, MarkerBean> markerBeanSet = new HashMap<>(); @Override public void onAttach(@NonNull Context context) { @@ -130,14 +135,9 @@ mWebView.loadUrl("file:///android_asset/index.html"); getCenterPoint(); initView(); - initLocalData(); + getMarkerData(); - //鏄剧ず宸℃鐘舵�佸苟涓旀樉绀哄洜鎰忓鍏抽棴鐨勫巻鍙叉暟鎹� - switch (mInspectionState) { - case InspectionUtils.STAT_INSPECTION: - case InspectionUtils.PAUSE_INSPECTION: - InspectionUtils.aginShowLocation(MapFragment.this); - } + chageInspecState(mInspectionState); return binding.getRoot(); } @@ -155,36 +155,23 @@ * 鍒濆鍖栨湰鍦版暟鎹� */ public void initLocalData() { + //璺宠浆涓績鐐� centerPointBean = DaoSingleton.getInstance(MapFragment.this.getContext()).centerPointDao().findFirst(); - List<MarkerBean> markerBeans = DaoSingleton.getInstance(MapFragment.this.getContext()).markerDao().findAll(); - strMarkerJson = WebViewUtils.beanToJson(markerBeans); jumpCenterPoint(); - setMapMarker(); - } - - - /** - * 璺宠浆鍦板浘涓績鐐� - */ - public void jumpCenterPoint() { - if (centerPointBean != null) { - Log.d(TAG, "jumpCenterPoint>>>>>>>>>>>>>>>>>>>" + centerPointBean.getLng() + "\",\"" + centerPointBean.getLat()); - mWebView.evaluateJavascript("javascript:setCenterAndZoom(\"" + centerPointBean.getLng() + "\",\"" + centerPointBean.getLat() + "\",\"" + centerPointBean.getZoomMp() + "\")", value -> { - }); - } - } - - /** - * 娣诲姞鏍囨敞鐐� - */ - public void setMapMarker() { - Log.i("mWebView", "addMarker????????????" + strMarkerJson); - mWebView.evaluateJavascript("javascript:addMarker(\"" + strMarkerJson + "\")", new ValueCallback<String>() { - @Override - public void onReceiveValue(String value) { - Log.i("mWebView", "addMarker锛侊紒锛侊紒锛侊紒锛侊紒锛�" + value); + //娣诲姞鍥爓ebview娌℃湁鍔犺浇瀹屾垚瀵艰嚧娌℃湁娣诲姞鐨勫湴鍥炬爣娉� + if (!webNoFinishMarkerData.isEmpty()) { + for (MarkerBean bean : webNoFinishMarkerData) { + setMapMarker(bean); } - }); + } + //鏄剧ず鎵�鏈夊彇姘村彛 + MarkerUtils.showLocoMarks(MapFragment.this); + //鏄剧ず宸℃鐘舵�佸苟涓旀樉绀哄洜鎰忓鍏抽棴鐨勫巻鍙叉暟鎹� + switch (mInspectionState) { + case InspectionUtils.STAT_INSPECTION: + case InspectionUtils.PAUSE_INSPECTION: + InspectionUtils.aginShowLocation(MapFragment.this); + } } @@ -203,6 +190,7 @@ MarkerResult.Obj result = t.getContent().getObj().get(i); //淇濆瓨鏁版嵁 MarkerBean markerBean = new MarkerBean(); + markerBean.setId(result.getId()); markerBean.setLng(result.getLng()); markerBean.setLat(result.getLat()); markerBean.setBlockId(result.getBlockId()); @@ -211,10 +199,11 @@ markerBean.setTownId(result.getTownId()); markerBean.setVillageId(result.getVillageId()); markerBean.setCountyId(result.getCountyId()); + markerBean.setAddress(result.getAddress()); + markerBean.setBlockName(result.getBlockName()); markerBeans.add(markerBean); + setMapMarker(markerBean); } - strMarkerJson = WebViewUtils.beanToJson(markerBeans); - setMapMarker(); DaoSingleton.getInstance(MapFragment.this.getContext()).markerDao().deleteAll(); // 浣跨敤 RxJava 寮傛鎻掑叆鏁版嵁 DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).markerDao().insertAll(markerBeans) @@ -234,43 +223,6 @@ } } - }); - } - - - /** - * 娣诲姞鏍囨敞鐐� - */ - public void addMarker() { - Random random = new Random(); - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("["); - - // 涓浗缁忕含搴﹁寖鍥� - double minLongitude = 73.43; - double maxLongitude = 135.05; - double minLatitude = 3.52; - double maxLatitude = 53.57; - - for (int i = 0; i < 1000; i++) { - stringBuilder.append("["); - // 鐢熸垚闅忔満缁忓害 - double longitude = minLongitude + (maxLongitude - minLongitude) * random.nextDouble(); - stringBuilder.append(longitude); - stringBuilder.append(","); - // 鐢熸垚闅忔満绾害 - double latitude = minLatitude + (maxLatitude - minLatitude) * random.nextDouble(); - stringBuilder.append(latitude); - stringBuilder.append(",\"237鍙栨按鍙"],"); - } - stringBuilder.append("[116.417854,39.921988,\"235鍙栨按鍙"]]"); - String jsonData = stringBuilder.toString().replace("\\", "\\\\").replace("\"", "\\\""); - Log.i("mWebView", "addMarker????????????" + jsonData); - mWebView.evaluateJavascript("javascript:addMarker(\"" + jsonData + "\")", new ValueCallback<String>() { - @Override - public void onReceiveValue(String value) { - Log.i("mWebView", "addMarker锛侊紒锛侊紒锛侊紒锛侊紒锛�" + value); - } }); } @@ -335,11 +287,11 @@ @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); - webViewIsFinished = true; //椤甸潰鍔犺浇瀹屾垚 - if (isHaseAginData) { - aginShowLocation(null); - } + webViewIsFinished = true; + initLocalData(); + aginShowLocation(null); + } }); //宸℃鎸夐挳 @@ -378,7 +330,14 @@ public void showWaterIntakeDetail(String data) { MyLog.i(data); - binding.bottomLL.setVisibility(View.VISIBLE); + MarkerBean markerBean= markerBeanSet.get(data); + if (markerBean!=null){ + binding.bottomLL.setVisibility(View.VISIBLE); + binding.markerAddress.setText(markerBean.getAddress()); + binding.markerName.setText(markerBean.getName()); + binding.markerBlockName.setText(markerBean.getBlockName()); + } + } @@ -558,7 +517,6 @@ * 鎰忓閫�鍑哄悗缁х画鏄剧ず涔嬪墠鐨勫潗鏍� */ public void aginShowLocation(List<InspectionLocationBean> locationBeans) { - isHaseAginData = true; if (locationBeans != null) { aginShowlocationBeans = locationBeans; } @@ -570,15 +528,46 @@ }); } // 鍚� WebView 娉ㄥ叆鏁版嵁 - aginShowlocationBeans.clear(); - } - } } /** + * 璺宠浆鍦板浘涓績鐐� + */ + public void jumpCenterPoint() { + if (webViewIsFinished) { + if (centerPointBean != null) { + Log.d(TAG, "jumpCenterPoint>>>>>>>>>>>>>>>>>>>" + centerPointBean.getLng() + "\",\"" + centerPointBean.getLat()); + mWebView.evaluateJavascript("javascript:setCenterAndZoom(\"" + centerPointBean.getLng() + "\",\"" + centerPointBean.getLat() + "\",\"" + centerPointBean.getZoomMp() + "\")", value -> { + }); + } + } + } + + /** + * 娣诲姞鏍囨敞鐐� + */ + public void setMapMarker(MarkerBean markerBean) { + if (markerBean != null) { + if (webViewIsFinished) { + Log.i("mWebView", "addMarker????????????"); + mWebView.evaluateJavascript("javascript:addMarker(\"" + markerBean.getId() + "\",\"" + markerBean.getLng() + "\",\"" + markerBean.getLat() + "\",\"" + markerBean.getName() + "\")", new ValueCallback<String>() { + @Override + public void onReceiveValue(String value) { + } + }); + markerBeanSet.put(markerBean.getId(), markerBean); + + } else { + webNoFinishMarkerData.add(markerBean); + } + } + } + + + /** * 寮�濮嬪贰妫�鐨勭浉鍏抽�昏緫 * * @param diff --git a/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java b/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java index 6679193..0bc4fc2 100644 --- a/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java +++ b/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java @@ -55,16 +55,20 @@ * @param fragment * @return */ - public static String getInspectionId(MapFragment fragment) { + public static void getInspectionId(MapFragment fragment) { DaoSingleton.getAsynchInstance(fragment.getContext()).inspectionDao().getMostRecentInspectionWithNoStopTime() .subscribeOn(Schedulers.io()) .observeOn(Schedulers.io()).subscribe(inspectionBean -> { }); - return ""; } + /** + * 缁х画鏄剧ず寮傚父鍏抽棴涔嬪墠鐨勫贰妫�鍧愭爣 + * + * @param fragment + */ public static void aginShowLocation(MapFragment fragment) { //鏌ヨ褰撳墠鏈叧闂殑宸℃璁板綍 DaoSingleton.getAsynchInstance(fragment.getContext()).inspectionDao().getMostRecentInspectionWithNoStopTime() diff --git a/app/src/main/java/com/dayu/pipirrapp/tool/MarkerUtils.java b/app/src/main/java/com/dayu/pipirrapp/tool/MarkerUtils.java new file mode 100644 index 0000000..281cb2c --- /dev/null +++ b/app/src/main/java/com/dayu/pipirrapp/tool/MarkerUtils.java @@ -0,0 +1,35 @@ +package com.dayu.pipirrapp.tool; + +import com.dayu.pipirrapp.bean.db.MarkerBean; +import com.dayu.pipirrapp.dao.DaoSingleton; +import com.dayu.pipirrapp.fragment.MapFragment; + +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.schedulers.Schedulers; + +/** + * MarkerUtils - 鍙栨按鍙g瓑鍦板浘涓婃樉绀虹殑鏍囪瘑鐩稿叧鍏叡鏂规硶 + * + * @author zuoxiao + * @version 1.0 + * @since 2024-12-16 + */ +public class MarkerUtils { + + public static Disposable showLocoMarks(MapFragment fragment) { + //鏌ヨ褰撳墠鏈叧闂殑宸℃璁板綍 + Disposable disposable = DaoSingleton.getAsynchInstance(fragment.getContext()) + .markerDao() + .findAllToSingle() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()).subscribe(markerBeans -> { + for (MarkerBean bean : markerBeans) { + fragment.setMapMarker(bean); + } + }); + return disposable; + } + + +} diff --git a/app/src/main/java/com/dayu/pipirrapp/js/MyWebViewInterface.java b/app/src/main/java/com/dayu/pipirrapp/tool/MyWebViewInterface.java similarity index 92% rename from app/src/main/java/com/dayu/pipirrapp/js/MyWebViewInterface.java rename to app/src/main/java/com/dayu/pipirrapp/tool/MyWebViewInterface.java index 67c87de..525bd15 100644 --- a/app/src/main/java/com/dayu/pipirrapp/js/MyWebViewInterface.java +++ b/app/src/main/java/com/dayu/pipirrapp/tool/MyWebViewInterface.java @@ -1,4 +1,4 @@ -package com.dayu.pipirrapp.js; +package com.dayu.pipirrapp.tool; import android.os.Handler; import android.os.Looper; @@ -15,7 +15,7 @@ */ public class MyWebViewInterface { - private MapFragment myContext; + private final MapFragment myContext; public MyWebViewInterface(MapFragment context) { @@ -74,8 +74,8 @@ // 鍦ㄤ富绾跨▼涓婃墽琛孶I鎿嶄綔 // 鏇存柊鎴栨搷浣淯I鍏冪礌鐨勪唬鐮� // myContext.addMarker(); - myContext.jumpCenterPoint(); - myContext.setMapMarker(); +// myContext.jumpCenterPoint(); +// myContext.setMapMarker(); } }); } diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/WebViewUtils.java b/app/src/main/java/com/dayu/pipirrapp/utils/WebViewUtils.java index 6109ed7..5a3fbb2 100644 --- a/app/src/main/java/com/dayu/pipirrapp/utils/WebViewUtils.java +++ b/app/src/main/java/com/dayu/pipirrapp/utils/WebViewUtils.java @@ -7,7 +7,6 @@ import android.webkit.WebSettings; import android.webkit.WebView; -import com.dayu.pipirrapp.bean.db.CenterPointBean; import com.dayu.pipirrapp.bean.db.MarkerBean; import java.util.List; @@ -124,5 +123,18 @@ return stringBuilder.toString().replace("\\", "\\\\").replace("\"", "\\\""); } - + /** + * bean杞琷son + * + * @param stringBuilder + * @param markerBean + */ + public static String markerBeanToJson(StringBuilder stringBuilder, MarkerBean markerBean) { + stringBuilder.append("{"); + stringBuilder.append(markerBean.getLng()); + stringBuilder.append(","); + stringBuilder.append(markerBean.getLat()); + stringBuilder.append(",\"" + markerBean.getName() + "\"}"); + return stringBuilder.toString().replace("\\", "\\\\").replace("\"", "\\\""); + } } diff --git a/app/src/main/res/drawable/ic_right_blue.xml b/app/src/main/res/drawable/ic_right_blue.xml new file mode 100644 index 0000000..c71b2be --- /dev/null +++ b/app/src/main/res/drawable/ic_right_blue.xml @@ -0,0 +1,13 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="31dp" + android:height="31dp" + android:viewportWidth="48" + android:viewportHeight="48"> + <path + android:pathData="M19,12L31,24L19,36" + android:strokeLineJoin="round" + android:strokeWidth="4" + android:fillColor="#00000000" + android:strokeColor="#3D8BFF" + android:strokeLineCap="round"/> +</vector> diff --git a/app/src/main/res/layout/activity_issue_detail.xml b/app/src/main/res/layout/activity_issue_detail.xml index 03f2b32..5ef2931 100644 --- a/app/src/main/res/layout/activity_issue_detail.xml +++ b/app/src/main/res/layout/activity_issue_detail.xml @@ -6,7 +6,7 @@ <variable name="itemclidk" - type="com.dayu.pipirrapp.activity.OrderDetailActivity" /> + type="com.dayu.pipirrapp.activity.IssueDetailActivity" /> <variable name="data" @@ -31,7 +31,7 @@ android:id="@+id/ScrollView" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_above="@+id/deal_button" + android:layout_above="@+id/delete_button" android:layout_below="@+id/title" android:layout_marginTop="5dp" android:layout_marginBottom="5dp"> @@ -54,6 +54,7 @@ android:layout_width="20dp" android:layout_height="20dp" android:layout_centerVertical="true" + android:layout_marginLeft="3dp" android:layout_marginRight="10dp" android:src="@drawable/ic_issue" /> @@ -70,7 +71,7 @@ android:maxLines="1" android:text="@{data.issueReportId}" android:textColor="@color/title_color" - android:textSize="@dimen/manage_item_text_size" /> + android:textSize="@dimen/order_detail_text_size" /> <TextView @@ -113,7 +114,7 @@ android:layout_height="wrap_content" android:text="涓婃姤鏃堕棿锛�" android:textColor="@color/manage_item_text" - android:textSize="@dimen/manage_item_text_size" /> + android:textSize="@dimen/order_detail_text_size" /> <TextView android:id="@+id/xiangMuJianCheng" @@ -123,7 +124,7 @@ android:maxLines="1" android:text="@{data.reportTime}" android:textColor="@color/manage_item_text" - android:textSize="@dimen/manage_item_text_size" /> + android:textSize="@dimen/order_detail_text_size" /> </LinearLayout> @@ -132,47 +133,152 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - + android:layout_marginTop="10dp" android:orientation="horizontal"> - <TextView - android:id="@+id/daiShenPiTag" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="涓婃姤鍐呭锛�" - android:textColor="@color/manage_item_text" - android:textSize="@dimen/manage_item_text_size" /> + <TextView + android:id="@+id/daiShenPiTag" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="涓婃姤鍐呭锛�" + android:textColor="@color/manage_item_text" + android:textSize="@dimen/order_detail_text_size" /> + + <TextView + android:id="@+id/daiShenPi" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:ellipsize="end" + android:maxLines="1" + android:text="@{data.content}" + android:textColor="@color/manage_item_text" + android:textSize="@dimen/order_detail_text_size" /> + </LinearLayout> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginTop="10dp" + android:orientation="vertical"> + + <TextView + + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="涓婃姤鍥剧墖锛�" + android:textColor="@color/manage_item_text" + android:textSize="@dimen/order_detail_text_size" /> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recyclerView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_centerInParent="true" + android:layout_marginTop="10dp" + android:minHeight="80dp" /> + + + </LinearLayout> + + <LinearLayout + android:id="@+id/callBackLL" + android:layout_width="match_parent" + android:orientation="vertical" + android:layout_height="wrap_content"> + <LinearLayout + android:id="@+id/orderDealLL" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="vertical" + android:visibility="visible"> + + <View + android:layout_width="match_parent" + android:layout_height="2dp" + android:background="@color/base_blue" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="5dp" + android:gravity="center" + android:text="鍥炲淇℃伅" + android:textColor="@color/base_blue" + android:textSize="@dimen/order_detail_text_size" /> + </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:orientation="horizontal"> + <TextView - android:id="@+id/daiShenPi" + + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍥炲鏃堕棿锛�" + android:textColor="@color/manage_item_text" + android:textSize="@dimen/order_detail_text_size" /> + + <TextView + android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1" - android:text="@{data.content}" + android:text="@{data.reportTime}" android:textColor="@color/manage_item_text" - android:textSize="@dimen/manage_item_text_size" /> + android:textSize="@dimen/order_detail_text_size" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:orientation="horizontal"> + + + <TextView + + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍥炲鍐呭锛�" + android:textColor="@color/manage_item_text" + android:textSize="@dimen/order_detail_text_size" /> + + <TextView + + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:ellipsize="end" + android:maxLines="1" + android:text="@{data.replyContent}" + android:textColor="@color/manage_item_text" + android:textSize="@dimen/order_detail_text_size" /> </LinearLayout> - + </LinearLayout> </LinearLayout> </ScrollView> <TextView - android:id="@+id/deal_button" + android:id="@+id/delete_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:onClick="@{()->itemclidk.startDealActivity()}" - android:text="澶勭悊宸ュ崟" + android:onClick="@{()->itemclidk.deleteIssue()}" + android:text="鍒犻櫎闂" android:textColor="@color/white" android:textSize="@dimen/order_detail_button_size" - android:visibility="gone" /> + android:visibility="visible" /> </RelativeLayout> diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index e81a015..f67c259 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -6,6 +6,14 @@ android:orientation="vertical" android:padding="20dp"> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@mipmap/logo1" + android:layout_centerHorizontal="true" + android:layout_marginTop="70dp" + /> + <EditText android:id="@+id/name" @@ -18,9 +26,9 @@ android:background="@drawable/ic_edt_gray_bg" android:hint="璇疯緭鍏ヨ处鍙�" android:maxLines="1" - android:text="15802220723" android:paddingLeft="15dp" - android:singleLine="true" /> + android:singleLine="true" + android:text="15802220723" /> <RelativeLayout android:id="@+id/psLL" @@ -45,9 +53,9 @@ android:hint="璇疯緭鍏ュ瘑鐮�" android:inputType="textPassword" android:maxLines="1" - android:text="abc_123" android:paddingLeft="10dp" - android:singleLine="true" /> + android:singleLine="true" + android:text="abc_123" /> <ImageView android:id="@+id/passwordBtn" diff --git a/app/src/main/res/layout/fragment_map.xml b/app/src/main/res/layout/fragment_map.xml index bc3f685..9d6a57e 100644 --- a/app/src/main/res/layout/fragment_map.xml +++ b/app/src/main/res/layout/fragment_map.xml @@ -7,11 +7,12 @@ <!-- android:id="@+id/webView"--> <!-- android:layout_width="match_parent"--> <!-- android:layout_height="match_parent" />--> + + <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" /> - <RelativeLayout android:id="@+id/inspectRL" @@ -105,30 +106,82 @@ android:orientation="vertical" android:padding="10dp"> - - <TextView + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="鍙栨按鍙�" - android:textColor="@color/black" /> + android:gravity="start" + android:orientation="horizontal"> - <TextView + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍚嶇О锛�" + android:textColor="@color/black" /> + + <TextView + android:id="@+id/markerName" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:ellipsize="end" + android:maxLines="1" + android:text="" + android:textColor="@color/black" /> + </LinearLayout> + + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" - android:text="鍙栨按鍙d綅缃�" - android:textColor="@color/black" /> + android:gravity="start" + android:orientation="horizontal"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鐗囧尯锛�" + android:textColor="@color/black" /> + + <TextView + android:id="@+id/markerBlockName" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:ellipsize="end" + android:maxLines="1" + android:text="" + android:textColor="@color/black" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="5dp" + android:gravity="start" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍦板潃锛�" + android:textColor="@color/black" /> + + <TextView + android:id="@+id/markerAddress" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:ellipsize="end" + android:maxLines="1" + android:text="" + android:textColor="@color/black" /> + </LinearLayout> </LinearLayout> <ImageView - android:layout_width="80dp" - android:layout_height="80dp" + android:layout_width="25dp" + android:layout_height="30dp" android:layout_gravity="center" - android:layout_marginRight="20dp" - android:padding="10dp" - android:src="@drawable/ic_gps_navigation" /> + android:layout_marginRight="10dp" + android:background="@drawable/ic_right_blue" /> </LinearLayout> diff --git a/app/src/main/res/layout/item_issue.xml b/app/src/main/res/layout/item_issue.xml index 3a40ef4..3bfda52 100644 --- a/app/src/main/res/layout/item_issue.xml +++ b/app/src/main/res/layout/item_issue.xml @@ -31,6 +31,7 @@ android:layout_width="20dp" android:layout_height="20dp" android:layout_centerVertical="true" + android:layout_marginLeft="3dp" android:layout_marginRight="10dp" android:src="@drawable/ic_issue" /> diff --git a/app/src/main/res/layout/item_order.xml b/app/src/main/res/layout/item_order.xml index 6a76e2e..f7db4db 100644 --- a/app/src/main/res/layout/item_order.xml +++ b/app/src/main/res/layout/item_order.xml @@ -75,10 +75,7 @@ android:layout_marginTop="5dp" android:orientation="horizontal"> - <LinearLayout - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_weight="1"> + <TextView android:id="@+id/jinduTag" @@ -95,7 +92,7 @@ android:text="@{data.workOrderId}" android:textColor="@color/manage_item_text" android:textSize="@dimen/manage_item_text_size" /> - </LinearLayout> + </LinearLayout> @@ -106,10 +103,7 @@ android:layout_marginTop="5dp" android:orientation="horizontal"> - <LinearLayout - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_weight="1"> + <TextView android:id="@+id/daiShenPiTag" @@ -129,7 +123,7 @@ </LinearLayout> - </LinearLayout> + <LinearLayout android:layout_width="match_parent" @@ -138,13 +132,7 @@ android:gravity="center_vertical" android:orientation="horizontal"> - <LinearLayout - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_weight="1" - android:gravity="center_vertical" - android:orientation="horizontal" - android:paddingRight="5dp"> + <TextView @@ -166,7 +154,7 @@ </LinearLayout> - </LinearLayout> + <LinearLayout @@ -176,13 +164,6 @@ android:gravity="center_vertical" android:orientation="horizontal"> - <LinearLayout - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_weight="1" - android:gravity="center_vertical" - android:orientation="horizontal" - android:paddingRight="5dp"> <TextView android:layout_width="wrap_content" @@ -200,7 +181,7 @@ android:text="@{data.taskContent}" android:textColor="@color/manage_item_text" android:textSize="@dimen/manage_item_text_size" /> - </LinearLayout> + </LinearLayout> @@ -208,16 +189,10 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:gravity="center_horizontal" + android:layout_marginTop="5dp" android:orientation="horizontal"> - <LinearLayout - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginTop="5dp" - android:layout_weight="2" - android:gravity="center_vertical" - android:orientation="horizontal"> + <TextView android:layout_width="wrap_content" @@ -229,54 +204,16 @@ <TextView android:id="@+id/startTime" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{data.dispatchTime}" android:textColor="@color/manage_item_text" android:textSize="@dimen/manage_item_text_size" /> - </LinearLayout> - <LinearLayout - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginLeft="10dp" - android:layout_marginTop="5dp" - android:layout_marginRight="10dp" - android:layout_weight="1" - android:orientation="horizontal" - android:visibility="gone"> - <TextView - android:id="@+id/lookDetail" - android:layout_width="0dp" - android:layout_height="@dimen/manage_item_btn_height" - android:layout_weight="1" - android:background="@drawable/ic_blue_background" - android:gravity="center" - - android:text="鏌ョ湅" - android:textColor="@color/white" - android:textSize="@dimen/manage_item_btn_text_size" /> - - - <TextView - android:id="@+id/examineBtn" - android:layout_width="0dp" - android:layout_height="@dimen/manage_item_btn_height" - android:layout_marginLeft="15dp" - android:layout_weight="1" - android:background="@drawable/ic_blue_background" - android:gravity="center" - - android:text="瀹℃壒" - android:textColor="@color/white" - android:textSize="@dimen/manage_item_btn_text_size" /> - - - </LinearLayout> </LinearLayout> </LinearLayout> diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp deleted file mode 100644 index c209e78..0000000 --- a/app/src/main/res/mipmap-hdpi/ic_launcher.webp +++ /dev/null Binary files differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp deleted file mode 100644 index b2dfe3d..0000000 --- a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +++ /dev/null Binary files differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp deleted file mode 100644 index 4f0f1d6..0000000 --- a/app/src/main/res/mipmap-mdpi/ic_launcher.webp +++ /dev/null Binary files differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp deleted file mode 100644 index 62b611d..0000000 --- a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +++ /dev/null Binary files differ diff --git a/app/src/main/res/mipmap-xhdpi/logo1.png b/app/src/main/res/mipmap-xhdpi/logo1.png new file mode 100644 index 0000000..556c3df --- /dev/null +++ b/app/src/main/res/mipmap-xhdpi/logo1.png Binary files differ diff --git a/app/src/main/res/mipmap-xhdpi/logo2.png b/app/src/main/res/mipmap-xhdpi/logo2.png new file mode 100644 index 0000000..01a7556 --- /dev/null +++ b/app/src/main/res/mipmap-xhdpi/logo2.png Binary files differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp deleted file mode 100644 index 28d4b77..0000000 --- a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +++ /dev/null Binary files differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp deleted file mode 100644 index 9287f50..0000000 --- a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +++ /dev/null Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp deleted file mode 100644 index aa7d642..0000000 --- a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +++ /dev/null Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp deleted file mode 100644 index 9126ae3..0000000 --- a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +++ /dev/null Binary files differ -- Gitblit v1.8.0