app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java
@@ -112,7 +112,9 @@ } /** * 显示隐藏密码 */ private void togglePasswordVisibility() { if (isPasswordVisible) { // 如果密码可见,隐藏密码 @@ -240,6 +242,7 @@ isShowCode = true; SharedPreferencesHelper.getInstance(LoginActivity.this).put(CommonKeyName.isShowCode, true); binding.codeLL.setVisibility(View.VISIBLE); getCode(); } } app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
@@ -152,13 +152,13 @@ case 0://未上报 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.setBackground(getResources().getDrawable(R.drawable.bottom_butten_blue_ripple, null)); binding.dealButton.setVisibility(View.VISIBLE); break; case 1://已上报 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.setBackground(getResources().getDrawable(R.drawable.bottom_butten_red_ripple, null)); binding.dealButton.setVisibility(View.VISIBLE); binding.dealButton.setText("删除处理结果"); break; @@ -170,7 +170,7 @@ case 3://被驳回 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.setBackground(getResources().getDrawable(R.drawable.bottom_butten_blue_ripple, null)); binding.dealButton.setVisibility(View.VISIBLE); break; @@ -223,8 +223,8 @@ binding.orderDealLL.setVisibility(View.VISIBLE); binding.setDealData(t.getContent()); if (!t.getContent().getImages().isEmpty()){ for (ImageResult imageResult:t.getContent().getImages()){ if (!t.getContent().getImages().isEmpty()) { for (ImageResult imageResult : t.getContent().getImages()) { ImageBean imageBean = new ImageBean(); imageBean.setId(imageResult.getId()); imageBean.setWebPath(imageResult.getWebPathZip()); @@ -233,15 +233,15 @@ ImageInfo info = new ImageInfo(); info.setOriginUrl(imageResult.getWebPath()); info.setType(Type.IMAGE); if (imageResult.getWebPathZip()!=null){ if (imageResult.getWebPathZip() != null) { info.setThumbnailUrl(imageResult.getWebPathZip()); } imageInfoList.add(info); } } if (!t.getContent().getVideos().isEmpty()){ for (ImageResult imageResult:t.getContent().getVideos()){ if (!t.getContent().getVideos().isEmpty()) { for (ImageResult imageResult : t.getContent().getVideos()) { ImageBean imageBean = new ImageBean(); imageBean.setId(imageResult.getId()); imageBean.setWebPath(imageResult.getWebPathZip()); @@ -250,7 +250,7 @@ ImageInfo info = new ImageInfo(); info.setOriginUrl(imageResult.getWebPath()); info.setThumbnailUrl(imageResult.getWebPath()); if (imageResult.getWebPathZip()!=null){ if (imageResult.getWebPathZip() != null) { info.setThumbnailUrl(imageResult.getWebPathZip()); } info.setType(Type.VIDEO); app/src/main/java/com/dayu/pipirrapp/bean/net/BaseListResult.java
@@ -1,5 +1,7 @@ package com.dayu.pipirrapp.bean.net; import java.util.List; /** * BaseListResult - * @@ -7,9 +9,51 @@ * @version 1.0 * @since 2024-11-26 */ public class BaseListResult { public class BaseListResult<T> { public int getItemTotal() { return itemTotal; } public void setItemTotal(int itemTotal) { this.itemTotal = itemTotal; } public int getPageCurr() { return pageCurr; } public void setPageCurr(int pageCurr) { this.pageCurr = pageCurr; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageTotal() { return pageTotal; } public void setPageTotal(int pageTotal) { this.pageTotal = pageTotal; } public List<T> getObj() { return obj; } public void setObj(List<T> obj) { this.obj = obj; } private int itemTotal; private int pageCurr; private int pageSize; private int pageTotal; private List<T> obj; } app/src/main/java/com/dayu/pipirrapp/bean/net/IntakeListResult.java
New file @@ -0,0 +1,59 @@ package com.dayu.pipirrapp.bean.net; import java.util.List; /** * IntakeListResult - 设备相关信息 * * @author zuoxiao * @version 1.0 * @since 2025-02-25 */ public class IntakeListResult { private int itemTotal; private int pageCurr; private int pageSize; private int pageTotal; private List<IntakeResult> obj; public int getItemTotal() { return itemTotal; } public void setItemTotal(int itemTotal) { this.itemTotal = itemTotal; } public int getPageCurr() { return pageCurr; } public void setPageCurr(int pageCurr) { this.pageCurr = pageCurr; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageTotal() { return pageTotal; } public void setPageTotal(int pageTotal) { this.pageTotal = pageTotal; } public List<IntakeResult> getObj() { return obj; } public void setObj(List<IntakeResult> obj) { this.obj = obj; } } app/src/main/java/com/dayu/pipirrapp/bean/net/IntakeResult.java
New file @@ -0,0 +1,118 @@ package com.dayu.pipirrapp.bean.net; /** * IntakeData -设备详情 * * @author zuoxiao * @version 1.0 * @since 2025-02-25 */ public class IntakeResult { private String intakeId; private String rtuAddr; private String intakeNum; private boolean isOnLine; private boolean isBinded; private String alarm; private double instantAmount; private double totalAmount; private double lat; private double lng; // Getters and Setters public String getIntakeId() { return intakeId; } public void setIntakeId(String intakeId) { this.intakeId = intakeId; } public String getRtuAddr() { return rtuAddr; } public void setRtuAddr(String rtuAddr) { this.rtuAddr = rtuAddr; } public String getIntakeNum() { return intakeNum; } public void setIntakeNum(String intakeNum) { this.intakeNum = intakeNum; } public boolean isOnLine() { return isOnLine; } public void setOnLine(boolean onLine) { isOnLine = onLine; } public boolean isBinded() { return isBinded; } public void setBinded(boolean binded) { isBinded = binded; } public String getAlarm() { return alarm; } public void setAlarm(String alarm) { this.alarm = alarm; } public double getInstantAmount() { return instantAmount; } public void setInstantAmount(double instantAmount) { this.instantAmount = instantAmount; } public double getTotalAmount() { return totalAmount; } public void setTotalAmount(double totalAmount) { this.totalAmount = totalAmount; } public double getLat() { return lat; } public void setLat(double lat) { this.lat = lat; } public double getLng() { return lng; } public void setLng(double lng) { this.lng = lng; } @Override public String toString() { return "IntakeData{" + "intakeId='" + intakeId + '\'' + ", rtuAddr='" + rtuAddr + '\'' + ", intakeNum='" + intakeNum + '\'' + ", isOnLine=" + isOnLine + ", isBinded=" + isBinded + ", alarm='" + alarm + '\'' + ", instantAmount=" + instantAmount + ", totalAmount=" + totalAmount + ", lat=" + lat + ", lng=" + lng + '}'; } } app/src/main/java/com/dayu/pipirrapp/dao/MarkerDao.java
@@ -55,4 +55,7 @@ @Query("SELECT * FROM MarkerBean WHERE name LIKE '%' || :name || '%'") Single<List<MarkerBean>> findByNameLike(String name); @Query("UPDATE MarkerBean SET lng = :lng, lat = :lat WHERE id = :id") Completable updateMarkerLocation(String id, String lng, String lat); } app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -5,6 +5,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; @@ -35,11 +36,14 @@ import com.dayu.pipirrapp.bean.db.PipeNetWorkDataBean; import com.dayu.pipirrapp.bean.db.PipeNetworkBean; import com.dayu.pipirrapp.bean.db.PipeNetworkDataCoordinateBean; import com.dayu.pipirrapp.bean.net.BaseListResult; import com.dayu.pipirrapp.bean.net.CenterPointResult; import com.dayu.pipirrapp.bean.net.DivideListResult; import com.dayu.pipirrapp.bean.net.DivideResult; import com.dayu.pipirrapp.bean.net.InsectionResult; import com.dayu.pipirrapp.bean.net.InspectionRequest; import com.dayu.pipirrapp.bean.net.IntakeListResult; import com.dayu.pipirrapp.bean.net.IntakeResult; import com.dayu.pipirrapp.bean.net.MarkerListResult; import com.dayu.pipirrapp.bean.net.MarkerResult; import com.dayu.pipirrapp.bean.net.PipeNetworkResult; @@ -149,7 +153,7 @@ LiveEventBus.get(CommonKeyName.refreshData).observe(this, o -> { // 显示加载动画 TipUtil.showLoading(MapFragment.this.getActivity(), "正在更新数据..."); // 创建多个Single对象来表示每个网络请求 Single<Boolean> centerPointSingle = Single.create(emitter -> { getCenterPoint(); @@ -173,28 +177,28 @@ // 组合所有Single compositeDisposable.add( Single.zip( centerPointSingle, markerDataSingle, divideListSingle, pipeNetworkListSingle, (centerPoint, marker, divide, pipe) -> true ) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .doFinally(() -> { // 无论成功还是失败,都需要隐藏加载动画 TipUtil.dismissLoading(); }) .subscribe( result -> { ToastUtil.showToast(MapFragment.this.getContext(), "数据更新完成"); }, throwable -> { Log.e(TAG, "数据更新失败: " + throwable.getMessage()); ToastUtil.showToast(MapFragment.this.getContext(), "数据更新失败"); } ) Single.zip( centerPointSingle, markerDataSingle, divideListSingle, pipeNetworkListSingle, (centerPoint, marker, divide, pipe) -> true ) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .doFinally(() -> { // 无论成功还是失败,都需要隐藏加载动画 TipUtil.dismissLoading(); }) .subscribe( result -> { ToastUtil.showToast(MapFragment.this.getContext(), "数据更新完成"); }, throwable -> { Log.e(TAG, "数据更新失败: " + throwable.getMessage()); ToastUtil.showToast(MapFragment.this.getContext(), "数据更新失败"); } ) ); }); } @@ -336,24 +340,31 @@ // 检查本地缓存 File cachedTile = MapJpgUtils.getInsatance().getCachedTile(androidUrl); if (cachedTile != null && cachedTile.exists()) { // Log.d(TAG, "本地缓存>>>" + androidUrl); // if (MapJpgUtils.getInsatance().validateImageFile(androidUrl,request.)) // 判断缓存是否过期 // if (!MapJpgUtils.getInsatance(MapFragment.this.getContext()).isCacheExpired(cachedTile)) { try { // 从缓存加载瓦片 return new WebResourceResponse("image/jpg", "utf-8", new FileInputStream(cachedTile)); } catch (FileNotFoundException e) { e.printStackTrace(); // 检查文件是否超过6个月 long sixMonthsInMillis = 6L * 30 * 24 * 60 * 60 * 1000; // 6个月的毫秒数 long fileAge = System.currentTimeMillis() - cachedTile.lastModified(); if (fileAge > sixMonthsInMillis) { // 如果文件超过6个月,删除旧文件并重新下载 if (cachedTile.delete()) { Log.d(TAG, "已删除过期瓦片: " + androidUrl); } else { Log.e(TAG, "删除过期瓦片失败: " + androidUrl); } ApiManager.getInstance().donwLoadTile(MapFragment.this.getContext(), androidUrl); } else { try { // 从缓存加载瓦片 return new WebResourceResponse("image/jpg", "utf-8", new FileInputStream(cachedTile)); } catch (FileNotFoundException e) { e.printStackTrace(); } } // } } else { //下载瓦片 ApiManager.getInstance().donwLoadTile(MapFragment.this.getContext(), androidUrl); } } return super.shouldInterceptRequest(view, request); } @@ -516,8 +527,13 @@ }); //上报问题 binding.putButton.setOnClickListener(v -> { Intent issue = new Intent(MapFragment.this.getActivity(), AddIssueActivity.class); MapFragment.this.getActivity().startActivity(issue); new ConfirmDialog(MapFragment.this.getActivity(), "确认上报问题吗?", (confirmDialog, v1) -> { Intent issue = new Intent(MapFragment.this.getActivity(), AddIssueActivity.class); MapFragment.this.getActivity().startActivity(issue); confirmDialog.dismiss(); }).show(); }); binding.expandButton.setLegendsArray(new ExpandButton.Quadruple( ContextCompat.getDrawable(requireContext(), R.drawable.marker_blue), @@ -656,8 +672,23 @@ }); } /** * 隐藏底部布局的动画效果 */ private void hideBottomLayoutWithAnimation() { binding.bottomLL.animate() .translationY(binding.bottomLL.getHeight()) .setDuration(300) .setInterpolator(new android.view.animation.AccelerateInterpolator()) .withEndAction(() -> { binding.bottomLL.setVisibility(View.GONE); binding.bottomLL.setTranslationY(0); }) .start(); } public void closeWaterIntakeDetail() { binding.bottomLL.setVisibility(View.GONE); hideBottomLayoutWithAnimation(); } /** @@ -1005,7 +1036,30 @@ binding.lat.setText(lat); mWebView.evaluateJavascript("javascript:cancelPin()", value -> { }); ToastUtil.showToastLong(MapFragment.this.getContext(), "修改成功!"); // 更新本地数据库 compositeDisposable.add( DaoSingleton.getAsynchInstance(MapFragment.this.getContext()) .markerDao() .updateMarkerLocation(markerBean.getId(), lng, lat) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( () -> { // 更新本地缓存Map中的数据 MarkerBean cachedMarker = markerBeanSet.get(markerBean.getId()); if (cachedMarker != null) { cachedMarker.setLng(lng); cachedMarker.setLat(lat); } ToastUtil.showToastLong(MapFragment.this.getContext(), "修改成功!"); }, throwable -> { Log.e(TAG, "更新本地数据库失败: "); ToastUtil.showToastLong(MapFragment.this.getContext(), "修改成功,但本地数据库更新失败"); } ) ); } else { ToastUtil.showToastLong(MapFragment.this.getContext(), t.getMsg()); @@ -1045,6 +1099,7 @@ mMarkerBean.setAddress(result.getAddress()); mMarkerBean.setBlockName(result.getBlockName()); mMarkerBean.setDivideId(result.getDivideId()); getDeviceData(result.getName()); showMarker(mMarkerBean); } else { ToastUtil.showToast(MapFragment.this.getContext(), t.getMsg()); @@ -1055,7 +1110,7 @@ } /** * 显示取水口详情 * 显示分水房详情 */ private void getDivideDetail(DivideBean divideBean) { ApiManager.getInstance().requestGet(this.getContext(), Constants.BASE_URL + "/project/divide/getone/" + divideBean.getDivideId(), DivideResult.class, null, new SubscriberListener<BaseResponse<DivideResult>>() { @@ -1063,6 +1118,7 @@ public void onNext(BaseResponse<DivideResult> t) { if (t.isSuccess()) { DivideBean divideBean = getDivideBean(t.getContent()); getDeviceData(divideBean.getDivideName()); showDivideMarker(divideBean); } else { ToastUtil.showToast(MapFragment.this.getContext(), t.getMsg()); @@ -1073,10 +1129,23 @@ } /** * 显示底部布局的动画效果 */ private void showBottomLayoutWithAnimation() { binding.bottomLL.setVisibility(View.VISIBLE); binding.bottomLL.setTranslationY(binding.bottomLL.getHeight()); binding.bottomLL.animate() .translationY(0) .setDuration(300) .setInterpolator(new android.view.animation.DecelerateInterpolator()) .start(); } /** * 显示取水口详情 */ private void showMarker(MarkerBean markerBean) { binding.bottomLL.setVisibility(View.VISIBLE); showBottomLayoutWithAnimation(); binding.phoneLL.setVisibility(View.GONE); binding.headerLL.setVisibility(View.GONE); binding.editePoint.setVisibility(View.VISIBLE); @@ -1120,7 +1189,7 @@ * @param divideBean */ private void showDivideMarker(DivideBean divideBean) { binding.bottomLL.setVisibility(View.VISIBLE); showBottomLayoutWithAnimation(); binding.phoneLL.setVisibility(View.VISIBLE); binding.headerLL.setVisibility(View.VISIBLE); binding.editePoint.setVisibility(View.GONE); @@ -1128,6 +1197,11 @@ binding.markerName.setText(divideBean.getDivideName()); binding.markerBlockName.setText(divideBean.getBlockName()); binding.phone.setText(divideBean.getPhone()); binding.phone.setOnClickListener(v -> { Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:" + divideBean.getPhone())); startActivity(intent); }); binding.header.setText(divideBean.getHeader()); binding.lat.setText(divideBean.getLat()); binding.lng.setText(divideBean.getLng()); @@ -1384,4 +1458,45 @@ } } /** * 获取设备相关状态信息 * * @param intakeNum */ private void getDeviceData(String intakeNum) { Map<String, Object> params = new HashMap<>(); params.put("intakeNum", intakeNum); ApiManager.getInstance().requestGetHideLoading(MapFragment.this.getContext(), BASE_URL + "/remote/monitor/all_intakes", IntakeListResult.class, params, new SubscriberListener<BaseResponse<IntakeListResult>>() { @Override public void onNext(BaseResponse<IntakeListResult> t) { try { if (t.isSuccess()) { if (t.getContent() != null && t.getContent().getObj().size() > 0) { binding.deviceStateLL.setVisibility(View.VISIBLE); binding.rtuAddressLL.setVisibility(View.VISIBLE); IntakeResult intakeResult = t.getContent().getObj().get(0); if (intakeResult.isOnLine()) { binding.deviceState.setText("在线"); binding.deviceState.setTextColor(getResources().getColor(R.color.down_green_up, null)); } else { binding.deviceState.setText("离线"); binding.deviceState.setTextColor(getResources().getColor(R.color.delete_color, null)); } binding.rtuAddress.setText(intakeResult.getRtuAddr()); } else { binding.deviceStateLL.setVisibility(View.GONE); binding.rtuAddressLL.setVisibility(View.GONE); } } else { ToastUtil.showToastLong(MapFragment.this.getContext(), t.getMsg()); } } catch (Exception e) { e.printStackTrace(); CrashReport.postCatchedException(e); } } }); } } app/src/main/res/drawable/bottom_butten_blue_ripple.xml
New file @@ -0,0 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:attr/colorControlHighlight"> <!-- 背景形状及颜色 --> <item> <shape android:shape="rectangle"> <solid android:color="@color/base_blue" /> <!-- 背景色 --> </shape> </item> <!-- 掩码效果,用于控制波纹范围(可选) --> <item android:id="@android:id/mask"> <shape android:shape="rectangle"> <solid android:color="@color/down_blue" /> <!-- 掩码颜色 --> </shape> </item> </ripple> app/src/main/res/drawable/bottom_butten_red_ripple.xml
New file @@ -0,0 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:attr/colorControlHighlight"> <!-- 背景形状及颜色 --> <item> <shape android:shape="rectangle"> <solid android:color="@color/delete_color" /> <!-- 背景色 --> </shape> </item> <!-- 掩码效果,用于控制波纹范围(可选) --> <item android:id="@android:id/mask"> <shape android:shape="rectangle"> <solid android:color="@color/delete_color_down" /> <!-- 掩码颜色 --> </shape> </item> </ripple> app/src/main/res/drawable/item_ripple.xml
New file @@ -0,0 +1,20 @@ <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:attr/colorControlHighlight"> <!-- 背景形状及颜色 --> <item> <shape android:shape="rectangle"> <solid android:color="@color/white" /> <!-- 背景色 --> <corners android:radius="7dp" /> <stroke android:width="1dp" android:color="#ededed" /> </shape> </item> <!-- 掩码效果,用于控制波纹范围(可选) --> <item android:id="@android:id/mask"> <shape android:shape="rectangle"> <solid android:color="@color/text_color" /> <!-- 掩码颜色 --> </shape> </item> </ripple> app/src/main/res/drawable/my_item_ripple.xml
@@ -5,7 +5,7 @@ <item> <shape android:shape="rectangle"> <solid android:color="@color/white" /> <!-- 背景色 --> <corners android:radius="10dp" /> <!-- 圆角半径 --> <!-- <corners android:radius="10dp" /> <!– 圆角半径 –>--> </shape> </item> <!-- 掩码效果,用于控制波纹范围(可选) --> app/src/main/res/layout/activity_add_issue.xml
@@ -81,7 +81,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/order_detail_button_height" android:layout_alignParentBottom="true" android:background="@color/title_color" android:background="@drawable/bottom_butten_blue_ripple" android:gravity="center" android:text="上报问题" android:textColor="@color/white" app/src/main/res/layout/activity_issue_detail.xml
@@ -300,8 +300,8 @@ 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:background="@drawable/bottom_butten_blue_ripple" android:onClick="@{()->itemclidk.deleteIssue()}" android:text="删除问题" android:textColor="@color/white" app/src/main/res/layout/activity_login.xml
@@ -27,6 +27,7 @@ android:hint="请输入账号" android:maxLines="1" android:paddingLeft="15dp" android:maxLength="11" android:singleLine="true" android:text="15802220723" /> app/src/main/res/layout/activity_order_deal.xml
@@ -31,7 +31,7 @@ android:layout_above="@+id/deal_button" android:layout_below="@+id/title" android:orientation="vertical" android:padding="20dp"> > <RelativeLayout @@ -39,6 +39,10 @@ android:layout_width="match_parent" android:layout_height="40dp" android:gravity="center" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:layout_marginTop="20dp" android:background="@drawable/my_item_ripple" android:orientation="horizontal"> <TextView @@ -85,6 +89,8 @@ android:layout_width="match_parent" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:orientation="horizontal"> <TextView @@ -112,12 +118,16 @@ android:gravity="start" android:maxHeight="200dp" android:minHeight="100dp" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:text="" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:orientation="horizontal"> <TextView @@ -140,6 +150,8 @@ android:id="@+id/recycler" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:background="@color/white" android:overScrollMode="never" @@ -151,8 +163,8 @@ android:id="@+id/deal_button" android:layout_width="match_parent" android:layout_height="@dimen/order_detail_button_height" android:background="@drawable/bottom_butten_blue_ripple" android:layout_alignParentBottom="true" android:background="@color/title_color" android:gravity="center" android:text="提 交" android:textColor="@color/white" app/src/main/res/layout/activity_order_detail.xml
@@ -420,7 +420,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/order_detail_button_height" android:layout_alignParentBottom="true" android:background="@color/title_color" android:background="@drawable/bottom_butten_blue_ripple" android:gravity="center" android:onClick="@{()->itemclidk.startDealActivity()}" android:text="处理工单" app/src/main/res/layout/fragment_map.xml
@@ -232,7 +232,54 @@ android:textColor="@color/black" android:textSize="@dimen/common_text_size_little" /> </LinearLayout> <LinearLayout android:id="@+id/deviceStateLL" android:layout_width="match_parent" android:layout_height="25dp" android:gravity="center_vertical" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="设备:" android:textColor="@color/black" android:textSize="@dimen/common_text_size_little" /> <TextView android:id="@+id/deviceState" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1" android:text="未知" android:textColor="@color/black" android:textSize="@dimen/common_text_size_little" /> </LinearLayout> <LinearLayout android:id="@+id/rtuAddressLL" android:layout_width="match_parent" android:layout_height="25dp" android:gravity="center_vertical" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RTU地址:" android:textColor="@color/black" android:textSize="@dimen/common_text_size_little" /> <TextView android:id="@+id/rtuAddress" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1" android:text="未知" android:textColor="@color/black" android:textSize="@dimen/common_text_size_little" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="25dp" @@ -275,8 +322,9 @@ android:id="@+id/lng" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_weight="4" android:ellipsize="end" android:text="" android:maxLines="1" android:textColor="@color/manage_item_text" android:textSize="@dimen/common_text_size_little" /> @@ -292,15 +340,17 @@ android:id="@+id/lat" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_weight="4" android:ellipsize="end" android:maxLines="1" android:text="" android:textColor="@color/manage_item_text" android:textSize="@dimen/common_text_size_little" /> <ImageView android:id="@+id/editePoint" android:layout_width="wrap_content" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:padding="2dp" android:src="@drawable/ic_edit_btn" /> app/src/main/res/layout/fragment_my.xml
@@ -142,8 +142,6 @@ android:id="@+id/changePS" android:layout_width="match_parent" android:layout_height="@dimen/item_height" android:background="@color/white" android:gravity="center_vertical" android:paddingLeft="30dp" android:text="修改密码" app/src/main/res/layout/item_inspect.xml
@@ -6,7 +6,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:background="@drawable/ic_choose_gray_edge" android:background="@drawable/item_ripple" android:orientation="vertical" android:padding="16dp"> app/src/main/res/layout/item_issue.xml
@@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:background="@drawable/ic_choose_gray_edge" android:background="@drawable/item_ripple" android:onClick="@{()->itemclidk.startDetail(data.issueReportId)}" android:orientation="vertical" android:padding="10dp"> app/src/main/res/layout/item_order.xml
@@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:background="@drawable/ic_choose_gray_edge" android:background="@drawable/item_ripple" android:onClick="@{()->itemclidk.startDetail(data.workOrderId,data.proResultId)}" android:orientation="vertical" android:padding="10dp"> app/src/main/res/values/colors.xml
@@ -28,6 +28,7 @@ <color name="inspect_text_color_pause">#7fff00</color> <color name="inspect_rl_bg_color">#ff6347</color> <color name="delete_color">#ff0000</color> <color name="delete_color_down">#7E0202</color> <color name="item_bg_color">#F9F9F9</color> <color name="item_name_text_color">#828282</color> <color name="mask_layer_bg">#BF828282</color>