[6.4.0][启自驾指引] 添加下载状态ui

This commit is contained in:
renwj
2024-04-18 16:37:58 +08:00
parent dfd4a016f7
commit 033df02a24
20 changed files with 337 additions and 6 deletions

View File

@@ -4,8 +4,10 @@ import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import androidx.core.content.ContextCompat
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_DEMO
@@ -15,10 +17,13 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.kotlin.scope
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import kotlinx.android.synthetic.main.view_status_bar.view.*
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.util.concurrent.CopyOnWriteArrayList
class StatusBarView @JvmOverloads constructor(
@@ -57,6 +62,28 @@ class StatusBarView @JvmOverloads constructor(
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){
updateStatusBarLeftView(true, FUNC_MODE_DEMO, DemoModeView(this.context))
updateStatusBarLeftView(true, FUNC_MODE_RAIN, RainModeView(this.context))
CallerDevaToolsManager.registerRouteDownloadListener(TAG) { state ->
routeDownloadStatusRoot?.visibility = View.VISIBLE
when(state) {
1 -> {
routeDownloadStatus?.background = ContextCompat.getDrawable(context, R.drawable.bg_autopilot_route_download_start)
routeDownloadFailMark?.visibility = View.GONE
}
2 -> {
routeDownloadStatus?.background = ContextCompat.getDrawable(context, R.drawable.bg_autopilot_route_download_success)
routeDownloadFailMark?.visibility = View.GONE
scope.launch {
delay(3000)
routeDownloadStatusRoot?.visibility = View.GONE
}
}
3 -> {
routeDownloadStatus?.background = ContextCompat.getDrawable(context, R.drawable.bg_autopilot_route_download_failed)
routeDownloadFailMark?.visibility = View.VISIBLE
}
}
}
}
}
@@ -125,6 +152,7 @@ class StatusBarView @JvmOverloads constructor(
CallerHmiViewControlListenerManager.removeListener(TAG)
CallerSkinModeListenerManager.removeListener(TAG)
CallerDevaToolsManager.hideStatusBar()
CallerDevaToolsManager.unRegisterRouteDownloadListener(TAG)
}
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#FF5A35" android:endColor="#FF0000"/>
<corners
android:radius="@dimen/dp_10"/>
</shape>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<item android:width="@dimen/dp_70" android:height="@dimen/dp_10">
<shape android:shape="rectangle">
<solid android:color="#40000000" />
<corners
android:radius="@dimen/dp_10"/>
</shape>
</item>
<item android:width="@dimen/dp_47" android:height="@dimen/dp_10">
<shape android:shape="rectangle">
<gradient
android:startColor="#35B8FF" android:endColor="#0081FF"/>
<corners
android:radius="@dimen/dp_10"/>
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#31C2DA" android:endColor="#17CAB5"/>
<corners
android:radius="@dimen/dp_10"/>
</shape>

View File

@@ -56,6 +56,37 @@
android:textColor="@color/background_debug"
android:textSize="@dimen/dp_20" />
<LinearLayout
android:id="@+id/routeDownloadStatusRoot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/dp_15"
android:visibility="gone"
tools:visibility="visible"
tools:background="#2F4266">
<View
android:id="@+id/routeDownloadStatus"
android:layout_width="@dimen/dp_70"
android:layout_height="@dimen/dp_10"
android:layout_gravity="center_vertical"
tools:visibility="visible"
tools:background="@drawable/bg_autopilot_route_download_failed"/>
<TextView
android:id="@+id/routeDownloadFailMark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="!"
android:textStyle="bold"
tools:visibility="visible"
android:visibility="gone"
android:layout_marginStart="@dimen/dp_10"
android:textSize="@dimen/dp_28"/>
</LinearLayout>
<Space
android:layout_width="0dip"
android:layout_height="@dimen/dp_1"