18034727885
2026-06-08 f06f6bbd1f36825e71c3607d278c018d00dbb6e3
修复问题
3个文件已修改
523 ■■■■■ 已修改文件
app/src/main/java/com/xw/yunwei/ui/work/checkInMission/CruiseCheckInActivity.kt 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/ui/work/checkInMission/viewmodel/CruiseCheckInViewModel.kt 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_cruise_check_in.xml 506 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/xw/yunwei/ui/work/checkInMission/CruiseCheckInActivity.kt
@@ -5,6 +5,7 @@
import android.util.Log
import android.view.View
import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import com.amap.api.maps.AMap
import com.amap.api.maps.CameraUpdateFactory
import com.amap.api.maps.model.BitmapDescriptorFactory
@@ -146,6 +147,9 @@
                viewModel.needCalculateRoute.postValue(true)
            }
            it.setOnMarkerClickListener { marker ->
                if (binding.slFloatNotice.isVisible) {
                    return@setOnMarkerClickListener false
                }
                val poi = marker.`object` as NaviPoi?
                viewModel.points.value?.find {
                    it.lat?.toDoubleOrNull() == poi?.coordinate?.latitude &&
@@ -324,8 +328,11 @@
            viewModel.isOverview.postValue(!(viewModel.isOverview.value ?: false))
        }
        binding.ivFlexing.setOnClickListener {
            if (binding.slFloatNotice.isVisible) {
                return@setOnClickListener
            }
            viewModel.hadExpand.postValue(!(viewModel.hadExpand.value ?: false))
            binding.slFloatNotice.visibility = View.GONE
            //binding.slFloatNotice.visibility = View.GONE
        }
        binding.tvFloatDelayCheckIn.setOnClickListener { _ ->
            binding.slFloatNotice.visibility = View.GONE
app/src/main/java/com/xw/yunwei/ui/work/checkInMission/viewmodel/CruiseCheckInViewModel.kt
@@ -94,14 +94,16 @@
            while (true) {
                delay(5000)
                aMapNaviLocation?.also { it ->
                    launchRequest(showLoading = false, error = { code, msg -> }) {
                    launchRequest(showLoading = false, error = { _, _ -> }) {
                        workRepository.uploadRealTimePosition(
                            id,
                            it.coord.latitude,
                            it.coord.longitude
                        )
                            ?.also {
                                checkInOperationInfo.postValue(it)
                            ?.also { it ->
                                points.value?.filter { point -> point.locationId == it.checkLocationId && !point.hadCheckIn() }
                                    ?.takeIf { it.isNotEmpty() }
                                    .also { _ -> checkInOperationInfo.postValue(it) }
                            }
                    }
                }
app/src/main/res/layout/activity_cruise_check_in.xml
@@ -55,41 +55,180 @@
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
            <LinearLayout
                android:id="@+id/ll_operation_content"
            <FrameLayout
                android:id="@+id/fl_bottom_operation"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:background="@drawable/shape_white_bg_top_12"
                android:gravity="center"
                android:orientation="vertical"
                android:paddingBottom="@dimen/dp_85"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent">
                <ImageView
                    android:id="@+id/iv_flexing"
                    android:layout_width="@dimen/dp_40"
                    android:layout_height="@dimen/dp_40"
                    android:padding="@dimen/dp_8"
                    android:src="@mipmap/ic_up" />
                <LinearLayout
                    android:id="@+id/ll_location_info"
                    android:id="@+id/ll_operation_content"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:orientation="vertical">
                    <ImageView
                        android:id="@+id/iv_flexing"
                        android:layout_width="@dimen/dp_40"
                        android:layout_height="@dimen/dp_40"
                        android:padding="@dimen/dp_8"
                        android:src="@mipmap/ic_up" />
                    <LinearLayout
                        android:id="@+id/ll_location_info"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:paddingHorizontal="@dimen/dp_20"
                        android:paddingBottom="@dimen/dp_20"
                        android:visibility="gone"
                        tools:visibility="visible">
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="正在前往"
                            android:textColor="@color/gray_10"
                            android:textSize="@dimen/sp_18"
                            android:textStyle="bold" />
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/dp_16"
                            android:text="打卡限时"
                            android:textColor="@color/gray_9"
                            android:textSize="@dimen/sp_14" />
                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="@dimen/dp_36"
                            android:layout_marginTop="@dimen/dp_8"
                            android:background="@drawable/shape_f8f9fa_bg_4"
                            android:gravity="center"
                            android:orientation="horizontal"
                            android:paddingStart="@dimen/dp_8">
                            <TextView
                                android:id="@+id/tv_time"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_weight="1"
                                android:textColor="@color/gray_9"
                                android:textSize="@dimen/sp_14"
                                android:textStyle="bold"
                                tools:text="08:00~09:00" />
                            <TextView
                                android:id="@+id/tv_check_in"
                                android:layout_width="@dimen/dp_120"
                                android:layout_height="match_parent"
                                android:background="@drawable/shape_blue_5_bg_4"
                                android:gravity="center"
                                android:text="打卡"
                                android:textColor="@color/white"
                                android:textSize="@dimen/sp_16" />
                        </LinearLayout>
                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:gravity="end"
                            android:orientation="horizontal">
                            <TextView
                                android:id="@+id/tv_check_in_notice"
                                android:layout_width="@dimen/dp_120"
                                android:layout_height="wrap_content"
                                android:gravity="center"
                                android:text="未进入打卡范围"
                                android:textColor="@color/red_5"
                                android:textSize="@dimen/sp_11" />
                        </LinearLayout>
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/dp_16"
                            android:text="打卡点位信息"
                            android:textColor="@color/gray_9"
                            android:textSize="@dimen/sp_14" />
                        <LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/dp_8"
                            android:background="@mipmap/img_map"
                            android:minHeight="@dimen/dp_58"
                            android:orientation="horizontal">
                            <androidx.appcompat.widget.AppCompatTextView
                                android:id="@+id/tv_address"
                                android:layout_width="0dp"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center_vertical"
                                android:layout_marginStart="@dimen/dp_12"
                                android:layout_weight="1"
                                android:textColor="@color/gray_9"
                                android:textSize="@dimen/sp_14"
                                android:textStyle="bold"
                                tools:text="蜀山区华侨中心A座2301" />
                        </LinearLayout>
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/ll_click_location_info"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:orientation="vertical"
                    android:paddingHorizontal="@dimen/dp_20"
                    android:paddingBottom="@dimen/dp_20"
                    android:padding="@dimen/dp_20"
                    android:visibility="gone"
                    tools:visibility="visible">
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="正在前往"
                        android:textColor="@color/gray_10"
                        android:textSize="@dimen/sp_18"
                        android:textStyle="bold" />
                    <FrameLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">
                        <LinearLayout
                            android:id="@+id/ll_click_location_info_back"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_vertical"
                            android:gravity="center"
                            android:orientation="horizontal">
                            <ImageView
                                android:layout_width="@dimen/dp_6"
                                android:layout_height="@dimen/dp_12"
                                android:src="@mipmap/icon_arrow_left_blue" />
                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginStart="@dimen/dp_4"
                                android:text="返回"
                                android:textColor="@color/blue_5"
                                android:textSize="@dimen/sp_14"
                                android:textStyle="bold" />
                        </LinearLayout>
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:text="点位信息"
                            android:textColor="@color/gray_10"
                            android:textSize="@dimen/sp_18"
                            android:textStyle="bold" />
                    </FrameLayout>
                    <TextView
                        android:layout_width="wrap_content"
@@ -109,7 +248,7 @@
                        android:paddingStart="@dimen/dp_8">
                        <TextView
                            android:id="@+id/tv_time"
                            android:id="@+id/tv_click_location_time"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
@@ -119,7 +258,7 @@
                            tools:text="08:00~09:00" />
                        <TextView
                            android:id="@+id/tv_check_in"
                            android:id="@+id/tv_click_location_check_in"
                            android:layout_width="@dimen/dp_120"
                            android:layout_height="match_parent"
                            android:background="@drawable/shape_blue_5_bg_4"
@@ -136,10 +275,10 @@
                        android:orientation="horizontal">
                        <TextView
                            android:id="@+id/tv_check_in_notice"
                            android:id="@+id/tv_click_location_check_in_notice"
                            android:layout_width="@dimen/dp_120"
                            android:layout_height="wrap_content"
                            android:gravity="center"
                            android:gravity="center_horizontal"
                            android:text="未进入打卡范围"
                            android:textColor="@color/red_5"
                            android:textSize="@dimen/sp_11" />
@@ -148,7 +287,6 @@
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/dp_16"
                        android:text="打卡点位信息"
                        android:textColor="@color/gray_9"
                        android:textSize="@dimen/sp_14" />
@@ -162,7 +300,7 @@
                        android:orientation="horizontal">
                        <androidx.appcompat.widget.AppCompatTextView
                            android:id="@+id/tv_address"
                            android:id="@+id/tv_click_location_address"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_vertical"
@@ -174,239 +312,22 @@
                            tools:text="蜀山区华侨中心A座2301" />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/dp_85"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:paddingHorizontal="@dimen/dp_20"
                    android:paddingBottom="@dimen/dp_20">
                    <LinearLayout
                        android:id="@+id/ll_exit"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:orientation="vertical">
                        <ImageView
                            android:layout_width="@dimen/dp_24"
                            android:layout_height="@dimen/dp_24"
                            android:src="@mipmap/ic_close_black2" />
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/dp_4"
                            android:text="退出"
                            android:textColor="@color/color_3d3d3d"
                            android:textSize="@dimen/sp_14" />
                    </LinearLayout>
                    <LinearLayout
                        android:id="@+id/ll_navi_info"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:orientation="vertical">
                        <TextView
                            android:id="@+id/tv_distance_cost_time"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:gravity="center"
                            android:singleLine="true"
                            android:textColor="@color/gray_10"
                            android:textSize="@dimen/sp_20"
                            android:textStyle="bold"
                            tools:text="8.4公里 1小时28分" />
                        <TextView
                            android:id="@+id/tv_estimated_time_of_arrival"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:gravity="center"
                            android:singleLine="true"
                            android:textColor="@color/gray_7"
                            android:textSize="@dimen/sp_18"
                            android:textStyle="bold"
                            tools:text="20:20到达" />
                    </LinearLayout>
                    <LinearLayout
                        android:id="@+id/ll_overview"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:orientation="vertical">
                        <ImageView
                            android:id="@+id/iv_overview"
                            android:layout_width="@dimen/dp_24"
                            android:layout_height="@dimen/dp_24"
                            android:src="@mipmap/ic_route_arrow" />
                        <TextView
                            android:id="@+id/tv_overview"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/dp_4"
                            android:text="全览"
                            android:textColor="@color/color_3d3d3d"
                            android:textSize="@dimen/sp_14" />
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_click_location_info"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginBottom="@dimen/dp_85"
                android:background="@drawable/shape_white_bg_top_12"
                android:orientation="vertical"
                android:padding="@dimen/dp_20"
                android:visibility="gone"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                tools:visibility="visible">
                <FrameLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
                    <LinearLayout
                        android:id="@+id/ll_click_location_info_back"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:gravity="center"
                        android:orientation="horizontal">
                        <ImageView
                            android:layout_width="@dimen/dp_6"
                            android:layout_height="@dimen/dp_12"
                            android:src="@mipmap/icon_arrow_left_blue" />
                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginStart="@dimen/dp_4"
                            android:text="返回"
                            android:textColor="@color/blue_5"
                            android:textSize="@dimen/sp_14"
                            android:textStyle="bold" />
                    </LinearLayout>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:text="点位信息"
                        android:textColor="@color/gray_10"
                        android:textSize="@dimen/sp_18"
                        android:textStyle="bold" />
                </FrameLayout>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/dp_16"
                    android:text="打卡限时"
                    android:textColor="@color/gray_9"
                    android:textSize="@dimen/sp_14" />
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/dp_36"
                    android:layout_marginTop="@dimen/dp_8"
                    android:background="@drawable/shape_f8f9fa_bg_4"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:paddingStart="@dimen/dp_8">
                    <TextView
                        android:id="@+id/tv_click_location_time"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:textColor="@color/gray_9"
                        android:textSize="@dimen/sp_14"
                        android:textStyle="bold"
                        tools:text="08:00~09:00" />
                    <TextView
                        android:id="@+id/tv_click_location_check_in"
                        android:layout_width="@dimen/dp_120"
                        android:layout_height="match_parent"
                        android:background="@drawable/shape_blue_5_bg_4"
                        android:gravity="center"
                        android:text="打卡"
                        android:textColor="@color/white"
                        android:textSize="@dimen/sp_16" />
                </LinearLayout>
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="end"
                    android:orientation="horizontal">
                    <TextView
                        android:id="@+id/tv_click_location_check_in_notice"
                        android:layout_width="@dimen/dp_120"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:text="未进入打卡范围"
                        android:textColor="@color/red_5"
                        android:textSize="@dimen/sp_11" />
                </LinearLayout>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="打卡点位信息"
                    android:textColor="@color/gray_9"
                    android:textSize="@dimen/sp_14" />
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/dp_8"
                    android:background="@mipmap/img_map"
                    android:minHeight="@dimen/dp_58"
                    android:orientation="horizontal">
                    <androidx.appcompat.widget.AppCompatTextView
                        android:id="@+id/tv_click_location_address"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginStart="@dimen/dp_12"
                        android:layout_weight="1"
                        android:textColor="@color/gray_9"
                        android:textSize="@dimen/sp_14"
                        android:textStyle="bold"
                        tools:text="蜀山区华侨中心A座2301" />
                </LinearLayout>
            </LinearLayout>
            </FrameLayout>
            <com.lihang.ShadowLayout
                android:id="@+id/sl_float_notice"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginHorizontal="@dimen/dp_16"
                android:layout_marginBottom="@dimen/dp_142"
                android:layout_marginBottom="@dimen/dp_17"
                android:visibility="gone"
                app:hl_cornerRadius="@dimen/dp_8"
                app:hl_shadowColor="#2a000000"
                app:hl_shadowLimit="@dimen/dp_8"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintBottom_toTopOf="@id/fl_bottom_operation"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent">
                app:layout_constraintStart_toStartOf="parent"
                tools:visibility="visible">
                <LinearLayout
                    android:layout_width="match_parent"
@@ -513,6 +434,93 @@
                    android:layout_marginEnd="@dimen/dp_10"
                    android:src="@mipmap/ic_close_black" />
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_bottom_operation"
                android:layout_width="0dp"
                android:layout_height="@dimen/dp_85"
                android:gravity="center"
                android:orientation="horizontal"
                android:paddingHorizontal="@dimen/dp_20"
                android:paddingBottom="@dimen/dp_20"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent">
                <LinearLayout
                    android:id="@+id/ll_exit"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:orientation="vertical">
                    <ImageView
                        android:layout_width="@dimen/dp_24"
                        android:layout_height="@dimen/dp_24"
                        android:src="@mipmap/ic_close_black2" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/dp_4"
                        android:text="退出"
                        android:textColor="@color/color_3d3d3d"
                        android:textSize="@dimen/sp_14" />
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/ll_navi_info"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:orientation="vertical">
                    <TextView
                        android:id="@+id/tv_distance_cost_time"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:singleLine="true"
                        android:textColor="@color/gray_10"
                        android:textSize="@dimen/sp_20"
                        android:textStyle="bold"
                        tools:text="8.4公里 1小时28分" />
                    <TextView
                        android:id="@+id/tv_estimated_time_of_arrival"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:singleLine="true"
                        android:textColor="@color/gray_7"
                        android:textSize="@dimen/sp_18"
                        android:textStyle="bold"
                        tools:text="20:20到达" />
                </LinearLayout>
                <LinearLayout
                    android:id="@+id/ll_overview"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:orientation="vertical">
                    <ImageView
                        android:id="@+id/iv_overview"
                        android:layout_width="@dimen/dp_24"
                        android:layout_height="@dimen/dp_24"
                        android:src="@mipmap/ic_route_arrow" />
                    <TextView
                        android:id="@+id/tv_overview"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/dp_4"
                        android:text="全览"
                        android:textColor="@color/color_3d3d3d"
                        android:textSize="@dimen/sp_14" />
                </LinearLayout>
            </LinearLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>