diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationAdapter.kt new file mode 100644 index 0000000000..a2c802221c --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationAdapter.kt @@ -0,0 +1,80 @@ +package com.mogo.eagle.core.function.hmi.ui.notice.exploration + +import android.animation.Animator +import android.animation.AnimatorListenerAdapter +import android.animation.ObjectAnimator +import android.animation.ValueAnimator +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.animation.LinearInterpolator +import android.widget.ImageView +import android.widget.TextView +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.data.notice.AutoExplorationEntity +import com.mogo.eagle.core.function.hmi.R + +/** + * 自动探查适配器 + * 鹰眼650需求 + */ +class AutomaticExplorationAdapter(val context: Context,val user: Int): RecyclerView.Adapter() { + + private var data: List ?= null + + fun setData(data: List){ + this.data = data + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ExplorationHolder { + return if(user == 0){ + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_auto_exploration, parent, false) + ExplorationHolder(view) + }else{ + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_auto_exploration_p, parent, false) + ExplorationHolder(view) + } + } + + override fun getItemCount() = data?.size ?: 0 + + override fun onBindViewHolder(holder: ExplorationHolder, position: Int) { + data?.let { + holder.tvExplorationContent.text = it[position].explorationContent + val rotationAnim = ObjectAnimator.ofFloat(holder.ivExplorationLoading, "rotation", 0f, 360f) + rotationAnim.repeatCount = it[position].explorationDuration.toInt()/1000 + rotationAnim.repeatMode = ValueAnimator.RESTART + rotationAnim.duration = 1000 + rotationAnim.interpolator = LinearInterpolator() + rotationAnim.addListener(object: AnimatorListenerAdapter(){ + override fun onAnimationEnd(animation: Animator) { + super.onAnimationEnd(animation) + if(user == 0){ + holder.ivExplorationLoading.setImageDrawable( + ContextCompat.getDrawable( + context, + R.drawable.icon_exploration_done + )) + }else{ + holder.ivExplorationLoading.setImageDrawable( + ContextCompat.getDrawable( + context, + R.drawable.icon_exploration_done_p + )) + } + } + }) + rotationAnim.start() + } + } + + class ExplorationHolder(itemView: View) : RecyclerView.ViewHolder(itemView){ + var ivExplorationLoading: ImageView = itemView.findViewById(R.id.ivExplorationLoading) + var tvExplorationContent: TextView = itemView.findViewById(R.id.tvExplorationContent) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationView.kt index f09ad0e775..3ee10b2cda 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationView.kt @@ -9,8 +9,10 @@ import android.view.View import android.view.animation.LinearInterpolator import android.widget.ImageView import androidx.constraintlayout.widget.ConstraintLayout +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.data.notice.AutoExplorationEntity import com.mogo.eagle.core.function.hmi.R -import com.mogo.eagle.core.utilcode.util.ThreadUtils /** @@ -23,17 +25,31 @@ class AutomaticExplorationView @JvmOverloads constructor( defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr) { + private var user = 0 private var ivClose: ImageView ?= null //关闭按钮 private var ivScan: ImageView ?= null //扫描视图 + private var rvExplorationList: RecyclerView ?= null + private var automaticExplorationAdapter: AutomaticExplorationAdapter ?= null companion object { private const val TAG = "AutomaticExplorationView" } + init { + val typedArray = context.obtainStyledAttributes(attrs, R.styleable.AutomaticExplorationView) + user = typedArray.getInt(R.styleable.AutomaticExplorationView_explorationUser,0) + typedArray.recycle() + } + override fun onAttachedToWindow() { super.onAttachedToWindow() - LayoutInflater.from(context).inflate(R.layout.view_automatic_exploration, this, true) + if(user == 0){ + LayoutInflater.from(context).inflate(R.layout.view_automatic_exploration, this, true) + }else{ + LayoutInflater.from(context).inflate(R.layout.view_automatic_exploration_p, this, true) + } initEvent() + initData() } private fun initEvent(){ @@ -52,8 +68,24 @@ class AutomaticExplorationView @JvmOverloads constructor( rotationAnim.interpolator = LinearInterpolator() rotationAnim.start() } + rvExplorationList = findViewById(R.id.rvExplorationList) + val linearLayoutManager = LinearLayoutManager(context) + linearLayoutManager.orientation = LinearLayoutManager.VERTICAL + automaticExplorationAdapter = AutomaticExplorationAdapter(context,user) + rvExplorationList?.adapter = automaticExplorationAdapter + rvExplorationList?.layoutManager = linearLayoutManager + } - + private fun initData() { + val dataList = ArrayList() + dataList.add(AutoExplorationEntity("当前道路事件分析",5000L)) + dataList.add(AutoExplorationEntity("前方车辆",6000L)) + dataList.add(AutoExplorationEntity("两侧车辆",7000L)) + dataList.add(AutoExplorationEntity("后方车辆",3000L)) + dataList.add(AutoExplorationEntity("前方路口车辆流速分析",5000L)) + dataList.add(AutoExplorationEntity("前方路口行人/非机动车分析",6000L)) + dataList.add(AutoExplorationEntity("路侧视频分析",8000L)) + automaticExplorationAdapter?.setData(dataList) } override fun onDetachedFromWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_auto_exploration.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_auto_exploration.png new file mode 100644 index 0000000000..8f28c13dcc Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_auto_exploration.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_done.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_done.png new file mode 100644 index 0000000000..d09922a80f Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_done.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_done_p.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_done_p.png new file mode 100644 index 0000000000..9c514de15d Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_done_p.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_lane.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_lane.png new file mode 100644 index 0000000000..99e1736414 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_lane.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_loading.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_loading.png new file mode 100644 index 0000000000..ad2b0c05e1 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_loading.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_loading_p.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_loading_p.png new file mode 100644 index 0000000000..e77f8fb2b5 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_loading_p.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_scan.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_scan.png new file mode 100644 index 0000000000..1837d2f789 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_exploration_scan.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration.xml new file mode 100644 index 0000000000..33e28a5719 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration.xml @@ -0,0 +1,26 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration_p.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration_p.xml new file mode 100644 index 0000000000..561bb04419 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration_p.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration.xml index 7cb78dc4a3..4627a06d4b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration.xml @@ -1,28 +1,29 @@ + android:layout_width="@dimen/dp_500" + android:layout_height="@dimen/dp_421" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:background="@drawable/bg_auto_exploration"> @@ -34,21 +35,18 @@ app:layout_constraintBottom_toBottomOf="@id/ivScan" app:layout_constraintStart_toEndOf="@id/ivScan" android:textSize="@dimen/sp_32" - android:textColor="@color/color_131415" + android:textColor="@color/white" android:text="@string/exploration_title" android:layout_marginStart="@dimen/dp_30" + android:layout_marginTop="@dimen/dp_30" /> - - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration_p.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration_p.xml new file mode 100644 index 0000000000..23e371e96d --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration_p.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml index 257d023d29..bcd32f1f27 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml @@ -136,4 +136,11 @@ + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml index 63da6ab51e..820a98b51d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml @@ -100,4 +100,6 @@ #36DB1C #FDB700 + #131415 + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index 12e5014d93..e5762926be 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -126,6 +126,7 @@ 自动探索车道线 正在为您探查前方道路 自动探索关闭按钮 + 自动探索条目图标 蘑菇为您实时护航中,请放心驾驶! diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/AutoExplorationEntity.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/AutoExplorationEntity.kt new file mode 100644 index 0000000000..7b20cd6db7 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/AutoExplorationEntity.kt @@ -0,0 +1,6 @@ +package com.mogo.eagle.core.data.notice + +/** + * 自动探查 + */ +data class AutoExplorationEntity(var explorationContent: String,var explorationDuration: Long) \ No newline at end of file