bug fix
This commit is contained in:
@@ -37,12 +37,13 @@ object SeekHelpManager {
|
||||
private const val SEEK_RECORD_LIMIT_AMOUNT = 2
|
||||
const val VOICE_WILL_SEEK_HELP = "将发布故障求助"
|
||||
|
||||
private var context:Context? = null
|
||||
private var aiAssist:AIAssist? = null
|
||||
private var context: Context? = null
|
||||
private var aiAssist: AIAssist? = null
|
||||
|
||||
private val seekRecordList = mutableListOf<SeekRecord>()
|
||||
private val seekListenerList = mutableListOf<ISeekHelpListener>()
|
||||
private var isSeekHelp = false
|
||||
private var isSeeking = false
|
||||
|
||||
private val voiceCallback = object : IMogoVoiceCmdCallBack {
|
||||
override fun onCmdSelected(cmd: String?) {
|
||||
@@ -77,34 +78,36 @@ object SeekHelpManager {
|
||||
*
|
||||
* @param useLocalVoiceNotice 使用自己的语音播报,如果是从语音助手过来的请求,语音助手可能会走自己的播报,默认是使用自己的播报
|
||||
*/
|
||||
fun seekHelp(context: Context, seekHelpListener: ISeekHelpListener,useLocalVoiceNotice:Boolean = true) {
|
||||
// context初始化
|
||||
if (this.context == null) {
|
||||
this.context = context
|
||||
aiAssist = AIAssist.getInstance(context)
|
||||
}
|
||||
isSeekHelp = ShareControl.getInstance(SeekHelpManager.context).mogoServiceApis.statusManagerApi.isSeekHelping
|
||||
Logger.d(TAG, "开始故障求助上报---${isSeekHelp}")
|
||||
seekListenerList.add(seekHelpListener)
|
||||
when {
|
||||
isSeekHelp -> {
|
||||
// 正在求助中,进行异常提示
|
||||
toast("已发布故障求助,请耐心等待")
|
||||
aiAssist?.speakTTSVoice("已发布故障求助,请耐心等待")
|
||||
fun seekHelp(context: Context, seekHelpListener: ISeekHelpListener, useLocalVoiceNotice: Boolean = true) {
|
||||
if(!isSeeking) {
|
||||
isSeeking = true
|
||||
if (this.context == null) {
|
||||
this.context = context
|
||||
aiAssist = AIAssist.getInstance(context)
|
||||
}
|
||||
getSeekAmountByLimitTime() >= SEEK_RECORD_LIMIT_AMOUNT -> {
|
||||
// 超过限制时间内的限制次数,进行异常提示
|
||||
toast("已在求助状态,请勿连续发布哦")
|
||||
aiAssist?.speakTTSVoice("已在求助状态,请勿连续发布哦")
|
||||
}
|
||||
else -> {
|
||||
// 没有异常情况,开始故障求助
|
||||
if(useLocalVoiceNotice) {
|
||||
// 语音说完再请求,要不然可能请求的太快
|
||||
aiAssist?.speakTTSVoice(VOICE_WILL_SEEK_HELP, voiceCallback)
|
||||
}else{
|
||||
Logger.d(TAG,"不使用本地语音播报,直接开始发起求助")
|
||||
realSeekHelp()
|
||||
isSeekHelp = ShareControl.getInstance(SeekHelpManager.context).mogoServiceApis.statusManagerApi.isSeekHelping
|
||||
Logger.d(TAG, "开始故障求助上报---${isSeekHelp}")
|
||||
seekListenerList.add(seekHelpListener)
|
||||
when {
|
||||
isSeekHelp -> {
|
||||
// 正在求助中,进行异常提示
|
||||
toast("已发布故障求助,请耐心等待")
|
||||
aiAssist?.speakTTSVoice("已发布故障求助,请耐心等待")
|
||||
}
|
||||
getSeekAmountByLimitTime() >= SEEK_RECORD_LIMIT_AMOUNT -> {
|
||||
// 超过限制时间内的限制次数,进行异常提示
|
||||
toast("已在求助状态,请勿连续发布哦")
|
||||
aiAssist?.speakTTSVoice("已在求助状态,请勿连续发布哦")
|
||||
}
|
||||
else -> {
|
||||
// 没有异常情况,开始故障求助
|
||||
if (useLocalVoiceNotice) {
|
||||
// 语音说完再请求,要不然可能请求的太快
|
||||
aiAssist?.speakTTSVoice(VOICE_WILL_SEEK_HELP, voiceCallback)
|
||||
} else {
|
||||
Logger.d(TAG, "不使用本地语音播报,直接开始发起求助")
|
||||
realSeekHelp()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -144,12 +147,12 @@ object SeekHelpManager {
|
||||
// 请求故障求助接口
|
||||
val seekRequest = SeekRequest(DeviceUtil.getSn())
|
||||
val param = mutableMapOf("data" to seekRequest.getJson())
|
||||
|
||||
|
||||
ShareControl.getInstance(context).mogoServiceApis.networkApi.create(ShareApiService::class.java, HttpConstant.getNetHost()).sendHelpSignal(param).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : SubscribeImpl<BaseData>(RequestOptions.create(context)) {
|
||||
override fun onSuccess(o: BaseData?) {
|
||||
super.onSuccess(o)
|
||||
// 接口请求成功,内部同步v2x状态,通知adas,改变自车图标
|
||||
ShareControl.getInstance(context).mogoServiceApis.statusManagerApi.setSeekHelping("ShareDialog",true)
|
||||
ShareControl.getInstance(context).mogoServiceApis.statusManagerApi.setSeekHelping("ShareDialog", true)
|
||||
isSeekHelp = true
|
||||
aiAssist?.speakTTSVoice("已发布求助信息,将为你通知其他车主")
|
||||
toast("已发布求助信息,将为你通知其他车主")
|
||||
@@ -157,6 +160,7 @@ object SeekHelpManager {
|
||||
seekListenerList.forEach {
|
||||
it.onSeekHelpSuccess()
|
||||
}
|
||||
isSeeking = false
|
||||
}
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
@@ -165,6 +169,7 @@ object SeekHelpManager {
|
||||
Logger.e(TAG, "上报求助失败,网络异常")
|
||||
e.printStackTrace()
|
||||
seekHelpFail()
|
||||
isSeeking = false
|
||||
}
|
||||
|
||||
override fun onError(message: String?, code: Int) {
|
||||
@@ -172,6 +177,7 @@ object SeekHelpManager {
|
||||
// 接口请求失败
|
||||
Logger.e(TAG, "上报求助失败")
|
||||
seekHelpFail()
|
||||
isSeeking = false
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -185,4 +191,30 @@ object SeekHelpManager {
|
||||
aiAssist?.speakTTSVoice("求助上报失败,请稍后重试")
|
||||
}
|
||||
|
||||
fun debugCancelSeek() {
|
||||
val seekRequest = SeekRequest(DeviceUtil.getSn(), 0)
|
||||
val param = mutableMapOf("data" to seekRequest.getJson())
|
||||
ShareControl.getInstance(context).mogoServiceApis.networkApi.create(ShareApiService::class.java, HttpConstant.getNetHost()).sendHelpSignal(param).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : SubscribeImpl<BaseData>(RequestOptions.create(context)) {
|
||||
override fun onSuccess(o: BaseData?) {
|
||||
super.onSuccess(o)
|
||||
// 接口请求成功,内部同步v2x状态,通知adas,改变自车图标
|
||||
ShareControl.getInstance(context).mogoServiceApis.statusManagerApi.setSeekHelping("ShareDialog", false)
|
||||
isSeekHelp = false
|
||||
}
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
super.onError(e)
|
||||
// 接口请求失败
|
||||
Logger.e(TAG, "上报求助失败,网络异常")
|
||||
e.printStackTrace()
|
||||
}
|
||||
|
||||
override fun onError(message: String?, code: Int) {
|
||||
super.onError(message, code)
|
||||
// 接口请求失败
|
||||
Logger.e(TAG, "上报求助失败")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user