Merge branch 'dev/dev_eagle_architecture_upgrade' into dev/dev_eagle_wuhan_sikua_obu
1
core/function-impl/mogo-core-function-check/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/build
|
||||
37
core/function-impl/mogo-core-function-check/README.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# 状态检测模块
|
||||
硬件检测范围
|
||||
主激光雷达
|
||||
侧激光雷达-2个
|
||||
ADAS长焦摄像头-前
|
||||
ADAS广角摄像头-前
|
||||
ADAS标准摄像头-前
|
||||
ADAS广角摄像头-后
|
||||
RTK设备
|
||||
OUB设备
|
||||
PAD
|
||||
路由器
|
||||
|
||||
自动驾驶软件检测范围 节点
|
||||
车控节点
|
||||
轨迹地图加载节点
|
||||
轨迹规划节点
|
||||
定位转化节点
|
||||
融合节点
|
||||
yolov5节点(包含红绿灯检测)
|
||||
激光雷达渲染节点
|
||||
摄像头驱动节点
|
||||
gnss定位驱动节点
|
||||
中激光驱动节点
|
||||
左激光解码节点
|
||||
左激光驱动节点
|
||||
右激光解码节点
|
||||
右激光驱动节点
|
||||
监控节点
|
||||
通讯交互节点
|
||||
轨迹录制节点
|
||||
can车辆控制节点
|
||||
鹰眼
|
||||
|
||||
版本更新
|
||||
自动驾驶版本
|
||||
鹰眼版本
|
||||
69
core/function-impl/mogo-core-function-check/build.gradle
Normal file
@@ -0,0 +1,69 @@
|
||||
apply plugin: 'com.android.library'
|
||||
apply plugin: 'com.alibaba.arouter'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlin-android-extensions'
|
||||
|
||||
android {
|
||||
compileSdkVersion rootProject.ext.android.compileSdkVersion
|
||||
defaultConfig {
|
||||
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
||||
versionCode Integer.valueOf(VERSION_CODE)
|
||||
versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION")
|
||||
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = [AROUTER_MODULE_NAME: project.getName()]
|
||||
}
|
||||
}
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation rootProject.ext.dependencies.androidxappcompat
|
||||
implementation rootProject.ext.dependencies.androidxrecyclerview
|
||||
implementation rootProject.ext.dependencies.androidxconstraintlayout
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
implementation rootProject.ext.dependencies.callchatprovider
|
||||
implementation rootProject.ext.dependencies.coroutinesandroid
|
||||
implementation rootProject.ext.dependencies.coroutinescore
|
||||
implementation rootProject.ext.dependencies.kotlinstdlibjdk7
|
||||
implementation 'com.google.android.material:material:1.2.1'
|
||||
implementation project(':modules:mogo-module-common')
|
||||
implementation project(path: ':modules:mogo-module-service')
|
||||
|
||||
annotationProcessor rootProject.ext.dependencies.aroutercompiler
|
||||
|
||||
if (Boolean.valueOf(RELEASE)) {
|
||||
implementation rootProject.ext.dependencies.mogocommons
|
||||
implementation rootProject.ext.dependencies.mogoserviceapi
|
||||
} else {
|
||||
implementation project(":foudations:mogo-commons")
|
||||
implementation project(':services:mogo-service-api')
|
||||
|
||||
implementation project(':core:mogo-core-utils')
|
||||
}
|
||||
implementation 'com.tencent.bugly:crashreport_upgrade:latest.release'
|
||||
//其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9
|
||||
implementation 'com.tencent.bugly:nativecrashreport:latest.release'
|
||||
//其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0
|
||||
|
||||
}
|
||||
|
||||
apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString()
|
||||
@@ -0,0 +1,3 @@
|
||||
GROUP=com.mogo.module
|
||||
POM_ARTIFACT_ID=module-check
|
||||
VERSION_CODE=1
|
||||
21
core/function-impl/mogo-core-function-check/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.mogo.eagle.core.function.check">
|
||||
|
||||
<application>
|
||||
<activity
|
||||
android:name="com.mogo.eagle.core.function.check.view.CheckActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="landscape" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,90 @@
|
||||
package com.mogo.eagle.core.function.check;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.eagle.core.utilcode.util.LogUtils;
|
||||
import com.mogo.eagle.core.function.api.check.IMogoCheckListener;
|
||||
import com.mogo.eagle.core.function.check.view.CheckActivity;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.eagle.core.function.api.check.ICheckProvider;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
|
||||
/**
|
||||
* 鹰眼系统、自动驾驶系统 检测模块
|
||||
*
|
||||
* @date 4/21/21 3:39 PM
|
||||
* 需求地址
|
||||
* wiki:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=58204952
|
||||
*/
|
||||
@Route(path = MogoServicePaths.PATH_CHECK)
|
||||
public class VehicleMonitoringManager implements ICheckProvider {
|
||||
private static final String TAG = "VehicleMonitoringManager";
|
||||
private Context mContext;
|
||||
private final Map<String, CopyOnWriteArrayList> mListeners = new ConcurrentHashMap<>();
|
||||
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
LogUtils.dTag(TAG, "初始化 CheckProvider 模块");
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerVehicleMonitoringListener(String module, IMogoCheckListener listener) {
|
||||
if (listener == null || module == null) {
|
||||
LogUtils.dTag(TAG, "listener == null || intent == null");
|
||||
return;
|
||||
}
|
||||
if (!mListeners.containsKey(module)) {
|
||||
LogUtils.dTag(TAG, "intent==" + module + "listener" + listener);
|
||||
mListeners.put(module, new CopyOnWriteArrayList<>());
|
||||
}
|
||||
mListeners.get(module).add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterListener(String module, IMogoCheckListener listener) {
|
||||
if (mListeners.containsKey(module)) {
|
||||
mListeners.get(module).remove(listener);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startCheckActivity(Context context) {
|
||||
if (context != null) {
|
||||
CheckActivity.start(context);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showCheckDialog(Context context) {
|
||||
if (context != null) {
|
||||
CheckActivity.showDialog(context);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkMonitor(Context context) {
|
||||
if (context != null) {
|
||||
return CheckActivity.checkMonitor();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateMonitoringStatus(String module, boolean hasError) {
|
||||
List<IMogoCheckListener> listeners = mListeners.get(module);
|
||||
if (listeners != null && !listeners.isEmpty()) {
|
||||
for (IMogoCheckListener listener : listeners) {
|
||||
if (listener != null) {
|
||||
listener.updateMonitoringStatus(hasError);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.mogo.eagle.core.function.check.api;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 描述
|
||||
* @since: 8/6/21
|
||||
*/
|
||||
public interface ICheckListener {
|
||||
|
||||
/**
|
||||
* 工控机->鹰眼定位数据延时
|
||||
*/
|
||||
void getAutoLocationTimeCallbackDelayed(long time);
|
||||
|
||||
/**
|
||||
* 工控机->鹰眼识别数据延时
|
||||
*/
|
||||
void getAutoDataCallbackDelayed(long time);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.mogo.eagle.core.function.check.api;
|
||||
|
||||
/**
|
||||
* @author xiaoyuzhou
|
||||
* @date 2021/7/5 2:54 下午
|
||||
* <p>
|
||||
* 软件环境检测
|
||||
* -----> 自动驾驶版本
|
||||
* -----> 鹰眼版本
|
||||
*/
|
||||
public interface SoftCheckApi {
|
||||
|
||||
/**
|
||||
* 检测「自动驾驶」版本
|
||||
*/
|
||||
void checkAutoPilotSoftVersion();
|
||||
|
||||
/**
|
||||
* 检测「鹰眼」版本
|
||||
*/
|
||||
void checkEagleEyeSoftVersion();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
package com.mogo.eagle.core.function.check.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 描述
|
||||
* @since: 7/28/21
|
||||
*/
|
||||
public class CheckItemInfo implements Serializable {
|
||||
//view类型
|
||||
private int style;
|
||||
//view顶端标题
|
||||
private String viewTitle;
|
||||
|
||||
//icon 下第一行title 自动驾驶软件\鹰眼系统
|
||||
private String title;
|
||||
|
||||
private String value;
|
||||
private ArrayList itemList;
|
||||
//是否存在异常
|
||||
private boolean usual;
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public ArrayList getItemList() {
|
||||
return itemList;
|
||||
}
|
||||
|
||||
public void setItemList(ArrayList itemList) {
|
||||
this.itemList = itemList;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public boolean isUsual() {
|
||||
return usual;
|
||||
}
|
||||
|
||||
public void setUsual(boolean usual) {
|
||||
this.usual = usual;
|
||||
}
|
||||
|
||||
public int getStyle() {
|
||||
return style;
|
||||
}
|
||||
|
||||
public void setStyle(int style) {
|
||||
this.style = style;
|
||||
}
|
||||
|
||||
public String getViewTitle() {
|
||||
return viewTitle;
|
||||
}
|
||||
|
||||
public void setViewTitle(String viewTitle) {
|
||||
this.viewTitle = viewTitle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CheckItemInfo{" +
|
||||
"style=" + style +
|
||||
", viewTitle='" + viewTitle + '\'' +
|
||||
", title='" + title + '\'' +
|
||||
", value='" + value + '\'' +
|
||||
", itemList=" + itemList +
|
||||
", usual=" + usual +
|
||||
'}';
|
||||
}
|
||||
|
||||
public static class DetailItem implements Serializable {
|
||||
private boolean usual;
|
||||
private String title;
|
||||
private String value;
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public boolean isUsual() {
|
||||
return usual;
|
||||
}
|
||||
|
||||
public void setUsual(boolean usual) {
|
||||
this.usual = usual;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "DetailItem{" +
|
||||
"usual=" + usual +
|
||||
", title='" + title + '\'' +
|
||||
", value='" + value + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
public interface CheckAdapterStyleEnum {
|
||||
int ITEM_TYPE_CHECK_TITLE = 0;
|
||||
int ITEM_TYPE_CHECK_LIST = 1;
|
||||
int ITEM_TYPE_CHECK_IMAGE = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.mogo.eagle.core.function.check.net;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 描述
|
||||
* @since: 8/13/21
|
||||
*/
|
||||
public class CheckApiServiceFactory {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.mogo.eagle.core.function.check.net;
|
||||
|
||||
import android.database.Observable;
|
||||
import java.util.Map;
|
||||
import retrofit2.http.FieldMap;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 描述
|
||||
* @since: 8/13/21
|
||||
*/
|
||||
public interface CheckApiServices {
|
||||
|
||||
@POST("/yycp-vehicle-management-service/monitor/reciveInfo")
|
||||
Observable<CheckResultData> uploadCheckDetail(@FieldMap Map<String, String> param);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.mogo.eagle.core.function.check.net;
|
||||
|
||||
import com.mogo.commons.data.BaseData;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 描述
|
||||
* @since: 8/13/21
|
||||
*/
|
||||
public class CheckResultData extends BaseData {
|
||||
}
|
||||
@@ -0,0 +1,580 @@
|
||||
package com.mogo.eagle.core.function.check.view;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.function.check.R;
|
||||
import com.mogo.eagle.core.function.check.model.CheckItemInfo;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.view.ImageViewClipBounds;
|
||||
import com.mogo.module.common.view.SpacesItemDecoration;
|
||||
import com.mogo.module.service.receiver.MogoReceiver;
|
||||
import com.mogo.utils.CommonUtils;
|
||||
import com.mogo.utils.network.utils.NetworkStatusUtil;
|
||||
import com.tencent.bugly.beta.Beta;
|
||||
import com.tencent.bugly.beta.UpgradeInfo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 车辆监控页面
|
||||
* @since: 7/27/21
|
||||
*/
|
||||
public class CheckActivity extends AppCompatActivity {
|
||||
|
||||
private static final String TAG = "CheckActivity";
|
||||
private RecyclerView mRecyclerView;
|
||||
private static ArrayList dataArrayList = new ArrayList();
|
||||
private static Context context;
|
||||
private static NetworkStatusUtil.NetWorkStatus sNetWorkStatus;
|
||||
private ImageView mImageView;
|
||||
private static String packageName = "com.mogo.launcher.f";
|
||||
//车模
|
||||
private ImageView scanBottomCarImage;
|
||||
//扫描束
|
||||
private ImageView scanLineImage;
|
||||
//车辆模型顶部色值加深车模
|
||||
private ImageViewClipBounds scanTopImageView;
|
||||
//车模顶部小部件图片
|
||||
private ImageViewClipBounds tipsImageView;
|
||||
//动画组
|
||||
private AnimatorSet setAnimation = null;
|
||||
private ValueAnimator mValueAnimator;
|
||||
private float movement = 1162f;
|
||||
//进度条
|
||||
private ProgressBar mProgressBar;
|
||||
private final static long DURATION_TIME = 3000;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_check);
|
||||
initView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表View初始化
|
||||
*/
|
||||
public void initView() {
|
||||
setAnimation = new AnimatorSet();
|
||||
mImageView = findViewById(R.id.btnBack);
|
||||
scanBottomCarImage = findViewById(R.id.scan_car_image);
|
||||
scanLineImage = findViewById(R.id.scan_line_image);
|
||||
scanTopImageView = findViewById(R.id.scan_car_top_image);
|
||||
tipsImageView = findViewById(R.id.scan_car_tips);
|
||||
mProgressBar = findViewById(R.id.check_progress);
|
||||
context = mImageView.getContext();
|
||||
packageName = getPackageName(context);
|
||||
mImageView.setOnClickListener(v -> {
|
||||
finish();
|
||||
});
|
||||
//检测动画
|
||||
animation();
|
||||
//版本检测 和系统检查放在第二期
|
||||
// versionCheckResult();
|
||||
// //系统检测
|
||||
// systemCheckResult();
|
||||
//软件检测
|
||||
software();
|
||||
//硬件检测
|
||||
hardware();
|
||||
//根据以上4个结果插入第一个元素(自动驾驶车辆是否存在风险)
|
||||
topListTitle();
|
||||
|
||||
mRecyclerView = findViewById(R.id.check_list);
|
||||
mRecyclerView.setAdapter(new CheckAdapter(context, dataArrayList));
|
||||
CheckLinearLayout linearLayoutManager =
|
||||
new CheckLinearLayout(this, CheckLinearLayout.VERTICAL, false);
|
||||
mRecyclerView.addItemDecoration(new SpacesItemDecoration((int) getResources().getDimension(R.dimen.check_item_space_vr)));
|
||||
mRecyclerView.setLayoutManager(linearLayoutManager);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动驾驶状态下指标监测
|
||||
*/
|
||||
public static boolean checkMonitor() {
|
||||
dataArrayList.clear();
|
||||
Log.d(TAG, "checkMonitor");
|
||||
//版本检测
|
||||
// versionCheckResult();
|
||||
// //系统检测
|
||||
// systemCheckResult();
|
||||
//软件检测
|
||||
software();
|
||||
//硬件检测
|
||||
hardware();
|
||||
//根据以上4个结果插入第一个元素(自动驾驶车辆是否存在风险)
|
||||
topListTitle();
|
||||
MogoApisHandler.getInstance().getApis().getCheckProvider().updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING,false);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动驾驶是否存在风险
|
||||
*/
|
||||
private static void topListTitle() {
|
||||
ArrayList list = new ArrayList(1);
|
||||
CheckItemInfo info = new CheckItemInfo();
|
||||
info.setUsual(false);
|
||||
info.setTitle("自动驾驶车辆存在风险");
|
||||
info.setStyle(CheckItemInfo.CheckAdapterStyleEnum.ITEM_TYPE_CHECK_TITLE);
|
||||
list.add(info);
|
||||
dataArrayList.add(0, list);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param context
|
||||
* @return 当前应用的版本名称
|
||||
*/
|
||||
public static synchronized String getPackageName(Context context) {
|
||||
try {
|
||||
PackageManager packageManager = context.getPackageManager();
|
||||
PackageInfo packageInfo = packageManager.getPackageInfo(
|
||||
context.getPackageName(), 0);
|
||||
Log.d(TAG, "包名:" + packageInfo.packageName);
|
||||
return packageInfo.packageName;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "com.mogo.launcher.f";
|
||||
}
|
||||
|
||||
/**
|
||||
* **************************************************************************************检测动画
|
||||
*/
|
||||
public void animation() {
|
||||
ObjectAnimator animatorX = ObjectAnimator.ofFloat(scanLineImage, "translationX", scanBottomCarImage.getWidth(), 0);
|
||||
ObjectAnimator animatorAl = ObjectAnimator.ofFloat(scanLineImage, "alpha", 0, 1);
|
||||
setAnimation.playTogether(animatorX, animatorAl);
|
||||
setAnimation.setDuration(800);
|
||||
setAnimation.start();
|
||||
setAnimation.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
super.onAnimationEnd(animation);
|
||||
if (scanTopImageView != null) {
|
||||
movement = (float) scanTopImageView.getWidth();
|
||||
scanLineImage.setVisibility(View.VISIBLE);
|
||||
scanTopImageView.setVisibility(View.VISIBLE);
|
||||
tipsImageView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
if (scanLineImage != null) {
|
||||
scanLineImage
|
||||
.animate()
|
||||
.translationX(movement)
|
||||
.setDuration(DURATION_TIME)
|
||||
.setListener(new Animator.AnimatorListener() {
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation) {
|
||||
animatorScanCarBorder(true, scanTopImageView.getWidth());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationCancel(Animator animation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationRepeat(Animator animation) {
|
||||
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 扫描动画:实现扫描束位移+顶部深色车模及检测元件的显示
|
||||
*/
|
||||
public void animatorScanCarBorder(boolean show, int weight) {
|
||||
if (show) {
|
||||
mValueAnimator = ValueAnimator.ofInt(0, weight);
|
||||
} else {
|
||||
}
|
||||
mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
|
||||
@Override
|
||||
public void onAnimationUpdate(ValueAnimator animation) {
|
||||
Rect rect = new Rect(0, 0, (int) mValueAnimator.getAnimatedValue(), scanTopImageView.getHeight());
|
||||
setProgressBarRefresh((int) mValueAnimator.getAnimatedValue());
|
||||
scanTopImageView.setClip(rect);
|
||||
tipsImageView.setClip(rect);
|
||||
}
|
||||
});
|
||||
mValueAnimator.setDuration(DURATION_TIME);
|
||||
mValueAnimator.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* 进度条状态刷新
|
||||
*/
|
||||
public void setProgressBarRefresh(int animateValue) {
|
||||
if (mProgressBar != null) {
|
||||
double scale = new BigDecimal((float) animateValue / scanBottomCarImage.getWidth())
|
||||
.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() * 100;
|
||||
if (mProgressBar.getProgress() < 100) {
|
||||
mProgressBar.setProgress((int) scale);
|
||||
} else {
|
||||
findViewById(R.id.animationLayout).setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* **************************************************************************************版本检测
|
||||
*/
|
||||
public static void versionCheckResult() {
|
||||
ArrayList arrayVer = new ArrayList();
|
||||
//adas 检测指标
|
||||
|
||||
//鹰眼当前版本
|
||||
String verCodeStr = CommonUtils.getVersionName(context, true);
|
||||
Log.d(TAG, "版本检测结果:鹰眼" + verCodeStr);
|
||||
|
||||
//测试数据
|
||||
CheckItemInfo itemInfo = new CheckItemInfo();
|
||||
itemInfo.setViewTitle("版本检测:");
|
||||
itemInfo.setTitle("自动驾驶升级到\n 版本3.1.2.7");
|
||||
if ("不是最新版本" != null) {
|
||||
itemInfo.setUsual(false);
|
||||
itemInfo.setValue("版本升级");
|
||||
} else {
|
||||
itemInfo.setUsual(true);
|
||||
itemInfo.setValue("最新版本 无风险");
|
||||
}
|
||||
arrayVer.add(itemInfo);
|
||||
|
||||
CheckItemInfo yingyan = new CheckItemInfo();
|
||||
UpgradeInfo upgradeInfo = Beta.getUpgradeInfo();
|
||||
if (upgradeInfo == null) {
|
||||
yingyan.setUsual(true);
|
||||
yingyan.setTitle(" 鹰眼 \n版本" + verCodeStr);
|
||||
yingyan.setValue("最新版本 无风险");
|
||||
} else {
|
||||
yingyan.setUsual(false);
|
||||
yingyan.setTitle(" 鹰眼升级到 \n版本" + upgradeInfo.versionName);
|
||||
yingyan.setValue("版本升级");
|
||||
}
|
||||
arrayVer.add(yingyan);
|
||||
dataArrayList.add(arrayVer);
|
||||
}
|
||||
|
||||
/**
|
||||
* **************************************************************************************系统检测
|
||||
*/
|
||||
public static void systemCheckResult() {
|
||||
ArrayList arrSys = new ArrayList();
|
||||
//网络
|
||||
netStatus();
|
||||
//电量
|
||||
float battery = CommonUtils.getBattery(context);
|
||||
//cpu占比
|
||||
double cpu = CommonUtils.getCPU(packageName);
|
||||
//内存占比
|
||||
double memory = CommonUtils.getMemory(packageName);
|
||||
//风险状态
|
||||
CheckItemInfo itemInfo = new CheckItemInfo();
|
||||
itemInfo.setViewTitle("系统检测:");
|
||||
itemInfo.setTitle("自动驾驶系统");
|
||||
itemInfo.setUsual(false);
|
||||
itemInfo.setValue("存在风险");
|
||||
ArrayList list = new ArrayList();
|
||||
//详细指标值
|
||||
CheckItemInfo.DetailItem item = new CheckItemInfo.DetailItem();
|
||||
item.setTitle("工控机链接状态");
|
||||
item.setValue("断开");
|
||||
list.add(item);
|
||||
arrSys.add(itemInfo);
|
||||
|
||||
//鹰眼测试数据
|
||||
CheckItemInfo yingyan = new CheckItemInfo();
|
||||
yingyan.setTitle("鹰眼软件");
|
||||
yingyan.setUsual(false);
|
||||
yingyan.setValue("无风险");
|
||||
|
||||
CheckItemInfo.DetailItem netItem = new CheckItemInfo.DetailItem();
|
||||
netItem.setTitle("网络状态");
|
||||
netItem.setValue(String.valueOf(sNetWorkStatus.getSignalStrength()));
|
||||
list.add(netItem);
|
||||
|
||||
CheckItemInfo.DetailItem batteryItem = new CheckItemInfo.DetailItem();
|
||||
batteryItem.setTitle("电池状态");
|
||||
batteryItem.setValue(String.valueOf(battery));
|
||||
list.add(batteryItem);
|
||||
|
||||
CheckItemInfo.DetailItem cpuItem = new CheckItemInfo.DetailItem();
|
||||
cpuItem.setTitle("CPU占比");
|
||||
cpuItem.setValue(String.valueOf(cpu));
|
||||
list.add(cpuItem);
|
||||
|
||||
CheckItemInfo.DetailItem memoryItem = new CheckItemInfo.DetailItem();
|
||||
memoryItem.setTitle("内存占比");
|
||||
memoryItem.setValue(String.valueOf(memory));
|
||||
list.add(memoryItem);
|
||||
yingyan.setItemList(list);
|
||||
arrSys.add(yingyan);
|
||||
|
||||
dataArrayList.add(arrSys);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 网络
|
||||
*/
|
||||
public static NetworkStatusUtil.NetWorkStatus netStatus() {
|
||||
//网络类型
|
||||
sNetWorkStatus = NetworkStatusUtil.networkState(context);
|
||||
//网络强度
|
||||
if (sNetWorkStatus != null && sNetWorkStatus.getStatus() != null && sNetWorkStatus.getStatus() != "UNKNOWN") {
|
||||
Log.d(TAG, "网络类型:" + sNetWorkStatus.getStatus() + "网络强度:" + sNetWorkStatus.getSignalStrength());
|
||||
if (sNetWorkStatus.getSignalStrength() <= -90) {
|
||||
AIAssist.getInstance(context).speakTTSVoice("网络信号差");
|
||||
}
|
||||
} else {
|
||||
Log.d(TAG, "网络未连接");
|
||||
AIAssist.getInstance(context).speakTTSVoice("网络未连接");
|
||||
}
|
||||
return sNetWorkStatus;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* **************************************************************************************软件测试
|
||||
* 自动驾驶侧:
|
||||
* 1、车控节点
|
||||
* <p>
|
||||
* 2、轨迹地图加载节点
|
||||
* <p>
|
||||
* 3、轨迹规划节点
|
||||
* <p>
|
||||
* 4、定位转化节点
|
||||
* <p>
|
||||
* 5、融合节点
|
||||
* <p>
|
||||
* 6、yolov5节点(包含红绿灯检测)
|
||||
* <p>
|
||||
* 7、激光雷达渲染节点
|
||||
* <p>
|
||||
* 8、摄像头驱动节点
|
||||
* <p>
|
||||
* 9、gnss定位驱动节点
|
||||
* <p>
|
||||
* 10、中激光驱动节点
|
||||
* <p>
|
||||
* 11、左激光解码节点
|
||||
* <p>
|
||||
* 12、左激光驱动节点
|
||||
* <p>
|
||||
* 13、右激光解码节点
|
||||
* <p>
|
||||
* 14、右激光驱动节点
|
||||
* <p>
|
||||
* 15、监控节点
|
||||
* <p>
|
||||
* 16、通讯交互节点
|
||||
* <p>
|
||||
* 17、轨迹录制节点
|
||||
* <p>
|
||||
* 18、can车辆控制节点
|
||||
* <p>
|
||||
* 数据上报频率 什么数据的上报频率
|
||||
* <p>
|
||||
* 时延 工控机->云 工控机->鹰眼 什么数据的时延
|
||||
*/
|
||||
public static void software() {
|
||||
ArrayList arrSoftware = new ArrayList();
|
||||
CheckItemInfo itemInfo = new CheckItemInfo();
|
||||
itemInfo.setViewTitle("软件检测:");
|
||||
itemInfo.setTitle("自动驾驶系统");
|
||||
itemInfo.setUsual(true);
|
||||
itemInfo.setValue("无风险");
|
||||
arrSoftware.add(itemInfo);
|
||||
|
||||
CheckItemInfo itemY = new CheckItemInfo();
|
||||
itemY.setTitle("鹰眼软件");
|
||||
itemY.setUsual(true);
|
||||
itemY.setValue("无风险");
|
||||
arrSoftware.add(itemY);
|
||||
dataArrayList.add(arrSoftware);
|
||||
|
||||
time();
|
||||
}
|
||||
|
||||
/**
|
||||
* 时延
|
||||
* 需要产品确认哪些指标? 定位+周边识别?
|
||||
*/
|
||||
public static long time() {
|
||||
|
||||
final long start = System.nanoTime();
|
||||
long adasDataTime = TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start));
|
||||
Log.i("ADAS数据延时", "接收数据 -> 发出 cost :" + adasDataTime + "ms");
|
||||
return adasDataTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* **************************************************************************************硬件测试
|
||||
* 1、主激光雷达
|
||||
* <p>
|
||||
* 2、侧激光雷达-2个
|
||||
* <p>
|
||||
* 3、ADAS长焦摄像头-前
|
||||
* <p>
|
||||
* 4、ADAS广角摄像头-前
|
||||
* <p>
|
||||
* 5、ADAS标准摄像头-前
|
||||
* <p>
|
||||
* 6、ADAS广角摄像头-后
|
||||
* <p>
|
||||
* 7、RTK设备
|
||||
* <p>
|
||||
* 8、OBU设备
|
||||
* <p>
|
||||
* 9、路由器
|
||||
*/
|
||||
public static void hardware() {
|
||||
ArrayList arrHardware = new ArrayList();
|
||||
CheckItemInfo itemInfo = new CheckItemInfo();
|
||||
itemInfo.setViewTitle("硬件检测:");
|
||||
itemInfo.setTitle("自动驾驶系统");
|
||||
itemInfo.setUsual(false);
|
||||
|
||||
ArrayList detailItem = new ArrayList();
|
||||
CheckItemInfo.DetailItem padItem = new CheckItemInfo.DetailItem();
|
||||
padItem.setTitle("Pad");
|
||||
padItem.setValue("异常");
|
||||
detailItem.add(padItem);
|
||||
|
||||
CheckItemInfo.DetailItem cameraTop = new CheckItemInfo.DetailItem();
|
||||
cameraTop.setTitle("摄像头_top");
|
||||
cameraTop.setValue("正常");
|
||||
detailItem.add(cameraTop);
|
||||
|
||||
CheckItemInfo.DetailItem cameraMiddle = new CheckItemInfo.DetailItem();
|
||||
cameraMiddle.setTitle("摄像头_Middle");
|
||||
cameraMiddle.setValue("正常");
|
||||
detailItem.add(cameraMiddle);
|
||||
|
||||
CheckItemInfo.DetailItem cameraBottom = new CheckItemInfo.DetailItem();
|
||||
cameraBottom.setTitle("摄像头_Bottom");
|
||||
cameraBottom.setValue("正常");
|
||||
detailItem.add(cameraBottom);
|
||||
|
||||
CheckItemInfo.DetailItem zhuJiGuang = new CheckItemInfo.DetailItem();
|
||||
zhuJiGuang.setTitle("主机光雷达");
|
||||
zhuJiGuang.setValue("异常");
|
||||
detailItem.add(zhuJiGuang);
|
||||
|
||||
|
||||
CheckItemInfo.DetailItem jiGuangLeft = new CheckItemInfo.DetailItem();
|
||||
jiGuangLeft.setTitle("左侧激光雷达");
|
||||
jiGuangLeft.setValue("异常");
|
||||
detailItem.add(jiGuangLeft);
|
||||
|
||||
CheckItemInfo.DetailItem jiGuangRight = new CheckItemInfo.DetailItem();
|
||||
jiGuangRight.setTitle("右侧激光雷达");
|
||||
jiGuangRight.setValue("正常");
|
||||
detailItem.add(jiGuangRight);
|
||||
|
||||
CheckItemInfo.DetailItem changjiao = new CheckItemInfo.DetailItem();
|
||||
changjiao.setTitle("ADAS长焦摄像头");
|
||||
changjiao.setValue("正常");
|
||||
detailItem.add(changjiao);
|
||||
|
||||
CheckItemInfo.DetailItem guangJiaoFront = new CheckItemInfo.DetailItem();
|
||||
guangJiaoFront.setTitle("ADAS广焦摄像头-前");
|
||||
guangJiaoFront.setValue("正常");
|
||||
detailItem.add(guangJiaoFront);
|
||||
|
||||
CheckItemInfo.DetailItem custom = new CheckItemInfo.DetailItem();
|
||||
custom.setTitle("ADAS标准摄像头");
|
||||
custom.setValue("正常");
|
||||
detailItem.add(custom);
|
||||
|
||||
CheckItemInfo.DetailItem guangJiaoBe = new CheckItemInfo.DetailItem();
|
||||
guangJiaoBe.setTitle("ADAS广焦摄像头-后");
|
||||
guangJiaoBe.setValue("正常");
|
||||
detailItem.add(guangJiaoBe);
|
||||
|
||||
CheckItemInfo.DetailItem rtk = new CheckItemInfo.DetailItem();
|
||||
rtk.setTitle("RTK设备");
|
||||
rtk.setValue("正常");
|
||||
detailItem.add(rtk);
|
||||
|
||||
CheckItemInfo.DetailItem obu = new CheckItemInfo.DetailItem();
|
||||
obu.setTitle("OUB设备");
|
||||
obu.setValue("正常");
|
||||
detailItem.add(obu);
|
||||
|
||||
CheckItemInfo.DetailItem luyou = new CheckItemInfo.DetailItem();
|
||||
luyou.setTitle("路由器");
|
||||
luyou.setValue("正常");
|
||||
detailItem.add(luyou);
|
||||
itemInfo.setItemList(detailItem);
|
||||
|
||||
arrHardware.add(itemInfo);
|
||||
dataArrayList.add(arrHardware);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测指标上报
|
||||
*/
|
||||
public void publishCheckDetail() {
|
||||
// MogoApisHandler.getInstance().getApis().getNetworkApi().create(CheckApiServices.class,
|
||||
// HostConst.DEVA_HOST).uploadCheckDetail().
|
||||
}
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent starter = new Intent(context, CheckActivity.class);
|
||||
context.startActivity(starter);
|
||||
}
|
||||
|
||||
/**
|
||||
* 指标异常弹框
|
||||
*/
|
||||
public static void showDialog(Context context) {
|
||||
CheckDialog dialog = new CheckDialog(context, true);
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
dataArrayList.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,239 @@
|
||||
package com.mogo.eagle.core.function.check.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.mogo.eagle.core.function.check.R;
|
||||
import com.mogo.eagle.core.function.check.model.CheckItemInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 检测界面单元格
|
||||
* @since: 7/27/21
|
||||
*/
|
||||
public class CheckAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private static final String TAG = "CheckActivity";
|
||||
LayoutInflater mLayoutInflater;
|
||||
ArrayList dataArrayList;
|
||||
private Context mContext;
|
||||
|
||||
public CheckAdapter(@NonNull Context context, @NonNull ArrayList checkArray) {
|
||||
mContext = context;
|
||||
mLayoutInflater = LayoutInflater.from(context);
|
||||
dataArrayList = checkArray;
|
||||
Log.d(TAG, dataArrayList.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == 0) {
|
||||
return CheckItemInfo.CheckAdapterStyleEnum.ITEM_TYPE_CHECK_TITLE;
|
||||
|
||||
} else if (position == 1) {
|
||||
return CheckItemInfo.CheckAdapterStyleEnum.ITEM_TYPE_CHECK_LIST;
|
||||
}
|
||||
return CheckItemInfo.CheckAdapterStyleEnum.ITEM_TYPE_CHECK_IMAGE;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
if (viewType == CheckItemInfo.CheckAdapterStyleEnum.ITEM_TYPE_CHECK_TITLE) {
|
||||
View v = mLayoutInflater.inflate(R.layout.check_titel, parent,
|
||||
false);
|
||||
CheckTitleViewHolder holder = new CheckTitleViewHolder(v);
|
||||
return holder;
|
||||
}
|
||||
if (viewType == CheckItemInfo.CheckAdapterStyleEnum.ITEM_TYPE_CHECK_IMAGE) {
|
||||
View v = mLayoutInflater.inflate(R.layout.check_hardware, parent,
|
||||
false);
|
||||
CheckImage holder = new CheckImage(v);
|
||||
return holder;
|
||||
}
|
||||
View v = mLayoutInflater.inflate(R.layout.check_list, parent,
|
||||
false);
|
||||
CheckListViewHolder holder = new CheckListViewHolder(v);
|
||||
return holder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 顶部view列表
|
||||
*/
|
||||
class CheckTitleViewHolder extends RecyclerView.ViewHolder {
|
||||
private ImageView errorImage;
|
||||
private TextView mTextView;
|
||||
|
||||
public CheckTitleViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
errorImage = itemView.findViewById(R.id.error_tip_image);
|
||||
mTextView = itemView.findViewById(R.id.error_title);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 版本->软件检测
|
||||
*/
|
||||
class CheckListViewHolder extends RecyclerView.ViewHolder {
|
||||
private TextView viewTitle;
|
||||
private TextView iconAutoTitle;
|
||||
private TextView autoRiskState;
|
||||
|
||||
private TextView iconyingTitle;
|
||||
private TextView yingRiskState;
|
||||
|
||||
public CheckListViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
viewTitle = itemView.findViewById(R.id.list_item_title);
|
||||
//自动驾驶
|
||||
iconAutoTitle = itemView.findViewById(R.id.icon_auto_title);
|
||||
autoRiskState = itemView.findViewById(R.id.auto_risk_state);
|
||||
//鹰眼应用
|
||||
iconyingTitle = itemView.findViewById(R.id.icon_ying_title);
|
||||
yingRiskState = itemView.findViewById(R.id.ying_risk_state);
|
||||
itemView.setLongClickable(true);
|
||||
itemView.setOnLongClickListener(v -> {
|
||||
Log.d(TAG, "长按显示状态工具栏");
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra("oper", 52);
|
||||
return true;
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 硬件检测
|
||||
*/
|
||||
class CheckImage extends RecyclerView.ViewHolder {
|
||||
private ImageView pad;
|
||||
private ImageView jiaoJiGuangTop;
|
||||
private TextView jiaoJiGuangTopText;
|
||||
private ImageView jiaoJiGuangBottom;
|
||||
private TextView jiaoJiGuangBottomText;
|
||||
private ImageView zhuJiGuang;
|
||||
private ImageView rtk;
|
||||
private ImageView cameraTop;
|
||||
private ImageView cameraMiddle;
|
||||
private ImageView cameraBottom;
|
||||
private ImageView cameraBehind;
|
||||
private ImageView luyouqi;
|
||||
private ImageView obu;
|
||||
|
||||
public CheckImage(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
pad = itemView.findViewById(R.id.pad);
|
||||
jiaoJiGuangTop = itemView.findViewById(R.id.jiaoJiGuangTop);
|
||||
jiaoJiGuangTopText = itemView.findViewById(R.id.jiaoJiGuangTop_txt);
|
||||
jiaoJiGuangBottom = itemView.findViewById(R.id.jiaoJiGuangBottom);
|
||||
jiaoJiGuangBottomText = itemView.findViewById(R.id.jiaoJiGuangBottom_txt);
|
||||
zhuJiGuang = itemView.findViewById(R.id.zhujiguang);
|
||||
rtk = itemView.findViewById(R.id.rtk);
|
||||
cameraTop = itemView.findViewById(R.id.top);
|
||||
cameraMiddle = itemView.findViewById(R.id.middle);
|
||||
cameraBottom = itemView.findViewById(R.id.bottom);
|
||||
cameraBehind = itemView.findViewById(R.id.camera_begind);
|
||||
luyouqi = itemView.findViewById(R.id.luyouqi);
|
||||
obu = itemView.findViewById(R.id.obu);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
try {
|
||||
Object list = dataArrayList.get(position);
|
||||
if (position == 0) {
|
||||
if (list instanceof ArrayList && ((ArrayList) list).size() > 0) {
|
||||
CheckItemInfo item = (CheckItemInfo) ((ArrayList) list).get(0);
|
||||
((CheckTitleViewHolder) holder).mTextView.setText(item.getTitle());
|
||||
if (item.isUsual() == true) {
|
||||
((CheckTitleViewHolder) holder).errorImage.setImageResource(R.drawable.check_right);
|
||||
} else {
|
||||
((CheckTitleViewHolder) holder).errorImage.setImageResource(R.drawable.check_wrong);
|
||||
}
|
||||
}
|
||||
} else if (position == dataArrayList.size() - 1) {
|
||||
((CheckListViewHolder) holder).viewTitle.setText("硬件检测:");
|
||||
if (list instanceof ArrayList) {
|
||||
refreshHardware(holder, (ArrayList) list);
|
||||
}
|
||||
} else {
|
||||
if (list instanceof ArrayList && ((ArrayList) list).size() > 1) {
|
||||
CheckItemInfo item = (CheckItemInfo) ((ArrayList) list).get(0);
|
||||
((CheckListViewHolder) holder).viewTitle.setText(item.getViewTitle());
|
||||
//自动驾驶 状态展示
|
||||
((CheckListViewHolder) holder).iconAutoTitle.setText(item.getTitle());
|
||||
((CheckListViewHolder) holder).autoRiskState.setText(item.getValue());
|
||||
if (item.isUsual() == true) {
|
||||
((CheckListViewHolder) holder).autoRiskState.setTextColor(mContext.getResources().getColor(R.color.check_little_btn_green));
|
||||
} else {
|
||||
((CheckListViewHolder) holder).autoRiskState.setTextColor(mContext.getResources().getColor(R.color.check_tip_error_color));
|
||||
}
|
||||
if (position == 1) {
|
||||
if (item.isUsual() == false) {
|
||||
((CheckListViewHolder) holder).autoRiskState.setTextColor(mContext.getResources().getColor(R.color.modules_commons_toast_text_color));
|
||||
((CheckListViewHolder) holder).autoRiskState.setBackground(mContext.getResources().getDrawable(R.drawable.check_detail));
|
||||
((CheckListViewHolder) holder).autoRiskState.setOnClickListener(v -> {
|
||||
Log.d(TAG, "点击自动驾驶升级");
|
||||
});
|
||||
} else {
|
||||
((CheckListViewHolder) holder).autoRiskState.setTextColor(mContext.getResources().getColor(R.color.check_little_btn_green));
|
||||
}
|
||||
}
|
||||
//鹰眼 状态展示
|
||||
CheckItemInfo itemForYing = (CheckItemInfo) ((ArrayList) list).get(1);
|
||||
((CheckListViewHolder) holder).iconyingTitle.setText(itemForYing.getTitle());
|
||||
((CheckListViewHolder) holder).yingRiskState.setText(itemForYing.getValue());
|
||||
if (itemForYing.isUsual() == true) {
|
||||
((CheckListViewHolder) holder).yingRiskState.setTextColor(mContext.getResources().getColor(R.color.check_little_btn_green));
|
||||
} else {
|
||||
((CheckListViewHolder) holder).yingRiskState.setTextColor(mContext.getResources().getColor(R.color.check_tip_error_color));
|
||||
}
|
||||
if (position == 1) {
|
||||
if (itemForYing.isUsual() == false) {
|
||||
((CheckListViewHolder) holder).yingRiskState.setTextColor(mContext.getResources().getColor(R.color.modules_commons_toast_text_color));
|
||||
((CheckListViewHolder) holder).yingRiskState.setBackground(mContext.getResources().getDrawable(R.drawable.check_detail));
|
||||
((CheckListViewHolder) holder).yingRiskState.setOnClickListener(v -> {
|
||||
Log.d(TAG, "点击鹰眼升级");
|
||||
});
|
||||
} else {
|
||||
((CheckListViewHolder) holder).yingRiskState.setTextColor(mContext.getResources().getColor(R.color.check_little_btn_green));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 硬件检测指标
|
||||
*
|
||||
* @param list
|
||||
*/
|
||||
public void refreshHardware(@NonNull RecyclerView.ViewHolder holder, ArrayList list) {
|
||||
if (list.size() > 0) {
|
||||
CheckItemInfo info = (CheckItemInfo) list.get(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return dataArrayList.size();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.mogo.eagle.core.function.check.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.mogo.eagle.core.function.check.R;
|
||||
import com.mogo.module.common.dialog.BaseFloatDialog;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 车辆监控弹框提示
|
||||
* @since: 7/30/21
|
||||
*/
|
||||
public class CheckDialog extends BaseFloatDialog {
|
||||
|
||||
private ImageView cancel;
|
||||
private boolean showWarning;
|
||||
|
||||
public CheckDialog(@NonNull Context context, boolean hasError) {
|
||||
super(context);
|
||||
showWarning = hasError;
|
||||
initView();
|
||||
}
|
||||
|
||||
public CheckDialog(@NonNull Context context, int themeResId) {
|
||||
super(context, themeResId);
|
||||
}
|
||||
|
||||
public void initView() {
|
||||
setContentView(R.layout.check_dialog);
|
||||
cancel = findViewById(R.id.cancel_button);
|
||||
cancel.setOnClickListener(v -> {
|
||||
cancel();
|
||||
});
|
||||
|
||||
//根据条件显示体检页面/风险提示
|
||||
if (showWarning == true) {
|
||||
findViewById(R.id.error_view).setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.check_view).setVisibility(View.INVISIBLE);
|
||||
|
||||
} else {
|
||||
findViewById(R.id.error_view).setVisibility(View.INVISIBLE);
|
||||
findViewById(R.id.check_view).setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void cancel() {
|
||||
super.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dismiss() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.mogo.eagle.core.function.check.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.LogUtils;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 描述
|
||||
* @since: 7/27/21
|
||||
*/
|
||||
class CheckLinearLayout extends LinearLayoutManager {
|
||||
public CheckLinearLayout(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public CheckLinearLayout(Context context, int orientation, boolean reverseLayout) {
|
||||
super(context, orientation, reverseLayout);
|
||||
}
|
||||
|
||||
public CheckLinearLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
|
||||
try {
|
||||
super.onLayoutChildren(recycler, state);
|
||||
} catch (IndexOutOfBoundsException e) {
|
||||
e.printStackTrace();
|
||||
LogUtils.dTag("CheckLinearLayout", "崩溃信息--" + e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#4192FF"/>
|
||||
<corners android:radius="55px"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="6px" />
|
||||
|
||||
<gradient
|
||||
android:angle="180"
|
||||
android:endColor="#2B6EFF"
|
||||
android:startColor="#3DCCFF" />
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#2B6EFF"/>
|
||||
<corners android:radius="55px"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#1E3282"/>
|
||||
<corners android:radius="30px"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="@dimen/dp_30" />
|
||||
<gradient
|
||||
android:angle="180"
|
||||
android:endColor="@color/check_list_item_back"
|
||||
android:startColor="@color/check_list_item_back"
|
||||
android:type="linear" />
|
||||
|
||||
</shape>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<size
|
||||
android:width="@dimen/check_little_btn_width"
|
||||
android:height="@dimen/check_little_btn_width" />
|
||||
//填充
|
||||
<solid android:color="@color/check_little_btn_solid" />
|
||||
//描边
|
||||
<stroke
|
||||
android:width="2px"
|
||||
android:color="@color/check_little_btn" />
|
||||
|
||||
</shape>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<size
|
||||
android:width="@dimen/check_little_btn_width"
|
||||
android:height="@dimen/check_little_btn_width" />
|
||||
//填充
|
||||
<solid android:color="@color/check_little_btn_solid_green" />
|
||||
//描边
|
||||
<stroke
|
||||
android:width="2px"
|
||||
android:color="@color/check_little_btn_green" />
|
||||
|
||||
</shape>
|
||||
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:id="@android:id/background">
|
||||
<shape>
|
||||
<corners android:radius="@dimen/dp_33" />
|
||||
<solid android:color="#0B1030" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:id="@android:id/progress">
|
||||
<scale android:scaleWidth="100%">
|
||||
<shape>
|
||||
<corners android:radius="@dimen/dp_33" />
|
||||
<solid android:color="#3DCCFF" />
|
||||
<gradient
|
||||
android:angle="180"
|
||||
android:endColor="#2B6EFF"
|
||||
android:startColor="#3DCCFF" />
|
||||
</shape>
|
||||
</scale>
|
||||
</item>
|
||||
<item android:id="@android:id/secondaryProgress">
|
||||
<scale android:scaleWidth="100%">
|
||||
<shape>
|
||||
<corners android:radius="@dimen/dp_33" />
|
||||
<solid android:color="#0B1030" />
|
||||
</shape>
|
||||
</scale>
|
||||
</item>
|
||||
</layer-list>
|
||||
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 362 KiB |
|
After Width: | Height: | Size: 379 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 347 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/blue_back_color"
|
||||
tools:context="com.mogo.eagle.core.function.check.view.CheckActivity">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/check_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btnBack"
|
||||
android:layout_width="@dimen/dp_106"
|
||||
android:layout_height="@dimen/dp_106"
|
||||
android:layout_marginLeft="@dimen/dp_50"
|
||||
android:layout_marginTop="@dimen/dp_50"
|
||||
android:src="@drawable/module_common_icon_close"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/animationLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/blue_back_color">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/scan_car_image"
|
||||
android:layout_width="@dimen/check_scan_width"
|
||||
android:layout_height="@dimen/check_scan_height"
|
||||
android:layout_marginTop="@dimen/dp_400"
|
||||
android:src="@drawable/check_scan_first"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.mogo.module.common.view.ImageViewClipBounds
|
||||
android:id="@+id/scan_car_top_image"
|
||||
android:layout_width="@dimen/check_scan_width"
|
||||
android:layout_height="@dimen/check_scan_height"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/check_scan_second"
|
||||
android:visibility="invisible"
|
||||
app:layout_constraintLeft_toLeftOf="@id/scan_car_image"
|
||||
app:layout_constraintTop_toTopOf="@id/scan_car_image" />
|
||||
|
||||
|
||||
<com.mogo.module.common.view.ImageViewClipBounds
|
||||
android:id="@+id/scan_car_tips"
|
||||
android:layout_width="@dimen/check_scan_width"
|
||||
android:layout_height="@dimen/check_scan_height"
|
||||
android:layout_marginLeft="@dimen/dp_699"
|
||||
android:layout_marginTop="@dimen/dp_400"
|
||||
android:layout_marginRight="@dimen/dp_699"
|
||||
android:scaleType="fitEnd"
|
||||
android:src="@drawable/check_scan_tips"
|
||||
android:visibility="invisible"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/check_progress_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_120"
|
||||
android:text="自动驾驶车辆体检中,请稍候……"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_42"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scan_car_image" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/check_progress"
|
||||
style="@style/check_progressBar_scale"
|
||||
android:layout_width="@dimen/dp_520"
|
||||
android:layout_height="@dimen/dp_12"
|
||||
android:layout_marginTop="@dimen/dp_57"
|
||||
android:max="100"
|
||||
android:progress="0"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/check_progress_text" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/scan_line_image"
|
||||
android:layout_width="@dimen/dp_25"
|
||||
android:layout_height="@dimen/dp_652"
|
||||
android:layout_marginTop="@dimen/dp_370"
|
||||
android:src="@drawable/scan_tip_line"
|
||||
app:layout_constraintLeft_toLeftOf="@id/scan_car_image"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="1529px"
|
||||
android:layout_height="720px"
|
||||
android:layout_gravity="center"
|
||||
android:background="@drawable/check_dialog_back">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/cancel_button"
|
||||
android:layout_width="@dimen/dp_106"
|
||||
android:layout_height="@dimen/dp_106"
|
||||
android:layout_marginLeft="@dimen/dp_30"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:src="@drawable/module_common_icon_close"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
android:layout_width="@dimen/dp_795"
|
||||
android:layout_height="@dimen/dp_484"
|
||||
android:layout_marginEnd="@dimen/dp_50"
|
||||
android:layout_marginBottom="@dimen/dp_78"
|
||||
android:src="@drawable/check_tip_image"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/error_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_97"
|
||||
android:layout_marginTop="@dimen/dp_225"
|
||||
android:visibility="invisible"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/error_image"
|
||||
android:layout_width="@dimen/dp_56"
|
||||
android:layout_height="@dimen/dp_56"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:src="@drawable/check_wrong"
|
||||
app:layout_constraintTop_toTopOf="@id/error_view" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/error_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:text="自动驾驶车辆存在风险"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_54"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toEndOf="@id/error_image"
|
||||
app:layout_constraintTop_toTopOf="@id/error_view" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/error_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_23"
|
||||
android:text="软件运行异常"
|
||||
android:textColor="@color/check_tip_error_color"
|
||||
android:textSize="@dimen/dp_38"
|
||||
app:layout_constraintTop_toBottomOf="@id/error_title" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/check_detail"
|
||||
android:layout_width="@dimen/dp_287"
|
||||
android:layout_height="@dimen/dp_100"
|
||||
android:layout_marginTop="@dimen/check_button_bottom"
|
||||
android:background="@drawable/check_detail"
|
||||
android:gravity="center"
|
||||
android:text="查看详情"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/check_button_text_size"
|
||||
app:layout_constraintTop_toBottomOf="@id/error_txt" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/check_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_133"
|
||||
android:layout_marginTop="@dimen/dp_200"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/check_text_view"
|
||||
android:layout_width="@dimen/dp_520"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="您的自动驾驶系统已经很久没有进行体检了,建议立即体检。"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_44" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/check_button"
|
||||
android:layout_width="@dimen/dp_287"
|
||||
android:layout_height="@dimen/dp_100"
|
||||
android:layout_marginTop="@dimen/check_button_bottom"
|
||||
android:background="@drawable/check_button"
|
||||
android:gravity="center"
|
||||
android:text="立即体检"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/check_button_text_size"
|
||||
app:layout_constraintTop_toBottomOf="@id/check_text_view" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,314 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="@dimen/dp_100"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_100"
|
||||
android:layout_marginBottom="@dimen/dp_15"
|
||||
android:background="@drawable/check_list_item_back">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_50"
|
||||
android:layout_marginTop="@dimen/dp_50"
|
||||
android:gravity="left"
|
||||
android:text="硬件检测:"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_42"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_goneMarginTop="@dimen/dp_50" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_50"
|
||||
android:text="(下面 1 项存在异常)"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_42"
|
||||
app:layout_constraintLeft_toRightOf="@+id/title"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!--角激光文字-->
|
||||
<TextView
|
||||
android:id="@+id/jiaoJiGuangTop_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/check_image"
|
||||
android:layout_marginStart="@dimen/dp_1000"
|
||||
android:layout_marginTop="@dimen/dp_236"
|
||||
android:gravity="center"
|
||||
android:text="角激光"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
<!--车辆模型-->
|
||||
<RelativeLayout
|
||||
android:id="@+id/check_image"
|
||||
android:layout_width="@dimen/check_hard_ware_image_width"
|
||||
android:layout_height="@dimen/check_hard_ware_image_height"
|
||||
android:layout_marginLeft="@dimen/dp_460"
|
||||
android:layout_marginTop="144dp"
|
||||
android:background="@drawable/check_scan_first"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
<!--Pad-->
|
||||
<ImageView
|
||||
android:id="@+id/pad"
|
||||
android:layout_width="@dimen/dp_95"
|
||||
android:layout_height="@dimen/dp_145"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginStart="@dimen/dp_292"
|
||||
android:src="@drawable/pad_unusual" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pad_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/pad"
|
||||
android:layout_alignEnd="@+id/pad"
|
||||
android:layout_centerVertical="true"
|
||||
android:gravity="center"
|
||||
android:text="Pad"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_32" />
|
||||
<!--前摄像头3-->
|
||||
<TextView
|
||||
android:id="@+id/camera_front_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/camera"
|
||||
android:layout_marginStart="@dimen/dp_434"
|
||||
android:layout_marginBottom="@dimen/dp_42"
|
||||
android:gravity="center"
|
||||
android:text="摄像头"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_32" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/camera"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginStart="@dimen/dp_65"
|
||||
android:layout_toEndOf="@+id/pad"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/top"
|
||||
android:layout_width="@dimen/dp_56"
|
||||
android:layout_height="@dimen/dp_56"
|
||||
android:src="@drawable/camera_usual" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/middle"
|
||||
android:layout_width="@dimen/dp_56"
|
||||
android:layout_height="@dimen/dp_56"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:src="@drawable/camera_usual" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/bottom"
|
||||
android:layout_width="@dimen/dp_56"
|
||||
android:layout_height="@dimen/dp_56"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:src="@drawable/camera_usual" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!--角激光-->
|
||||
<ImageView
|
||||
android:id="@+id/jiaoJiGuangTop"
|
||||
android:layout_width="@dimen/dp_70"
|
||||
android:layout_height="@dimen/dp_70"
|
||||
android:layout_marginLeft="@dimen/dp_57"
|
||||
android:layout_marginTop="@dimen/dp_100"
|
||||
android:layout_toEndOf="@+id/camera"
|
||||
android:src="@drawable/zhujiguang_usual" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/jiaoJiGuangBottom"
|
||||
android:layout_width="@dimen/dp_70"
|
||||
android:layout_height="@dimen/dp_70"
|
||||
android:layout_alignTop="@+id/jiaoJiGuangTop"
|
||||
android:layout_marginLeft="@dimen/dp_57"
|
||||
android:layout_marginTop="@dimen/dp_440"
|
||||
android:layout_toEndOf="@+id/camera"
|
||||
android:src="@drawable/zhujiguang_usual" />
|
||||
<!--主激光-->
|
||||
<ImageView
|
||||
android:id="@+id/zhujiguang"
|
||||
android:layout_width="@dimen/dp_140"
|
||||
android:layout_height="@dimen/dp_140"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="@dimen/dp_77"
|
||||
android:layout_toEndOf="@+id/camera"
|
||||
android:src="@drawable/zhujiguang_usual" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/zhujiguang_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/zhujiguang"
|
||||
android:layout_alignEnd="@+id/zhujiguang"
|
||||
android:layout_centerVertical="true"
|
||||
android:gravity="center"
|
||||
android:text="主激光"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_32" />
|
||||
<!--RTK-->
|
||||
<ImageView
|
||||
android:id="@+id/rtk"
|
||||
android:layout_width="@dimen/dp_140"
|
||||
android:layout_height="@dimen/dp_80"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="@dimen/dp_48"
|
||||
android:layout_toEndOf="@+id/zhujiguang"
|
||||
android:src="@drawable/rtk_usual" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rtk_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/rtk"
|
||||
android:layout_alignEnd="@+id/rtk"
|
||||
android:layout_centerVertical="true"
|
||||
android:gravity="center"
|
||||
android:text="RTK"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_32" />
|
||||
<!--摄像头-后1-->
|
||||
<ImageView
|
||||
android:id="@+id/camera_begind"
|
||||
android:layout_width="@dimen/dp_56"
|
||||
android:layout_height="@dimen/dp_56"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginStart="@dimen/dp_78"
|
||||
android:layout_toEndOf="@+id/rtk"
|
||||
android:src="@drawable/camera_usual" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/camera_begind_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/camera_begind"
|
||||
android:layout_marginStart="@dimen/dp_972"
|
||||
android:layout_marginBottom="@dimen/dp_42"
|
||||
android:gravity="center"
|
||||
android:text="摄像头"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_32" />
|
||||
<!--路由器-->
|
||||
<ImageView
|
||||
android:id="@+id/luyouqi"
|
||||
android:layout_width="@dimen/dp_77"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginStart="@dimen/dp_38"
|
||||
android:layout_toEndOf="@+id/camera_begind"
|
||||
android:src="@drawable/luyouqi_usual" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/luyouqi_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/luyouqi"
|
||||
android:layout_marginStart="@dimen/check_luyouqi_start"
|
||||
android:layout_marginTop="@dimen/dp_42"
|
||||
android:gravity="center"
|
||||
android:text="路由器"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_32" />
|
||||
|
||||
<!--OBU-->
|
||||
<ImageView
|
||||
android:id="@+id/obu"
|
||||
android:layout_width="@dimen/dp_140"
|
||||
android:layout_height="@dimen/dp_80"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginTop="@dimen/dp_140"
|
||||
android:layout_toEndOf="@+id/luyouqi"
|
||||
android:src="@drawable/obu_unusual" />
|
||||
|
||||
</RelativeLayout>
|
||||
<!--角激光文字-->
|
||||
<TextView
|
||||
android:id="@+id/jiaoJiGuangBottom_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/check_image"
|
||||
android:layout_marginStart="@dimen/dp_1000"
|
||||
android:gravity="center"
|
||||
android:text="角激光"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/check_image" />
|
||||
<!--OBU文案-->
|
||||
<TextView
|
||||
android:id="@+id/obu_top_txt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/check_image"
|
||||
android:layout_marginStart="@dimen/check_obu_start"
|
||||
android:layout_marginTop="@dimen/dp_236"
|
||||
android:gravity="center"
|
||||
android:text="OBU"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/error_tip"
|
||||
android:layout_width="@dimen/dp_32"
|
||||
android:layout_height="@dimen/dp_32"
|
||||
android:layout_marginLeft="@dimen/dp_907"
|
||||
android:layout_marginTop="@dimen/dp_177"
|
||||
android:background="@drawable/check_little_btn"
|
||||
android:backgroundTint="@color/check_tip_error_color"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/check_image" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/unusual_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_24"
|
||||
android:text="设备故障"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
app:layout_constraintLeft_toRightOf="@+id/error_tip"
|
||||
app:layout_constraintTop_toTopOf="@+id/error_tip" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/error_tip_green"
|
||||
android:layout_width="@dimen/dp_32"
|
||||
android:layout_height="@dimen/dp_32"
|
||||
android:layout_marginLeft="@dimen/dp_160"
|
||||
android:layout_marginTop="88dp"
|
||||
android:background="@drawable/check_little_btn_green"
|
||||
app:layout_constraintLeft_toRightOf="@id/unusual_title"
|
||||
app:layout_constraintTop_toBottomOf="@+id/check_image" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/usual_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_24"
|
||||
android:text="设备正常"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
app:layout_constraintLeft_toRightOf="@+id/error_tip_green"
|
||||
app:layout_constraintTop_toTopOf="@+id/error_tip_green" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="2360px"
|
||||
android:layout_height="@dimen/dp_643"
|
||||
android:layout_marginStart="@dimen/dp_100"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_100"
|
||||
android:layout_marginBottom="@dimen/dp_15"
|
||||
android:background="@drawable/check_list_item_back">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/list_item_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_80"
|
||||
android:layout_marginLeft="@dimen/dp_50"
|
||||
android:layout_marginTop="@dimen/dp_50"
|
||||
android:text="版本检测:(以下 1 项需要优化,版本升级后需要重启设备)"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_42"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!--自动驾驶应用-->
|
||||
<LinearLayout
|
||||
android:id="@+id/auto_layout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_318"
|
||||
android:layout_marginTop="@dimen/dp_78"
|
||||
android:layout_marginBottom="@dimen/dp_108"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/title">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_auto"
|
||||
android:layout_width="@dimen/dp_150"
|
||||
android:layout_height="@dimen/dp_150"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/auto" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/icon_auto_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="@dimen/dp_22"
|
||||
android:maxLines="2"
|
||||
android:text="自动驾驶升级到\n 版本"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_42"
|
||||
app:layout_constraintTop_toBottomOf="@id/icon_auto" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/auto_risk_state"
|
||||
android:layout_width="@dimen/dp_260"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="@dimen/dp_56"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/check_little_btn_green"
|
||||
android:textSize="@dimen/dp_36"
|
||||
app:layout_constraintTop_toTopOf="@+id/icon_auto_title" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ying_layout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_318"
|
||||
android:layout_marginTop="@dimen/dp_78"
|
||||
android:layout_marginBottom="@dimen/dp_108"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toRightOf="@+id/auto_layout"
|
||||
app:layout_constraintTop_toBottomOf="@+id/title">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon_ying"
|
||||
android:layout_width="@dimen/dp_150"
|
||||
android:layout_height="@dimen/dp_150"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/yingyan" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/icon_ying_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="@dimen/dp_22"
|
||||
android:text=" 鹰眼\n版本"
|
||||
android:textAlignment="center"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_42"
|
||||
app:layout_constraintTop_toBottomOf="@id/icon_auto" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/ying_risk_state"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="@dimen/dp_56"
|
||||
android:textColor="@color/check_little_btn_green"
|
||||
android:textSize="@dimen/dp_36"
|
||||
app:layout_constraintTop_toTopOf="@+id/icon_auto_title" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_500"
|
||||
android:layout_marginStart="@dimen/dp_100"
|
||||
android:layout_marginTop="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_100"
|
||||
android:layout_marginBottom="@dimen/dp_15">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/error_tip_image"
|
||||
android:layout_width="@dimen/dp_140"
|
||||
android:layout_height="@dimen/dp_140"
|
||||
android:layout_marginStart="@dimen/dp_856"
|
||||
android:layout_marginTop="@dimen/dp_200"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/error_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_65"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:text="自动驾驶车辆存在风险"
|
||||
android:textColor="@color/module_commons_wm_dialog_text_textColor"
|
||||
android:textSize="@dimen/dp_64"
|
||||
app:layout_constraintLeft_toRightOf="@+id/error_tip_image"
|
||||
app:layout_constraintTop_toTopOf="@+id/error_tip_image" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="check_item_space_vr">30px</dimen>
|
||||
<dimen name="check_button_text_size">38px</dimen>
|
||||
<dimen name="check_button_bottom">70px</dimen>
|
||||
<dimen name="check_button_left">133px</dimen>
|
||||
<dimen name="check_image_bottom">50px</dimen>
|
||||
<dimen name="check_image_right">50px</dimen>
|
||||
<dimen name="check_hard_ware_image_width">1452px</dimen>
|
||||
<dimen name="check_hard_ware_image_height">715px</dimen>
|
||||
<dimen name="check_little_btn_width">32px</dimen>
|
||||
<dimen name="check_luyouqi_start">1078px</dimen>
|
||||
<dimen name="check_obu_start">1660px</dimen>
|
||||
<dimen name="check_scan_width">1162px</dimen>
|
||||
<dimen name="check_scan_height">570px</dimen>
|
||||
|
||||
</resources>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="blue_back_color">#1A1F40</color>
|
||||
<color name="blue_check_color">#4192FF</color>
|
||||
<color name="check_tip_error_color">#F03232</color>
|
||||
<color name="check_little_btn_solid">#99FA1F21</color>
|
||||
<color name="check_little_btn">#FF1F1F</color>
|
||||
<color name="check_little_btn_solid_green">#997AFF87</color>
|
||||
<color name="check_little_btn_green">#7AFF87</color>
|
||||
<color name="check_list_item_back">#242B59</color>
|
||||
|
||||
</resources>
|
||||
@@ -0,0 +1 @@
|
||||
<resources></resources>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="check_progressBar_scale" parent="@android:style/Widget.ProgressBar.Horizontal">
|
||||
<item name="android:indeterminateDrawable">
|
||||
@android:drawable/progress_indeterminate_horizontal
|
||||
</item>
|
||||
<item name="android:progressDrawable">@drawable/check_progress</item>
|
||||
</style>
|
||||
</resources>
|
||||