diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/ui/routingselect/RoutingSelectView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/ui/routingselect/RoutingSelectView.kt index 8abbc106a1..fef22376f0 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/ui/routingselect/RoutingSelectView.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/routing/ui/routingselect/RoutingSelectView.kt @@ -24,8 +24,13 @@ import com.mogo.och.biz.routing.bean.StartGrayAndQueryContrailRsp import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager import com.mogo.och.biz.routing.ui.RoutingSwitchModel import com.mogo.och.biz.routing.ui.routingselect.RoutingSelectModel.SwtichRoutingViewCallback +import com.mogo.och.common.module.manager.InputManager +import com.mogo.och.common.module.manager.InputTextChangeListener import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.ResourcesUtils +import com.mogo.och.common.module.wigets.KeyboarView +import kotlinx.android.synthetic.main.biz_taxi_select.view.acctv_search_byid +import kotlinx.android.synthetic.main.biz_taxi_select.view.aciv_input_icon import kotlinx.android.synthetic.main.biz_taxi_select.view.aciv_refresh_task import kotlinx.android.synthetic.main.biz_taxi_select.view.actv_current_order import kotlinx.android.synthetic.main.biz_taxi_select.view.actv_order_by_distance @@ -42,7 +47,7 @@ import kotlinx.android.synthetic.main.biz_taxi_select.view.include_error import kotlinx.android.synthetic.main.biz_taxi_select.view.switch_routing_rv import me.jessyan.autosize.utils.AutoSizeUtils -class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback { +class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback, InputTextChangeListener { constructor(context: Context) : super(context) @@ -70,7 +75,7 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback { private var animatorStart = System.currentTimeMillis() - + private var tempAllData = mutableListOf() init { @@ -132,6 +137,13 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback { animator?.repeatMode = ValueAnimator.RESTART // 设置重复模式 } animator?.start() + InputManager.clearInput() + actv_current_order.text = ResourcesUtils.getString(R.string.biz_routing_order_default) + switch_routing_rv.smoothScrollToPosition(0) + acctv_search_byid.isChecked = false + acctv_search_byid.setBackgroundResource(R.drawable.biz_input_order_id_normal) + aciv_input_icon.setImageResource(R.drawable.biz_routing_search_right_normal) + InputManager.setKeyboardVisable(View.GONE) } cl_select_order_contain.onClick { @@ -194,6 +206,20 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback { actv_current_order.text = ResourcesUtils.getString(R.string.biz_routing_order_time_desc) switch_routing_rv.smoothScrollToPosition(0) } + acctv_search_byid.onClick { + if(acctv_search_byid.isChecked==true){ + acctv_search_byid.isChecked = false + acctv_search_byid.setBackgroundResource(R.drawable.biz_input_order_id_normal) + aciv_input_icon.setImageResource(R.drawable.biz_routing_search_right_normal) + InputManager.setKeyboardVisable(View.GONE) + }else{ + acctv_search_byid.isChecked = true + aciv_input_icon.setImageResource(R.drawable.biz_routing_search_right_check) + acctv_search_byid.setBackgroundResource(R.drawable.biz_input_order_id_check) + InputManager.setKeyboardVisable(View.VISIBLE) + } + } + } private fun showEmptyView() { @@ -218,6 +244,7 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback { private fun onRoutingGrayLineListChanged(data: MutableList) { if (data.isNotEmpty()) { showRecyclerView() + tempAllData = data mRoutingLineList.clear() mRoutingLineList.addAll(data) mChooseLineListAdapter.notifyDataSetChanged() @@ -238,6 +265,13 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback { swtichViewModel = findViewTreeViewModelStoreOwner()?.let { ViewModelProvider(it).get(RoutingSwitchModel::class.java) } + + InputManager.addListener(TAG,this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + InputManager.removeListener(TAG) } override fun onVisibilityAggregated(isVisible: Boolean) { @@ -288,4 +322,33 @@ class RoutingSelectView: ConstraintLayout, SwtichRoutingViewCallback { },dex, UiThreadHandler.MODE.QUEUE,) } + override fun onTextChange(info: String) { + ToastUtils.showShort(info) + if (acctv_search_byid.isChecked) { + acctv_search_byid.text = info + if(info.isEmpty()){ + mRoutingLineList.clear() + mRoutingLineList.addAll(tempAllData) + mChooseLineListAdapter.notifyDataSetChanged() + }else{ + val searchData = tempAllData.filter { it.lineId.toString().contains(info) } + mRoutingLineList.clear() + mRoutingLineList.addAll(searchData) + mChooseLineListAdapter.notifyDataSetChanged() + } + } + } + + override fun onKeyVisiblityChange(b: Boolean) { + if(b){ + acctv_search_byid.isChecked = true + acctv_search_byid.setBackgroundResource(R.drawable.biz_input_order_id_check) + aciv_input_icon.setImageResource(R.drawable.biz_routing_search_right_check) + }else{ + acctv_search_byid.isChecked = false + acctv_search_byid.setBackgroundResource(R.drawable.biz_input_order_id_normal) + aciv_input_icon.setImageResource(R.drawable.biz_routing_search_right_normal) + } + } + } diff --git a/OCH/common/biz/src/main/res/routing/drawable-nodpi/biz_routing_search_right_check.png b/OCH/common/biz/src/main/res/routing/drawable-nodpi/biz_routing_search_right_check.png new file mode 100644 index 0000000000..31ec237fb7 Binary files /dev/null and b/OCH/common/biz/src/main/res/routing/drawable-nodpi/biz_routing_search_right_check.png differ diff --git a/OCH/common/biz/src/main/res/routing/drawable-nodpi/biz_routing_search_right_normal.png b/OCH/common/biz/src/main/res/routing/drawable-nodpi/biz_routing_search_right_normal.png new file mode 100644 index 0000000000..e37ce032e3 Binary files /dev/null and b/OCH/common/biz/src/main/res/routing/drawable-nodpi/biz_routing_search_right_normal.png differ diff --git a/OCH/common/biz/src/main/res/routing/drawable/biz_input_order_id_check.xml b/OCH/common/biz/src/main/res/routing/drawable/biz_input_order_id_check.xml new file mode 100644 index 0000000000..2ef62beeac --- /dev/null +++ b/OCH/common/biz/src/main/res/routing/drawable/biz_input_order_id_check.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/routing/drawable/biz_input_order_id_normal.xml b/OCH/common/biz/src/main/res/routing/drawable/biz_input_order_id_normal.xml new file mode 100644 index 0000000000..5121d1a6be --- /dev/null +++ b/OCH/common/biz/src/main/res/routing/drawable/biz_input_order_id_normal.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/routing/drawable/biz_input_order_id_selector.xml b/OCH/common/biz/src/main/res/routing/drawable/biz_input_order_id_selector.xml new file mode 100644 index 0000000000..2c6b39bf80 --- /dev/null +++ b/OCH/common/biz/src/main/res/routing/drawable/biz_input_order_id_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/routing/layout/biz_taxi_select.xml b/OCH/common/biz/src/main/res/routing/layout/biz_taxi_select.xml index 29a172b06c..d04b040bcd 100644 --- a/OCH/common/biz/src/main/res/routing/layout/biz_taxi_select.xml +++ b/OCH/common/biz/src/main/res/routing/layout/biz_taxi_select.xml @@ -59,15 +59,43 @@ android:layout_height="wrap_content"/> + + + + + android:layout_marginTop="@dimen/dp_20" /> #CCFFFFFF #26C14F #FF852E + #999999 \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/InputManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/InputManager.kt new file mode 100644 index 0000000000..aed49d981c --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/InputManager.kt @@ -0,0 +1,36 @@ +package com.mogo.och.common.module.manager + +import com.mogo.och.common.module.utils.CallerBase +import com.mogo.och.common.module.wigets.KeyboarView + +object InputManager: CallerBase() { + + var inputKey: KeyboarView?=null + + fun onTextChange(info:String){ + M_LISTENERS.forEach { + it.value.onTextChange(info) + } + } + + fun setKeyboardVisable(visible: Int) { + inputKey?.visibility = visible + } + + fun keyViewVisiblityChange(b: Boolean) { + M_LISTENERS.forEach { + it.value.onKeyVisiblityChange(b) + } + } + + fun clearInput() { + inputKey?.clearInput() + } + + +} + +interface InputTextChangeListener{ + fun onTextChange(info: String) + fun onKeyVisiblityChange(b: Boolean) +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/KeyboarView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/KeyboarView.kt new file mode 100644 index 0000000000..624f9734fd --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/KeyboarView.kt @@ -0,0 +1,124 @@ +package com.mogo.och.common.module.wigets + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.ClickUtils +import com.mogo.och.common.module.R +import com.mogo.och.common.module.manager.InputManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import kotlinx.android.synthetic.main.common_keyboard_view.view.aciv_close_key +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_0 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_1 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_2 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_3 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_4 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_5 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_6 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_7 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_8 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_9 +import kotlinx.android.synthetic.main.common_keyboard_view.view.actv_key_del + +class KeyboarView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), View.OnClickListener { + companion object { + const val TAG = "LoadingMapStatusView" + } + + private val currentText = StringBuilder() + + init { + LayoutInflater.from(context).inflate(R.layout.common_keyboard_view, this, true) + initView() + } + + private fun initView() { + aciv_close_key.onClick { + visibility = GONE + } + actv_key_0.setOnClickListener(this) + actv_key_1.setOnClickListener(this) + actv_key_2.setOnClickListener(this) + actv_key_3.setOnClickListener(this) + actv_key_4.setOnClickListener(this) + actv_key_5.setOnClickListener(this) + actv_key_6.setOnClickListener(this) + actv_key_7.setOnClickListener(this) + actv_key_8.setOnClickListener(this) + actv_key_9.setOnClickListener(this) + actv_key_del.setOnClickListener(this) + } + + override fun onClick(v: View?) { + if (ClickUtils.isClickTooFrequent(this, 100)) { + return + } + when (v?.id) { + R.id.actv_key_0 -> {changeText("0")} + R.id.actv_key_1 -> {changeText("1")} + R.id.actv_key_2 -> {changeText("2")} + R.id.actv_key_3 -> {changeText("3")} + R.id.actv_key_4 -> {changeText("4")} + R.id.actv_key_5 -> {changeText("5")} + R.id.actv_key_6 -> {changeText("6")} + R.id.actv_key_7 -> {changeText("7")} + R.id.actv_key_8 -> {changeText("8")} + R.id.actv_key_9 -> {changeText("9")} + R.id.actv_key_del -> {changeText(null)} + else -> {} + } + } + + fun changeText(info: String?) { + OchChainLogManager.writeChainLogRouting("自定义键盘", "输入${info}--结果:${currentText}") + if (info.isNullOrEmpty()) { + if (currentText.isNotEmpty()) { + currentText.deleteCharAt(currentText.length - 1) + notifyDataChange(currentText.toString()) + } + } else { + currentText.append(info) + notifyDataChange(currentText.toString()) + } + } + + private fun notifyDataChange(info: String) { + InputManager.onTextChange(info) + } + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + if(isVisible){ + InputManager.keyViewVisiblityChange(true) + }else{ + InputManager.keyViewVisiblityChange(false) + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerLogger.d(TAG, "onAttachedToWindow") + InputManager.inputKey = this + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerLogger.d(TAG, "onDetachedFromWindow") + InputManager.inputKey = null + } + + fun clearInput() { + currentText.clear() + notifyDataChange(currentText.toString()) + } + + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/res/drawable-nodpi/biz_routing_search_orderid_bg.png b/OCH/common/common/src/main/res/drawable-nodpi/biz_routing_search_orderid_bg.png new file mode 100644 index 0000000000..3230b7a125 Binary files /dev/null and b/OCH/common/common/src/main/res/drawable-nodpi/biz_routing_search_orderid_bg.png differ diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_key_close.png b/OCH/common/common/src/main/res/drawable-nodpi/common_key_close.png new file mode 100644 index 0000000000..fefe722be8 Binary files /dev/null and b/OCH/common/common/src/main/res/drawable-nodpi/common_key_close.png differ diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_key_del_normal.png b/OCH/common/common/src/main/res/drawable-nodpi/common_key_del_normal.png new file mode 100644 index 0000000000..52ba81284b Binary files /dev/null and b/OCH/common/common/src/main/res/drawable-nodpi/common_key_del_normal.png differ diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_key_del_press.png b/OCH/common/common/src/main/res/drawable-nodpi/common_key_del_press.png new file mode 100644 index 0000000000..d8eb58d2a1 Binary files /dev/null and b/OCH/common/common/src/main/res/drawable-nodpi/common_key_del_press.png differ diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_key_press.png b/OCH/common/common/src/main/res/drawable-nodpi/common_key_press.png new file mode 100644 index 0000000000..1310300e30 Binary files /dev/null and b/OCH/common/common/src/main/res/drawable-nodpi/common_key_press.png differ diff --git a/OCH/common/common/src/main/res/drawable/common_key_del_selector.xml b/OCH/common/common/src/main/res/drawable/common_key_del_selector.xml new file mode 100644 index 0000000000..bf9fc1893c --- /dev/null +++ b/OCH/common/common/src/main/res/drawable/common_key_del_selector.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/common/src/main/res/drawable/common_key_normal.xml b/OCH/common/common/src/main/res/drawable/common_key_normal.xml new file mode 100644 index 0000000000..f8352f8655 --- /dev/null +++ b/OCH/common/common/src/main/res/drawable/common_key_normal.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/OCH/common/common/src/main/res/drawable/common_key_selector.xml b/OCH/common/common/src/main/res/drawable/common_key_selector.xml new file mode 100644 index 0000000000..bc40b0d49c --- /dev/null +++ b/OCH/common/common/src/main/res/drawable/common_key_selector.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/common/src/main/res/layout/common_keyboard_view.xml b/OCH/common/common/src/main/res/layout/common_keyboard_view.xml new file mode 100644 index 0000000000..53d222b599 --- /dev/null +++ b/OCH/common/common/src/main/res/layout/common_keyboard_view.xml @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/common/src/main/res/values/colors.xml b/OCH/common/common/src/main/res/values/colors.xml index 80f2ebb605..975ee81bf3 100644 --- a/OCH/common/common/src/main/res/values/colors.xml +++ b/OCH/common/common/src/main/res/values/colors.xml @@ -49,7 +49,9 @@ #3B3D44 #2E323A #ffffffff + #fcffffff #1Affffff + #1fffffff #80000000 #2EACFF #D4D4D4 diff --git a/OCH/common/common/src/main/res/values/ids.xml b/OCH/common/common/src/main/res/values/ids.xml index 3b52790d4e..e9e7393dc5 100644 --- a/OCH/common/common/src/main/res/values/ids.xml +++ b/OCH/common/common/src/main/res/values/ids.xml @@ -2,4 +2,6 @@ + + \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_base_fragment.xml b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_base_fragment.xml index ca6121f7c8..6cace80b45 100644 --- a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_base_fragment.xml +++ b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_base_fragment.xml @@ -14,7 +14,7 @@ + + + + + + + diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_switch_biz.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_switch_biz.xml index fa28d9a246..d59b4bb9f4 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_switch_biz.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_switch_biz.xml @@ -1,14 +1,21 @@ + + - diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_container.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_container.xml index 2f2f5e8065..904c162dc4 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_container.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_container.xml @@ -3,8 +3,14 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_gravity="center" - android:background="@drawable/bone_bg"> + android:layout_gravity="center"> + +