diff --git a/OCH/taxi/unmanned-driver/src/main/AndroidManifest.xml b/OCH/taxi/unmanned-driver/src/main/AndroidManifest.xml index 3ab0402e38..a7808094c9 100644 --- a/OCH/taxi/unmanned-driver/src/main/AndroidManifest.xml +++ b/OCH/taxi/unmanned-driver/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.java index f2dc8a3cff..e7bb8bdc2f 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.java +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/constant/TaxiDriverEventConst.java @@ -13,4 +13,8 @@ public interface TaxiDriverEventConst { String EVENT_TYPE_SHOW_RED_POINT = "event_type_tab_fragment_show_red_point"; String EVENT_TYPE_TASK_WITH_ORDER_CHANGED = "event_type_tab_fragment_task_with_order_changed"; } + + interface RoutingActivityEvent { + String EVENT_TYPE_GET_CHOSEN_LINE_TASK_ID = "event_type_get_chosen_line_task_id"; + } } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineAdapter.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineAdapter.kt index ae513a83d3..4514478d16 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineAdapter.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineAdapter.kt @@ -1,6 +1,7 @@ package com.mogo.och.taxi.ui.routing import android.content.Context +import android.graphics.Color import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -19,6 +20,7 @@ class TaxiRoutingChooseLineAdapter( } private var mItemClickListener: OnChooseLineItemClickListener? = null + private var mLastChoosedLineIndex = -1 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SwitchLineViewHolder { val view = LayoutInflater.from(mContext).inflate( @@ -37,20 +39,24 @@ class TaxiRoutingChooseLineAdapter( if (data.isChoosed) { holder.itemView.setBackgroundResource(R.drawable.routing_choose_line_shape_select_line_item_bg_selected) } else { - holder.itemView.setBackgroundResource(R.drawable.routing_choose_line_shape_select_line_item_bg_normal) + holder.itemView.setBackgroundColor(Color.parseColor("#162761")) } //设置item点击事件 holder.itemView.setOnClickListener { mData.forEachIndexed { index, result -> - if (result.isChoosed) { + if (result.isChoosed && index != currentPosition) { result.isChoosed = false - + notifyItemChanged(index) } } - mData[currentPosition].isChoosed = true + mData[currentPosition].isChoosed = currentPosition != mLastChoosedLineIndex notifyItemChanged(currentPosition) - mItemClickListener?.onItemClick(currentPosition, false) + mItemClickListener?.onItemClick( + currentPosition, + currentPosition != mLastChoosedLineIndex + ) + mLastChoosedLineIndex = currentPosition } } @@ -63,7 +69,7 @@ class TaxiRoutingChooseLineAdapter( } interface OnChooseLineItemClickListener { - fun onItemClick(position: Int, close: Boolean) + fun onItemClick(position: Int, isChoosed: Boolean) } class SwitchLineViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseTaskActivity.kt similarity index 74% rename from OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt rename to OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseTaskActivity.kt index a23d982b90..1a43045ead 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseTaskActivity.kt @@ -7,31 +7,39 @@ import android.view.View import android.view.ViewGroup import android.view.WindowManager import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.utils.FlowBus import com.mogo.och.taxi.R import com.mogo.och.taxi.bean.TaxiRoutingQueryLineResponse -import kotlinx.android.synthetic.main.routing_choose_line_activity.btnChooseLineSubmit -import kotlinx.android.synthetic.main.routing_choose_line_activity.btnClose -import kotlinx.android.synthetic.main.routing_choose_line_activity.chooseLineListView +import com.mogo.och.taxi.constant.TaxiDriverEventConst +import kotlinx.android.synthetic.main.routing_choose_task_activity.btnChooseLineSubmit +import kotlinx.android.synthetic.main.routing_choose_task_activity.btnClose +import kotlinx.android.synthetic.main.routing_choose_task_activity.chooseLineListView import kotlinx.android.synthetic.main.routing_no_data_common_view.noDataContainer -import kotlinx.android.synthetic.main.taxi_debug_order.currentLineId -class TaxiRoutingChooseLineActivity : AppCompatActivity() { +class TaxiRoutingChooseTaskActivity : AppCompatActivity() { companion object { - const val TAG = "TaxiRoutingChooseLineActivity" + const val TAG = "TaxiRoutingChooseTaskActivity" } + private val mLoadingDialog: TaxiRoutingLoadingDialog by lazy { + TaxiRoutingLoadingDialog( + this + ) + } private lateinit var mChooseLineListAdapter: TaxiRoutingChooseLineAdapter private lateinit var mLinearLayoutManager: LinearLayoutManager private val mRoutingLineList: MutableList = ArrayList() - private var mCurrentChoosedLineId: Int? = -1 + private var mCurrentChosenLineId: Int? = -1 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.routing_choose_line_activity) + setContentView(R.layout.routing_choose_task_activity) initWindowParams() initView() loadData() @@ -61,7 +69,7 @@ class TaxiRoutingChooseLineActivity : AppCompatActivity() { mChooseLineListAdapter.setOnLineItemClickListener(object : TaxiRoutingChooseLineAdapter.OnChooseLineItemClickListener { override fun onItemClick(position: Int, close: Boolean) { - mCurrentChoosedLineId = mRoutingLineList[position].lineId + mCurrentChosenLineId = mRoutingLineList[position].lineId } }) @@ -69,11 +77,19 @@ class TaxiRoutingChooseLineActivity : AppCompatActivity() { finish() } btnChooseLineSubmit.setOnClickListener { - if (mCurrentChoosedLineId == -1) { + if (mCurrentChosenLineId == -1) { ToastUtils.showLong("请先选择任务") return@setOnClickListener } - ToastUtils.showLong("当前选择的路线LineId:$currentLineId") + ToastUtils.showLong("当前选择的路线LineId:$mCurrentChosenLineId") + mLoadingDialog.showLoading() + UiThreadHandler.postDelayed({ + mLoadingDialog.hideLoading() + FlowBus.with(TaxiDriverEventConst.RoutingActivityEvent.EVENT_TYPE_GET_CHOSEN_LINE_TASK_ID) + .post(this.lifecycleScope, 1000) + mChooseLineListAdapter.setOnLineItemClickListener(null) + finish() + }, 3000L) } } @@ -123,14 +139,6 @@ class TaxiRoutingChooseLineActivity : AppCompatActivity() { } } - fun onChangeLineIdSuccess() { - //ToastUtils.showLong(resources.getString(R.string.bus_change_line_commit_tip_s)) - //mPresenter?.queryBusRoutes() - mChooseLineListAdapter.setOnLineItemClickListener(null) - //mPresenter?.removeListener() - finish() - } - override fun onDestroy() { super.onDestroy() } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt index b209267f14..22c90c21fe 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt @@ -2,10 +2,22 @@ package com.mogo.och.taxi.ui.routing import android.content.Intent import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup import com.mogo.commons.mvp.BaseFragment import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.common.module.utils.FlowBus import com.mogo.och.taxi.R +import com.mogo.och.taxi.constant.TaxiDriverEventConst import kotlinx.android.synthetic.main.routing_fragment.btnChooseTask +import kotlinx.android.synthetic.main.routing_fragment.btnStartTask +import kotlinx.android.synthetic.main.routing_fragment.finishSubmitIssueGroup +import kotlinx.android.synthetic.main.routing_fragment.headerTitleContainer +import kotlinx.android.synthetic.main.routing_fragment.mCurrentTaskLayout +import kotlinx.android.synthetic.main.routing_fragment.noDataContainer +import kotlinx.android.synthetic.main.routing_fragment.taskTitleTv class TaxiRoutingFragment : BaseFragment() { @@ -30,8 +42,57 @@ class TaxiRoutingFragment : BaseFragment() { override fun initViews() { btnChooseTask.setOnClickListener { - val intent = Intent(context, TaxiRoutingChooseLineActivity::class.java) + val intent = Intent(context, TaxiRoutingChooseTaskActivity::class.java) startActivity(intent) } + showChooseTaskView() + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + initEventBus() + return super.onCreateView(inflater, container, savedInstanceState) + } + + private fun initEventBus() { + FlowBus.with(TaxiDriverEventConst.RoutingActivityEvent.EVENT_TYPE_GET_CHOSEN_LINE_TASK_ID) + .register(this) { taskId -> + ToastUtils.showLong("接收到taskId:$taskId") + showCurrentLineTaskContentView() + } + } + + private fun showChooseTaskView() { + noDataContainer.visibility = View.VISIBLE + mCurrentTaskLayout.visibility = View.GONE + headerTitleContainer.visibility = View.GONE + + btnChooseTask.visibility = View.VISIBLE + btnStartTask.visibility = View.GONE + finishSubmitIssueGroup.visibility = View.GONE + } + + private fun showCurrentLineTaskContentView() { + noDataContainer.visibility = View.GONE + mCurrentTaskLayout.visibility = View.VISIBLE + + headerTitleContainer.visibility = View.VISIBLE + taskTitleTv.text = "测试任务测试任务" + + btnChooseTask.visibility = View.GONE + btnStartTask.visibility = View.VISIBLE + btnStartTask.setOnClickListener { + showFinishTaskView() + } + finishSubmitIssueGroup.visibility = View.GONE + } + + private fun showFinishTaskView() { + btnChooseTask.visibility = View.GONE + btnStartTask.visibility = View.GONE + finishSubmitIssueGroup.visibility = View.VISIBLE } } \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingLoadingDialog.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingLoadingDialog.kt new file mode 100644 index 0000000000..2b7c726e84 --- /dev/null +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingLoadingDialog.kt @@ -0,0 +1,73 @@ +package com.mogo.och.taxi.ui.routing + +import android.animation.ObjectAnimator +import android.content.Context +import android.view.animation.LinearInterpolator +import androidx.lifecycle.LifecycleObserver +import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.taxi.R +import kotlinx.android.synthetic.main.dialog_routing_loading.dialog_loading_text +import kotlinx.android.synthetic.main.dialog_routing_loading.dialog_loading_view + +/** + * loading + */ +class TaxiRoutingLoadingDialog : BaseFloatDialog, LifecycleObserver { + private var objectAnimator: ObjectAnimator? = null + private val mLoadingView by lazy { dialog_loading_view } + private val mLoadingText by lazy { dialog_loading_text } + private var mRunnable:Runnable= Runnable { + ToastUtils.showLong("超时未响应,请求失败") + hideLoading() + } + + constructor(context: Context) : super(context) + + init { + setContentView(R.layout.dialog_routing_loading) + setCanceledOnTouchOutside(false) + } + + /** + * 开始旋转 + */ + private fun startRotation() { + objectAnimator = ObjectAnimator.ofFloat(mLoadingView, "rotation", -720f, 0f) + objectAnimator?.let { + it.duration = 3000 + it.repeatCount = -1 + it.interpolator = LinearInterpolator() + it.start() + } + } + + /** + * 停止旋转 + */ + private fun stopRotation() { + objectAnimator?.let { + if (it.isRunning) { + it.end() + objectAnimator = null + } + } + } + + /** + * 显示dialog + */ + fun showLoading() { + mLoadingText.text = "请求中,请稍后..." + startRotation() + show() + } + + /** + * 隐藏dialog + */ + fun hideLoading() { + stopRotation() + dismiss() + } +} \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_left_default.png b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_left_default.png new file mode 100755 index 0000000000..bef6342f64 Binary files /dev/null and b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_left_default.png differ diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_left_pressed.png b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_left_pressed.png new file mode 100755 index 0000000000..76efae02cf Binary files /dev/null and b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_left_pressed.png differ diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_right_default.png b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_right_default.png new file mode 100755 index 0000000000..45af8b7997 Binary files /dev/null and b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_right_default.png differ diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_right_pressed.png b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_right_pressed.png new file mode 100755 index 0000000000..f5bd232a66 Binary files /dev/null and b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_btn_right_pressed.png differ diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_loading_nor.png b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_loading_nor.png new file mode 100644 index 0000000000..0ff5309fab Binary files /dev/null and b/OCH/taxi/unmanned-driver/src/main/res/drawable-xhdpi/routing_loading_nor.png differ diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable/routing_btn_bg_finish_task.xml b/OCH/taxi/unmanned-driver/src/main/res/drawable/routing_btn_bg_finish_task.xml new file mode 100644 index 0000000000..485f92597d --- /dev/null +++ b/OCH/taxi/unmanned-driver/src/main/res/drawable/routing_btn_bg_finish_task.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable/routing_btn_bg_submit_issue.xml b/OCH/taxi/unmanned-driver/src/main/res/drawable/routing_btn_bg_submit_issue.xml new file mode 100644 index 0000000000..c56f217b14 --- /dev/null +++ b/OCH/taxi/unmanned-driver/src/main/res/drawable/routing_btn_bg_submit_issue.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/dialog_routing_loading.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/dialog_routing_loading.xml new file mode 100644 index 0000000000..f019a97cfb --- /dev/null +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/dialog_routing_loading.xml @@ -0,0 +1,22 @@ + + + + + + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_list_item.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_list_item.xml index d0dd1cbcb5..823b8a5fe7 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_list_item.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_list_item.xml @@ -4,13 +4,27 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dp_5" android:background="@drawable/routing_choose_line_shape_select_line_item_bg_normal"> + + - - + app:layout_constraintRight_toLeftOf="@+id/todayVerifyNumTextView" + tools:text="线路名称线路名称线路" /> \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_activity.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_task_activity.xml similarity index 95% rename from OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_activity.xml rename to OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_task_activity.xml index a3acc88b8a..95aa167e16 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_activity.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_task_activity.xml @@ -1,9 +1,11 @@ + android:background="@color/routing_verify_choose_line_bg" + tools:ignore="MissingDefaultResource"> + + + + + + + + - - - - - - - - - @@ -185,9 +184,10 @@ android:id="@+id/naviToEnd" android:layout_width="@dimen/dp_48" android:layout_height="@dimen/dp_48" + android:layout_marginEnd="@dimen/dp_40" android:src="@drawable/taxi_navi_icon" app:layout_constraintBottom_toBottomOf="@id/endStationName" - app:layout_constraintRight_toRightOf="@+id/cancelOrder" + app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="@+id/endStationName" app:layout_goneMarginEnd="@dimen/dp_40" /> @@ -216,14 +216,13 @@ app:layout_constraintLeft_toLeftOf="@+id/startStationTag" app:layout_constraintTop_toBottomOf="@+id/endStationTag" /> - - - + app:layout_constraintLeft_toLeftOf="@+id/endStationName" + app:layout_constraintTop_toBottomOf="@+id/endStationName" /> 查看 选择任务 + 开始任务 任务列表 确认 暂无任务