18034727885
2026-06-22 160e3e02629ae8dd36bd05cd7e4c67c8e1b20f81
修复UI问题
1个文件已添加
20个文件已修改
148 ■■■■■ 已修改文件
app/src/main/java/com/xw/yunwei/extension/ActivityExtension.kt 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/model/TaskAccidentModel.kt 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/model/TaskNormalModel.kt 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/ui/task/list/TaskListFragment.kt 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/ui/user/mine/MineVM.kt 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/ui/work/AMapFragment.kt 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/ui/work/car/manage/CarManageActivity.kt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/ui/work/site/SiteNavActivity.kt 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_accident_detail.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_scheduling.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/dialog_accident_filter.xml 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/dialog_site_filter.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_car_operations.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_mine.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_normal_task_status1.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_normal_task_status2.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xhdpi/ic_map_car_g.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xhdpi/ic_map_car_r.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xhdpi/ic_map_site_g.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xhdpi/ic_map_site_r.png 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/res/layout/dialog_loading.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/extension/ActivityExtension.kt
New file
@@ -0,0 +1,15 @@
package com.xw.yunwei.extension
import android.app.Activity
import android.content.Context
import android.view.inputmethod.InputMethodManager
//扩展函数 清掉当前焦点 收起输入法
fun Activity.hideKeyboardAndClearFocus() {
    // 1. 清掉当前 focued 的输入框
    currentFocus?.clearFocus()
    // 2. 收起输入法
    val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.hideSoftInputFromWindow(window.decorView.windowToken, 0)
}
app/src/main/java/com/xw/yunwei/model/TaskAccidentModel.kt
@@ -1,6 +1,7 @@
package com.xw.yunwei.model
import com.google.gson.annotations.SerializedName
import com.xw.yunwei.extension.dateChangePattern
/**
 * 任务事故详情
@@ -174,6 +175,11 @@
    fun hadOpenedTrunk(): Boolean {
        return hadTrunkOpened == "1"
    }
    //获取显示创建事件
    fun getShowCreateTime(): String?{
        return createTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss")
    }
}
/**
app/src/main/java/com/xw/yunwei/model/TaskNormalModel.kt
@@ -1,6 +1,7 @@
package com.xw.yunwei.model
import com.google.gson.annotations.SerializedName
import com.xw.yunwei.extension.dateChangePattern
/**
 * 常规任务详情
@@ -150,4 +151,9 @@
    fun couldReassignment(): Boolean {
        return status != 2 && taskCategory != 1
    }
    //获取显示创建事件
    fun getShowCreateTime(): String?{
        return createTime?.dateChangePattern("yyyy-MM-dd HH:mm:ss","yyyy/MM/dd HH:mm:ss")
    }
}
app/src/main/java/com/xw/yunwei/ui/task/list/TaskListFragment.kt
@@ -5,6 +5,7 @@
import android.view.View
import androidx.core.os.bundleOf
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.amap.api.maps.model.LatLng
import com.blankj.utilcode.util.GsonUtils
import com.xw.common.base.BaseFragment
@@ -17,6 +18,7 @@
import com.xw.yunwei.BR
import com.xw.yunwei.MyApp
import com.xw.yunwei.databinding.FragmentTaskListBinding
import com.xw.yunwei.extension.hideKeyboardAndClearFocus
import com.xw.yunwei.model.FilterData
import com.xw.yunwei.model.LocationData
import com.xw.yunwei.model.TaskModel
@@ -78,6 +80,29 @@
        }
    }
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        binding.rv.addOnScrollListener(object : RecyclerView.OnScrollListener() {
            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
                super.onScrollStateChanged(recyclerView, newState)
                when (newState) {
                    RecyclerView.SCROLL_STATE_IDLE -> {
                        // 滚动停止
                    }
                    RecyclerView.SCROLL_STATE_DRAGGING -> {
                        // 手指正在拖动
                        requireActivity().hideKeyboardAndClearFocus()
                    }
                    RecyclerView.SCROLL_STATE_SETTLING -> {
                        // 惯性滑动中
                    }
                }
            }
        })
    }
    override fun init() {
        super.init()
        viewModel.status.value = status
app/src/main/java/com/xw/yunwei/ui/user/mine/MineVM.kt
@@ -52,7 +52,7 @@
    //巡游打卡任务
    val cruiseCheckInMissionInfo = MutableLiveData<CruiseCheckInMissionInfo>()
    var phone = "" // 客服电话
    var phone = MutableLiveData("") // 客服电话
    val onClick = View.OnClickListener {
@@ -76,6 +76,10 @@
        }
    }
    override fun onCreate() {
        super.onCreate()
        getPhone()
    }
    fun getInfo() {
        launchRequestFlow(
@@ -105,16 +109,19 @@
        }
    }
    fun getPhone(block: (String) -> Unit) {
        if (phone.isEmpty()) {
    fun getPhone(block: ((String) -> Unit)? = null) {
        if (phone.value.isNullOrEmpty()) {
            launchRequest {
                userRepository.getPhone()?.let {
                    phone = JSONObject(gson.toJson(it)).optString("customerServicePhone")
                    runOnMainThread { block(phone) }
                    val phone = JSONObject(gson.toJson(it)).optString("customerServicePhone")
                    this.phone.postValue(phone)
                    runOnMainThread {
                        block?.invoke(phone)
                    }
                }
            }
        } else {
            block(phone)
            block?.invoke(phone.value!!)
        }
    }
app/src/main/java/com/xw/yunwei/ui/work/AMapFragment.kt
@@ -351,7 +351,8 @@
        point: LatLng,
        resId: Int,
        id: String,
        description: String? = null
        description: String? = null,
        anchorHeightRatio: Float=0.5f,
    ) {
        lifecycleScope.launchWhenResumed {
            aMap?.let { aMap ->
@@ -361,7 +362,7 @@
                    val markerOptions = MarkerOptions()
                        .position(point)
                        .icon(centerIcon)
                        .anchor(0.5f, 0.5f) // 将图标的中心点(而非左下角)设置为锚点,这样旋转更自然
                        .anchor(0.5f, anchorHeightRatio) // 将图标的中心点(而非左下角)设置为锚点,这样旋转更自然
                        .setFlat(true) // 重要:设置为平面模式,Marker可围绕锚点旋转
                        .title(description?:"")
                        .snippet(description?:"")
@@ -454,8 +455,8 @@
        } else {
            marker.showInfoWindow()
        }
        currentBigMarker?.let { setMarkerScaleAnimation(it, 2.0f, 1.0f) }
        setMarkerScaleAnimation(marker, 1.0f, 2.0f)
        currentBigMarker?.let { setMarkerScaleAnimation(it, 1.5f, 1.0f) }
        setMarkerScaleAnimation(marker, 1.0f, 1.5f)
        currentBigMarker = marker
    }
app/src/main/java/com/xw/yunwei/ui/work/car/manage/CarManageActivity.kt
@@ -151,7 +151,8 @@
                    LatLng(it.latitude ?: 0.0, it.longitude ?: 0.0),
                    resId,
                    "${it.id}",
                    it.plateNumber
                    it.plateNumber,
                    0.75f
                )
            }
        }
app/src/main/java/com/xw/yunwei/ui/work/site/SiteNavActivity.kt
@@ -108,7 +108,8 @@
                    LatLng(it.pointLat ?: 0.0, it.pointLon ?: 0.0),
                    resId,
                    "${it.id}",
                    it.pointName
                    it.pointName,
                    0.65f
                )
            }
        }
app/src/main/res/layout/activity_accident_detail.xml
@@ -398,7 +398,7 @@
                                android:gravity="end"
                                android:maxLines="1"
                                android:singleLine="true"
                                android:text="@{viewModel.taskDetail.createTime}"
                                android:text="@{viewModel.taskDetail.getShowCreateTime()}"
                                android:textColor="@color/gray_7"
                                android:textSize="@dimen/sp_14"
                                tools:text="2026-1-25 17:43:02" />
app/src/main/res/layout/activity_scheduling.xml
@@ -218,7 +218,7 @@
                    android:layout_height="wrap_content"
                    android:layout_gravity="end|center_vertical"
                    android:layout_margin="@dimen/dp_12"
                    android:src="@drawable/svg_map_location" />
                    android:src="@drawable/svg_map_nav" />
            </FrameLayout>
app/src/main/res/layout/dialog_accident_filter.xml
@@ -74,14 +74,14 @@
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginHorizontal="@dimen/dp_20"
            android:layout_marginTop="@dimen/dp_40"
            android:layout_marginTop="@dimen/dp_20"
            android:layout_weight="1"
            android:background="@android:color/white"
            android:scrollbars="vertical"
            app:layout_constraintBottom_toTopOf="@+id/view"
            app:layout_constraintLeft_toRightOf="@+id/leftRecyclerView"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/title" />
            app:layout_constraintTop_toTopOf="@id/leftRecyclerView" />
        <View
app/src/main/res/layout/dialog_site_filter.xml
@@ -60,7 +60,7 @@
            android:id="@+id/stllStatus"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="10dp"
            android:layout_marginHorizontal="20dp"
            android:layout_marginTop="@dimen/dp_12"
            android:orientation="vertical"
            app:layout_constraintTop_toBottomOf="@+id/tv"
app/src/main/res/layout/fragment_car_operations.xml
@@ -138,8 +138,7 @@
                    android:layout_weight="1"
                    android:text="车辆整备"
                    android:textColor="@color/gray_9"
                    android:textSize="@dimen/sp_16"
                    android:textStyle="bold" />
                    android:textSize="@dimen/sp_16" />
                <androidx.appcompat.widget.AppCompatImageView
                    android:layout_width="wrap_content"
@@ -167,8 +166,7 @@
                    android:layout_weight="1"
                    android:text="车辆充电"
                    android:textColor="@color/gray_9"
                    android:textSize="@dimen/sp_16"
                    android:textStyle="bold" />
                    android:textSize="@dimen/sp_16" />
                <androidx.appcompat.widget.AppCompatImageView
                    android:layout_width="wrap_content"
@@ -196,8 +194,7 @@
                    android:layout_weight="1"
                    android:text="车辆检测"
                    android:textColor="@color/gray_9"
                    android:textSize="@dimen/sp_16"
                    android:textStyle="bold" />
                    android:textSize="@dimen/sp_16" />
                <androidx.appcompat.widget.AppCompatImageView
                    android:layout_width="wrap_content"
@@ -225,8 +222,7 @@
                    android:layout_weight="1"
                    android:text="车辆维修"
                    android:textColor="@color/gray_9"
                    android:textSize="@dimen/sp_16"
                    android:textStyle="bold" />
                    android:textSize="@dimen/sp_16" />
                <androidx.appcompat.widget.AppCompatImageView
                    android:layout_width="wrap_content"
@@ -254,8 +250,7 @@
                    android:layout_weight="1"
                    android:text="车身清洁"
                    android:textColor="@color/gray_9"
                    android:textSize="@dimen/sp_16"
                    android:textStyle="bold" />
                    android:textSize="@dimen/sp_16" />
                <androidx.appcompat.widget.AppCompatImageView
                    android:layout_width="wrap_content"
app/src/main/res/layout/fragment_mine.xml
@@ -93,6 +93,7 @@
                android:id="@+id/roleValue"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginEnd="@dimen/dp_28"
                android:ellipsize="end"
                android:maxLines="2"
                android:text="@{viewModel.roleName}"
@@ -100,10 +101,9 @@
                android:textSize="@dimen/sp_12"
                app:layout_constraintBaseline_toBaselineOf="@+id/role"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@+id/role"
                app:layout_constraintHorizontal_bias="0"
                app:layout_constraintStart_toEndOf="@+id/role"
                app:layout_constraintWidth_default="wrap"
                android:layout_marginEnd="@dimen/dp_28"
                tools:text="未分配" />
            <androidx.appcompat.widget.AppCompatTextView
@@ -169,7 +169,7 @@
        <androidx.core.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginTop="@dimen/dp_25"
            android:layout_marginTop="@dimen/dp_16"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/infoLayout">
@@ -346,9 +346,9 @@
                    android:layout_height="wrap_content"
                    android:layout_marginHorizontal="@dimen/dp_12"
                    android:layout_marginTop="@dimen/dp_16"
                    android:onClick="@{viewModel.onClick}"
                    android:visibility="gone"
                    app:cardCornerRadius="@dimen/dp_8"
                    android:onClick="@{viewModel.onClick}"
                    app:cardElevation="@dimen/dp_2"
                    app:layout_constraintTop_toBottomOf="@+id/layout"
                    tools:visibility="visible">
@@ -664,6 +664,16 @@
                                android:textSize="@dimen/sp_14"
                                android:textStyle="bold" />
                            <androidx.appcompat.widget.AppCompatTextView
                                android:id="@+id/tv_phone"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginEnd="@dimen/dp_6"
                                android:text="@{viewModel.phone}"
                                android:textColor="@color/gray_9"
                                android:textSize="@dimen/sp_12"
                                tools:text="12345678901" />
                            <androidx.appcompat.widget.AppCompatImageView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
app/src/main/res/layout/layout_normal_task_status1.xml
@@ -238,7 +238,7 @@
                            android:gravity="end"
                            android:maxLines="1"
                            android:singleLine="true"
                            android:text="@{viewModel.taskDetail.createTime}"
                            android:text="@{viewModel.taskDetail.getShowCreateTime()}"
                            android:textColor="@color/gray_7"
                            android:textSize="@dimen/sp_14"
                            tools:text="2026-1-25 17:43:02" />
@@ -370,7 +370,7 @@
                    tools:visibility="gone"
                    android:layout_marginTop="@dimen/dp_12"
                    show='@{viewModel.taskDetail.taskTypeId.equals("4")}'
                    android:background="@drawable/shape_0f06b752_bg_4"
                    android:background="@drawable/shape_0f006be1_bg_4"
                    android:gravity="center_vertical"
                    android:orientation="horizontal"
                    android:paddingHorizontal="@dimen/dp_12"
@@ -379,14 +379,14 @@
                    <androidx.appcompat.widget.AppCompatImageView
                        android:layout_width="@dimen/dp_16"
                        android:layout_height="@dimen/dp_16"
                        android:src="@mipmap/ic_task_xc" />
                        android:src="@mipmap/ic_task_xc1" />
                    <androidx.appcompat.widget.AppCompatTextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="@dimen/dp_10"
                        android:text="洗车"
                        android:textColor="#ff06B752"
                        android:textColor="@color/blue_5"
                        android:textSize="@dimen/sp_14" />
                </LinearLayout>
app/src/main/res/layout/layout_normal_task_status2.xml
@@ -162,7 +162,7 @@
                        android:gravity="end"
                        android:maxLines="1"
                        android:singleLine="true"
                        android:text="@{viewModel.taskDetail.createTime}"
                        android:text="@{viewModel.taskDetail.getShowCreateTime()}"
                        android:textColor="@color/gray_7"
                        android:textSize="@dimen/sp_14"
                        tools:text="2026-1-25 17:43:02" />
app/src/main/res/mipmap-xhdpi/ic_map_car_g.png

app/src/main/res/mipmap-xhdpi/ic_map_car_r.png

app/src/main/res/mipmap-xhdpi/ic_map_site_g.png

app/src/main/res/mipmap-xhdpi/ic_map_site_r.png

common/src/main/res/layout/dialog_loading.xml
@@ -32,12 +32,11 @@
            <ProgressBar
                android:id="@+id/indicatorView"
                android:layout_width="@dimen/dp_45"
                android:layout_height="@dimen/dp_45"
                android:layout_marginTop="@dimen/dp_10"
                android:layout_width="@dimen/dp_30"
                android:layout_height="@dimen/dp_30"
                android:layout_marginTop="@dimen/dp_24"
                android:indeterminateDrawable="@drawable/circular_progress"
                android:indeterminate="true"
                app:layout_constraintBottom_toTopOf="@+id/tv_tips"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
@@ -50,11 +49,11 @@
                android:layout_marginHorizontal="@dimen/dp_5"
                android:layout_marginLeft="@dimen/dp_20"
                android:maxLines="1"
                android:layout_marginTop="@dimen/dp_10"
                android:text="加载中..."
                android:textColor="@color/white"
                android:textSize="@dimen/sp_14"
                android:visibility="visible"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/indicatorView"