9
.idea/codeStyles/Project.xml
generated
9
.idea/codeStyles/Project.xml
generated
@@ -1,17 +1,10 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<option name="AUTODETECT_INDENTS" value="false" />
|
||||
<JavaCodeStyleSettings>
|
||||
<option name="FIELD_NAME_PREFIX" value="m" />
|
||||
</JavaCodeStyleSettings>
|
||||
<JetCodeStyleSettings>
|
||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||
</JetCodeStyleSettings>
|
||||
<codeStyleSettings language="JAVA">
|
||||
<option name="KEEP_LINE_BREAKS" value="false" />
|
||||
<option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="XML">
|
||||
<option name="FORCE_REARRANGE_MODE" value="1" />
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
|
||||
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@@ -13,7 +13,7 @@
|
||||
<map>
|
||||
<entry key="../../../../../../layout/custom_preview.xml" value="0.390625" />
|
||||
<entry key="../../../../../layout/custom_preview.xml" value="0.19947916666666668" />
|
||||
<entry key="core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml" value="0.44375" />
|
||||
<entry key="core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml" value="0.33" />
|
||||
<entry key="core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_autopilot_status.xml" value="0.25833333333333336" />
|
||||
<entry key="core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_check_status.xml" value="1.0" />
|
||||
<entry key="core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml" value="0.8466666666666667" />
|
||||
@@ -25,6 +25,7 @@
|
||||
<entry key="modules/mogo-module-hmi/src/main/res/layout/module_hmi_warning_v2x.xml" value="0.246875" />
|
||||
<entry key="modules/mogo-module-hmi/src/main/res/layout/notification_v2x_msg_vr.xml" value="0.3453125" />
|
||||
<entry key="modules/mogo-module-hmi/src/main/res/layout/view_traffic_light_vr.xml" value="0.25" />
|
||||
<entry key="modules/mogo-module-left-panel/src/main/res/layout/module_left_panel_simple_speed.xml" value="0.3026041666666667" />
|
||||
<entry key="modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml" value="0.3125" />
|
||||
<entry key="modules/mogo-module-service/src/main/res/drawable/bg_adas_dispatch.xml" value="0.184" />
|
||||
<entry key="modules/mogo-module-service/src/main/res/drawable/bg_adas_dispatch_affirm.xml" value="0.19166666666666668" />
|
||||
|
||||
@@ -15,7 +15,7 @@ buildscript {
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.3'
|
||||
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20'
|
||||
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31'
|
||||
classpath "com.alibaba:arouter-register:1.0.2"
|
||||
classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'
|
||||
|
||||
|
||||
@@ -3,13 +3,16 @@ package com.mogo.eagle.core.function.hmi.ui.setting
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.data.obu.ObuStatusInfo
|
||||
import com.mogo.eagle.core.function.api.obu.IMoGoObuStatusListener
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.eagle.core.utilcode.util.KeyboardUtils
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.*
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* @author xiaoyuzhou
|
||||
@@ -43,6 +46,12 @@ class DebugSettingView @JvmOverloads constructor(
|
||||
|
||||
private fun initView() {
|
||||
tvObuInfo.text = CallerObuListenerManager.getObuStatusInfo()
|
||||
etObuIP.setOnClickListener {
|
||||
//获取焦点
|
||||
etObuIP.isFocusable = true;
|
||||
etObuIP.isFocusableInTouchMode = true;
|
||||
etObuIP.requestFocus();
|
||||
}
|
||||
}
|
||||
|
||||
override fun onObuStatusResponse(obuStatusInfo: ObuStatusInfo) {
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTitleObu"
|
||||
@@ -24,6 +25,25 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/etObuIP"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="#32009688"
|
||||
android:gravity="center"
|
||||
android:inputType="number"
|
||||
android:padding="@dimen/dp_5"
|
||||
android:text="192.168.1.199"
|
||||
android:textSize="@dimen/dp_34" />
|
||||
|
||||
<Button
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:padding="@dimen/dp_5"
|
||||
android:text="设置IP"
|
||||
android:textSize="@dimen/dp_34" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvObuInfo"
|
||||
android:layout_width="match_parent"
|
||||
@@ -33,7 +53,7 @@
|
||||
app:layout_constraintTop_toBottomOf="@+id/tvTitleObu" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
|
||||
@@ -373,6 +373,8 @@ public class MogoServicePaths {
|
||||
/**
|
||||
* 车辆检测 模块
|
||||
*/
|
||||
@Keep
|
||||
@Deprecated
|
||||
public static final String PATH_CHECK = "/check/api";
|
||||
|
||||
/**
|
||||
|
||||
@@ -59,7 +59,7 @@ public class MapVrMarkerView implements IMarkerView {
|
||||
sRef.put(sceneId, new SoftReference<>(BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), R.drawable.icon_map_marker_car_type_taxi)));
|
||||
switch (sceneId) {
|
||||
case "200001"://后方VIP车辆提示
|
||||
// bitmap = ImageUtil.createBitmap(V2XUtils.getApp(),
|
||||
// bitmap = ImageUtil.createBitmap(Utils.getApp(),
|
||||
// R.drawable.v2x_duixiang_laiche_che);
|
||||
break;
|
||||
case "200002"://前车急刹
|
||||
@@ -67,7 +67,7 @@ public class MapVrMarkerView implements IMarkerView {
|
||||
case "200003"://后方危险车辆预警
|
||||
break;
|
||||
case "200004"://逆向车辆路线预判
|
||||
// bitmap = ImageUtil.createBitmap(V2XUtils.getApp(),
|
||||
// bitmap = ImageUtil.createBitmap(Utils.getApp(),
|
||||
// R.drawable.v2x_duixiang_laiche_che);
|
||||
break;
|
||||
case "200005"://VIP变灯通行
|
||||
|
||||
@@ -86,6 +86,7 @@ dependencies {
|
||||
implementation project(':modules:mogo-module-obu')
|
||||
|
||||
implementation project(':core:mogo-core-res')
|
||||
implementation project(':core:mogo-core-utils')
|
||||
implementation project(':core:mogo-core-data')
|
||||
implementation project(':core:mogo-core-function-call')
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.marker.IMogoMarker;
|
||||
@@ -40,9 +42,7 @@ import com.mogo.module.v2x.scenario.impl.V2XScenarioManager;
|
||||
import com.mogo.module.v2x.scenario.scene.livecar.V2XVoiceCallLiveBiz;
|
||||
import com.mogo.module.v2x.scenario.scene.park.V2XIllegalParkWindow;
|
||||
import com.mogo.module.v2x.utils.FatigueDrivingUtils;
|
||||
import com.mogo.module.v2x.utils.TimeUtils;
|
||||
import com.mogo.module.v2x.utils.TrackUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
@@ -137,7 +137,6 @@ public class V2XModuleProvider implements
|
||||
TXCLog.setLevel(TXCLog.LOG_NONE);
|
||||
TXCLog.setConsoleEnabled(false);
|
||||
|
||||
V2XUtils.init(context);
|
||||
V2XServiceManager.init(context);
|
||||
V2XVoiceManager.INSTANCE.init(context);
|
||||
registerListener();
|
||||
@@ -165,13 +164,13 @@ public class V2XModuleProvider implements
|
||||
private void initData() {
|
||||
try {
|
||||
// 查询ACC状态
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp()).putBoolean("descriptor_ACC_STATUS", isAccOn());
|
||||
SharedPrefsMgr.getInstance(Utils.getApp()).putBoolean("descriptor_ACC_STATUS", isAccOn());
|
||||
if (isAccOn()) {
|
||||
// 记录开机时间
|
||||
FatigueDrivingUtils.refreshAccOnTime();
|
||||
} else {
|
||||
// 记录关机时间
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.putString(V2XConst.V2X_ACC_OFF_TIME_STR, TimeUtils.getNowString());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -199,7 +198,7 @@ public class V2XModuleProvider implements
|
||||
V2XStrategyPushRes.ResultBean resultBean = result.getResult();
|
||||
if (resultBean != null) {
|
||||
// 更新本地的v2x提醒策略
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.putString(V2XConst.V2X_STRATEGY_PUSH, GsonUtil.jsonFromObject(resultBean));
|
||||
}
|
||||
}
|
||||
@@ -326,7 +325,7 @@ public class V2XModuleProvider implements
|
||||
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
|
||||
Logger.d(MODULE_NAME, "状态发生改变\ndescriptor:" + descriptor + "\nisTrue:" + isTrue);
|
||||
// 记录状态更改
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp()).putBoolean("descriptor_" + descriptor, isTrue);
|
||||
SharedPrefsMgr.getInstance(Utils.getApp()).putBoolean("descriptor_" + descriptor, isTrue);
|
||||
if (descriptor == StatusDescriptor.ACC_STATUS) {
|
||||
if (isTrue) {
|
||||
// 刷新配置文件
|
||||
@@ -340,7 +339,7 @@ public class V2XModuleProvider implements
|
||||
}
|
||||
} else {
|
||||
// 记录关机时间
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.putString(V2XConst.V2X_ACC_OFF_TIME_STR, TimeUtils.getNowString());
|
||||
}
|
||||
} else if (descriptor == StatusDescriptor.SEEK_HELPING) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mogo.module.v2x;
|
||||
|
||||
import android.content.Context;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.location.IMogoLocationClient;
|
||||
import com.mogo.map.marker.IMogoMarkerManager;
|
||||
import com.mogo.map.navi.IMogoNavi;
|
||||
@@ -16,7 +17,6 @@ import com.mogo.module.v2x.manager.IMoGoV2XPolylineManager;
|
||||
import com.mogo.module.v2x.manager.IMoGoV2XStatusManager;
|
||||
import com.mogo.module.v2x.manager.IMoGoWarnPolylineManager;
|
||||
import com.mogo.module.v2x.network.V2XRefreshModel;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.adas.IMogoADASController;
|
||||
@@ -263,7 +263,7 @@ public class V2XServiceManager {
|
||||
|
||||
public static IMoGoV2XStatusManager getMoGoV2XStatusManager() {
|
||||
if (moGoV2XStatusManager == null) {
|
||||
moGoV2XStatusManager = (IMoGoV2XStatusManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_STATUS_MANAGER).navigation(V2XUtils.getApp());
|
||||
moGoV2XStatusManager = (IMoGoV2XStatusManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_STATUS_MANAGER).navigation(Utils.getApp());
|
||||
}
|
||||
return moGoV2XStatusManager;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.map.navi.MogoNaviInfo;
|
||||
import com.mogo.map.navi.MogoTraffic;
|
||||
@@ -20,10 +22,8 @@ import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.utils.ChartingUtil;
|
||||
import com.mogo.module.v2x.utils.RoadConditionUtils;
|
||||
import com.mogo.module.v2x.utils.TimeUtils;
|
||||
import com.mogo.module.v2x.utils.TrackUtils;
|
||||
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.utils.TipToast;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.zhidao.carchattingprovider.CallChattingProviderConstant;
|
||||
@@ -75,7 +75,7 @@ public abstract class V2XBaseViewHolder<T>
|
||||
*/
|
||||
public void triggerZan(MarkerExploreWay noveltyInfo) {
|
||||
try {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已点赞", null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("已点赞", null);
|
||||
showTip("已点赞");
|
||||
if (noveltyInfo != null) {
|
||||
// 调用网络API接口
|
||||
|
||||
@@ -10,6 +10,7 @@ import android.widget.TextView;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
import com.mogo.module.common.entity.V2XEventShowEntity;
|
||||
import com.mogo.module.common.entity.V2XRoadEventEntity;
|
||||
@@ -18,7 +19,6 @@ import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
@@ -120,7 +120,7 @@ public class V2XEventUgcVH extends V2XBaseViewHolder<V2XEventShowEntity> {
|
||||
|
||||
if (ugcTitleStr != null) {
|
||||
tvEventUgcTitle.setText(((String) ugcTitleStr[0]).replace("####", mNoveltyInfo.getAddr()));
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice((String) ugcTitleStr[1], new IMogoVoiceCmdCallBack() {
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice((String) ugcTitleStr[1], new IMogoVoiceCmdCallBack() {
|
||||
@Override
|
||||
public void onSpeakEnd(String speakText) {
|
||||
// 注册语音交互
|
||||
@@ -188,7 +188,7 @@ public class V2XEventUgcVH extends V2XBaseViewHolder<V2XEventShowEntity> {
|
||||
dataStatistics(2);
|
||||
}
|
||||
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("谢谢,您的反馈将帮助更多车友。", null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("谢谢,您的反馈将帮助更多车友。", null);
|
||||
V2XServiceManager
|
||||
.getV2XRefreshModel()
|
||||
.manualMarkingTrafficJam(
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.SpanUtils;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
import com.mogo.module.common.entity.MarkerLocation;
|
||||
import com.mogo.module.common.entity.V2XEventShowEntity;
|
||||
@@ -16,7 +17,6 @@ import com.mogo.module.service.Utils;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.utils.LocationUtils;
|
||||
import com.mogo.module.v2x.utils.SpanUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
|
||||
@@ -9,6 +9,8 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.map.navi.MogoNaviInfo;
|
||||
import com.mogo.map.navi.MogoTraffic;
|
||||
@@ -19,10 +21,8 @@ import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.utils.ChartingUtil;
|
||||
import com.mogo.module.v2x.utils.RoadConditionUtils;
|
||||
import com.mogo.module.v2x.utils.TimeUtils;
|
||||
import com.mogo.module.v2x.utils.TrackUtils;
|
||||
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.utils.TipToast;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.zhidao.carchattingprovider.CallChattingProviderConstant;
|
||||
@@ -67,7 +67,7 @@ public abstract class V2XHistoryBaseViewHolder<T>
|
||||
*/
|
||||
public void triggerZan(MarkerExploreWay noveltyInfo) {
|
||||
try {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已点赞", null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("已点赞", null);
|
||||
showTip("已点赞");
|
||||
if (noveltyInfo != null) {
|
||||
// 调用网络API接口
|
||||
|
||||
@@ -12,6 +12,7 @@ import android.widget.TextView;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.eagle.core.utilcode.util.SpanUtils;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
import com.mogo.module.common.entity.MarkerLocation;
|
||||
import com.mogo.module.common.entity.MarkerUserInfo;
|
||||
@@ -21,7 +22,6 @@ import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.utils.ChartingUtil;
|
||||
import com.mogo.module.v2x.utils.SpanUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
|
||||
@@ -8,12 +8,12 @@ import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.commons.voice.VoicePreemptType
|
||||
import com.mogo.eagle.core.utilcode.util.Utils
|
||||
import com.mogo.module.common.entity.MarkerExploreWay
|
||||
import com.mogo.module.common.entity.MarkerLocation
|
||||
import com.mogo.module.common.entity.V2XEventShowEntity
|
||||
import com.mogo.module.v2x.R
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow
|
||||
import com.mogo.module.v2x.utils.V2XUtils
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager.registerUnWakeVoice
|
||||
@@ -52,7 +52,7 @@ class V2XRecommendRouteVH(viewGroup: ViewGroup, v2XWindow: IV2XWindow<*>) : V2XB
|
||||
|
||||
override fun onViewDetachedFromWindow(view: View) {
|
||||
unRegisterUnwakeNavi()
|
||||
AIAssist.getInstance(V2XUtils.getApp()).breakOffSpeak()
|
||||
AIAssist.getInstance(Utils.getApp()).breakOffSpeak()
|
||||
mainScope.cancel()
|
||||
}
|
||||
})
|
||||
@@ -67,7 +67,7 @@ class V2XRecommendRouteVH(viewGroup: ViewGroup, v2XWindow: IV2XWindow<*>) : V2XB
|
||||
mNoveltyInfo = MarkerExploreWay()
|
||||
mNoveltyInfo?.setLocation(markerLocation)
|
||||
mTvAddress!!.text = "前往 ${it.getV2XRecommendRouteEntity().formatAddress}"
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(it.getV2XRecommendRouteEntity().tts, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, null)
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice(it.getV2XRecommendRouteEntity().tts, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, null)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.eagle.core.utilcode.util.SpanUtils;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
import com.mogo.module.common.entity.MarkerLocation;
|
||||
import com.mogo.module.common.entity.MarkerUserInfo;
|
||||
@@ -17,7 +18,6 @@ import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.fragment.V2XEventPanelFragment;
|
||||
import com.mogo.module.v2x.utils.ChartingUtil;
|
||||
import com.mogo.module.v2x.utils.SpanUtils;
|
||||
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.imageloader.MogoImageView;
|
||||
|
||||
@@ -6,13 +6,13 @@ import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
import com.mogo.module.common.entity.V2XHistoryScenarioData;
|
||||
import com.mogo.module.common.enums.EventTypeEnum;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.utils.RoadConditionUtils;
|
||||
import com.mogo.module.v2x.utils.TimeUtils;
|
||||
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
|
||||
import com.mogo.module.v2x.view.HeartLikeView;
|
||||
import com.mogo.module.v2x.view.HeartUnLikeView;
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.mogo.module.v2x.alarm;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.constant.TimeConstants;
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.map.search.geo.IMogoGeoSearchListener;
|
||||
import com.mogo.map.search.geo.MogoGeocodeResult;
|
||||
@@ -24,9 +26,6 @@ import com.mogo.module.v2x.entity.net.V2XStrategyPushRes;
|
||||
import com.mogo.module.v2x.utils.DrivingDirectionUtils;
|
||||
import com.mogo.module.v2x.utils.FatigueDrivingUtils;
|
||||
import com.mogo.module.v2x.utils.LocationUtils;
|
||||
import com.mogo.module.v2x.utils.TimeConstants;
|
||||
import com.mogo.module.v2x.utils.TimeUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.utils.ArrayUtils;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
@@ -183,7 +182,7 @@ public class V2XAlarmServer {
|
||||
//Logger.i(V2XConst.MODULE_NAME, "车机已经开机: " + drivingTime + " 分钟");
|
||||
|
||||
V2XStrategyPushRes.ResultBean strategyPushEntity =
|
||||
GsonUtil.objectFromJson(SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
GsonUtil.objectFromJson(SharedPrefsMgr.getInstance(com.mogo.eagle.core.utilcode.util.Utils.getApp())
|
||||
.getString(V2XConst.V2X_STRATEGY_PUSH), V2XStrategyPushRes.ResultBean.class);
|
||||
|
||||
V2XPushMessageEntity drivingShowEntity = new V2XPushMessageEntity();
|
||||
@@ -264,7 +263,7 @@ public class V2XAlarmServer {
|
||||
MogoPoiSearchQuery poiSearchQuery = new MogoPoiSearchQuery(keyword, keyword);
|
||||
poiSearchQuery.setPageSize(5);
|
||||
poiSearchQuery.setLocation(LocationUtils.getCurrentLatLon());
|
||||
IMogoPoiSearch poiSearch = V2XServiceManager.getMapService().getPoiSearch(V2XUtils.getApp(), poiSearchQuery);
|
||||
IMogoPoiSearch poiSearch = V2XServiceManager.getMapService().getPoiSearch(com.mogo.eagle.core.utilcode.util.Utils.getApp(), poiSearchQuery);
|
||||
boolean finalIsHighWay = isHighWay;
|
||||
poiSearch.setPoiSearchListener(new IMogoPoiSearchListener() {
|
||||
@Override
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Intent;
|
||||
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.module.common.entity.MarkerLocation;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
@@ -11,7 +12,6 @@ import com.mogo.module.common.entity.V2XRoadEventEntity;
|
||||
import com.mogo.module.common.enums.EventTypeEnum;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.utils.DrivingDirectionUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Set;
|
||||
@@ -84,7 +84,7 @@ public class V2XEarlyWarningServer {
|
||||
// 弹出UGC
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
LocalBroadcastManager.getInstance(Utils.getApp()).sendBroadcast(intent);
|
||||
|
||||
}
|
||||
// 移出已经预警的事件列表
|
||||
|
||||
@@ -11,6 +11,8 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.mogo.commons.mvp.MvpFragment;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XHistoryScenarioData;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.common.view.SpacesItemDecoration;
|
||||
@@ -19,7 +21,6 @@ import com.mogo.module.v2x.adapter.V2XScenarioHistoryAdapter;
|
||||
import com.mogo.module.v2x.manager.IMoGoV2XStatusChangedListener;
|
||||
import com.mogo.module.v2x.manager.V2XStatusDescriptor;
|
||||
import com.mogo.module.v2x.presenter.ScenarioHistoryPresenter;
|
||||
import com.mogo.module.v2x.utils.ThreadUtils;
|
||||
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.view.V2XListEmptyView;
|
||||
@@ -143,12 +144,12 @@ public class V2XScenarioHistoryFragment
|
||||
* */
|
||||
private void ttsForHistoryFirstToday() {
|
||||
boolean hasBroadTts = V2XUtils.isFirstTodayWithKey("TTS_FOR_HISTORY_SELECTED");
|
||||
if (hasBroadTts == false) {
|
||||
if (!hasBroadTts) {
|
||||
if (mV2XHistoryScenarioData.size() > 0) {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).
|
||||
AIAssist.getInstance(Utils.getApp()).
|
||||
speakTTSVoice("小智为您记录了今天的出行事件", null);
|
||||
} else {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).
|
||||
AIAssist.getInstance(Utils.getApp()).
|
||||
speakTTSVoice("小智在这里为您记录今天的出行事件", null);
|
||||
}
|
||||
|
||||
@@ -160,10 +161,10 @@ public class V2XScenarioHistoryFragment
|
||||
* */
|
||||
public void ttsForVoiceCheckout() {
|
||||
if (mV2XHistoryScenarioData.size() > 0) {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).
|
||||
AIAssist.getInstance(Utils.getApp()).
|
||||
speakTTSVoice("为您找到以下动态请查看", null);
|
||||
} else {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).
|
||||
AIAssist.getInstance(Utils.getApp()).
|
||||
speakTTSVoice("今天暂无出行动态,试试对我说分享拥堵给其他车友吧", null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,8 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.mogo.commons.mvp.MvpFragment;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.view.LinearLayoutCommonManager;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.common.view.SpacesItemDecoration;
|
||||
@@ -24,7 +26,6 @@ import com.mogo.module.v2x.listener.AdapterCallback;
|
||||
import com.mogo.module.v2x.network.V2XRefreshCallback;
|
||||
import com.mogo.module.v2x.network.V2XShareNetworkModel;
|
||||
import com.mogo.module.v2x.presenter.ShareEventsPresenter;
|
||||
import com.mogo.module.v2x.utils.ThreadUtils;
|
||||
import com.mogo.module.common.view.NetworkLoadingView;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
|
||||
@@ -158,7 +159,7 @@ public class V2XShareEventsFragment extends MvpFragment<V2XShareEventsFragment,
|
||||
ttsString = "您目前已完成" + shareNum + "次分享,获得" + approveNum + "次车友认同,热心指数" + enthusiasm
|
||||
+ "颗星,实至名归,老铁你就是大家一直赞扬的热心车友,请继续保持。";
|
||||
}
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(ttsString, null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice(ttsString, null);
|
||||
fromVoice = false;
|
||||
}
|
||||
|
||||
@@ -237,8 +238,8 @@ public class V2XShareEventsFragment extends MvpFragment<V2XShareEventsFragment,
|
||||
private void ttsForSharedFirstToday() {
|
||||
boolean hasBroadTts = V2XUtils.isFirstTodayWithKey("TTS_FOR_SHARED_SELECTED");
|
||||
Log.d(TAG,"shouldBroadTts"+hasBroadTts);
|
||||
if (hasBroadTts == false) {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("您可以在这里查看历史的分享记录", null);
|
||||
if (!hasBroadTts) {
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("您可以在这里查看历史的分享记录", null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.commons.mvp.MvpFragment;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.marker.IMogoMarker;
|
||||
import com.mogo.map.marker.anim.OnMarkerAnimationListener;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
@@ -213,7 +214,7 @@ public class V2XSurroundingFragment extends MvpFragment<SurroundingEventView, Su
|
||||
boolean hasBroadTts = V2XUtils.isFirstTodayWithKey("TTS_FOR_SURROUNDING_SELECTED");
|
||||
if (!hasBroadTts) {
|
||||
if (eventCount > 0) {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).
|
||||
AIAssist.getInstance(Utils.getApp()).
|
||||
speakTTSVoice("发现周边" + eventCount + "条交通信息", null);
|
||||
} else {
|
||||
Logger.e(TAG,"周边没有发现交通信息");
|
||||
@@ -226,10 +227,10 @@ public class V2XSurroundingFragment extends MvpFragment<SurroundingEventView, Su
|
||||
* */
|
||||
public void ttsForVoiceCheckout() {
|
||||
if (poiInfosList.size() > 0) {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).
|
||||
AIAssist.getInstance(Utils.getApp()).
|
||||
speakTTSVoice("为您找到周边以下事件请查看", null);
|
||||
} else {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).
|
||||
AIAssist.getInstance(Utils.getApp()).
|
||||
speakTTSVoice("周边5公里内无事件,试试对我说分享路况给其他车友吧", null);
|
||||
}
|
||||
}
|
||||
@@ -380,10 +381,10 @@ public class V2XSurroundingFragment extends MvpFragment<SurroundingEventView, Su
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
/*
|
||||
/**
|
||||
* 子类信息tts播报
|
||||
* */
|
||||
AIAssist.getInstance(V2XUtils.getApp()).
|
||||
*/
|
||||
AIAssist.getInstance(Utils.getApp()).
|
||||
speakTTSVoice(construction.getTypeNameTTS(construction.getPoiType()), null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.mogo.module.v2x.listener;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.V2XScenarioManager;
|
||||
import com.mogo.module.v2x.utils.ADASUtils;
|
||||
import com.mogo.module.v2x.utils.MarkerUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
|
||||
import com.mogo.utils.TipToast;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
@@ -33,7 +33,7 @@ public class V2XMessageListener_401003 implements IMogoOnMessageListener<V2XPush
|
||||
@Override
|
||||
public void onMsgReceived(V2XPushMessageEntity message) {
|
||||
Logger.i(MODULE_NAME, "V2XMessageListener_401003:" + GsonUtil.jsonFromObject(message));
|
||||
V2XUtils.runOnUiThread(() -> {
|
||||
ThreadUtils.runOnUiThread(() -> {
|
||||
try {
|
||||
handlerV2XAlarm(message);
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.module.v2x.listener;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.enums.EventTypeEnum;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
@@ -8,7 +9,6 @@ import com.mogo.module.v2x.entity.net.V2XSpecialCarRes;
|
||||
import com.mogo.module.v2x.entity.net.V2XSpecialCarRes.V2XMarkerEntity;
|
||||
import com.mogo.module.v2x.scenario.impl.V2XScenarioManager;
|
||||
import com.mogo.module.v2x.utils.MarkerUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
@@ -35,7 +35,7 @@ public class V2XMessageListener_401005 implements IMogoOnMessageListener<V2XSpec
|
||||
public void onMsgReceived(V2XSpecialCarRes message) {
|
||||
Logger.i(MODULE_NAME, "V2XMessageListener_401005:" + GsonUtil.jsonFromObject(message));
|
||||
if (!V2XServiceManager.getMoGoV2XStatusManager().isRoadEventWindowShow()) {
|
||||
V2XUtils.runOnBackgroundThread(() -> {
|
||||
ThreadUtils.getSinglePool().execute(() -> {
|
||||
try {
|
||||
MarkerUtils.handlerV2XSpecialVehicleMarker(
|
||||
message,
|
||||
@@ -72,7 +72,7 @@ public class V2XMessageListener_401005 implements IMogoOnMessageListener<V2XSpec
|
||||
}
|
||||
}
|
||||
if (!entityList.isEmpty()) {
|
||||
V2XUtils.runOnUiThread(() -> {
|
||||
ThreadUtils.runOnUiThread(() -> {
|
||||
V2XMessageEntity<List<V2XMarkerEntity>> v2XMessageEntity = new V2XMessageEntity<>();
|
||||
v2XMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_SEEK_WARNING);
|
||||
v2XMessageEntity.setContent(entityList);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.mogo.module.v2x.listener;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.module.common.entity.MarkerCardResult;
|
||||
import com.mogo.module.common.entity.MarkerResponse;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
|
||||
|
||||
/**
|
||||
@@ -24,7 +24,7 @@ public class V2XMessageListener_401011 implements IMogoOnMessageListener<MarkerR
|
||||
public void onMsgReceived(MarkerResponse response) {
|
||||
//Logger.d(MODULE_NAME, "V2XMessageListener_401011==V2X地图气泡数据刷新:\n" + GsonUtil.jsonFromObject(response));
|
||||
if (!V2XServiceManager.getMoGoV2XStatusManager().isRoadEventWindowShow()) {
|
||||
V2XUtils.runOnBackgroundThread(() -> {
|
||||
ThreadUtils.getSinglePool().execute(() -> {
|
||||
// 解析不同的Marker类型,然后对应的进行绘制
|
||||
if (response != null && response.getResult() != null) {
|
||||
MarkerCardResult markerCardResult = response.getResult();
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
package com.mogo.module.v2x.listener;
|
||||
|
||||
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.constant.TimeConstants;
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.module.common.entity.MarkerCardResult;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
@@ -15,16 +19,11 @@ import com.mogo.module.service.Utils;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.alarm.V2XAlarmServer;
|
||||
import com.mogo.module.v2x.utils.TimeConstants;
|
||||
import com.mogo.module.v2x.utils.TimeUtils;
|
||||
import com.mogo.module.v2x.utils.TrackUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
|
||||
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
|
||||
|
||||
/**
|
||||
* author : donghongyu
|
||||
* e-mail : 1358506549@qq.com
|
||||
@@ -83,7 +82,7 @@ public class V2XMessageListener_401012 implements IMogoOnMessageListener<MarkerC
|
||||
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
LocalBroadcastManager.getInstance(com.mogo.eagle.core.utilcode.util.Utils.getApp()).sendBroadcast(intent);
|
||||
}
|
||||
} else {
|
||||
Logger.e(MODULE_NAME, "V2XMessageListener_401012==V2X服务端下发:消息已过期,大于3分钟了不进行消费");
|
||||
|
||||
@@ -5,10 +5,11 @@ import android.util.Log;
|
||||
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XWarningEntity;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
|
||||
|
||||
/**
|
||||
@@ -24,7 +25,7 @@ public class V2XMessageListener_401018 implements IMogoOnMessageListener<V2XWarn
|
||||
@Override
|
||||
public void onMsgReceived(V2XWarningEntity info) {
|
||||
Log.d(V2XConst.MODULE_NAME, "V2XWarnMessageListener onMsgReceived ---11---> ");
|
||||
V2XUtils.runOnBackgroundThread(() -> {
|
||||
ThreadUtils.getSinglePool().execute(() -> {
|
||||
// 解析不同的Marker类型,然后对应的进行绘制
|
||||
if (info != null) {
|
||||
// 解析存储道路事件
|
||||
@@ -36,7 +37,7 @@ public class V2XMessageListener_401018 implements IMogoOnMessageListener<V2XWarn
|
||||
v2xMessageEntity.setContent(info);
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
LocalBroadcastManager.getInstance(Utils.getApp()).sendBroadcast(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -4,10 +4,10 @@ import android.content.Intent;
|
||||
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.entity.net.V2XOptimalRouteDataRes;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
@@ -43,7 +43,7 @@ public class V2XMessageListener_402000 implements IMogoOnMessageListener<V2XOpti
|
||||
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
LocalBroadcastManager.getInstance(Utils.getApp()).sendBroadcast(intent);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,14 +2,14 @@ package com.mogo.module.v2x.listener
|
||||
|
||||
import com.mogo.eagle.core.data.enums.TrafficTypeEnum
|
||||
import com.mogo.eagle.core.data.traffic.TrafficData
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener
|
||||
import com.mogo.eagle.core.data.v2x.AdvanceWarningBean
|
||||
import com.mogo.module.v2x.V2XConst
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.module.common.drawer.TrafficMarkerDrawer
|
||||
import com.mogo.module.common.enums.EventTypeEnum
|
||||
import com.mogo.module.v2x.utils.V2XUtils
|
||||
import com.mogo.module.v2x.V2XConst
|
||||
import com.mogo.service.cloud.socket.IMogoOnMessageListener
|
||||
import com.mogo.utils.logger.Logger
|
||||
|
||||
/**
|
||||
@@ -33,7 +33,7 @@ class V2XMessageListener_404000 : IMogoOnMessageListener<AdvanceWarningBean> {
|
||||
message
|
||||
)
|
||||
)
|
||||
V2XUtils.runOnUiThread {
|
||||
ThreadUtils.runOnUiThread {
|
||||
var trafficData = buildTrafficData(message)
|
||||
when (message.status) {
|
||||
1 -> {
|
||||
|
||||
@@ -3,13 +3,13 @@ package com.mogo.module.v2x.marker;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.MarkerShowEntity;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XRoadEventEntity;
|
||||
import com.mogo.module.common.enums.EventTypeEnum;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.utils.ImageUtil;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -186,11 +186,11 @@ public class V2XMarkerAdapter {
|
||||
* 获取VR道路事件
|
||||
*/
|
||||
public static Bitmap getV2XVRRoadEventViewPng(V2XPushMessageEntity alarmMessage) {
|
||||
Bitmap bitmap = ImageUtil.createBitmap(V2XUtils.getApp(),
|
||||
Bitmap bitmap = ImageUtil.createBitmap(Utils.getApp(),
|
||||
R.drawable.v_to_x_warning_car_orange);
|
||||
switch (alarmMessage.getSceneId()) {
|
||||
case "200001"://后方VIP车辆提示
|
||||
// bitmap = ImageUtil.createBitmap(V2XUtils.getApp(),
|
||||
// bitmap = ImageUtil.createBitmap(Utils.getApp(),
|
||||
// R.drawable.v2x_duixiang_laiche_che);
|
||||
break;
|
||||
case "200002"://前车急刹
|
||||
@@ -198,7 +198,7 @@ public class V2XMarkerAdapter {
|
||||
case "200003"://后方危险车辆预警
|
||||
break;
|
||||
case "200004"://逆向车辆路线预判
|
||||
// bitmap = ImageUtil.createBitmap(V2XUtils.getApp(),
|
||||
// bitmap = ImageUtil.createBitmap(Utils.getApp(),
|
||||
// R.drawable.v2x_duixiang_laiche_che);
|
||||
break;
|
||||
case "200005"://VIP变灯通行
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.mogo.commons.network.ParamsProvider;
|
||||
import com.mogo.commons.network.SubscribeImpl;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.map.search.geo.IMogoGeoSearchListener;
|
||||
import com.mogo.map.search.geo.MogoRegeocodeResult;
|
||||
@@ -35,7 +36,6 @@ import com.mogo.module.v2x.entity.net.V2XSeekHelpRes;
|
||||
import com.mogo.module.v2x.entity.net.V2XStrategyPushRes;
|
||||
import com.mogo.module.v2x.entity.net.V2XUserInfoRes;
|
||||
import com.mogo.module.v2x.utils.LocationUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.RequestOptions;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
@@ -713,7 +713,7 @@ public class V2XRefreshModel {
|
||||
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
LocalBroadcastManager.getInstance(Utils.getApp()).sendBroadcast(intent);
|
||||
}
|
||||
|
||||
if (!isSendRecommendRoute && v2XRoadDataRes.getResult().getIllegalParkingData() != null && v2XRoadDataRes.getResult().getIllegalParkingData().size() > 0) {
|
||||
@@ -736,7 +736,7 @@ public class V2XRefreshModel {
|
||||
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
LocalBroadcastManager.getInstance(Utils.getApp()).sendBroadcast(intent);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ package com.mogo.module.v2x.presenter;
|
||||
import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.module.common.entity.V2XHistoryScenarioData;
|
||||
import com.mogo.module.v2x.fragment.V2XScenarioHistoryFragment;
|
||||
import com.mogo.module.v2x.utils.ThreadUtils;
|
||||
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
|
||||
import com.mogo.utils.WorkThreadHandler;
|
||||
|
||||
|
||||
@@ -1,23 +1,18 @@
|
||||
package com.mogo.module.v2x.scenario.impl;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
|
||||
import com.mogo.commons.voice.VoicePreemptType;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.service.receiver.MogoReceiver;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.scenario.IV2XScenario;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XButton;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XMarker;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.v2x.IV2XWindowManagerListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
/**
|
||||
@@ -60,7 +55,7 @@ public abstract class AbsV2XScenario<T> implements IV2XScenario {
|
||||
public void speakTTSVoice(@Nullable String msg, IMogoVoiceCmdCallBack callBack) {
|
||||
if (!TextUtils.isEmpty(msg)) {
|
||||
Logger.d(TAG, "调用TTS播放语音:" + msg);
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(msg, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, callBack);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice(msg, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, callBack);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ import android.content.Intent;
|
||||
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.uicontroller.VisualAngleMode;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
@@ -23,10 +25,8 @@ import com.mogo.module.v2x.scenario.scene.route.V2XOptimalRouteVREventScenario;
|
||||
import com.mogo.module.v2x.scenario.scene.seek.V2XSeekHelpScenario;
|
||||
import com.mogo.module.v2x.scenario.scene.ugc.V2XEventUgcScenario;
|
||||
import com.mogo.module.v2x.scenario.scene.warning.V2XFrontWarningScenario;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.utils.TipToast;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
|
||||
import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_PARKING;
|
||||
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
|
||||
@@ -63,14 +63,14 @@ public class V2XScenarioManager implements IV2XScenarioManager {
|
||||
try {
|
||||
synchronized (V2XScenarioManager.class) {
|
||||
// 展示
|
||||
V2XUtils.runOnUiThread(() -> {
|
||||
ThreadUtils.runOnUiThread(() -> {
|
||||
// 提取之前存储的场景
|
||||
if (v2XMessageEntity != null) {
|
||||
sceneChange();
|
||||
// 广播给应用内部其它模块
|
||||
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_ACTION);
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity);
|
||||
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
|
||||
LocalBroadcastManager.getInstance(Utils.getApp()).sendBroadcast(intent);
|
||||
// 如果没有拿到之前的,根据类型分发
|
||||
switch (v2XMessageEntity.getType()) {
|
||||
case V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING:
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.mogo.module.v2x.scenario.scene.destination;
|
||||
|
||||
/**
|
||||
* 基于目的地违章高发情况的停车推荐
|
||||
* http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48958095
|
||||
*/
|
||||
public class V2XRecommendParkingLotScenario {
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.mogo.module.v2x.scenario.scene.destination
|
||||
|
||||
import android.view.ViewGroup
|
||||
import com.mogo.eagle.core.utilcode.util.Utils
|
||||
import com.mogo.module.common.entity.V2XMessageEntity
|
||||
import com.mogo.module.common.entity.V2XRecommendRouteEntity
|
||||
import com.mogo.module.v2x.R
|
||||
import com.mogo.module.v2x.V2XServiceManager
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario
|
||||
import com.mogo.module.v2x.utils.V2XUtils
|
||||
|
||||
/**
|
||||
* created by wujifei on 2020/12/29 17:57
|
||||
@@ -20,7 +20,7 @@ class V2XRecommendRouteScenario : AbsV2XScenario<V2XRecommendRouteEntity>() {
|
||||
|
||||
override fun init(v2XMessageEntity: V2XMessageEntity<V2XRecommendRouteEntity>?) {
|
||||
v2XMessageEntity?.content?.let {
|
||||
if (v2XMessageEntity!!.isShowState) {
|
||||
if (v2XMessageEntity.isShowState) {
|
||||
if (!isSameScenario(v2XMessageEntity)) {
|
||||
setV2XMessageEntity(v2XMessageEntity)
|
||||
show()
|
||||
@@ -43,7 +43,7 @@ class V2XRecommendRouteScenario : AbsV2XScenario<V2XRecommendRouteEntity>() {
|
||||
override fun showWindow() {
|
||||
v2XWindow?.let {
|
||||
val layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
V2XUtils.getApp().resources.getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground).toInt())
|
||||
Utils.getApp().resources.getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground).toInt())
|
||||
V2XServiceManager.getMogoTopViewManager().addView(it.view, layoutParams)
|
||||
it.show(v2XMessageEntity.content)
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@ import android.view.ViewGroup;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
@@ -72,7 +72,7 @@ public class V2XFatigueDrivingScenario extends AbsV2XScenario<V2XPushMessageEnti
|
||||
ViewGroup.LayoutParams layoutParams =
|
||||
new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground));
|
||||
(int) Utils.getApp().getResources().getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground));
|
||||
V2XServiceManager
|
||||
.getMogoTopViewManager()
|
||||
.addView(getV2XWindow().getView(), layoutParams, this);
|
||||
|
||||
@@ -3,18 +3,16 @@ package com.mogo.module.v2x.scenario.scene.help;
|
||||
import android.content.Intent;
|
||||
import android.os.CountDownTimer;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.scenario.scene.seek.V2XSeekHelpWindow;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
@@ -100,7 +98,7 @@ public class V2XCarForHelpScenario extends AbsV2XScenario<Boolean> implements IM
|
||||
public void showButton() {
|
||||
Logger.d(TAG, "打开自车求助按钮!");
|
||||
// 设置Button的显示
|
||||
V2XUtils.runOnUiThread(() -> {
|
||||
ThreadUtils.runOnUiThread(() -> {
|
||||
if (getV2XButton() != null) {
|
||||
getV2XButton().setOnActionListener(this::showDialog);
|
||||
getV2XButton().show();
|
||||
@@ -117,7 +115,7 @@ public class V2XCarForHelpScenario extends AbsV2XScenario<Boolean> implements IM
|
||||
V2XServiceManager.getMoGoStatusManager().setSeekHelping(TAG, false);
|
||||
if (getV2XButton() != null) {
|
||||
getV2XButton().close();
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp()).putLong(V2XConst.SEEK_HELP_TIME, 0);
|
||||
SharedPrefsMgr.getInstance(Utils.getApp()).putLong(V2XConst.SEEK_HELP_TIME, 0);
|
||||
}
|
||||
|
||||
mySeekHelpCountDownTimerCancel();
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
package com.mogo.module.v2x.scenario.scene.help;
|
||||
|
||||
import android.app.ActionBar;
|
||||
import android.content.Intent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.mogo.commons.data.BaseData;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.network.V2XRefreshCallback;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XButton;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XButtonListener;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
@@ -84,7 +82,7 @@ public class V2XSeekHelpButton implements IV2XButton {
|
||||
doAction();
|
||||
});
|
||||
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_car_for_help_window_height));
|
||||
(int) Utils.getApp().getResources().getDimension(R.dimen.module_v2x_car_for_help_window_height));
|
||||
V2XServiceManager.getMogoTopViewManager().addView(topView, layoutParams);
|
||||
}
|
||||
|
||||
@@ -95,7 +93,7 @@ public class V2XSeekHelpButton implements IV2XButton {
|
||||
@Override
|
||||
public void close() {
|
||||
if (tv != null) {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已取消", null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("已取消", null);
|
||||
tv.setVisibility(View.GONE);
|
||||
closeTopView();
|
||||
V2XServiceManager.getV2XRefreshModel().cancelHelpSignal(new V2XRefreshCallback<BaseData>() {
|
||||
|
||||
@@ -10,14 +10,12 @@ import android.widget.TextView;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.wm.WindowManagerView;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
import com.mogo.service.entrance.ButtonIndex;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
/**
|
||||
@@ -89,12 +87,12 @@ public class V2XSeekHelpDialog extends ConstraintLayout implements View.OnClickL
|
||||
// V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2).getContext()
|
||||
// ).contentView(this).build();
|
||||
// }
|
||||
// AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("确定要解除求助状态吗");
|
||||
// AIAssist.getInstance(Utils.getApp()).speakTTSVoice("确定要解除求助状态吗");
|
||||
// unRegisterVoiceCmd();
|
||||
// registerVoiceCmd();
|
||||
// windowManager.show();
|
||||
handleLeft();
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已取消");
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("已取消");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
||||
@@ -6,13 +6,13 @@ import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.utils.ADASUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
import com.mogo.utils.TipToast;
|
||||
|
||||
@@ -54,9 +54,9 @@ public class V2XPushLiveCarScenario extends AbsV2XScenario<V2XPushMessageEntity>
|
||||
@Override
|
||||
public void showWindow() {
|
||||
if (getV2XWindow() != null) {
|
||||
int width = (int) V2XUtils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
int width = (int) Utils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
R.dimen.module_v2x_event_window_width_vr : R.dimen.module_v2x_event_window_width);
|
||||
int height = (int) V2XUtils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
int height = (int) Utils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
R.dimen.module_v2x_event_see_live_window_height_vr : R.dimen.module_v2x_event_see_live_window_height);
|
||||
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(width, height);
|
||||
if (V2XServiceManager.getMoGoStatusManager().isVrMode()) {
|
||||
|
||||
@@ -4,14 +4,12 @@ import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XEventShowEntity;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.scenario.scene.road.V2XRoadEventScenario;
|
||||
import com.mogo.module.v2x.scenario.scene.road.V2XRoadEventWindow;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
@@ -73,9 +71,9 @@ public class V2XRoadLiveCarScenario extends AbsV2XScenario<List<V2XEventShowEnti
|
||||
public void showWindow() {
|
||||
Log.d(TAG, getV2XWindow().toString());
|
||||
if (getV2XWindow() != null) {
|
||||
int width = (int) V2XUtils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
int width = (int) Utils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
R.dimen.module_v2x_event_window_width_vr : R.dimen.module_v2x_event_window_width);
|
||||
int height = (int) V2XUtils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
int height = (int) Utils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
R.dimen.module_v2x_event_see_live_window_height_vr : R.dimen.module_v2x_event_see_live_window_height);
|
||||
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(width, height);
|
||||
V2XServiceManager
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.mogo.cloud.trafficlive.api.ITrafficIntersectionLiveCallBack;
|
||||
import com.mogo.cloud.trafficlive.api.MoGoAiCloudTrafficLive;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.map.marker.IMogoMarker;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
@@ -20,7 +21,6 @@ import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.V2XScenarioManager;
|
||||
import com.mogo.module.v2x.utils.ToastUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
|
||||
@@ -5,13 +5,13 @@ import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
import com.mogo.utils.TipToast;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
@@ -60,9 +60,9 @@ public class V2XVoiceCallLiveScenario extends AbsV2XScenario<V2XPushMessageEntit
|
||||
@Override
|
||||
public void showWindow() {
|
||||
if (getV2XWindow() != null) {
|
||||
int width = (int) V2XUtils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
int width = (int) Utils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
R.dimen.module_v2x_event_window_width_vr : R.dimen.module_v2x_event_window_width);
|
||||
int height = (int) V2XUtils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
int height = (int) Utils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||
R.dimen.module_v2x_event_see_live_window_height_vr : R.dimen.module_v2x_event_see_live_window_height);
|
||||
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(width, height);
|
||||
if (V2XServiceManager.getMoGoStatusManager().isVrMode()) {
|
||||
|
||||
@@ -17,7 +17,6 @@ import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.listener.V2XWindowStatusListener;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.utils.ToastUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.zhidao.mogo.module.obu.ObuConstant;
|
||||
|
||||
@@ -12,6 +12,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.PagerSnapHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
import com.mogo.module.common.entity.V2XEventShowEntity;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
@@ -21,7 +22,6 @@ import com.mogo.module.v2x.adapter.V2XRoadEventAdapter;
|
||||
import com.mogo.module.v2x.listener.V2XWindowStatusListener;
|
||||
import com.mogo.module.v2x.scenario.scene.V2XBasWindow;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -123,7 +123,7 @@ public class V2XIllegalParkWindow extends V2XBasWindow implements IV2XWindow<Mar
|
||||
ViewGroup.LayoutParams layoutParams =
|
||||
new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp()
|
||||
(int) Utils.getApp()
|
||||
.getResources()
|
||||
.getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground));
|
||||
|
||||
|
||||
@@ -5,13 +5,13 @@ import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
@@ -62,7 +62,7 @@ public class V2XPushEventScenario extends AbsV2XScenario<V2XPushMessageEntity> i
|
||||
ViewGroup.LayoutParams layoutParams =
|
||||
new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_event_window_height_ground));
|
||||
(int) Utils.getApp().getResources().getDimension(R.dimen.module_v2x_event_window_height_ground));
|
||||
V2XServiceManager
|
||||
.getMogoTopViewManager()
|
||||
.addView(getV2XWindow().getView(), layoutParams, this);
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.module.v2x.scenario.scene.road;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XRoadEventEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
@@ -12,7 +13,6 @@ import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.scenario.scene.livecar.V2XRoadLiveCarScenario;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.utils.ADASUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
@@ -124,7 +124,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
|
||||
ViewGroup.LayoutParams layoutParams =
|
||||
new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_event_window_height));
|
||||
(int) Utils.getApp().getResources().getDimension(R.dimen.module_v2x_event_window_height));
|
||||
V2XServiceManager
|
||||
.getMogoTopViewManager()
|
||||
.addView(getV2XWindow().getView(), layoutParams, this);
|
||||
|
||||
@@ -6,12 +6,12 @@ import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XEventShowEntity;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
|
||||
import javax.security.auth.DestroyFailedException;
|
||||
@@ -58,7 +58,7 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario<V2XEventShowEntity>
|
||||
ViewGroup.LayoutParams layoutParams =
|
||||
new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources()
|
||||
(int) Utils.getApp().getResources()
|
||||
.getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode()? R.dimen.dp_394:R.dimen.v2x_video_window_height));
|
||||
V2XServiceManager
|
||||
.getMogoTopViewManager()
|
||||
|
||||
@@ -5,13 +5,13 @@ import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.entity.net.V2XOptimalRouteDataRes;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
@@ -65,7 +65,7 @@ public class V2XOptimalRouteVREventScenario
|
||||
ViewGroup.LayoutParams layoutParams =
|
||||
new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_event_window_height_ground));
|
||||
(int) Utils.getApp().getResources().getDimension(R.dimen.module_v2x_event_window_height_ground));
|
||||
V2XServiceManager
|
||||
.getMogoTopViewManager()
|
||||
.addView(getV2XWindow().getView(), layoutParams, this);
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XRoadEventEntity;
|
||||
@@ -15,7 +16,6 @@ import com.mogo.module.v2x.entity.net.V2XSpecialCarRes.V2XMarkerEntity;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.utils.ADASUtils;
|
||||
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
|
||||
import java.util.List;
|
||||
@@ -91,7 +91,7 @@ public class V2XSeekHelpScenario extends AbsV2XScenario<List<V2XMarkerEntity>> i
|
||||
ViewGroup.LayoutParams layoutParams =
|
||||
new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground));
|
||||
(int) Utils.getApp().getResources().getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground));
|
||||
V2XServiceManager
|
||||
.getMogoTopViewManager()
|
||||
.addView(getV2XWindow().getView(), layoutParams, this);
|
||||
|
||||
@@ -5,13 +5,13 @@ import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
import com.mogo.module.common.entity.V2XRoadEventEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
@@ -57,7 +57,7 @@ public class V2XEventUgcScenario extends AbsV2XScenario<V2XRoadEventEntity> impl
|
||||
ViewGroup.LayoutParams layoutParams =
|
||||
new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground));
|
||||
(int) Utils.getApp().getResources().getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground));
|
||||
V2XServiceManager
|
||||
.getMogoTopViewManager()
|
||||
.addView(getV2XWindow().getView(), layoutParams, this);
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.view.ViewGroup;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
@@ -15,7 +16,6 @@ import com.mogo.module.common.entity.V2XWarningEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.service.windowview.IMogoTopViewStatusListener;
|
||||
|
||||
/**
|
||||
@@ -61,7 +61,7 @@ public class V2XFrontWarningScenario extends AbsV2XScenario implements IMogoTopV
|
||||
ViewGroup.LayoutParams layoutParams =
|
||||
new ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground));
|
||||
(int) Utils.getApp().getResources().getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground));
|
||||
V2XServiceManager
|
||||
.getMogoTopViewManager()
|
||||
.addView(getV2XWindow().getView(), layoutParams, this);
|
||||
|
||||
@@ -9,14 +9,13 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XWarningEntity;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.listener.V2XWindowStatusListener;
|
||||
import com.mogo.module.v2x.scenario.scene.V2XBasWindow;
|
||||
import com.mogo.module.v2x.scenario.view.IV2XWindow;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
@@ -77,7 +76,7 @@ public class V2XWarningWindow extends V2XBasWindow implements IV2XWindow {
|
||||
}
|
||||
distance.setText(String.valueOf(mV2XWarningEntity.getDistance()) + "米");
|
||||
warningTextView.setText(mV2XWarningEntity.getWarningContent());//验证云端数据是否
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(mV2XWarningEntity.getTts());
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice(mV2XWarningEntity.getTts());
|
||||
}
|
||||
//3秒后移除提示弹框
|
||||
if (runnableV2XEvent == null) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import androidx.annotation.Nullable;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
|
||||
import com.mogo.commons.voice.VoicePreemptType;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.entity.net.V2XAlarmEventRes;
|
||||
import com.mogo.module.common.entity.V2XPushMessageEntity;
|
||||
@@ -133,7 +134,7 @@ public class ADASUtils {
|
||||
public static void speakTTSVoice(@Nullable String msg, IMogoVoiceCmdCallBack callBack) {
|
||||
if (!TextUtils.isEmpty(msg)) {
|
||||
Logger.w(V2XConst.MODULE_NAME, "调用TTS播放语音:" + msg);
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(msg, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, callBack);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice(msg, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, callBack);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public class ChartingUtil {
|
||||
if ( V2XServiceManager.getCarsChattingProvider() != null ) {
|
||||
V2XServiceManager.getCarsChattingProvider().isOnLine(
|
||||
"CAR_CALL_TO_" + V2XConst.MODULE_NAME,
|
||||
V2XUtils.getApp(),
|
||||
com.mogo.eagle.core.utilcode.util.Utils.getApp(),
|
||||
sn,
|
||||
new ICallChatResponse() {
|
||||
@Override
|
||||
@@ -112,7 +112,7 @@ public class ChartingUtil {
|
||||
if ( V2XServiceManager.getCarsChattingProvider() != null ) {
|
||||
V2XServiceManager.getCarsChattingProvider().canCall(
|
||||
"CAR_CALL_TO_" + V2XConst.MODULE_NAME,
|
||||
V2XUtils.getApp(),
|
||||
com.mogo.eagle.core.utilcode.util.Utils.getApp(),
|
||||
new ICallChatResponse() {
|
||||
@Override
|
||||
public void canCall(boolean onLine) {
|
||||
|
||||
@@ -2,11 +2,14 @@ package com.mogo.module.v2x.utils;
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.constant.TimeConstants;
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
import com.mogo.module.v2x.entity.net.V2XStrategyPushRes;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.storage.SharedPrefsMgr;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
import com.mogo.utils.storage.SharedPrefsMgr;
|
||||
|
||||
/**
|
||||
* author : donghongyu
|
||||
@@ -24,12 +27,12 @@ public class FatigueDrivingUtils {
|
||||
*/
|
||||
public static long getDrivingTime() {
|
||||
// 获取 ACC ON 时间
|
||||
String accOnTime = SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
String accOnTime = SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.getString(V2XConst.V2X_ACC_ON_TIME_STR);
|
||||
if (TextUtils.isEmpty(accOnTime)) {
|
||||
accOnTime = TimeUtils.getNowString();
|
||||
// 记录开机时间
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.putString(V2XConst.V2X_ACC_ON_TIME_STR, accOnTime);
|
||||
}
|
||||
return Math.abs(TimeUtils.getTimeSpanByNow(accOnTime, TimeConstants.MIN));
|
||||
@@ -41,7 +44,7 @@ public class FatigueDrivingUtils {
|
||||
*/
|
||||
public static void refreshAccOnTime() {
|
||||
// 获取 ACC ON 时间
|
||||
String localAccONTime = SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
String localAccONTime = SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.getString(V2XConst.V2X_ACC_ON_TIME_STR);
|
||||
Logger.d(V2XConst.MODULE_NAME, "ACC ON时间:" + localAccONTime);
|
||||
|
||||
@@ -49,13 +52,13 @@ public class FatigueDrivingUtils {
|
||||
if (!TextUtils.isEmpty(localAccONTime)) {
|
||||
// 获取配置信息
|
||||
V2XStrategyPushRes.ResultBean strategyPushEntity =
|
||||
GsonUtil.objectFromJson(SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
GsonUtil.objectFromJson(SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.getString(V2XConst.V2X_STRATEGY_PUSH), V2XStrategyPushRes.ResultBean.class);
|
||||
if (strategyPushEntity != null) {
|
||||
// 获取 当前 ACC ON 时间
|
||||
String accOnTime = TimeUtils.getNowString();
|
||||
// 获取 ACC OFF 时间
|
||||
String accOFFTime = SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
String accOFFTime = SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.getString(V2XConst.V2X_ACC_OFF_TIME_STR);
|
||||
if (!TextUtils.isEmpty(accOFFTime)) {
|
||||
// 比较开关机时间,如果acc of 比 acc on 时间还要靠近说明acc on 时间记录有问题,需要更新同步
|
||||
@@ -63,18 +66,18 @@ public class FatigueDrivingUtils {
|
||||
Logger.d(V2XConst.MODULE_NAME, "开关机时间间隔:" + timeSpan);
|
||||
if (timeSpan >= strategyPushEntity.getRestIgnoreMinutes()) {
|
||||
// 记录开机时间
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.putString(V2XConst.V2X_ACC_ON_TIME_STR, accOnTime);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 记录开机时间
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.putString(V2XConst.V2X_ACC_ON_TIME_STR, TimeUtils.getNowString());
|
||||
}
|
||||
} else {
|
||||
// 记录开机时间
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
SharedPrefsMgr.getInstance(Utils.getApp())
|
||||
.putString(V2XConst.V2X_ACC_ON_TIME_STR, TimeUtils.getNowString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.location.Location;
|
||||
import android.util.Log;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.map.search.geo.IMogoGeoSearchListener;
|
||||
import com.mogo.map.search.geo.MogoPoiItem;
|
||||
@@ -44,7 +45,7 @@ public class LocationUtils {
|
||||
MogoPoiSearchQuery poiSearchQuery = new MogoPoiSearchQuery(keyword, keyword);
|
||||
poiSearchQuery.setPageSize(10);
|
||||
poiSearchQuery.setLocation(getCurrentLatLon());
|
||||
IMogoPoiSearch poiSearch = V2XServiceManager.getMapService().getPoiSearch(V2XUtils.getApp(), poiSearchQuery);
|
||||
IMogoPoiSearch poiSearch = V2XServiceManager.getMapService().getPoiSearch(Utils.getApp(), poiSearchQuery);
|
||||
|
||||
poiSearch.setPoiSearchListener(new IMogoPoiSearchListener() {
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mogo.module.v2x.utils;
|
||||
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.utils.TipToast;
|
||||
|
||||
@@ -34,7 +35,7 @@ public class RoadConditionUtils {
|
||||
* 显示Toast
|
||||
*/
|
||||
private static void showTip() {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已反馈", null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("已反馈", null);
|
||||
TipToast.tip("已反馈");
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,7 @@
|
||||
package com.mogo.module.v2x.utils;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.MarkerExploreWay;
|
||||
import com.mogo.module.common.entity.MarkerResponse;
|
||||
import com.mogo.module.common.entity.V2XMessageEntity;
|
||||
@@ -31,7 +32,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<List<MarkerExploreWay>> getV2XIllegalParkData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp().getResources().openRawResource(R.raw.illegal_park_data);
|
||||
InputStream inputStream = Utils.getApp().getResources().openRawResource(R.raw.illegal_park_data);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
int len = -1;
|
||||
byte[] buffer = new byte[1024];
|
||||
@@ -64,7 +65,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<V2XRoadEventEntity> getV2XScenarioRoadEventData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_road_event_data);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -98,7 +99,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<V2XRoadEventEntity> getV2XScenarioRoadEventUGCData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_road_event_data);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -131,7 +132,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<V2XPushMessageEntity> getV2XScenarioPushEventData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_push_event_data);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -175,7 +176,7 @@ public class TestOnLineCarUtils {
|
||||
break;
|
||||
default:
|
||||
}
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(id);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -203,7 +204,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<V2XPushMessageEntity> getV2XScenarioPushLiveEventData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_push_live_event_data);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -236,7 +237,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<V2XPushMessageEntity> getV2XScenarioAnimationEventData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_push_animation_event_data);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -269,7 +270,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<V2XPushMessageEntity> getV2XScenarioCrossCrash() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_push_cross_crash);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -302,7 +303,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<V2XPushMessageEntity> getV2XScenarioFatigueDrivingData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_fatigue_driving_data);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -336,7 +337,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<List<V2XSpecialCarRes.V2XMarkerEntity>> getV2XScenarioSeekHelpData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_seek_help);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -370,7 +371,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<List<V2XSpecialCarRes.V2XMarkerEntity>> getV2XScenarionVRBehindVIPData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_push_vr_hehind_vip_data);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -404,7 +405,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<V2XPushMessageEntity> getV2XScenarionVRReverseCarData() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.scenario_push_vr_reverse_car_data);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -438,7 +439,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static V2XMessageEntity<V2XOptimalRouteDataRes> getV2XOptimalRoute() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.test_data_v2x_zuiyouluxian);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@@ -494,7 +495,7 @@ public class TestOnLineCarUtils {
|
||||
*/
|
||||
public static List<MogoLatLng> getTestCoordinates() {
|
||||
try {
|
||||
InputStream inputStream = V2XUtils.getApp()
|
||||
InputStream inputStream = Utils.getApp()
|
||||
.getResources()
|
||||
.openRawResource(R.raw.test_coordinates);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,28 +0,0 @@
|
||||
package com.mogo.module.v2x.utils;
|
||||
|
||||
import androidx.annotation.IntDef;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* author: Blankj
|
||||
* blog : http://blankj.com
|
||||
* time : 2017/03/13
|
||||
* desc : constants of time
|
||||
* </pre>
|
||||
*/
|
||||
public final class TimeConstants {
|
||||
|
||||
public static final int MSEC = 1;
|
||||
public static final int SEC = 1000;
|
||||
public static final int MIN = 60000;
|
||||
public static final int HOUR = 3600000;
|
||||
public static final int DAY = 86400000;
|
||||
|
||||
@IntDef({MSEC, SEC, MIN, HOUR, DAY})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface Unit {
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,582 +0,0 @@
|
||||
package com.mogo.module.v2x.utils;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.annotation.LayoutRes;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public final class ToastUtils {
|
||||
|
||||
private static final int COLOR_DEFAULT = 0xFEFFFFFF;
|
||||
private static final String NULL = "null";
|
||||
|
||||
private static IToast iToast;
|
||||
private static int sGravity = -1;
|
||||
private static int sXOffset = -1;
|
||||
private static int sYOffset = -1;
|
||||
private static int sBgColor = COLOR_DEFAULT;
|
||||
private static int sBgResource = -1;
|
||||
private static int sMsgColor = COLOR_DEFAULT;
|
||||
private static int sMsgTextSize = -1;
|
||||
|
||||
private ToastUtils() {
|
||||
throw new UnsupportedOperationException("u can't instantiate me...");
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the gravity.
|
||||
*
|
||||
* @param gravity The gravity.
|
||||
* @param xOffset X-axis offset, in pixel.
|
||||
* @param yOffset Y-axis offset, in pixel.
|
||||
*/
|
||||
public static void setGravity(final int gravity, final int xOffset, final int yOffset) {
|
||||
sGravity = gravity;
|
||||
sXOffset = xOffset;
|
||||
sYOffset = yOffset;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the color of background.
|
||||
*
|
||||
* @param backgroundColor The color of background.
|
||||
*/
|
||||
public static void setBgColor(@ColorInt final int backgroundColor) {
|
||||
sBgColor = backgroundColor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the resource of background.
|
||||
*
|
||||
* @param bgResource The resource of background.
|
||||
*/
|
||||
public static void setBgResource(@DrawableRes final int bgResource) {
|
||||
sBgResource = bgResource;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the color of message.
|
||||
*
|
||||
* @param msgColor The color of message.
|
||||
*/
|
||||
public static void setMsgColor(@ColorInt final int msgColor) {
|
||||
sMsgColor = msgColor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the text size of message.
|
||||
*
|
||||
* @param textSize The text size of message.
|
||||
*/
|
||||
public static void setMsgTextSize(final int textSize) {
|
||||
sMsgTextSize = textSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the toast for a short period of time.
|
||||
*
|
||||
* @param text The text.
|
||||
*/
|
||||
public static void showShort(final CharSequence text) {
|
||||
show(text == null ? NULL : text, Toast.LENGTH_SHORT);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the toast for a short period of time.
|
||||
*
|
||||
* @param resId The resource id for text.
|
||||
*/
|
||||
public static void showShort(@StringRes final int resId) {
|
||||
show(resId, Toast.LENGTH_SHORT);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the toast for a short period of time.
|
||||
*
|
||||
* @param resId The resource id for text.
|
||||
* @param args The args.
|
||||
*/
|
||||
public static void showShort(@StringRes final int resId, final Object... args) {
|
||||
show(resId, Toast.LENGTH_SHORT, args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the toast for a short period of time.
|
||||
*
|
||||
* @param format The format.
|
||||
* @param args The args.
|
||||
*/
|
||||
public static void showShort(final String format, final Object... args) {
|
||||
show(format, Toast.LENGTH_SHORT, args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the toast for a long period of time.
|
||||
*
|
||||
* @param text The text.
|
||||
*/
|
||||
public static void showLong(final CharSequence text) {
|
||||
show(text == null ? NULL : text, Toast.LENGTH_LONG);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the toast for a long period of time.
|
||||
*
|
||||
* @param resId The resource id for text.
|
||||
*/
|
||||
public static void showLong(@StringRes final int resId) {
|
||||
show(resId, Toast.LENGTH_LONG);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the toast for a long period of time.
|
||||
*
|
||||
* @param resId The resource id for text.
|
||||
* @param args The args.
|
||||
*/
|
||||
public static void showLong(@StringRes final int resId, final Object... args) {
|
||||
show(resId, Toast.LENGTH_LONG, args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the toast for a long period of time.
|
||||
*
|
||||
* @param format The format.
|
||||
* @param args The args.
|
||||
*/
|
||||
public static void showLong(final String format, final Object... args) {
|
||||
show(format, Toast.LENGTH_LONG, args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show custom toast for a short period of time.
|
||||
*
|
||||
* @param layoutId ID for an XML layout resource to load.
|
||||
*/
|
||||
public static View showCustomShort(@LayoutRes final int layoutId) {
|
||||
return showCustomShort(getView(layoutId));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show custom toast for a short period of time.
|
||||
*
|
||||
* @param view The view of toast.
|
||||
*/
|
||||
public static View showCustomShort(final View view) {
|
||||
show(view, Toast.LENGTH_SHORT);
|
||||
return view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show custom toast for a long period of time.
|
||||
*
|
||||
* @param layoutId ID for an XML layout resource to load.
|
||||
*/
|
||||
public static View showCustomLong(@LayoutRes final int layoutId) {
|
||||
return showCustomLong(getView(layoutId));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show custom toast for a long period of time.
|
||||
*
|
||||
* @param view The view of toast.
|
||||
*/
|
||||
public static View showCustomLong(final View view) {
|
||||
show(view, Toast.LENGTH_LONG);
|
||||
return view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancel the toast.
|
||||
*/
|
||||
public static void cancel() {
|
||||
if (iToast != null) {
|
||||
iToast.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
private static void show(final int resId, final int duration) {
|
||||
show(resId, duration, (Object) null);
|
||||
}
|
||||
|
||||
private static void show(final int resId, final int duration, final Object... args) {
|
||||
try {
|
||||
CharSequence text = V2XUtils.getApp().getResources().getText(resId);
|
||||
if (args != null) {
|
||||
text = String.format(text.toString(), args);
|
||||
}
|
||||
show(text, duration);
|
||||
} catch (Exception ignore) {
|
||||
show(String.valueOf(resId), duration);
|
||||
}
|
||||
}
|
||||
|
||||
private static void show(final String format, final int duration, final Object... args) {
|
||||
String text = format;
|
||||
if (text == null) {
|
||||
text = NULL;
|
||||
} else {
|
||||
if (args != null) {
|
||||
text = String.format(format, args);
|
||||
}
|
||||
}
|
||||
show(text, duration);
|
||||
}
|
||||
|
||||
private static void show(final CharSequence text, final int duration) {
|
||||
V2XUtils.runOnUiThread(new Runnable() {
|
||||
@SuppressLint("ShowToast")
|
||||
@Override
|
||||
public void run() {
|
||||
cancel();
|
||||
iToast = ToastFactory.makeToast(V2XUtils.getApp(), text, duration);
|
||||
final View toastView = iToast.getView();
|
||||
if (toastView == null) return;
|
||||
final TextView tvMessage = toastView.findViewById(android.R.id.message);
|
||||
if (sMsgColor != COLOR_DEFAULT) {
|
||||
tvMessage.setTextColor(sMsgColor);
|
||||
}
|
||||
if (sMsgTextSize != -1) {
|
||||
tvMessage.setTextSize(sMsgTextSize);
|
||||
}
|
||||
if (sGravity != -1 || sXOffset != -1 || sYOffset != -1) {
|
||||
iToast.setGravity(sGravity, sXOffset, sYOffset);
|
||||
}
|
||||
setBg(tvMessage);
|
||||
iToast.show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void show(final View view, final int duration) {
|
||||
V2XUtils.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
cancel();
|
||||
iToast = ToastFactory.newToast(V2XUtils.getApp());
|
||||
iToast.setView(view);
|
||||
iToast.setDuration(duration);
|
||||
if (sGravity != -1 || sXOffset != -1 || sYOffset != -1) {
|
||||
iToast.setGravity(sGravity, sXOffset, sYOffset);
|
||||
}
|
||||
setBg();
|
||||
iToast.show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void setBg() {
|
||||
if (sBgResource != -1) {
|
||||
final View toastView = iToast.getView();
|
||||
toastView.setBackgroundResource(sBgResource);
|
||||
} else if (sBgColor != COLOR_DEFAULT) {
|
||||
final View toastView = iToast.getView();
|
||||
Drawable background = toastView.getBackground();
|
||||
if (background != null) {
|
||||
background.setColorFilter(
|
||||
new PorterDuffColorFilter(sBgColor, PorterDuff.Mode.SRC_IN)
|
||||
);
|
||||
} else {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
toastView.setBackground(new ColorDrawable(sBgColor));
|
||||
} else {
|
||||
toastView.setBackgroundDrawable(new ColorDrawable(sBgColor));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void setBg(final TextView tvMsg) {
|
||||
if (sBgResource != -1) {
|
||||
final View toastView = iToast.getView();
|
||||
toastView.setBackgroundResource(sBgResource);
|
||||
tvMsg.setBackgroundColor(Color.TRANSPARENT);
|
||||
} else if (sBgColor != COLOR_DEFAULT) {
|
||||
final View toastView = iToast.getView();
|
||||
Drawable tvBg = toastView.getBackground();
|
||||
Drawable msgBg = tvMsg.getBackground();
|
||||
if (tvBg != null && msgBg != null) {
|
||||
tvBg.setColorFilter(new PorterDuffColorFilter(sBgColor, PorterDuff.Mode.SRC_IN));
|
||||
tvMsg.setBackgroundColor(Color.TRANSPARENT);
|
||||
} else if (tvBg != null) {
|
||||
tvBg.setColorFilter(new PorterDuffColorFilter(sBgColor, PorterDuff.Mode.SRC_IN));
|
||||
} else if (msgBg != null) {
|
||||
msgBg.setColorFilter(new PorterDuffColorFilter(sBgColor, PorterDuff.Mode.SRC_IN));
|
||||
} else {
|
||||
toastView.setBackgroundColor(sBgColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static View getView(@LayoutRes final int layoutId) {
|
||||
LayoutInflater inflate =
|
||||
(LayoutInflater) V2XUtils.getApp().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
return inflate.inflate(layoutId, null);
|
||||
}
|
||||
|
||||
static class ToastFactory {
|
||||
|
||||
static IToast makeToast(Context context, CharSequence text, int duration) {
|
||||
if (NotificationManagerCompat.from(context).areNotificationsEnabled()) {
|
||||
return new SystemToast(makeNormalToast(context, text, duration));
|
||||
}
|
||||
return new ToastWithoutNotification(makeNormalToast(context, text, duration));
|
||||
}
|
||||
|
||||
static IToast newToast(Context context) {
|
||||
if (NotificationManagerCompat.from(context).areNotificationsEnabled()) {
|
||||
return new SystemToast(new Toast(context));
|
||||
}
|
||||
return new ToastWithoutNotification(new Toast(context));
|
||||
}
|
||||
|
||||
private static Toast makeNormalToast(Context context, CharSequence text, int duration) {
|
||||
@SuppressLint("ShowToast")
|
||||
Toast toast = Toast.makeText(context, "", duration);
|
||||
toast.setText(text);
|
||||
return toast;
|
||||
}
|
||||
}
|
||||
|
||||
static class SystemToast extends AbsToast {
|
||||
|
||||
@Keep
|
||||
SystemToast(Toast toast) {
|
||||
super(toast);
|
||||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1) {
|
||||
try {
|
||||
//noinspection JavaReflectionMemberAccess
|
||||
Field mTNField = Toast.class.getDeclaredField("mTN");
|
||||
mTNField.setAccessible(true);
|
||||
Object mTN = mTNField.get(toast);
|
||||
Field mTNmHandlerField = mTNField.getType().getDeclaredField("mHandler");
|
||||
mTNmHandlerField.setAccessible(true);
|
||||
Handler tnHandler = (Handler) mTNmHandlerField.get(mTN);
|
||||
mTNmHandlerField.set(mTN, new SafeHandler(tnHandler));
|
||||
} catch (Exception ignored) {/**/}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
mToast.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
mToast.cancel();
|
||||
}
|
||||
|
||||
static class SafeHandler extends Handler {
|
||||
private Handler impl;
|
||||
|
||||
SafeHandler(Handler impl) {
|
||||
this.impl = impl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
impl.handleMessage(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchMessage(Message msg) {
|
||||
try {
|
||||
impl.dispatchMessage(msg);
|
||||
} catch (Exception e) {
|
||||
Log.e("ToastUtils", e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class ToastWithoutNotification extends AbsToast {
|
||||
|
||||
private View mView;
|
||||
private WindowManager mWM;
|
||||
|
||||
private WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
|
||||
|
||||
private static final V2XUtils.OnActivityDestroyedListener LISTENER =
|
||||
new V2XUtils.OnActivityDestroyedListener() {
|
||||
@Override
|
||||
public void onActivityDestroyed(Activity activity) {
|
||||
if (iToast == null) return;
|
||||
activity.getWindow().getDecorView().setVisibility(View.GONE);
|
||||
iToast.cancel();
|
||||
}
|
||||
};
|
||||
|
||||
ToastWithoutNotification(Toast toast) {
|
||||
super(toast);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
V2XUtils.runOnUiThreadDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
realShow();
|
||||
}
|
||||
}, 300);
|
||||
}
|
||||
|
||||
private void realShow() {
|
||||
if (mToast == null) return;
|
||||
mView = mToast.getView();
|
||||
if (mView == null) return;
|
||||
final Context context = mToast.getView().getContext();
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) {
|
||||
mWM = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
|
||||
mParams.type = WindowManager.LayoutParams.TYPE_TOAST;
|
||||
} else {
|
||||
Context topActivityOrApp = V2XUtils.getTopActivityOrApp();
|
||||
if (!(topActivityOrApp instanceof Activity)) {
|
||||
Log.e("ToastUtils", "Couldn't get top Activity.");
|
||||
return;
|
||||
}
|
||||
Activity topActivity = (Activity) topActivityOrApp;
|
||||
if (topActivity.isFinishing() || topActivity.isDestroyed()) {
|
||||
Log.e("ToastUtils", topActivity + " is useless");
|
||||
return;
|
||||
}
|
||||
mWM = topActivity.getWindowManager();
|
||||
mParams.type = WindowManager.LayoutParams.LAST_APPLICATION_WINDOW;
|
||||
V2XUtils.getActivityLifecycle().addOnActivityDestroyedListener(topActivity, LISTENER);
|
||||
}
|
||||
|
||||
mParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||
mParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||
mParams.format = PixelFormat.TRANSLUCENT;
|
||||
mParams.windowAnimations = android.R.style.Animation_Toast;
|
||||
mParams.setTitle("ToastWithoutNotification");
|
||||
mParams.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
|
||||
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|
||||
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
|
||||
mParams.packageName = V2XUtils.getApp().getPackageName();
|
||||
|
||||
mParams.gravity = mToast.getGravity();
|
||||
if ((mParams.gravity & Gravity.HORIZONTAL_GRAVITY_MASK) == Gravity.FILL_HORIZONTAL) {
|
||||
mParams.horizontalWeight = 1.0f;
|
||||
}
|
||||
if ((mParams.gravity & Gravity.VERTICAL_GRAVITY_MASK) == Gravity.FILL_VERTICAL) {
|
||||
mParams.verticalWeight = 1.0f;
|
||||
}
|
||||
|
||||
mParams.x = mToast.getXOffset();
|
||||
mParams.y = mToast.getYOffset();
|
||||
mParams.horizontalMargin = mToast.getHorizontalMargin();
|
||||
mParams.verticalMargin = mToast.getVerticalMargin();
|
||||
|
||||
try {
|
||||
if (mWM != null) {
|
||||
mWM.addView(mView, mParams);
|
||||
}
|
||||
} catch (Exception ignored) {/**/}
|
||||
|
||||
V2XUtils.runOnUiThreadDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
cancel();
|
||||
}
|
||||
}, mToast.getDuration() == Toast.LENGTH_SHORT ? 2000 : 3500);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
try {
|
||||
if (mWM != null) {
|
||||
mWM.removeViewImmediate(mView);
|
||||
}
|
||||
} catch (Exception ignored) {/**/}
|
||||
mView = null;
|
||||
mWM = null;
|
||||
mToast = null;
|
||||
}
|
||||
}
|
||||
|
||||
static abstract class AbsToast implements IToast {
|
||||
|
||||
Toast mToast;
|
||||
|
||||
AbsToast(Toast toast) {
|
||||
mToast = toast;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setView(View view) {
|
||||
mToast.setView(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView() {
|
||||
return mToast.getView();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDuration(int duration) {
|
||||
mToast.setDuration(duration);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGravity(int gravity, int xOffset, int yOffset) {
|
||||
mToast.setGravity(gravity, xOffset, yOffset);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setText(int resId) {
|
||||
mToast.setText(resId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setText(CharSequence s) {
|
||||
mToast.setText(s);
|
||||
}
|
||||
}
|
||||
|
||||
interface IToast {
|
||||
|
||||
void show();
|
||||
|
||||
void cancel();
|
||||
|
||||
void setView(View view);
|
||||
|
||||
View getView();
|
||||
|
||||
void setDuration(int duration);
|
||||
|
||||
void setGravity(int gravity, int xOffset, int yOffset);
|
||||
|
||||
void setText(@StringRes int resId);
|
||||
|
||||
void setText(CharSequence s);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.mogo.module.v2x.utils;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.module.common.entity.V2XEventZanData;
|
||||
import com.mogo.module.common.entity.V2XHistoryScenarioData;
|
||||
import com.mogo.module.v2x.V2XConst;
|
||||
@@ -35,7 +37,7 @@ public class V2XSQLiteUtils {
|
||||
synchronized (V2XSQLiteUtils.class) {
|
||||
if (mScenarioHistoryDao == null) {
|
||||
mScenarioHistoryDao = SQLDaoFactory.Companion.getInstance()
|
||||
.getBaseDao(V2XUtils.getApp(), V2XHistoryScenarioData.class);
|
||||
.getBaseDao(Utils.getApp(), V2XHistoryScenarioData.class);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,7 +52,7 @@ public class V2XSQLiteUtils {
|
||||
synchronized (V2XSQLiteUtils.class) {
|
||||
if (mV2XEventZanDao == null) {
|
||||
mV2XEventZanDao = SQLDaoFactory.Companion.getInstance()
|
||||
.getBaseDao(V2XUtils.getApp(), V2XEventZanData.class);
|
||||
.getBaseDao(Utils.getApp(), V2XEventZanData.class);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,49 +1,11 @@
|
||||
package com.mogo.module.v2x.utils;
|
||||
|
||||
import android.animation.ValueAnimator;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.content.FileProvider;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.mogo.utils.ThreadPoolService;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.utils.storage.SharedPrefsMgr;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.sql.Time;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
/**
|
||||
* author : donghongyu
|
||||
@@ -54,717 +16,21 @@ import java.util.concurrent.ExecutorService;
|
||||
*/
|
||||
public class V2XUtils {
|
||||
|
||||
private static final ActivityLifecycleImpl ACTIVITY_LIFECYCLE = new ActivityLifecycleImpl();
|
||||
private static final ExecutorService UTIL_POOL = ThreadUtils.getCachedPool();
|
||||
private static final Handler UTIL_HANDLER = new Handler(Looper.getMainLooper());
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
private static Application sApplication;
|
||||
|
||||
|
||||
private V2XUtils() {
|
||||
throw new UnsupportedOperationException("u can't instantiate me...");
|
||||
}
|
||||
|
||||
/**
|
||||
* Init utils.
|
||||
* <p>Init it in the class of Application.</p>
|
||||
*
|
||||
* @param context context
|
||||
*/
|
||||
public static void init(final Context context) {
|
||||
if (context == null) {
|
||||
init(getApplicationByReflect());
|
||||
return;
|
||||
}
|
||||
init((Application) context.getApplicationContext());
|
||||
}
|
||||
|
||||
/**
|
||||
* Init utils.
|
||||
* <p>Init it in the class of Application.</p>
|
||||
*
|
||||
* @param app application
|
||||
*/
|
||||
public static void init(final Application app) {
|
||||
if (sApplication == null) {
|
||||
if (app == null) {
|
||||
sApplication = getApplicationByReflect();
|
||||
} else {
|
||||
sApplication = app;
|
||||
}
|
||||
sApplication.registerActivityLifecycleCallbacks(ACTIVITY_LIFECYCLE);
|
||||
// UTIL_POOL.execute(new Runnable() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// //AdaptScreenUtils.preLoad();
|
||||
// }
|
||||
// });
|
||||
} else {
|
||||
if (app != null && app.getClass() != sApplication.getClass()) {
|
||||
sApplication.unregisterActivityLifecycleCallbacks(ACTIVITY_LIFECYCLE);
|
||||
ACTIVITY_LIFECYCLE.mActivityList.clear();
|
||||
sApplication = app;
|
||||
sApplication.registerActivityLifecycleCallbacks(ACTIVITY_LIFECYCLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the context of Application object.
|
||||
*
|
||||
* @return the context of Application object
|
||||
*/
|
||||
public static Application getApp() {
|
||||
if (sApplication != null) return sApplication;
|
||||
Application app = getApplicationByReflect();
|
||||
init(app);
|
||||
return app;
|
||||
}
|
||||
|
||||
static ActivityLifecycleImpl getActivityLifecycle() {
|
||||
return ACTIVITY_LIFECYCLE;
|
||||
}
|
||||
|
||||
static LinkedList<Activity> getActivityList() {
|
||||
return ACTIVITY_LIFECYCLE.mActivityList;
|
||||
}
|
||||
|
||||
static Context getTopActivityOrApp() {
|
||||
if (isAppForeground()) {
|
||||
Activity topActivity = ACTIVITY_LIFECYCLE.getTopActivity();
|
||||
return topActivity == null ? V2XUtils.getApp() : topActivity;
|
||||
} else {
|
||||
return V2XUtils.getApp();
|
||||
}
|
||||
}
|
||||
|
||||
static boolean isAppForeground() {
|
||||
ActivityManager am = (ActivityManager) V2XUtils.getApp().getSystemService(Context.ACTIVITY_SERVICE);
|
||||
if (am == null) return false;
|
||||
List<ActivityManager.RunningAppProcessInfo> info = am.getRunningAppProcesses();
|
||||
if (info == null || info.size() == 0) return false;
|
||||
for (ActivityManager.RunningAppProcessInfo aInfo : info) {
|
||||
if (aInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
|
||||
if (aInfo.processName.equals(V2XUtils.getApp().getPackageName())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static <T> Task<T> doAsync(final Task<T> task) {
|
||||
UTIL_POOL.execute(task);
|
||||
return task;
|
||||
}
|
||||
|
||||
public static void runOnUiThread(final Runnable runnable) {
|
||||
if (Looper.myLooper() == Looper.getMainLooper()) {
|
||||
runnable.run();
|
||||
} else {
|
||||
V2XUtils.UTIL_HANDLER.post(runnable);
|
||||
}
|
||||
}
|
||||
|
||||
public static void runOnUiThreadDelayed(final Runnable runnable, long delayMillis) {
|
||||
V2XUtils.UTIL_HANDLER.postDelayed(runnable, delayMillis);
|
||||
}
|
||||
|
||||
/**
|
||||
* 运行在子线程
|
||||
*
|
||||
* @param runnable 线程执行
|
||||
*/
|
||||
public static void runOnBackgroundThread(Runnable runnable) {
|
||||
if (runnable == null) {
|
||||
return;
|
||||
}
|
||||
ThreadPoolService.execute(runnable);
|
||||
}
|
||||
|
||||
static String getCurrentProcessName() {
|
||||
String name = getCurrentProcessNameByFile();
|
||||
if (!TextUtils.isEmpty(name)) return name;
|
||||
name = getCurrentProcessNameByAms();
|
||||
if (!TextUtils.isEmpty(name)) return name;
|
||||
name = getCurrentProcessNameByReflect();
|
||||
return name;
|
||||
}
|
||||
|
||||
static void fixSoftInputLeaks(final Window window) {
|
||||
InputMethodManager imm =
|
||||
(InputMethodManager) V2XUtils.getApp().getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
if (imm == null) return;
|
||||
String[] leakViews = new String[]{"mLastSrvView", "mCurRootView", "mServedView", "mNextServedView"};
|
||||
for (String leakView : leakViews) {
|
||||
try {
|
||||
Field leakViewField = InputMethodManager.class.getDeclaredField(leakView);
|
||||
if (!leakViewField.isAccessible()) {
|
||||
leakViewField.setAccessible(true);
|
||||
}
|
||||
Object obj = leakViewField.get(imm);
|
||||
if (!(obj instanceof View)) continue;
|
||||
View view = (View) obj;
|
||||
if (view.getRootView() == window.getDecorView().getRootView()) {
|
||||
leakViewField.set(imm, null);
|
||||
}
|
||||
} catch (Throwable ignore) {/**/}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void toastShowShort(final CharSequence text) {
|
||||
ToastUtils.showShort(text);
|
||||
}
|
||||
|
||||
static void toastCancel() {
|
||||
ToastUtils.cancel();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// private method
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
private static String getCurrentProcessNameByFile() {
|
||||
try {
|
||||
File file = new File("/proc/" + android.os.Process.myPid() + "/" + "cmdline");
|
||||
BufferedReader mBufferedReader = new BufferedReader(new FileReader(file));
|
||||
String processName = mBufferedReader.readLine().trim();
|
||||
mBufferedReader.close();
|
||||
return processName;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
private static String getCurrentProcessNameByAms() {
|
||||
ActivityManager am = (ActivityManager) V2XUtils.getApp().getSystemService(Context.ACTIVITY_SERVICE);
|
||||
if (am == null) return "";
|
||||
List<ActivityManager.RunningAppProcessInfo> info = am.getRunningAppProcesses();
|
||||
if (info == null || info.size() == 0) return "";
|
||||
int pid = android.os.Process.myPid();
|
||||
for (ActivityManager.RunningAppProcessInfo aInfo : info) {
|
||||
if (aInfo.pid == pid) {
|
||||
if (aInfo.processName != null) {
|
||||
return aInfo.processName;
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private static String getCurrentProcessNameByReflect() {
|
||||
String processName = "";
|
||||
try {
|
||||
Application app = V2XUtils.getApp();
|
||||
Field loadedApkField = app.getClass().getField("mLoadedApk");
|
||||
loadedApkField.setAccessible(true);
|
||||
Object loadedApk = loadedApkField.get(app);
|
||||
|
||||
Field activityThreadField = loadedApk.getClass().getDeclaredField("mActivityThread");
|
||||
activityThreadField.setAccessible(true);
|
||||
Object activityThread = activityThreadField.get(loadedApk);
|
||||
|
||||
Method getProcessName = activityThread.getClass().getDeclaredMethod("getProcessName");
|
||||
processName = (String) getProcessName.invoke(activityThread);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return processName;
|
||||
}
|
||||
|
||||
private static Application getApplicationByReflect() {
|
||||
try {
|
||||
@SuppressLint("PrivateApi")
|
||||
Class<?> activityThread = Class.forName("android.app.ActivityThread");
|
||||
Object thread = activityThread.getMethod("currentActivityThread").invoke(null);
|
||||
Object app = activityThread.getMethod("getApplication").invoke(thread);
|
||||
if (app == null) {
|
||||
throw new NullPointerException("u should init first");
|
||||
}
|
||||
return (Application) app;
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
throw new NullPointerException("u should init first");
|
||||
}
|
||||
|
||||
/**
|
||||
* Set animators enabled.
|
||||
*/
|
||||
private static void setAnimatorsEnabled() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && ValueAnimator.areAnimatorsEnabled()) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
//noinspection JavaReflectionMemberAccess
|
||||
Field sDurationScaleField = ValueAnimator.class.getDeclaredField("sDurationScale");
|
||||
sDurationScaleField.setAccessible(true);
|
||||
float sDurationScale = (Float) sDurationScaleField.get(null);
|
||||
if (sDurationScale == 0f) {
|
||||
sDurationScaleField.set(null, 1f);
|
||||
Log.i("Utils", "setAnimatorsEnabled: Animators are enabled now!");
|
||||
}
|
||||
} catch (NoSuchFieldException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 当天第一次
|
||||
* */
|
||||
*/
|
||||
public static boolean isFirstTodayWithKey(String key) {
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", Locale.US);
|
||||
String formatString = format.format(new Date());
|
||||
String value = SharedPrefsMgr.getInstance(V2XUtils.getApp()).getString(key);
|
||||
String value = SharedPrefsMgr.getInstance(Utils.getApp()).getString(key);
|
||||
if (value.equals(formatString)) {
|
||||
return true;
|
||||
} else {
|
||||
SharedPrefsMgr.getInstance(V2XUtils.getApp()).putString(key, formatString);
|
||||
SharedPrefsMgr.getInstance(Utils.getApp()).putString(key, formatString);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// TransActivity
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public static final class TransActivity extends FragmentActivity {
|
||||
|
||||
private static final Map<TransActivity, TransActivityDelegate> CALLBACK_MAP = new HashMap<>();
|
||||
private static TransActivityDelegate sDelegate;
|
||||
|
||||
public static void start(final Func1<Void, Intent> consumer,
|
||||
final TransActivityDelegate delegate) {
|
||||
if (delegate == null) return;
|
||||
Intent starter = new Intent(V2XUtils.getApp(), TransActivity.class);
|
||||
starter.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
if (consumer != null) {
|
||||
consumer.call(starter);
|
||||
}
|
||||
V2XUtils.getApp().startActivity(starter);
|
||||
sDelegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
overridePendingTransition(0, 0);
|
||||
if (sDelegate == null) {
|
||||
super.onCreate(savedInstanceState);
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
CALLBACK_MAP.put(this, sDelegate);
|
||||
sDelegate.onCreateBefore(this, savedInstanceState);
|
||||
super.onCreate(savedInstanceState);
|
||||
sDelegate.onCreated(this, savedInstanceState);
|
||||
sDelegate = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
TransActivityDelegate callback = CALLBACK_MAP.get(this);
|
||||
if (callback == null) return;
|
||||
callback.onStarted(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
TransActivityDelegate callback = CALLBACK_MAP.get(this);
|
||||
if (callback == null) return;
|
||||
callback.onResumed(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
overridePendingTransition(0, 0);
|
||||
super.onPause();
|
||||
TransActivityDelegate callback = CALLBACK_MAP.get(this);
|
||||
if (callback == null) return;
|
||||
callback.onPaused(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
TransActivityDelegate callback = CALLBACK_MAP.get(this);
|
||||
if (callback == null) return;
|
||||
callback.onStopped(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
TransActivityDelegate callback = CALLBACK_MAP.get(this);
|
||||
if (callback == null) return;
|
||||
callback.onSaveInstanceState(this, outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
TransActivityDelegate callback = CALLBACK_MAP.get(this);
|
||||
if (callback == null) return;
|
||||
callback.onDestroy(this);
|
||||
CALLBACK_MAP.remove(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
TransActivityDelegate callback = CALLBACK_MAP.get(this);
|
||||
if (callback == null) return;
|
||||
callback.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
TransActivityDelegate callback = CALLBACK_MAP.get(this);
|
||||
if (callback == null) return;
|
||||
callback.onActivityResult(this, requestCode, resultCode, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dispatchTouchEvent(MotionEvent ev) {
|
||||
TransActivityDelegate callback = CALLBACK_MAP.get(this);
|
||||
if (callback == null) return super.dispatchTouchEvent(ev);
|
||||
if (callback.dispatchTouchEvent(this, ev)) {
|
||||
return true;
|
||||
}
|
||||
return super.dispatchTouchEvent(ev);
|
||||
}
|
||||
|
||||
public abstract static class TransActivityDelegate {
|
||||
public void onCreateBefore(Activity activity, @Nullable Bundle savedInstanceState) {/**/}
|
||||
|
||||
public void onCreated(Activity activity, @Nullable Bundle savedInstanceState) {/**/}
|
||||
|
||||
public void onStarted(Activity activity) {/**/}
|
||||
|
||||
public void onDestroy(Activity activity) {/**/}
|
||||
|
||||
public void onResumed(Activity activity) {/**/}
|
||||
|
||||
public void onPaused(Activity activity) {/**/}
|
||||
|
||||
public void onStopped(Activity activity) {/**/}
|
||||
|
||||
public void onSaveInstanceState(Activity activity, Bundle outState) {/**/}
|
||||
|
||||
public void onRequestPermissionsResult(Activity activity, int requestCode, String[] permissions, int[] grantResults) {/**/}
|
||||
|
||||
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {/**/}
|
||||
|
||||
public boolean dispatchTouchEvent(Activity activity, MotionEvent ev) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// lifecycle
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static class ActivityLifecycleImpl implements Application.ActivityLifecycleCallbacks {
|
||||
|
||||
final LinkedList<Activity> mActivityList = new LinkedList<>();
|
||||
final List<OnAppStatusChangedListener> mStatusListeners = new ArrayList<>();
|
||||
final Map<Activity, List<OnActivityDestroyedListener>> mDestroyedListenerMap = new HashMap<>();
|
||||
|
||||
private int mForegroundCount = 0;
|
||||
private int mConfigCount = 0;
|
||||
private boolean mIsBackground = false;
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
|
||||
//LanguageUtils.applyLanguage(activity);
|
||||
setAnimatorsEnabled();
|
||||
setTopActivity(activity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityStarted(Activity activity) {
|
||||
if (!mIsBackground) {
|
||||
setTopActivity(activity);
|
||||
}
|
||||
if (mConfigCount < 0) {
|
||||
++mConfigCount;
|
||||
} else {
|
||||
++mForegroundCount;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResumed(final Activity activity) {
|
||||
setTopActivity(activity);
|
||||
if (mIsBackground) {
|
||||
mIsBackground = false;
|
||||
postStatus(activity, true);
|
||||
}
|
||||
processHideSoftInputOnActivityDestroy(activity, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityPaused(Activity activity) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityStopped(Activity activity) {
|
||||
if (activity.isChangingConfigurations()) {
|
||||
--mConfigCount;
|
||||
} else {
|
||||
--mForegroundCount;
|
||||
if (mForegroundCount <= 0) {
|
||||
mIsBackground = true;
|
||||
postStatus(activity, false);
|
||||
}
|
||||
}
|
||||
processHideSoftInputOnActivityDestroy(activity, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {/**/}
|
||||
|
||||
@Override
|
||||
public void onActivityDestroyed(Activity activity) {
|
||||
mActivityList.remove(activity);
|
||||
consumeOnActivityDestroyedListener(activity);
|
||||
fixSoftInputLeaks(activity.getWindow());
|
||||
}
|
||||
|
||||
Activity getTopActivity() {
|
||||
if (!mActivityList.isEmpty()) {
|
||||
for (int i = mActivityList.size() - 1; i >= 0; i--) {
|
||||
Activity activity = mActivityList.get(i);
|
||||
if (activity == null
|
||||
|| activity.isFinishing()
|
||||
|| (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && activity.isDestroyed())) {
|
||||
continue;
|
||||
}
|
||||
return activity;
|
||||
}
|
||||
}
|
||||
Activity topActivityByReflect = getTopActivityByReflect();
|
||||
if (topActivityByReflect != null) {
|
||||
setTopActivity(topActivityByReflect);
|
||||
}
|
||||
return topActivityByReflect;
|
||||
}
|
||||
|
||||
void addOnAppStatusChangedListener(final OnAppStatusChangedListener listener) {
|
||||
mStatusListeners.add(listener);
|
||||
}
|
||||
|
||||
void removeOnAppStatusChangedListener(final OnAppStatusChangedListener listener) {
|
||||
mStatusListeners.remove(listener);
|
||||
}
|
||||
|
||||
void removeOnActivityDestroyedListener(final Activity activity) {
|
||||
if (activity == null) return;
|
||||
mDestroyedListenerMap.remove(activity);
|
||||
}
|
||||
|
||||
void addOnActivityDestroyedListener(final Activity activity,
|
||||
final OnActivityDestroyedListener listener) {
|
||||
if (activity == null || listener == null) return;
|
||||
List<OnActivityDestroyedListener> listeners = mDestroyedListenerMap.get(activity);
|
||||
if (listeners == null) {
|
||||
listeners = new CopyOnWriteArrayList<>();
|
||||
mDestroyedListenerMap.put(activity, listeners);
|
||||
} else {
|
||||
if (listeners.contains(listener)) return;
|
||||
}
|
||||
listeners.add(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* To solve close keyboard when activity onDestroy.
|
||||
* The preActivity set windowSoftInputMode will prevent
|
||||
* the keyboard from closing when curActivity onDestroy.
|
||||
*/
|
||||
private void processHideSoftInputOnActivityDestroy(final Activity activity, boolean isSave) {
|
||||
if (isSave) {
|
||||
final WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
|
||||
final int softInputMode = attrs.softInputMode;
|
||||
activity.getWindow().getDecorView().setTag(-123, softInputMode);
|
||||
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
|
||||
} else {
|
||||
final Object tag = activity.getWindow().getDecorView().getTag(-123);
|
||||
if (!(tag instanceof Integer)) return;
|
||||
V2XUtils.runOnUiThreadDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Window window = activity.getWindow();
|
||||
if (window != null) {
|
||||
window.setSoftInputMode(((Integer) tag));
|
||||
}
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
}
|
||||
|
||||
private void postStatus(final Activity activity, final boolean isForeground) {
|
||||
if (mStatusListeners.isEmpty()) return;
|
||||
for (OnAppStatusChangedListener statusListener : mStatusListeners) {
|
||||
if (isForeground) {
|
||||
statusListener.onForeground(activity);
|
||||
} else {
|
||||
statusListener.onBackground(activity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setTopActivity(final Activity activity) {
|
||||
// if (TransActivity.class == activity.getClass()) return;
|
||||
if (mActivityList.contains(activity)) {
|
||||
if (!mActivityList.getLast().equals(activity)) {
|
||||
mActivityList.remove(activity);
|
||||
mActivityList.addLast(activity);
|
||||
}
|
||||
} else {
|
||||
mActivityList.addLast(activity);
|
||||
}
|
||||
}
|
||||
|
||||
private void consumeOnActivityDestroyedListener(Activity activity) {
|
||||
Iterator<Map.Entry<Activity, List<OnActivityDestroyedListener>>> iterator
|
||||
= mDestroyedListenerMap.entrySet().iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Map.Entry<Activity, List<OnActivityDestroyedListener>> entry = iterator.next();
|
||||
if (entry.getKey() == activity) {
|
||||
List<OnActivityDestroyedListener> value = entry.getValue();
|
||||
for (OnActivityDestroyedListener listener : value) {
|
||||
listener.onActivityDestroyed(activity);
|
||||
}
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Activity getTopActivityByReflect() {
|
||||
try {
|
||||
@SuppressLint("PrivateApi")
|
||||
Class<?> activityThreadClass = Class.forName("android.app.ActivityThread");
|
||||
Object currentActivityThreadMethod = activityThreadClass.getMethod("currentActivityThread").invoke(null);
|
||||
Field mActivityListField = activityThreadClass.getDeclaredField("mActivityList");
|
||||
mActivityListField.setAccessible(true);
|
||||
Map activities = (Map) mActivityListField.get(currentActivityThreadMethod);
|
||||
if (activities == null) return null;
|
||||
for (Object activityRecord : activities.values()) {
|
||||
Class activityRecordClass = activityRecord.getClass();
|
||||
Field pausedField = activityRecordClass.getDeclaredField("paused");
|
||||
pausedField.setAccessible(true);
|
||||
if (!pausedField.getBoolean(activityRecord)) {
|
||||
Field activityField = activityRecordClass.getDeclaredField("activity");
|
||||
activityField.setAccessible(true);
|
||||
return (Activity) activityField.get(activityRecord);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e("Utils", e.getMessage());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static final class FileProvider4UtilCode extends FileProvider {
|
||||
|
||||
@Override
|
||||
public boolean onCreate() {
|
||||
V2XUtils.init(getContext());
|
||||
try {
|
||||
Class.forName("com.blankj.utildebug.DebugUtils");
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// interface
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public abstract static class Task<Result> implements Runnable {
|
||||
|
||||
private static final int NEW = 0;
|
||||
private static final int COMPLETING = 1;
|
||||
private static final int CANCELLED = 2;
|
||||
private static final int EXCEPTIONAL = 3;
|
||||
|
||||
private volatile int state = NEW;
|
||||
|
||||
abstract Result doInBackground();
|
||||
|
||||
private Callback<Result> mCallback;
|
||||
|
||||
public Task(final Callback<Result> callback) {
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
final Result t = doInBackground();
|
||||
|
||||
if (state != NEW) return;
|
||||
state = COMPLETING;
|
||||
UTIL_HANDLER.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mCallback.onCall(t);
|
||||
}
|
||||
});
|
||||
} catch (Throwable th) {
|
||||
if (state != NEW) return;
|
||||
state = EXCEPTIONAL;
|
||||
}
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
state = CANCELLED;
|
||||
}
|
||||
|
||||
public boolean isDone() {
|
||||
return state != NEW;
|
||||
}
|
||||
|
||||
public boolean isCanceled() {
|
||||
return state == CANCELLED;
|
||||
}
|
||||
}
|
||||
|
||||
public interface Callback<T> {
|
||||
void onCall(T data);
|
||||
}
|
||||
|
||||
public interface OnAppStatusChangedListener {
|
||||
void onForeground(Activity activity);
|
||||
|
||||
void onBackground(Activity activity);
|
||||
}
|
||||
|
||||
public interface OnActivityDestroyedListener {
|
||||
void onActivityDestroyed(Activity activity);
|
||||
}
|
||||
|
||||
public interface Func1<Ret, Par> {
|
||||
Ret call(Par param);
|
||||
}
|
||||
|
||||
// 两次点击间隔不能少于1000ms
|
||||
private static final int FAST_CLICK_DELAY_TIME = 1000;
|
||||
private static long lastClickTime;
|
||||
|
||||
@@ -17,11 +17,11 @@ import com.mogo.cloud.trafficlive.api.ITrafficCarLiveCallBack;
|
||||
import com.mogo.cloud.trafficlive.api.MoGoAiCloudTrafficLive;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.eagle.core.widget.RoundLayout;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
@@ -123,7 +123,7 @@ public class CarZegoLiveVideoView extends RoundLayout {
|
||||
@Override
|
||||
public void onError(String errorMsg) {
|
||||
refreshStatusToListener(false);
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("直播获取识败,可以对我说重试", null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("直播获取识败,可以对我说重试", null);
|
||||
stopLive();
|
||||
mLoading.setVisibility(GONE);
|
||||
mClLoadError.setVisibility(VISIBLE);
|
||||
|
||||
@@ -16,13 +16,13 @@ import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.eagle.core.widget.RoundLayout;
|
||||
import com.mogo.module.common.entity.MarkerCarInfo;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.entity.net.V2XLivePushVoRes;
|
||||
import com.mogo.module.v2x.network.V2XRefreshCallback;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
@@ -180,7 +180,7 @@ public class V2XCarLiveVideoView extends RoundLayout {
|
||||
mClLoadError.setVisibility(GONE);
|
||||
} else if (event < 0) {
|
||||
refreshStatusToListener(false);
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("直播获取识败,可以对我说重试", null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("直播获取识败,可以对我说重试", null);
|
||||
stopLive(mCarLiveInfo);
|
||||
mLoading.setVisibility(GONE);
|
||||
mClLoadError.setVisibility(VISIBLE);
|
||||
|
||||
@@ -15,12 +15,12 @@ import androidx.core.content.ContextCompat;
|
||||
import com.mogo.cloud.trafficlive.api.ITrafficIntersectionLiveCallBack;
|
||||
import com.mogo.cloud.trafficlive.api.MoGoAiCloudTrafficLive;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.eagle.core.widget.RoundLayout;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.module.common.entity.MarkerCarInfo;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.V2XServiceManager;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
@@ -201,7 +201,7 @@ public class V2XCrossRoadVideoView extends RoundLayout {
|
||||
mClLoadError.setVisibility(GONE);
|
||||
} else if (event < 0) {
|
||||
refreshStatusToListener(false);
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("直播获取识败,可以对我说重试", null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("直播获取识败,可以对我说重试", null);
|
||||
stopLive();
|
||||
mLoading.setVisibility(GONE);
|
||||
mClLoadError.setVisibility(VISIBLE);
|
||||
|
||||
@@ -16,10 +16,10 @@ import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.eagle.core.utilcode.util.Utils;
|
||||
import com.mogo.eagle.core.widget.RoundLayout;
|
||||
import com.mogo.module.common.entity.MarkerCarInfo;
|
||||
import com.mogo.module.v2x.R;
|
||||
import com.mogo.module.v2x.utils.V2XUtils;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceConstants;
|
||||
import com.mogo.module.v2x.voice.V2XVoiceManager;
|
||||
@@ -150,7 +150,7 @@ public class V2XLiveGSYVideoView extends RoundLayout {
|
||||
mLoading.setVisibility(GONE);
|
||||
mClLoadError.setVisibility(GONE);
|
||||
} else if (event < 0) {
|
||||
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("直播获取失败,可以对我说重试", null);
|
||||
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("直播获取失败,可以对我说重试", null);
|
||||
stopLive(mCarLiveInfo);
|
||||
mLoading.setVisibility(GONE);
|
||||
mClLoadError.setVisibility(VISIBLE);
|
||||
|
||||
Reference in New Issue
Block a user