Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
This commit is contained in:
wujifei
2020-11-27 11:38:24 +08:00
223 changed files with 654 additions and 548 deletions

3
.idea/gradle.xml generated
View File

@@ -31,9 +31,6 @@
<option value="$PROJECT_DIR$/modules/mogo-module-back" />
<option value="$PROJECT_DIR$/modules/mogo-module-common" />
<option value="$PROJECT_DIR$/modules/mogo-module-extensions" />
<option value="$PROJECT_DIR$/modules/mogo-module-gps-simulator" />
<option value="$PROJECT_DIR$/modules/mogo-module-gps-simulator-debug" />
<option value="$PROJECT_DIR$/modules/mogo-module-gps-simulator-noop" />
<option value="$PROJECT_DIR$/modules/mogo-module-guide" />
<option value="$PROJECT_DIR$/modules/mogo-module-left-panel" />
<option value="$PROJECT_DIR$/modules/mogo-module-left-panel-noop" />

View File

@@ -121,6 +121,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
}
// f系列-分体机
@@ -144,6 +146,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
}
// e系列采用Launcher方案
e8xx {
@@ -166,6 +170,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
}
// 同上
em4 {
@@ -188,6 +194,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
}
// e系列-2+32对标D系列2+32采用独立app的形式
em3 {
@@ -210,6 +218,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
}
// e系列-1+16对标D系列1+16采用独立app形式
em1 {
@@ -232,6 +242,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'false'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'false'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
}
// e系列-1+16对标D系列1+16采用独立app形式
em2 {
@@ -254,6 +266,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'false'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'false'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
}
// d系列
d8xx {
@@ -276,6 +290,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'true'
}
// d系列 2 + 32
d80x {
@@ -298,6 +314,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'true'
}
// d系列 1+16 版本
d82x {
@@ -320,6 +338,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'false'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'false'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'true'
}
// 比亚迪
bydauto {
@@ -342,6 +362,8 @@ android {
buildConfigField 'boolean', 'IS_MAP_BASED', 'true'
// 是否加载引导模块
buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true'
// 分享时是否隐藏 adas
buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false'
}
qa {
dimension "env"
@@ -425,7 +447,7 @@ dependencies {
apply from: "./functions/perform.gradle"
apply from: "./functions/baseservices.gradle"
apply from: "./functions/socketpush.gradle"
apply from: "./functions/gpssimulator.gradle"
// apply from: "./functions/gpssimulator.gradle"
apply from: "./functions/leftpanel.gradle"
apply from: "./functions/skin.gradle"
apply from: "./functions/crashreport.gradle"

View File

@@ -2,10 +2,10 @@
project.dependencies {
if (Boolean.valueOf(RELEASE)) {
debugImplementation rootProject.ext.dependencies.gpssimulatordebug
debugImplementation rootProject.ext.dependencies.gpssimulatornoop
releaseImplementation rootProject.ext.dependencies.gpssimulatornoop
} else {
debugImplementation project(':modules:mogo-module-gps-simulator-debug')
debugImplementation project(':modules:mogo-module-gps-simulator-noop')
releaseImplementation project(':modules:mogo-module-gps-simulator-noop')
}
}

View File

@@ -86,7 +86,6 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addBaseModule( new MogoModule( V2XConst.PATH_V2X_UI, V2XConst.MODULE_NAME ) );
MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_STRATEGY_SHARE, "StrategyShare" ) );
MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_GAODE_AIMLESS_SHARE, "GaoDeAimlessShare" ) );
MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_EVENT_PANEL, "EventPanel" ) );
MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_MOGO_MONITOR, "MogoMonitor" ) );
MogoModulePaths.addModule( new MogoModule( PushUIConstants.PATH, PushUIConstants.NAME ) );
@@ -130,6 +129,7 @@ public class MogoApplication extends AbsMogoApplication {
DebugConfig.setSupportLauncherCardRefreshStrategy( BuildConfig.IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY );
DebugConfig.setMapBased( BuildConfig.IS_MAP_BASED );
DebugConfig.setNeedLoadGuideModule( BuildConfig.IS_NEED_LOAD_GUIDE_MODULE );
DebugConfig.setNeedHideAdasWhenShare( BuildConfig.IS_NEED_HIDE_ADAS_WHEN_SHARE );
}
@Override

View File

