管灌系统巡查员智能手机App
1.修复当开启巡检以后在处理工单和上报问题时开启定位导致的自动关闭定位的bug
2.上报问题详情界面部分功能
4个文件已修改
2个文件已添加
534 ■■■■■ 已修改文件
app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/service/MyLocationService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/utils/ServiceUtils.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_issue_detail.xml 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_issue.xml 281 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java
@@ -36,6 +36,7 @@
import com.dayu.pipirrapp.tool.GlideEngine;
import com.dayu.pipirrapp.tool.ImageFileCompressEngine;
import com.dayu.pipirrapp.utils.CommonKeyName;
import com.dayu.pipirrapp.utils.ServiceUtils;
import com.dayu.pipirrapp.utils.ToastUtil;
import com.dayu.pipirrapp.view.TitleBar;
import com.jeremyliao.liveeventbus.LiveEventBus;
@@ -84,7 +85,7 @@
    /**
     * 定位监听
     */
    private Observer<Object> locationObserver = new Observer<Object>() {
    private final Observer<Object> locationObserver = new Observer<Object>() {
        @Override
        public void onChanged(Object o) {
            latLonBean = (LatLonBean) o;
@@ -340,13 +341,15 @@
     * 开始定位相关逻辑
     */
    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);
        if (!ServiceUtils.isServiceRunning(this, MyLocationService.class)) {
            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);
app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
@@ -35,6 +35,8 @@
import com.dayu.pipirrapp.tool.GlideEngine;
import com.dayu.pipirrapp.tool.ImageFileCompressEngine;
import com.dayu.pipirrapp.utils.CommonKeyName;
import com.dayu.pipirrapp.utils.MyLog;
import com.dayu.pipirrapp.utils.ServiceUtils;
import com.dayu.pipirrapp.utils.ToastUtil;
import com.dayu.pipirrapp.view.TitleBar;
import com.jeremyliao.liveeventbus.LiveEventBus;
@@ -68,7 +70,7 @@
 * @since 2024-11-27
 */
public class OrderDealActivity extends BaseActivity {
    private String TAG = "OrderDealActivity";
    private final String TAG = "OrderDealActivity";
    ActivityOrderDealBinding binding;
    RecyclerView mRecyclerView;
    AddPictureAdapter mAdapter;
@@ -87,6 +89,7 @@
    private Observer<Object> locationObserver = new Observer<Object>() {
        @Override
        public void onChanged(Object o) {
            MyLog.d("OrderDealActivity>>>locationObserver>>");
            latLonBean = (LatLonBean) o;
        }
    };
@@ -340,13 +343,15 @@
     * 开始定位相关逻辑
     */
    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);
        if (!ServiceUtils.isServiceRunning(this, MyLocationService.class)) {
            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);
app/src/main/java/com/dayu/pipirrapp/service/MyLocationService.java
@@ -43,6 +43,7 @@
 */
public class MyLocationService extends Service {
    private LocationManager locationManager;
    private MyLocationListener listener;
@@ -296,6 +297,7 @@
    @Override
    public void onDestroy() {
        MyLog.i("MyLocationService--onDestroy");
        // 停止前台服务--参数:表示是否移除之前的通知
        stopForeground(true);
        // 获取NotificationManager并取消通知,确保通知被移除
app/src/main/java/com/dayu/pipirrapp/utils/ServiceUtils.java
New file
@@ -0,0 +1,31 @@
package com.dayu.pipirrapp.utils;
import android.app.ActivityManager;
import android.content.Context;
/**
 * ServiceUtils - 服务相关的公共方法
 *
 * @author zuoxiao
 * @version 1.0
 * @since 2024-12-12
 */
public class ServiceUtils {
    /**
     * 判断当前服务是否已经启动
     *
     * @param context
     * @param serviceClass
     * @return
     */
    public static boolean isServiceRunning(Context context, Class<?> serviceClass) {
        ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
            if (serviceClass.getName().equals(service.service.getClassName())) {
                return true;
            }
        }
        return false;
    }
}
app/src/main/res/layout/activity_issue_detail.xml
New file
@@ -0,0 +1,180 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable
            name="itemclidk"
            type="com.dayu.pipirrapp.activity.OrderDetailActivity" />
        <variable
            name="data"
            type="com.dayu.pipirrapp.bean.net.IssueResult" />
        <variable
            name="dealData"
            type="com.dayu.pipirrapp.bean.net.DealDetailResult" />
    </data>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <include
            android:id="@+id/title"
            layout="@layout/top_title" />
        <ScrollView
            android:id="@+id/ScrollView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/deal_button"
            android:layout_below="@+id/title"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:padding="20dp">
                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:minHeight="30dp"
                    android:orientation="horizontal">
                    <ImageView
                        android:id="@+id/ic_project"
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:layout_centerVertical="true"
                        android:layout_marginRight="10dp"
                        android:src="@drawable/ic_issue" />
                    <TextView
                        android:id="@+id/projectName"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_marginEnd="15dp"
                        android:layout_toStartOf="@+id/stateText"
                        android:layout_toEndOf="@+id/ic_project"
                        android:ellipsize="end"
                        android:maxLines="1"
                        android:text="@{data.issueReportId}"
                        android:textColor="@color/title_color"
                        android:textSize="@dimen/manage_item_text_size" />
                    <TextView
                        android:id="@+id/stateText"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:background="@drawable/ic_edt_gray_bg"
                        android:gravity="center"
                        android:paddingLeft="10dp"
                        android:paddingTop="5dp"
                        android:paddingRight="10dp"
                        android:paddingBottom="5dp"
                        android:text="@{data.state}"
                        android:textColor="@color/black"
                        android:textSize="@dimen/manage_item_text_state_size" />
                </RelativeLayout>
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp"
                    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"
                            android:layout_height="wrap_content"
                            android:text="上报时间:"
                            android:textColor="@color/manage_item_text"
                            android:textSize="@dimen/manage_item_text_size" />
                        <TextView
                            android:id="@+id/xiangMuJianCheng"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:ellipsize="end"
                            android:maxLines="1"
                            android:text="@{data.reportTime}"
                            android:textColor="@color/manage_item_text"
                            android:textSize="@dimen/manage_item_text_size" />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    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/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/manage_item_text_size" />
                    </LinearLayout>
            </LinearLayout>
        </ScrollView>
        <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:onClick="@{()->itemclidk.startDealActivity()}"
            android:text="处理工单"
            android:textColor="@color/white"
            android:textSize="@dimen/order_detail_button_size"
            android:visibility="gone" />
    </RelativeLayout>
</layout>
app/src/main/res/layout/item_issue.xml
@@ -72,80 +72,25 @@
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:orientation="horizontal">
            android:layout_weight="1">
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <LinearLayout
                android:layout_width="0dp"
            <TextView
                android:id="@+id/daiShenPiTag"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1">
                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/manage_item_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/manage_item_text_size" />
            </LinearLayout>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            <LinearLayout
                android:layout_width="0dp"
            <TextView
                android:id="@+id/daiShenPi"
                android:layout_width="wrap_content"
                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"
                    android:layout_height="wrap_content"
                    android:text="上报时间:"
                    android:textColor="@color/manage_item_text"
                    android:textSize="@dimen/manage_item_text_size" />
                <TextView
                    android:id="@+id/xiangMuJianCheng"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:text="@{data.reportTime}"
                    android:textColor="@color/manage_item_text"
                    android:textSize="@dimen/manage_item_text_size" />
            </LinearLayout>
                android:ellipsize="end"
                android:maxLines="1"
                android:text="@{data.content}"
                android:textColor="@color/manage_item_text"
                android:textSize="@dimen/manage_item_text_size" />
        </LinearLayout>
@@ -154,113 +99,127 @@
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            android:orientation="horizontal"
            android:paddingRight="5dp">
            <LinearLayout
                android:id="@+id/replyContentLL"
                android:layout_width="0dp"
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center_vertical"
                android:orientation="horizontal"
                android:paddingRight="5dp">
                android:text="上报时间:"
                android:textColor="@color/manage_item_text"
                android:textSize="@dimen/manage_item_text_size" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:text="回复内容:"
                    android:textColor="@color/manage_item_text"
                    android:textSize="@dimen/manage_item_text_size" />
                <TextView
                    android:id="@+id/replyContent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:text="@{data.replyContent}"
                    android:textColor="@color/manage_item_text"
                    android:textSize="@dimen/manage_item_text_size" />
            </LinearLayout>
            <TextView
                android:id="@+id/xiangMuJianCheng"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:maxLines="1"
                android:text="@{data.reportTime}"
                android:textColor="@color/manage_item_text"
                android:textSize="@dimen/manage_item_text_size" />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/replyContentLL"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:orientation="horizontal"
            android:paddingRight="5dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:text="回复内容:"
                android:textColor="@color/manage_item_text"
                android:textSize="@dimen/manage_item_text_size" />
            <TextView
                android:id="@+id/replyContent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:maxLines="1"
                android:text="@{data.replyContent}"
                android:textColor="@color/manage_item_text"
                android:textSize="@dimen/manage_item_text_size" />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/replyTimeLL"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_weight="2"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            <LinearLayout
                android:id="@+id/replyTimeLL"
                android:layout_width="0dp"
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:layout_weight="2"
                android:gravity="center_vertical"
                android:orientation="horizontal">
                android:text="回复时间:"
                android:textColor="@color/manage_item_text"
                android:textSize="@dimen/manage_item_text_size" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_vertical"
                    android:text="回复时间:"
                    android:textColor="@color/manage_item_text"
                    android:textSize="@dimen/manage_item_text_size" />
                <TextView
                    android:id="@+id/replyTime"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@{data.replyTime}"
                    android:textColor="@color/manage_item_text"
                    android:textSize="@dimen/manage_item_text_size" />
            </LinearLayout>
            <LinearLayout
                android:layout_width="0dp"
            <TextView
                android:id="@+id/replyTime"
                android:layout_width="wrap_content"
                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">
                android:text="@{data.replyTime}"
                android:textColor="@color/manage_item_text"
                android:textSize="@dimen/manage_item_text_size" />
                <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
            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>
</layout>