@@ -154,7 +154,7 @@ ext {
gpssimulatornoop : "com.mogo.module:module-gps-simulator-noop:${MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION}",
adasapi : "com.zhidao.autopilot.support:adas:1.0.6.5",
adasconfigapi : "com.zhidao.adasconfig:adasconfig:1.1.5",
adasconfigapi : "com.zhidao.adasconfig:adasconfig:1.1.5.2",
// 个人中心的SDK
personalsdk : "com.zhidaoauto.person.info:data:1.0.1",

View File

@@ -1,7 +1,5 @@
package com.mogo.commons.debug;
import com.mogo.utils.logger.Logger;
/**
* @author congtaowang
* @since 2019-12-23
@@ -318,4 +316,14 @@ public class DebugConfig {
public static boolean isNeedLoadGuideModule() {
return isNeedLoadGuideModule;
}
private static boolean isNeedHideAdasWhenShare = false;
public static boolean isNeedHideAdasWhenShare() {
return isNeedHideAdasWhenShare;
}
public static void setNeedHideAdasWhenShare( boolean isNeedHideAdas ) {
DebugConfig.isNeedHideAdasWhenShare = isNeedHideAdas;
}
}

View File

@@ -129,7 +129,7 @@ TTS_NOOP_VERSION=2.0.7
######## 外部依赖引用
# 车聊聊
CARCHATTING_VERSION=1.6.8-SNAPSHOT
CARCHATTING_VERSION=1.8.5-SNAPSHOT
# 车聊聊接口
CARCHATTINGPROVIDER_VERSION=1.1.7
# loglib

View File

@@ -460,9 +460,11 @@ public class AMapNaviViewWrapper implements IMogoMapView,
break;
case Type_Light:
options.setNaviNight( false );
options.setAutoNaviViewNightMode( false );
break;
case Type_Night:
options.setNaviNight( true );
options.setAutoNaviViewNightMode( false );
break;
case Type_AUTO_LIGHT_Night:
options.setNaviNight( false );
@@ -875,6 +877,12 @@ public class AMapNaviViewWrapper implements IMogoMapView,
try {
LatLngBounds latLngBounds = MogoMapUtils.getLatLngBounds( carPosition, lonLats, lockCarPosition );
if ( !lockCarPosition ) {
changeMyLocationType2UnFollow();
try {
bnHooker.clearAllMessages();
} catch ( Exception e ) {
e.printStackTrace();
}
loseLockMode();
}
mMapView.getMap().moveCamera( CameraUpdateFactory.newLatLngBoundsRect( latLngBounds, bound.left, bound.right, bound.top, bound.bottom ) );

View File

@@ -1,14 +1,8 @@
package com.zhidao.roadcondition.model
class CityStrategy {
var video: Video
var pic: Pic
constructor(video: Video, pic: Pic) {
this.video = video
this.pic = pic
}
class CityStrategy(video: Video, pic: Pic) {
var video: Video? = video
var pic: Pic? = pic
}
fun Video.getMaxSpeed(): Int {

View File

@@ -3,6 +3,4 @@ package com.zhidao.roadcondition.model
/**
* 城市策略实体
*/
class Results(var cityStrategy: CityStrategy) {
}
class Results(var cityStrategy: CityStrategy)

View File

@@ -18,7 +18,7 @@ class ResponseFunction<T> : Function<BaseResponse<T>, T> {
}
override fun apply(t: BaseResponse<T>): T {
if (t == null || !t.isSuccess(baseUrl)) {
if (!t.isSuccess(baseUrl)) {
throw ApiException(t.code, t.msg)
}
return t.result

View File

@@ -45,7 +45,7 @@ object CosCallbackMapController : CosStatusCallback {
fun unregisterCallbacks(paths: Map<String, String>?) {
paths?.let {
it?.keys?.let { keys ->
it.keys.let { keys ->
keys.forEach { path ->
unregisterCallback(path)
}
@@ -54,9 +54,7 @@ object CosCallbackMapController : CosStatusCallback {
}
override fun onStartUpload(eventId: String?, localPath: String?) {
map[localPath]?.let {
it.onStartUpload(eventId, localPath)
}
map[localPath]?.onStartUpload(eventId, localPath)
}
override fun uploadCosFailed(cosPath: String?, eventId: String?, localPath: String?) {

View File

@@ -75,7 +75,7 @@ class CosStatusController : CosStatusCallback {
private fun sendGetInfoFailedReceiver(type: String) {
Log.d(CarCorderController.TAG, "sendGetInfoFailedReceiver ------>")
var intent = Intent()
val intent = Intent()
intent.action = "com.zhidao.roadcondition.getinfo.failed"
intent.putExtra("type", type)
AbsMogoApplication.getApp().applicationContext.sendBroadcast(intent)
@@ -95,11 +95,11 @@ class CosStatusController : CosStatusCallback {
// }
// }
} else {
if (localPath!!.endsWith("mp4") || localPath!!.contains("Thumbnail")) {
if (localPath!!.endsWith("mp4") || localPath.contains("Thumbnail")) {
CosCallbackMapController.uploadFailed?.invoke()
}
CosCallbackMapController.unregisterCallback(localPath)
InformationUploadController.release(entity?.id)
InformationUploadController.release(entity.id)
// deletePicFile(localPath)
}
}
@@ -114,7 +114,7 @@ class CosStatusController : CosStatusCallback {
Log.d(TAG, "uploadCosCompleted downloadUrl = $downloadUrl")
Log.d(TAG, "uploadCosCompleted cosPath = $cosPath")
trackUploadCos(1)
if (localPath!!.endsWith("mp4") || localPath!!.contains("Thumbnail")) {
if (localPath!!.endsWith("mp4") || localPath.contains("Thumbnail")) {
//如果是视频文件或者缩略图文件
if (localPath.endsWith("mp4")) {
videoAndThumbMap["video"] = downloadUrl!!
@@ -127,7 +127,7 @@ class CosStatusController : CosStatusCallback {
if (videoAndThumbMap.size == 2) {
trackUploadCos(4)
Log.d(TAG, "videoAndThumbMap.size == 2 ")
var locationInfo = LocationUtil.getInstance().getLocationInfo()
val locationInfo = LocationUtil.getInstance().getLocationInfo()
val locationStr: String = Gson().toJson(locationInfo)
Log.d(TAG, "locationStr = $locationStr")
//上传录像以及缩略图成功
@@ -155,7 +155,7 @@ class CosStatusController : CosStatusCallback {
}
private fun sendInformation(type: Int, map: Map<String, String>) {
Log.d(TAG, "isCustomSend = ${entity?.isCustom}")
Log.d(TAG, "isCustomSend = ${entity.isCustom}")
// if (entity?.isCustom) {
// InformationUploadController.cosResourceReady(type, map, entity?.isCustom, entity?.id) {
// CosCallbackMapController.mainService?.sendCustomResult(it)

View File

@@ -75,7 +75,7 @@ object InformationUploadController {
}
}
private fun tryUploadInformation(ir: InformationResource?) {
// private fun tryUploadInformation(ir: InformationResource?) {
// synchronized(locker) {
// ir?.let {
// if (!it.isReady()) {
@@ -106,7 +106,7 @@ object InformationUploadController {
// }
// }
// }
}
// }
fun release(id: Long) {
val target = informationCache.remove(id)

View File

@@ -75,15 +75,8 @@ class MainService : Service() {
private var mLatitude: Double = 0.0
lateinit var serviceApis: IMogoServiceApis
//发送主动上报结果广播给外部
// fun sendCustomResult(result: Boolean) {
// var intent = Intent(customResultAction)
// intent.putExtra("isSuccess", result)
// sendBroadcast(intent)
// }
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Log.d(TAG, "onStartCommand -----------> ")
//清理多媒体资源和sp策略数据
clearStrategyType(this)
//初始化埋点
@@ -95,7 +88,7 @@ class MainService : Service() {
VoiceController.initVoice()
serviceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(this) as IMogoServiceApis
speed = serviceApis.getMapServiceApi().getSingletonLocationClient(this).getLastKnowLocation().getSpeed()
Log.d(TAG, "onStartCommand speed = $speed" )
Log.d(TAG, "onStartCommand speed = $speed")
if (intent != null) {
params = intent.getParcelableExtra("params")
params?.let {
@@ -105,18 +98,12 @@ class MainService : Service() {
mLongitude = it.lon
mLatitude = it.lat
Log.d(TAG, "onStartCommand shareType = $shareType --fromType = $fromType --mainInfoId = $mainInfoId -- mLongitude = $mLongitude --mLatitude = $mLatitude --it.duration = ${it.duration} ")
// if (shareType == TANLU_ROAD_CONGESTION || shareType == TANLU_TRAFFIC_CHECK || shareType == TANLU_ROAD_CLOSURE || shareType == TANLU_ROAD_CURRENT
// || shareType == TANLU_ROAD_PONDING || shareType == TANLU_ROAD_ICING || shareType == TANLU_ROAD_HEAVY_FOG
// || shareType == TANLU_ROAD_ACCIDENT || shareType == TANLU_ROAD_WORK
// ) {
// takePhoto(1, false, true)
if (fromType == UPLOAD_FROM_STRATEGY_ACCIDENT_AUTO || fromType == UPLOAD_FROM_STRATEGY_BLOCK_AUTO) {
// 如果是策略上报isCustom = false
takeVideo(it.duration)
} else {
takeVideo(it.duration, isCustom = true, id = id)
}
// }
if (fromType == UPLOAD_FROM_STRATEGY_ACCIDENT_AUTO || fromType == UPLOAD_FROM_STRATEGY_BLOCK_AUTO) {
// 如果是策略上报isCustom = false
takeVideo(it.duration)
} else {
takeVideo(it.duration, isCustom = true, id = id)
}
}
} else {
Log.e(TAG, "intent == null ")
@@ -132,11 +119,10 @@ class MainService : Service() {
if (p1.action == alarmBroadAction) {
if (p1.getIntExtra("AlarmType", 1) == AlarmTypePic) {
//拍照
var number = p1.getLongExtra("number", 1)
takePhoto(number, true)
takePhoto(true)
} else {
//录像
var duration = p1.getIntExtra("duration", 3)
val duration = p1.getIntExtra("duration", 3)
takeVideo(duration, true)
}
}
@@ -211,20 +197,6 @@ class MainService : Service() {
// )
}
private fun sendMarkerInfoReceiver(lat: Double, lon: Double, imageUrl: String?, type: String?) {
// Log.e("MainService", "sendMarkerInfoReceiver ------> type = $type ")
// Log.e("MainService", "sendMarkerInfoReceiver ------> fromType = $fromType ")
// Log.e("MainService", "sendMarkerInfoReceiver ------> isCustom = $isCustom ")
// var intent = Intent()
// intent.action = "com.zhidao.roadcondition.marker.info"
// intent.putExtra("type", type)
// intent.putExtra("imageUrl", imageUrl)
// intent.putExtra("lat", lat)
// intent.putExtra("lon", lon)
// intent.putExtra("custom", isCustom)
// intent.putExtra("fromType", fromType)
// sendBroadcast(intent)
}
/**
* 初始化定位监听
@@ -266,7 +238,7 @@ class MainService : Service() {
Log.d("MainService", "handleReportStrategy picType = $picType ---videoType = $videoType")
shareType = TANLU_ROAD_CURRENT
if (picType == 1) {
takePhoto(1)
takePhoto()
} else if (picType == 2) {
postPhotoAlarmTask(true)
}
@@ -291,7 +263,7 @@ class MainService : Service() {
}
//获取图片
private fun takePhoto(picNum: Long, isInterval: Boolean = false, isCustom: Boolean = false) {
private fun takePhoto(isInterval: Boolean = false, isCustom: Boolean = false) {
Log.d("MainService", "takePhoto -----1----->")
//判断是否授权
// if (isAuthorization(BaseApplication.getAppContext())) {
@@ -389,7 +361,7 @@ class MainService : Service() {
override fun onDestroy() {
super.onDestroy()
unregisterReceiver(mAlarmBroadCast)
unregisterReceiver(mCustomSendBroadCast)
// unregisterReceiver(mCustomSendBroadCast)
CarCorderController.release()
CosCallbackMapController.release()
LatLngStickyEventBus.getInstance().unregister(this)

View File

@@ -18,7 +18,7 @@ import kotlinx.coroutines.runBlocking
class MainServiceController {
companion object {
var TAG = this.javaClass.name
var TAG = this::class.java.name
}
//逆地理编码是否重试
@@ -57,69 +57,69 @@ class MainServiceController {
}
//将数据同步到sharePreference中
fun syncStrategiesData(strategy: CityStrategy) {
if (strategy?.pic != null && strategy.video!=null) {
setStrategyType(AbsMogoApplication.getApp().applicationContext, strategy.pic.strategyType, "pic")
setStrategyType(AbsMogoApplication.getApp().applicationContext, strategy.video.strategyType, "video")
private fun syncStrategiesData(strategy: CityStrategy) {
if (strategy.pic != null && strategy.video!=null) {
setStrategyType(AbsMogoApplication.getApp().applicationContext, strategy.pic!!.strategyType, "pic")
setStrategyType(AbsMogoApplication.getApp().applicationContext, strategy.video!!.strategyType, "video")
setStrategyFrequency(
AbsMogoApplication.getApp().applicationContext,
strategy.pic.strategyType,
strategy.pic!!.strategyType,
"pic",
strategy.pic.reportType
strategy.pic!!.reportType
)
setStrategyFrequency(
AbsMogoApplication.getApp().applicationContext,
strategy.video.strategyType,
strategy.video!!.strategyType,
"video",
strategy.video.reportType
strategy.video!!.reportType
)
setStrategyInterval(
AbsMogoApplication.getApp().applicationContext,
strategy.pic.strategyType,
strategy.pic!!.strategyType,
"pic",
strategy.pic.reportTimeInterval * 60 * 1000L
strategy.pic!!.reportTimeInterval * 60 * 1000L
)
setStrategyInterval(
AbsMogoApplication.getApp().applicationContext,
strategy.video.strategyType,
strategy.video!!.strategyType,
"video",
strategy.video.reportTimeInterval * 60 * 1000L
strategy.video!!.reportTimeInterval * 60 * 1000L
)
setStrategyValidity(
AbsMogoApplication.getApp().applicationContext,
strategy.pic.strategyType,
strategy.pic!!.strategyType,
"pic",
strategy.pic.infoTimeout
strategy.pic!!.infoTimeout
)
setStrategyValidity(
AbsMogoApplication.getApp().applicationContext,
strategy.video.strategyType,
strategy.video!!.strategyType,
"video",
strategy.video.infoTimeout
strategy.video!!.infoTimeout
)
setStrategyMaxSpeed(
AbsMogoApplication.getApp().applicationContext,
strategy.pic.strategyType,
strategy.pic!!.strategyType,
"pic",
strategy.pic.getMaxSpeed()
strategy.pic!!.getMaxSpeed()
)
setStrategyMaxSpeed(
AbsMogoApplication.getApp().applicationContext,
strategy.video.strategyType,
strategy.video!!.strategyType,
"video",
strategy.video.getMaxSpeed()
strategy.video!!.getMaxSpeed()
)
setStrategyMinSpeed(
AbsMogoApplication.getApp().applicationContext,
strategy.pic.strategyType,
strategy.pic!!.strategyType,
"pic",
strategy.pic.minSpeed
strategy.pic!!.minSpeed
)
setStrategyMinSpeed(
AbsMogoApplication.getApp().applicationContext,
strategy.video.strategyType,
strategy.video!!.strategyType,
"video",
strategy.video.minSpeed
strategy.video!!.minSpeed
)
} else {
Log.d(TAG, "strategy Data is null")
@@ -145,8 +145,8 @@ class MainServiceController {
mFromType = fromType
mPoiType = poiType
var locationInfo = LocationUtil.getInstance().getLocationInfo()
if (locationInfo.address.isNullOrEmpty()) {
val locationInfo = LocationUtil.getInstance().getLocationInfo()
if (locationInfo.address.isEmpty()) {
Log.d(TAG, " sendInformationMessage locationInfo.address = $locationInfo.address")
trackUploadGeo(1)
geoLocation(type, url, locationInfo, isCustom,trafficInfoType, isShare, customSend,poiType,mainInfoId,speed, longitude,latitude)
@@ -210,11 +210,9 @@ class MainServiceController {
strategyeModel.uploadInformation(informationBody)
}
onSuccess {
if (it.result != null) {
Log.i(TAG, "upload success id = " + it.result.id)
if (mFromType == "6") {
sendUgcStatusReceiver(it.result.id, mPoiType, mFromType)
}
Log.i(TAG, "upload success id = " + it.result.id)
if (mFromType == "6") {
sendUgcStatusReceiver(it.result.id, mPoiType, mFromType)
}
trackUploadServer(1)
customSend?.invoke(true)

View File

@@ -39,8 +39,8 @@ const val CarNet_Geo:String = "CarNet_Geo_Location" //上传服务端, type=1开
const val CarNet_live_broadcast = "CarNet_live_broadcast" // 地图页面点击直播(在线可直播车机)
//自定义埋点
@DebugLog
fun trackNormalEvent(event: String, data: MutableMap<String, Any>?, context: Context = AbsMogoApplication.getApp().applicationContext) {
var data = data
fun trackNormalEvent(event: String, _data: MutableMap<String, Any>?, context: Context = AbsMogoApplication.getApp().applicationContext) {
var data = _data
if (data == null) {
data = HashMap()
}

View File

@@ -138,10 +138,10 @@ fun getCompressVideoPath(): String {
* 保存图片到本地
*/
fun saveImageToSdcard(bmp: Bitmap): Boolean {
var currentFile: File
lateinit var fos: FileOutputStream
val currentFile: File
var fos: FileOutputStream? = null
var picFile = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
val picFile = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
picFile.mkdirs()
val builder = StringBuilder()
@@ -162,9 +162,7 @@ fun saveImageToSdcard(bmp: Bitmap): Boolean {
return false
} finally {
try {
if (fos != null) {
fos.close()
}
fos?.close()
} catch (e: IOException) {
e.printStackTrace()
return false

View File

@@ -72,7 +72,7 @@ class LocationUtil private constructor() {
private var locationClient: AMapLocationClient? = null
private var locationOption: AMapLocationClientOption? = null
private var speedListener: SpeedListener? = null
private var locationInfo: LocationInfo = LocationInfo()
private var locationInfo: LocationInfo? = null
private var speed: Float = 0.0f
fun initLocation() {
@@ -125,24 +125,21 @@ class LocationUtil private constructor() {
*/
private var locationListener: AMapLocationListener = AMapLocationListener { location ->
if (null != location) {
locationInfo.longitude = location.longitude
locationInfo.latitude = location.latitude
locationInfo.address = location.address
locationInfo.time = location.time
locationInfo.provinceName = location.province
locationInfo.cityName = location.city
locationInfo.cityCode = location.cityCode
locationInfo.areaName = location.district
locationInfo.areaCode = location.adCode
locationInfo.street = location.street
locationInfo.direction = location.bearing
listener?.let {
it.onChanged(locationInfo)
}
locationInfo = LocationInfo()
locationInfo!!.longitude = location.longitude
locationInfo!!.latitude = location.latitude
locationInfo!!.address = location.address
locationInfo!!.time = location.time
locationInfo!!.provinceName = location.province
locationInfo!!.cityName = location.city
locationInfo!!.cityCode = location.cityCode
locationInfo!!.areaName = location.district
locationInfo!!.areaCode = location.adCode
locationInfo!!.street = location.street
locationInfo!!.direction = location.bearing
listener?.onChanged(locationInfo!!)
speed = location.speed
speedListener?.let {
it.onSpeedGet(location.speed)
}
speedListener?.onSpeedGet(location.speed)
} else {
Log.d(TAG, "定位失败 -> location is null")
}
@@ -160,13 +157,12 @@ class LocationUtil private constructor() {
fun getLocationInfo(): LocationInfo {
return if (null != locationInfo) {
locationInfo
locationInfo!!
} else {
if (null == locationClient) {
locationClient = AMapLocationClient(mContext)
this.locationClient = locationClient
}
var location = locationClient!!.lastKnownLocation
val location = locationClient!!.lastKnownLocation
location.toLocInfo(location)
}
}

View File

@@ -2,6 +2,7 @@ package com.zhidao.roadcondition.util
import kotlinx.coroutines.*
@ObsoleteCoroutinesApi
@PublishedApi
internal var ThreadPool =
newFixedThreadPoolContext(Runtime.getRuntime().availableProcessors() * 2, "ThreadPool")
@@ -11,16 +12,17 @@ internal var ThreadPool =
* 在主线程中顺序执行,协程函数,一般用于最外层
* 该函数会阻塞代码继续执行
*/
inline fun taskBlockOnMainThread(delayTime: Long = 0, noinline job: suspend () -> Unit) = runBlocking {
delay(delayTime)
job()
}
//inline fun taskBlockOnMainThread(delayTime: Long = 0, noinline job: suspend () -> Unit) = runBlocking {
// delay(delayTime)
// job()
//}
/**
* 并发执行,常用于最外层
* 特点带返回值
*/
inline fun <T> taskAsync(delayTime: Long = 0, noinline job: suspend () -> T) = GlobalScope.async(ThreadPool) {
@ObsoleteCoroutinesApi
fun <T> taskAsync(delayTime: Long = 0, job: suspend () -> T) = GlobalScope.async(ThreadPool) {
delay(delayTime)
job()
}

View File

@@ -23,7 +23,7 @@
<dimen name="module_apps_navigator_icon_width">160px</dimen>
<dimen name="module_apps_navigator_icon_height">160px</dimen>
<dimen name="module_apps_navigator_icon_divider">30px</dimen>
<dimen name="module_apps_navigator_icon_divider">10px</dimen>
<dimen name="module_apps_voice_icon_width">100px</dimen>
<dimen name="module_apps_voice_icon_height">100px</dimen>
</resources>

View File

@@ -66,15 +66,15 @@ class CallChatApi {
driverInfo.setSn( onlineCar.getUserInfo().getSn() );
driverInfo.setUserHead( onlineCar.getUserInfo().getUserHead() );
driverInfo.setUserName( onlineCar.getUserInfo().getUserName() );
mApiProvider.showUserWindow( TAG, driverInfo, context );
if ( mApiProvider != null ) {
mApiProvider.showUserWindow( TAG, driverInfo, context );
}
}
public void hideUserWindow( Context context ) {
if ( mApiProvider != null ) {
if ( mApiProvider == null ) {
Logger.e( TAG, "no call chat api instance." );
return;
}
if ( mApiProvider == null ) {
Logger.e( TAG, "no call chat api instance." );
return;
}
mApiProvider.hideUserWindow( TAG, context, null );
}

View File

@@ -77,6 +77,11 @@ public class CustomRatingBar extends LinearLayout {
* */
private StepSize stepSize;
/*
*添加资源(空白心是白色还是灰色自定义属性)
* */
private boolean otherHeartImg;
@Override
public boolean isClickable() {
return mClickable;
@@ -159,14 +164,21 @@ public class CustomRatingBar extends LinearLayout {
context.getResources().getDimension(R.dimen.heart_ratingbar_height));
elementPadding = mTypedArray.getDimension(R.styleable.CustomRatingBar_elenmentPadding,
context.getResources().getDimension(R.dimen.ratingbar_padding));
/*
* 白天模式下 热心指数(白色)和个人中心(灰色)使用不同的资源
* 默认灰色
* */
otherHeartImg = mTypedArray.getBoolean(R.styleable.CustomRatingBar_OtherHeartImg, true);
elementStep = mTypedArray.getFloat(R.styleable.CustomRatingBar_elenmentStep, 1.0f);
stepSize = StepSize.fromStep(mTypedArray.getInt(R.styleable.CustomRatingBar_stepSize, 1));
elementCount = mTypedArray.getInteger(R.styleable.CustomRatingBar_elenmentCount, 5);
stepSize = StepSize.Half;
Drawable drawable_empty_default = ContextCompat.getDrawable(context, R.drawable.icon_heart_unchoose);
Drawable drawable_harf_default = ContextCompat.getDrawable(context, R.drawable.icon_heart_second);
Drawable drawable_empty_default = ContextCompat.getDrawable(context,
otherHeartImg == false ? R.drawable.icon_heart_unchoose : R.drawable.icon_heart_unchoose_other);
Drawable drawable_half_default = ContextCompat.getDrawable(context,
otherHeartImg == false ? R.drawable.icon_heart_second : R.drawable.icon_heart_second_other);
Drawable drawable_fill_default = ContextCompat.getDrawable(context, R.drawable.icon_heart_choose);
Drawable drawable_empty = mTypedArray.getDrawable(R.styleable.CustomRatingBar_elenmentEmpty);
@@ -175,7 +187,7 @@ public class CustomRatingBar extends LinearLayout {
elementEmptyDrawable = drawable_empty != null ? drawable_empty : drawable_empty_default;
elementFillDrawable = drawable_half != null ? drawable_half : drawable_fill_default;
elementHarfDrawable = drawable_fill != null ? drawable_fill : drawable_harf_default;
elementHarfDrawable = drawable_fill != null ? drawable_fill : drawable_half_default;
mClickable = mTypedArray.getBoolean(R.styleable.CustomRatingBar_clickable, false);
mTypedArray.recycle();
for (int i = 0; i < elementCount; ++i) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 771 B

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/module_common_icon_close_press" android:state_pressed="true" />
<item android:drawable="@drawable/module_common_icon_close" android:state_pressed="false" />
<item android:drawable="@drawable/module_common_icon_close" />
</selector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -38,6 +38,7 @@
<enum name="Half" value="0" />
<enum name="Full" value="1" />
</attr>
<attr name="OtherHeartImg" format="boolean" />
</declare-styleable>
</resources>

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="BaseFloatDialogStyle" parent="@android:style/Theme.Dialog">
<item name="android:windowIsFloating">true</item>
<item name="android:windowFrame">@null</item>
@@ -15,8 +16,6 @@
<item name="android:borderlessButtonStyle">@android:color/transparent</item>
</style>
<style name="customHeartHeartRatingBarStyle" parent="@style/Widget.AppCompat.RatingBar">
<item name="android:maxWidth">@dimen/heart_ratingbar_width</item>
<item name="android:minWidth">@dimen/heart_ratingbar_width</item>
@@ -28,5 +27,4 @@
<item name="android:progressDrawable">@drawable/module_commons_heart_ratingbar_drawable</item>
</style>
</resources>

View File

@@ -47,7 +47,7 @@ import java.util.List;
* <p>
* 描述:加载各个模块
*/
public class MainActivity extends MvpActivity<MainView, MainPresenter> implements MainView,
public class MainActivity extends MvpActivity< MainView, MainPresenter > implements MainView,
IMogoLocationListener,
IMogoMarkerClickListener,
IMogoADASControlStatusChangedListener {
@@ -69,16 +69,16 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
@Override
protected int getLayoutId() {
if (!DebugConfig.isMapBased()) {
if ( !DebugConfig.isMapBased() ) {
return R.layout.module_main_activity_main_no_map;
}
return R.layout.module_main_activity_main;
}
@Override
protected void beforeSetContentView(Bundle savedInstanceState) {
protected void beforeSetContentView( Bundle savedInstanceState ) {
init();
installSkinManager(savedInstanceState);
installSkinManager( savedInstanceState );
}
/**
@@ -86,120 +86,120 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
*
* @param savedInstanceState
*/
private void installSkinManager(Bundle savedInstanceState) {
mServiceApis.getMapServiceApi().getMapViewInstanceHandler().createMapViewInstance(this);
mServiceApis.getSkinSupportInstallerApi().install(getApplication());
mServiceApis.getSkinSupportInstallerApi().onCompensateActivityCreated(this, savedInstanceState);
private void installSkinManager( Bundle savedInstanceState ) {
mServiceApis.getMapServiceApi().getMapViewInstanceHandler().createMapViewInstance( this );
mServiceApis.getSkinSupportInstallerApi().install( getApplication() );
mServiceApis.getSkinSupportInstallerApi().onCompensateActivityCreated( this, savedInstanceState );
}
@Override
protected void initViews() {
getWindow().setBackgroundDrawable(null);
getWindow().setBackgroundDrawable( null );
mApps = findViewById(R.id.module_main_id_apps_fragment_container);
mEntrance = findViewById(R.id.module_main_id_entrance_fragment_container);
mEventPanel = findViewById(R.id.module_main_id_event_panel_fragment_container);
mFloatingLayout = findViewById(R.id.module_main_id_floating_view);
mLeftShadowFrame = findViewById(R.id.module_main_id_map_left_shadow_frame);
mCoverUpLayout = findViewById(R.id.module_main_id_cover_up);
mLeftPanelLayout = findViewById(R.id.module_main_id_left_panel_fragment_container);
mHistoryMessagePanel = findViewById(R.id.module_main_id_message_history_fragment_container);
mApps = findViewById( R.id.module_main_id_apps_fragment_container );
mEntrance = findViewById( R.id.module_main_id_entrance_fragment_container );
mEventPanel = findViewById( R.id.module_main_id_event_panel_fragment_container );
mFloatingLayout = findViewById( R.id.module_main_id_floating_view );
mLeftShadowFrame = findViewById( R.id.module_main_id_map_left_shadow_frame );
mCoverUpLayout = findViewById( R.id.module_main_id_cover_up );
mLeftPanelLayout = findViewById( R.id.module_main_id_left_panel_fragment_container );
mHistoryMessagePanel = findViewById( R.id.module_main_id_message_history_fragment_container );
// 避免事件穿透导致地图被滑动
mLeftShadowFrame.setOnClickListener(view -> {
});
FloatingViewHandler.init(mFloatingLayout);
mLeftShadowFrame.setOnClickListener( view -> {
} );
FloatingViewHandler.init( mFloatingLayout );
mServiceApis.getOnlineCarPanelApi().initContainer(R.id.module_main_id_message_history_fragment_container, this);
if (CallChatApi.getInstance().getApiProvider() != null) {
mServiceApis.getOnlineCarPanelApi().initContainer( R.id.module_main_id_message_history_fragment_container, this );
if ( CallChatApi.getInstance().getApiProvider() != null ) {
CallChatApi.getInstance().getApiProvider().initVehicleTeamContainer("init", R.id.module_main_id_message_history_fragment_container, this);
}
}
// 隐藏布局
protected void hideLayout() {
mEntrance.setVisibility(View.GONE);
mEventPanel.setVisibility(View.GONE);
mFloatingLayout.setVisibility(View.GONE);
mEntrance.setVisibility( View.GONE );
mEventPanel.setVisibility( View.GONE );
mFloatingLayout.setVisibility( View.GONE );
}
// 显示布局
protected void showLayout() {
mEntrance.setVisibility(View.VISIBLE);
mEventPanel.setVisibility(View.VISIBLE);
mFloatingLayout.setVisibility(View.VISIBLE);
mEntrance.setVisibility( View.VISIBLE );
mEventPanel.setVisibility( View.VISIBLE );
mFloatingLayout.setVisibility( View.VISIBLE );
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ContextHolderUtil.holdContext(this);
protected void onCreate( @Nullable Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
ContextHolderUtil.holdContext( this );
mPresenter.postLoadModuleMsg();
}
private void init() {
if (mServiceApis == null) {
if ( mServiceApis == null ) {
mServiceApis = MogoApisHandler.getInstance().getApis();
}
mServiceApis.getShareManager().resetContext(this);
mServiceApis.getAuthManagerApi().showAuth(this);
mServiceApis.getShareManager().resetContext( this );
mServiceApis.getAuthManagerApi().showAuth( this );
mMogoStatusManager = mServiceApis.getStatusManagerApi();
mMogoStatusManager.setMainPageLaunchedStatus(TAG, true);
AutopilotServiceManage.getInstance().init(getContext());
mMogoStatusManager.setMainPageLaunchedStatus( TAG, true );
AutopilotServiceManage.getInstance().init( getContext() );
}
@Override
public void loadModules() {
final long start = System.currentTimeMillis();
MogoModulesManager.getInstance().init(this);
MogoModulesManager.getInstance().init( this );
loadSplash();
if (DebugConfig.isMapBased()) {
if (mServiceApis.getMapServiceApi() != null) {
mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostMapListener(EventDispatchCenter.getInstance());
mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostNaviListener(EventDispatchCenter.getInstance());
mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostAimlessModeListener(EventDispatchCenter.getInstance());
mServiceApis.getMapServiceApi().getHostListenerRegister().registerMarkerClickListener(this);
if ( DebugConfig.isMapBased() ) {
if ( mServiceApis.getMapServiceApi() != null ) {
mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostMapListener( EventDispatchCenter.getInstance() );
mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostNaviListener( EventDispatchCenter.getInstance() );
mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostAimlessModeListener( EventDispatchCenter.getInstance() );
mServiceApis.getMapServiceApi().getHostListenerRegister().registerMarkerClickListener( this );
}
}
if (DebugConfig.isSkinSupported()) {
if ( DebugConfig.isSkinSupported() ) {
initAdasControlStatusListener();
}
if (DebugConfig.isMapBased()) {
EventDispatchCenter.getInstance().setMapLoadedCallback(() -> {
Logger.d(TAG, "map loaded." + Thread.currentThread().getName());
if ( DebugConfig.isMapBased() ) {
EventDispatchCenter.getInstance().setMapLoadedCallback( () -> {
Logger.d( TAG, "map loaded." + Thread.currentThread().getName() );
resetMapCenterPoint();
loadOthersModules();
Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms");
});
MogoModulesManager.getInstance().loadMapModule(R.id.module_main_id_map_fragment_container);
Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
} );
MogoModulesManager.getInstance().loadMapModule( R.id.module_main_id_map_fragment_container );
} else {
loadOthersModules();
}
mMogoFragmentManager = mServiceApis.getFragmentManagerApi();
mMogoFragmentManager.init(this, R.id.module_main_id_search_fragment);
mMogoFragmentManager.initMessageHistoryContainerId(R.id.module_main_id_message_history_fragment_container);
mMogoFragmentManager.registerMainFragmentStackTransactionListener((size) -> {
if (size == 0) {
mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment );
mMogoFragmentManager.initMessageHistoryContainerId( R.id.module_main_id_message_history_fragment_container );
mMogoFragmentManager.registerMainFragmentStackTransactionListener( ( size ) -> {
if ( size == 0 ) {
showLayout();
} else if (size == 1) {
} else if ( size == 1 ) {
hideLayout();
}
});
} );
}
private void resetMapCenterPoint() {
// 右移地图中心点
MapCenterPointStrategy.init();
MapCenterPointStrategy.setMapCenterPointByScene(mServiceApis.getMapServiceApi().getMapUIController(), Scene.AIMLESS);
MapCenterPointStrategy.setMapCenterPointByScene( mServiceApis.getMapServiceApi().getMapUIController(), Scene.AIMLESS );
}
private void loadOthersModules() {
@@ -213,66 +213,66 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
}
private void initAdasControlStatusListener() {
mServiceApis.getRegisterCenterApi().registerADASControlStatusChangedListener(TAG, this);
AdasConfigApiController.getInstance().registerAdasSettingUiListener(EventDispatchCenter.getInstance());
AdasConfigApiController.getInstance().registerAdasSettingSkinModelListener(EventDispatchCenter.getInstance());
AdasConfigApiController.getInstance().init(getApplicationContext());
LoggerController.setPrinterLog(DebugConfig.isDebug());
mServiceApis.getRegisterCenterApi().registerADASControlStatusChangedListener( TAG, this );
AdasConfigApiController.getInstance().registerAdasSettingUiListener( EventDispatchCenter.getInstance() );
AdasConfigApiController.getInstance().registerAdasSettingSkinModelListener( EventDispatchCenter.getInstance() );
AdasConfigApiController.getInstance().init( getApplicationContext() );
LoggerController.setPrinterLog( DebugConfig.isDebug() );
}
private void startBaseService() {
Intent intent = new Intent(this, MogoMainService.class);
startService(intent);
Intent intent = new Intent( this, MogoMainService.class );
startService( intent );
}
protected void loadContainerModules() {
MogoModulesManager.getInstance().loadEntrancesModule(R.id.module_main_id_entrance_fragment_container);
MogoModulesManager.getInstance().loadEventPanelModule(R.id.module_main_id_event_panel_fragment_container);
MogoModulesManager.getInstance().loadLeftPanelModule(R.id.module_main_id_left_panel_fragment_container);
MogoModulesManager.getInstance().loadEntrancesModule( R.id.module_main_id_entrance_fragment_container );
MogoModulesManager.getInstance().loadEventPanelModule( R.id.module_main_id_event_panel_fragment_container );
MogoModulesManager.getInstance().loadLeftPanelModule( R.id.module_main_id_left_panel_fragment_container );
}
@Override
public void hideCoverUpLayout() {
Logger.d(TAG, "隐藏遮罩");
mCoverUpLayout.setVisibility(View.GONE);
Logger.d( TAG, "隐藏遮罩" );
mCoverUpLayout.setVisibility( View.GONE );
mServiceApis.getAdasControllerApi().showADAS();
}
@Override
public void loadCardModules() {
List<IMogoModuleProvider> providers = MogoModulesManager.getInstance().loadCardsModule();
List< IMogoModuleProvider > providers = MogoModulesManager.getInstance().loadCardsModule();
}
@Override
public void loadSplash() {
MogoModulesManager.getInstance().loadSplashModule(R.id.module_main_id_splash_container);
MogoModulesManager.getInstance().loadSplashModule( R.id.module_main_id_splash_container );
}
@NonNull
@Override
protected MainPresenter createPresenter() {
return new MainPresenter(this);
return new MainPresenter( this );
}
@Override
public void onLocationChanged(MogoLocation location) {
EventDispatchCenter.getInstance().onLocationChanged(location);
public void onLocationChanged( MogoLocation location ) {
EventDispatchCenter.getInstance().onLocationChanged( location );
}
@Override
public boolean onMarkerClicked(IMogoMarker marker) {
EventDispatchCenter.getInstance().onMarkerClicked(marker);
public boolean onMarkerClicked( IMogoMarker marker ) {
EventDispatchCenter.getInstance().onMarkerClicked( marker );
return false;
}
@Override
public void onMapUiModeChanged(EnumMapUI mapUI) {
switch (mapUI) {
public void onMapUiModeChanged( EnumMapUI mapUI ) {
switch ( mapUI ) {
case Type_Night:
mServiceApis.getSkinSupportInstallerApi().loadSkin(SkinMode.Night);
mServiceApis.getSkinSupportInstallerApi().loadSkin( SkinMode.Night );
break;
case Type_Light:
mServiceApis.getSkinSupportInstallerApi().loadSkin(SkinMode.Light);
mServiceApis.getSkinSupportInstallerApi().loadSkin( SkinMode.Light );
break;
}
}
@@ -280,26 +280,26 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
@Override
protected void onResume() {
super.onResume();
mMogoStatusManager.setMainPageResumeStatus(TAG, true);
mMogoStatusManager.setMainPageIsBackgroundStatus(TAG, false);
if (mCoverUpLayout.getVisibility() != View.VISIBLE) {
mMogoStatusManager.setMainPageResumeStatus( TAG, true );
mMogoStatusManager.setMainPageIsBackgroundStatus( TAG, false );
if ( mCoverUpLayout.getVisibility() != View.VISIBLE ) {
mServiceApis.getAdasControllerApi().showADAS();
}
if (mServiceApis.getLauncherApi() != null) {
mServiceApis.getLauncherApi().setFloatButtonVisible(false);
if ( mServiceApis.getLauncherApi() != null ) {
mServiceApis.getLauncherApi().setFloatButtonVisible( false );
}
}
@Override
protected void onPause() {
super.onPause();
mMogoStatusManager.setMainPageResumeStatus(TAG, false);
mMogoStatusManager.setMainPageResumeStatus( TAG, false );
mServiceApis.getAuthManagerApi().dismiss();
if (shouldCloseADASPanelWhenPause()) {
if ( shouldCloseADASPanelWhenPause() ) {
mServiceApis.getAdasControllerApi().closeADAS();
}
if (mServiceApis.getLauncherApi() != null) {
mServiceApis.getLauncherApi().setFloatButtonVisible(true);
if ( mServiceApis.getLauncherApi() != null ) {
mServiceApis.getLauncherApi().setFloatButtonVisible( true );
}
}
@@ -313,18 +313,18 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
@Override
protected void onStop() {
super.onStop();
mMogoStatusManager.setMainPageIsBackgroundStatus(TAG, true);
mMogoStatusManager.setMainPageIsBackgroundStatus( TAG, true );
}
@Override
public void onBackPressed() {
if (mMogoFragmentManager == null
|| mMogoFragmentManager.getStackSize() <= 0) {
if (DebugConfig.isLauncher()) {
if ( mMogoFragmentManager == null
|| mMogoFragmentManager.getStackSize() <= 0 ) {
if ( DebugConfig.isLauncher() ) {
doWhenBackPressed();
return;
} else {
if (doWhenBackPressed()) {
if ( doWhenBackPressed() ) {
return;
}
super.onBackPressed();
@@ -339,14 +339,14 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
mPresenter.handleSchemeIntent(intent, true);
protected void onNewIntent( Intent intent ) {
super.onNewIntent( intent );
mPresenter.handleSchemeIntent( intent, true );
}
@Override
public IMogoServiceApis getApis() {
if (mServiceApis == null) {
if ( mServiceApis == null ) {
mServiceApis = MogoApisHandler.getInstance().getApis();
}
return mServiceApis;
@@ -359,19 +359,19 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
mServiceApis.getMapServiceApi().getHostListenerRegister().unregisterHostAimlessModeListener();
mServiceApis.getMapServiceApi().getHostListenerRegister().unregisterHostNaviListener();
mServiceApis.getMapServiceApi().getHostListenerRegister().unregisterHostMapListener();
mMogoStatusManager.setMainPageLaunchedStatus(TAG, false);
mMogoStatusManager.setMainPageIsBackgroundStatus(TAG, false);
mMogoStatusManager.setMainPageLaunchedStatus( TAG, false );
mMogoStatusManager.setMainPageIsBackgroundStatus( TAG, false );
mMogoFragmentManager.unregisterMainFragmentStackTransactionListener();
mMogoFragmentManager = null;
mServiceApis.getMapServiceApi().getMapViewInstanceHandler().destroy();
AdasConfigApiController.getInstance().release();
mServiceApis.getAdasControllerApi().release();
Logger.d(TAG, "destroy.");
Logger.d( TAG, "destroy." );
mServiceApis.getRefreshStrategyControllerApi().clearAllData();
AIAssist.getInstance(this).release();
AIAssist.getInstance( this ).release();
mServiceApis.getOnlineCarPanelApi().clear();
if (CallChatApi.getInstance().getApiProvider() != null) {
CallChatApi.getInstance().getApiProvider().initVehicleTeamContainer("init", 0, null);
if ( CallChatApi.getInstance().getApiProvider() != null ) {
// CallChatApi.getInstance().getApiProvider().initVehicleTeamContainer("init", 0, null);
}
ContextHolderUtil.releaseContext();
MogoModulesManager.getInstance().onDestroy();

View File

@@ -6,6 +6,7 @@ import android.content.Context;
import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.MogoModule;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.main.MainActivity;
@@ -127,9 +128,7 @@ public class MogoModulesManager implements MogoModulesHandler {
@Override
public void loadEventPanelModule( int containerId ) {
IMogoModuleProvider provider = ( IMogoModuleProvider ) ARouter.getInstance()
.build( MogoServicePaths.PATH_EVENT_PANEL )
.navigation( getContext() );
IMogoModuleProvider provider = MogoApisHandler.getInstance().getApis().getEventPanelManager();
addFragment( provider, containerId );
}

View File

@@ -31,4 +31,9 @@
<dimen name="module_ext_top_view_max_width">1920px</dimen>
<dimen name="module_main_panel_margin_right">0px</dimen>
<!--事件面板-->
<dimen name="module_main_event_panel_fragment_paddingTop">2px</dimen>
<dimen name="module_main_event_panel_fragment_paddingBottom">2px</dimen>
<dimen name="module_main_event_panel_fragment_paddingLeft">6px</dimen>
<dimen name="module_main_event_panel_fragment_paddingRight">6px</dimen>
</resources>

View File

@@ -33,6 +33,6 @@
<!--事件面板-->
<dimen name="module_main_event_panel_fragment_paddingTop">2px</dimen>
<dimen name="module_main_event_panel_fragment_paddingBottom">2px</dimen>
<dimen name="module_main_event_panel_fragment_paddingLeft">6px</dimen>
<dimen name="module_main_event_panel_fragment_paddingRight">6px</dimen>
<dimen name="module_main_event_panel_fragment_paddingLeft">2px</dimen>
<dimen name="module_main_event_panel_fragment_paddingRight">4px</dimen>
</resources>

View File

@@ -26,6 +26,7 @@ class AutoNaviBroadcastIntentHandler implements IMogoIntentListener {
// 接收高德
public static final String AUTONAVI_STANDARD_BROADCAST_SEND = "AUTONAVI_STANDARD_BROADCAST_SEND";
private EnumMapUI mLastAMapUiType = null;
public void register( IMogoIntentManager manager ) {
manager.registerIntentListener( AUTONAVI_STANDARD_BROADCAST_RECV, this );
@@ -131,11 +132,17 @@ class AutoNaviBroadcastIntentHandler implements IMogoIntentListener {
// 高德改变黑夜白天模式后传递给launcher顺便改变其他
if ( extraState == 37 ) {
// 白天模式
mLastAMapUiType = EnumMapUI.Type_Light;
MogoApisHandler.getInstance().getApis().getAdasControllerApi().changeAdasControlMode( EnumMapUI.Type_Light );
} else if ( extraState == 38 ) {
// 夜间模式
mLastAMapUiType = EnumMapUI.Type_Night;
MogoApisHandler.getInstance().getApis().getAdasControllerApi().changeAdasControlMode( EnumMapUI.Type_Night );
}
}
}
public EnumMapUI getLastAMapUiType() {
return mLastAMapUiType;
}
}

View File

@@ -103,6 +103,10 @@ class MapControlCommandHandler {
return;
}
if ( mCallback.getAMapLastType() == ui ) {
return;
}
int KEY_TYPE = 10048;
int state = 0;//2黑夜;1白天 ;0自动
switch ( ui ) {

View File

@@ -296,6 +296,14 @@ public class MapPresenter extends Presenter< MapView > implements
mRegisterCenter.registerADASControlStatusChangedListener( TAG, this );
}
@Override
public EnumMapUI getAMapLastType() {
if ( mAutoNaviReceiver != null ) {
return mAutoNaviReceiver.getLastAMapUiType();
}
return null;
}
private void initBroadcast() {
mAutoNaviReceiver = new AutoNaviBroadcastIntentHandler();
mAutoNaviReceiver.setCallback( this );

View File

@@ -36,4 +36,7 @@ public interface OnMapControlCallback {
// 缩放地图
void onZoomMap( boolean zoomIn );
// 高德地图上次类型
EnumMapUI getAMapLastType();
}

View File

@@ -101,7 +101,9 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener {
}
}
};
ServiceMediaHandler.getCarsChattingApis().registerCallWindowStatusListener( MediaConstants.MODULE_TYPE, mContext, mCallProviderResponse);
if ( ServiceMediaHandler.getCarsChattingApis() != null ) {
ServiceMediaHandler.getCarsChattingApis().registerCallWindowStatusListener( MediaConstants.MODULE_TYPE, mContext, mCallProviderResponse);
}
isFirstPlay = true;
}
@@ -344,7 +346,9 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener {
public void onDestroy(){
Logger.d(TAG, "onDestroy");
ServiceMediaHandler.getCarsChattingApis().unRegisterCallWindowStatusListener( MediaConstants.MODULE_TYPE, mContext);
if ( ServiceMediaHandler.getCarsChattingApis() != null ) {
ServiceMediaHandler.getCarsChattingApis().unRegisterCallWindowStatusListener( MediaConstants.MODULE_TYPE, mContext);
}
ServiceMediaHandler.getIMogoStatusManager().unregisterStatusChangedListener(MediaConstants.MODULE_TYPE, StatusDescriptor.ACC_STATUS,this);
}
}

View File

@@ -58,14 +58,14 @@ dependencies {
implementation rootProject.ext.dependencies.mogocommons
implementation rootProject.ext.dependencies.mogoserviceapi
implementation rootProject.ext.dependencies.modulecommon
implementation rootProject.ext.dependencies.gpssimulator
// implementation rootProject.ext.dependencies.gpssimulator
} else {
implementation project(":libraries:mogo-map-api")
implementation project(":foudations:mogo-utils")
implementation project(":foudations:mogo-commons")
implementation project(':services:mogo-service-api')
implementation project(':modules:mogo-module-common')
implementation project(':modules:mogo-module-gps-simulator')
// implementation project(':modules:mogo-module-gps-simulator')
}
implementation 'com.zhidaoauto.voice.controller:api:1.0.2'

View File

@@ -1,13 +1,11 @@
package com.mogo.module.navi.constants;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.gps.simulator.IMogoGpsSimulatorManager;
import com.mogo.module.navi.cp.PersonalInfoManagerImpl;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.analytics.IMogoAnalytics;
@@ -31,7 +29,7 @@ public class SearchApisHolder {
private static final String TAG = "SearchApisHolder";
private static IMogoServiceApis sApis;
private static IMogoGpsSimulatorManager sGpsSimulatorManager;
// private static IMogoGpsSimulatorManager sGpsSimulatorManager;
private static PersonalInfoManagerImpl mPersonalInfoManager;
@@ -86,12 +84,12 @@ public class SearchApisHolder {
return getApis().getSettingManagerApi();
}
public static IMogoGpsSimulatorManager getGpsSimulatorManager() {
if ( sGpsSimulatorManager == null ) {
sGpsSimulatorManager = ARouter.getInstance().navigation( IMogoGpsSimulatorManager.class );
}
return sGpsSimulatorManager;
}
// public static IMogoGpsSimulatorManager getGpsSimulatorManager() {
// if ( sGpsSimulatorManager == null ) {
// sGpsSimulatorManager = ARouter.getInstance().navigation( IMogoGpsSimulatorManager.class );
// }
// return sGpsSimulatorManager;
// }
public static IMogoSearchManager getSearchManager() {
return getApis().getSearchManagerApi();

View File

@@ -221,11 +221,11 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
SettingManager.setGpsSimulator(isChecked)
if (isChecked) {
SearchApisHolder.getGpsSimulatorManager().open()
} else {
SearchApisHolder.getGpsSimulatorManager().close()
}
// if (isChecked) {
// SearchApisHolder.getGpsSimulatorManager().open()
// } else {
// SearchApisHolder.getGpsSimulatorManager().close()
// }
}
tb_navi.isChecked = SettingManager.isMonitor()
tb_gps.isChecked = SettingManager.isGpsSimulator()

View File

@@ -60,7 +60,7 @@ dependencies {
api rootProject.ext.dependencies.mogocommons
api rootProject.ext.dependencies.mogoserviceapi
implementation rootProject.ext.dependencies.modulecommon
implementation rootProject.ext.dependencies.gpssimulator
// implementation rootProject.ext.dependencies.gpssimulator
} else {
api project(":libraries:mogo-map")
api project(":libraries:mogo-map-api")
@@ -68,7 +68,7 @@ dependencies {
api project(":foudations:mogo-commons")
api project(':services:mogo-service-api')
implementation project(':modules:mogo-module-common')
implementation project(':modules:mogo-module-gps-simulator')
// implementation project(':modules:mogo-module-gps-simulator')
}
}

View File

@@ -11,7 +11,6 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.entity.MarkerResponse;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.gps.simulator.IMogoGpsSimulatorManager;
import com.mogo.module.service.marker.MapMarkerManager;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.adas.IMogoADASController;
@@ -59,11 +58,11 @@ public class MarkerServiceHandler {
private static IMogoLauncher sLauncher;
private static IMogoFragmentManager sFragmentManager;
private static ICarsChattingProvider sCarChatting;
private static IMogoGpsSimulatorManager sGpsSimulatorManager;
// private static IMogoGpsSimulatorManager sGpsSimulatorManager;
public static synchronized void init( final Context context ) {
if ( sGpsSimulatorManager != null ) {
if ( sCarChatting != null ) {
return;
}
@@ -89,7 +88,7 @@ public class MarkerServiceHandler {
MapMarkerManager.getInstance().init( context );
sGpsSimulatorManager = ARouter.getInstance().navigation( IMogoGpsSimulatorManager.class );
// sGpsSimulatorManager = ARouter.getInstance().navigation( IMogoGpsSimulatorManager.class );
}
public static IMogoServiceApis getApis() {
@@ -168,9 +167,9 @@ public class MarkerServiceHandler {
return sCarChatting;
}
public static IMogoGpsSimulatorManager getGpsSimulatorManager() {
return sGpsSimulatorManager;
}
// public static IMogoGpsSimulatorManager getGpsSimulatorManager() {
// return sGpsSimulatorManager;
// }
//TODO -------------以下方法是临时过度使用的后面统一使用getMapMarkerManager进行调用

View File

@@ -412,7 +412,9 @@ public class MogoServices implements IMogoMapListener,
MogoApisHandler.getInstance().getApis().getAdasControllerApi().setSettingStatus(false);
MogoApisHandler.getInstance().getApis().getEventPanelManager().hidePanel();
carsChattingProvider = (ICarsChattingProvider) ARouter.getInstance().build(CallChattingProviderConstant.CAR_CALL_PROVIDER).navigation();
carsChattingProvider.hideUserWindow("MOGO_COMMON_SERVICE", mContext, mCallProviderResponse);
if ( carsChattingProvider != null ) {
carsChattingProvider.hideUserWindow("MOGO_COMMON_SERVICE", mContext, mCallProviderResponse);
}
}
public void init(Context context) {

View File

@@ -2,7 +2,6 @@ package com.mogo.module.service.intent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.net.Uri;
@@ -26,7 +25,6 @@ import com.mogo.map.search.geo.MogoRegeocodeResult;
import com.mogo.map.search.geo.query.MogoRegeocodeQuery;
import com.mogo.module.common.dialog.WMDialog;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.MogoServiceProvider;
import com.mogo.module.service.R;
import com.mogo.service.entrance.ButtonIndex;
import com.mogo.utils.TipToast;
@@ -327,12 +325,12 @@ public class MockIntentHandler implements IntentHandler {
} );
}
break;
case 15:
MarkerServiceHandler.getGpsSimulatorManager().open();
break;
case 16:
MarkerServiceHandler.getGpsSimulatorManager().close();
break;
// case 15:
// MarkerServiceHandler.getGpsSimulatorManager().open();
// break;
// case 16:
// MarkerServiceHandler.getGpsSimulatorManager().close();
// break;
case 17:
DebugConfig.setRequestOnlineCarData( intent.getBooleanExtra( "status", true ) );
break;

View File

@@ -129,6 +129,7 @@ class LauncherCardRefresher {
switch ( msg.what ) {
case MSG_WAIT_NETWORK:
trtRequestNetworkConfigStrategy();
break;
case MSG_LOAD_NET_CONFIG:
loadNetworkConfigStrategy();
break;
@@ -526,9 +527,18 @@ class LauncherCardRefresher {
} else if ( datum instanceof TtsConfigData.NearRoads ) {
result = handleNearRoadsTtsConfig( ( ( TtsConfigData.NearRoads ) datum ) );
} else if ( datum instanceof TtsConfigData.OnlineCarVsExplorerWay ) {
result = handleExplorerWayTtsConfig( ( ( TtsConfigData.OnlineCarVsExplorerWay ) datum ) );
if ( !result ) {
if ( node.type == LauncherCardRefreshType.ExplorerWay ) {
result = handleExplorerWayTtsConfig( ( ( TtsConfigData.OnlineCarVsExplorerWay ) datum ) );
if ( !result ) {
node.type = LauncherCardRefreshType.OnlineCar;
result = handleOnlineCarTtsConfig( ( ( TtsConfigData.OnlineCarVsExplorerWay ) datum ) );
}
} else if( node.type == LauncherCardRefreshType.OnlineCar ){
result = handleOnlineCarTtsConfig( ( ( TtsConfigData.OnlineCarVsExplorerWay ) datum ) );
if ( !result ) {
node.type = LauncherCardRefreshType.ExplorerWay;
result = handleExplorerWayTtsConfig( ( ( TtsConfigData.OnlineCarVsExplorerWay ) datum ) );
}
}
}
if ( result ) {
@@ -594,7 +604,7 @@ class LauncherCardRefresher {
String tts = mContext.getString( R.string.module_service_launcher_card_tips );
String info = mContext.getString( R.string.module_service_launcher_card_info );
speakTTS( String.format( tts, explorerWay.poiTotal, LauncherCardRefreshType.ExplorerWay.getDesc() ), false );
notifyRefreshChanged( String.format( info, explorerWay.poiTotal, LauncherCardRefreshType.ExplorerWay ), explorerWay.poiTotal, tts );
notifyRefreshChanged( String.format( info, explorerWay.poiTotal, LauncherCardRefreshType.ExplorerWay.getDesc() ), explorerWay.poiTotal, tts );
return true;
}
@@ -611,7 +621,7 @@ class LauncherCardRefresher {
String tts = mContext.getString( R.string.module_service_launcher_card_tips );
String info = mContext.getString( R.string.module_service_launcher_card_info );
speakTTS( String.format( tts, onlineCar.carTotal, LauncherCardRefreshType.OnlineCar.getDesc() ), false );
notifyRefreshChanged( String.format( info, onlineCar.carTotal, LauncherCardRefreshType.OnlineCar ), onlineCar.carTotal, tts );
notifyRefreshChanged( String.format( info, onlineCar.carTotal, LauncherCardRefreshType.OnlineCar.getDesc() ), onlineCar.carTotal, tts );
return true;
}

View File

@@ -113,24 +113,26 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
MarkerServiceHandler.getActionManager().registerBizActionDoneListener( this );
MarkerServiceHandler.getApis().getRegisterCenterApi().registerADASControlStatusChangedListener( TAG, this );
CallChatApi.getInstance().getApiProvider().registerUserWindowStatusListener( TAG, mContext, new ICallChatResponse() {
if ( CallChatApi.getInstance().getApiProvider() != null ) {
CallChatApi.getInstance().getApiProvider().registerUserWindowStatusListener( TAG, mContext, new ICallChatResponse() {
@Override
public void userWindowStatus( boolean show ) {
try {
if ( mLastCheckMarker == null ) {
return;
@Override
public void userWindowStatus( boolean show ) {
try {
if ( mLastCheckMarker == null ) {
return;
}
if ( TextUtils.equals( mLastCheckMarker.getOwner(), ModuleNames.CARD_TYPE_USER_DATA )
&& !show ) {
closeMarker( mLastCheckMarker );
}
} catch ( Exception e ) {
e.printStackTrace();
}
if ( TextUtils.equals( mLastCheckMarker.getOwner(), ModuleNames.CARD_TYPE_USER_DATA )
&& !show ) {
closeMarker( mLastCheckMarker );
}
} catch ( Exception e ) {
e.printStackTrace();
}
}
} );
} );
}
}
/**

View File

@@ -194,7 +194,9 @@ public class UserDataMarkerInfoWindowAdapter implements IMogoInfoWindowAdapter {
params.put( CallChattingProviderConstant.CCPROVIDER_LON, location.getLon() + "" );
}
Logger.d( TAG, "call parameters: %s", params );
MarkerServiceHandler.getCarChatting().call( params );
if ( MarkerServiceHandler.getCarChatting() != null ) {
MarkerServiceHandler.getCarChatting().call( params );
}
}
protected void loadImageHeader( final MarkerShowEntity markerShowEntity ) {

View File

@@ -78,7 +78,9 @@ class OnlineCarPanelAdapter extends RecyclerView.Adapter<OnlineCarPanelAdapter.V
params.put(CallChattingProviderConstant.CCPROVIDER_LAT, location.getLat() + "");
params.put(CallChattingProviderConstant.CCPROVIDER_LON, location.getLon() + "");
ICarsChattingProvider carChatting = MarkerServiceHandler.getCarChatting();
carChatting.call(params);
if ( carChatting != null ) {
carChatting.call(params);
}
});
}

View File

@@ -32,53 +32,53 @@ public class CarIconDisplayStrategy {
// F 系列才有这个帧动画
public static final int[] sFrame = {
R.drawable.v_to_x_warning_circle_orange_00000,
R.drawable.v_to_x_warning_circle_orange_00001,
R.drawable.v_to_x_warning_circle_orange_00002,
R.drawable.v_to_x_warning_circle_orange_00003,
R.drawable.v_to_x_warning_circle_orange_00004,
R.drawable.v_to_x_warning_circle_orange_00005,
R.drawable.v_to_x_warning_circle_orange_00006,
R.drawable.v_to_x_warning_circle_orange_00007,
R.drawable.v_to_x_warning_circle_orange_00008,
R.drawable.v_to_x_warning_circle_orange_00009,
R.drawable.v_to_x_warning_circle_orange_00010,
R.drawable.v_to_x_warning_circle_orange_00011,
R.drawable.v_to_x_warning_circle_orange_00012,
R.drawable.v_to_x_warning_circle_orange_00013,
R.drawable.v_to_x_warning_circle_orange_00014,
R.drawable.v_to_x_warning_circle_orange_00015,
R.drawable.v_to_x_warning_circle_orange_00016,
R.drawable.v_to_x_warning_circle_orange_00017,
R.drawable.v_to_x_warning_circle_orange_00018,
R.drawable.v_to_x_warning_circle_orange_00019,
R.drawable.v_to_x_warning_circle_orange_00020,
R.drawable.v_to_x_warning_circle_orange_00023,
R.drawable.v_to_x_warning_circle_orange_00024,
R.drawable.v_to_x_warning_circle_orange_00025,
R.drawable.v_to_x_warning_circle_orange_00026,
R.drawable.v_to_x_warning_circle_orange_00027,
R.drawable.v_to_x_warning_circle_orange_00028,
R.drawable.v_to_x_warning_circle_orange_00029,
R.drawable.v_to_x_warning_circle_orange_00030,
R.drawable.v_to_x_warning_circle_orange_00031,
R.drawable.v_to_x_warning_circle_orange_00032,
R.drawable.v_to_x_warning_circle_orange_00033,
R.drawable.v_to_x_warning_circle_orange_00034,
R.drawable.v_to_x_warning_circle_orange_00035,
R.drawable.v_to_x_warning_circle_orange_00036,
R.drawable.v_to_x_warning_circle_orange_00037,
R.drawable.v_to_x_warning_circle_orange_00038,
R.drawable.v_to_x_warning_circle_orange_00039,
R.drawable.v_to_x_warning_circle_orange_00040,
R.drawable.v_to_x_warning_circle_orange_00041,
R.drawable.v_to_x_warning_circle_orange_00042,
R.drawable.v_to_x_warning_circle_orange_00043,
R.drawable.v_to_x_warning_circle_orange_00044,
R.drawable.v_to_x_warning_circle_orange_00045,
R.drawable.v_to_x_warning_circle_orange_00046,
R.drawable.v_to_x_warning_circle_orange_00047,
R.drawable.v_to_x_warning_circle_orange_00048
R.drawable.module_service_ic_warning_circle_orange_00000,
R.drawable.module_service_ic_warning_circle_orange_00001,
R.drawable.module_service_ic_warning_circle_orange_00002,
R.drawable.module_service_ic_warning_circle_orange_00003,
R.drawable.module_service_ic_warning_circle_orange_00004,
R.drawable.module_service_ic_warning_circle_orange_00005,
R.drawable.module_service_ic_warning_circle_orange_00006,
R.drawable.module_service_ic_warning_circle_orange_00007,
R.drawable.module_service_ic_warning_circle_orange_00008,
R.drawable.module_service_ic_warning_circle_orange_00009,
R.drawable.module_service_ic_warning_circle_orange_00010,
R.drawable.module_service_ic_warning_circle_orange_00011,
R.drawable.module_service_ic_warning_circle_orange_00012,
R.drawable.module_service_ic_warning_circle_orange_00013,
R.drawable.module_service_ic_warning_circle_orange_00014,
R.drawable.module_service_ic_warning_circle_orange_00015,
R.drawable.module_service_ic_warning_circle_orange_00016,
R.drawable.module_service_ic_warning_circle_orange_00017,
R.drawable.module_service_ic_warning_circle_orange_00018,
R.drawable.module_service_ic_warning_circle_orange_00019,
R.drawable.module_service_ic_warning_circle_orange_00020,
R.drawable.module_service_ic_warning_circle_orange_00021,
R.drawable.module_service_ic_warning_circle_orange_00022,
R.drawable.module_service_ic_warning_circle_orange_00023,
R.drawable.module_service_ic_warning_circle_orange_00024,
R.drawable.module_service_ic_warning_circle_orange_00025,
R.drawable.module_service_ic_warning_circle_orange_00026,
R.drawable.module_service_ic_warning_circle_orange_00027,
R.drawable.module_service_ic_warning_circle_orange_00028,
R.drawable.module_service_ic_warning_circle_orange_00029,
R.drawable.module_service_ic_warning_circle_orange_00030,
R.drawable.module_service_ic_warning_circle_orange_00031,
R.drawable.module_service_ic_warning_circle_orange_00032,
R.drawable.module_service_ic_warning_circle_orange_00033,
R.drawable.module_service_ic_warning_circle_orange_00034,
R.drawable.module_service_ic_warning_circle_orange_00035,
R.drawable.module_service_ic_warning_circle_orange_00036,
R.drawable.module_service_ic_warning_circle_orange_00037,
R.drawable.module_service_ic_warning_circle_orange_00038,
R.drawable.module_service_ic_warning_circle_orange_00039,
R.drawable.module_service_ic_warning_circle_orange_00040,
R.drawable.module_service_ic_warning_circle_orange_00041,
R.drawable.module_service_ic_warning_circle_orange_00042,
R.drawable.module_service_ic_warning_circle_orange_00043,
R.drawable.module_service_ic_warning_circle_orange_00044,
R.drawable.module_service_ic_warning_circle_orange_00045,
R.drawable.module_service_ic_warning_circle_orange_00046
};
private static volatile CarIconDisplayStrategy sInstance;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Some files were not shown because too many files have changed in this diff Show More