[feedback]修正主动反馈页面展示时触发结束录制,导致底部badcase入口展示
This commit is contained in:
@@ -18,6 +18,9 @@ import com.mogo.eagle.core.utilcode.kotlin.PX
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.kotlin.lifecycleOwner
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.reminder.Reminder
|
||||
import com.mogo.eagle.core.utilcode.reminder.api.IReminder
|
||||
import com.mogo.eagle.core.utilcode.reminder.api.IReminder.IGlobalStateChangeListener
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.biz.BadCasePresenter
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.biz.BadCaseView
|
||||
@@ -55,6 +58,9 @@ internal object BadCaseManager : LifecycleEventObserver {
|
||||
@Volatile
|
||||
private var dismissJob: Job? = null
|
||||
|
||||
@Volatile
|
||||
private var feedbackFloatShow = false
|
||||
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
private var channel: Channel<AutoPilotRecord> = Channel(Channel.RENDEZVOUS)
|
||||
get() = if (field.isClosedForReceive || field.isClosedForSend) {
|
||||
@@ -89,6 +95,19 @@ internal object BadCaseManager : LifecycleEventObserver {
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
private fun register() {
|
||||
scope?.launch(Dispatchers.Default) {
|
||||
Reminder.registerGlobalStateChangeListener(object : IGlobalStateChangeListener {
|
||||
override fun onShow(reminder: IReminder) {
|
||||
if (reminder.key().startsWith("FeedBackFloatWindow_")) {
|
||||
feedbackFloatShow = true
|
||||
}
|
||||
}
|
||||
|
||||
override fun onHide(reminder: IReminder) {
|
||||
if (reminder.key().startsWith("FeedBackFloatWindow_")) {
|
||||
feedbackFloatShow = false
|
||||
}
|
||||
}
|
||||
})
|
||||
while (true) {
|
||||
CallerLogger.d("$M_DEVA$TAG", "---- 开始监听BadCase事件 ----")
|
||||
val old = record
|
||||
@@ -172,6 +191,9 @@ internal object BadCaseManager : LifecycleEventObserver {
|
||||
}
|
||||
|
||||
fun onReceiveBadCaseRecord(record: RecordPanelOuterClass.RecordPanel) {
|
||||
if (feedbackFloatShow) {
|
||||
return
|
||||
}
|
||||
scope?.launch {
|
||||
val newRecord = record.toRecord()
|
||||
withContext(Dispatchers.IO) {
|
||||
|
||||
@@ -118,6 +118,11 @@ internal fun Context.pop(content: View, width: Int, height: Int, fitSystemWindow
|
||||
}
|
||||
pop.contentView = content
|
||||
val reminder = object : PopupWindowReminder(pop) {
|
||||
|
||||
override fun key(): String {
|
||||
return "FeedBackFloatWindow_" + super.key()
|
||||
}
|
||||
|
||||
override fun show() {
|
||||
pop.showAtLocation(activity.window.decorView, Gravity.START, 0, if (fitSystemWindow) WindowUtils.getStatusBarHeight(activity) else 0)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.zhjt.mogo_core_function_devatools.feedback
|
||||
|
||||
import android.content.Context
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.widget.TextView
|
||||
@@ -14,13 +13,11 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListen
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.utilcode.kotlin.*
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
|
||||
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
|
||||
import com.mogo.eagle.core.utilcode.util.KeyboardUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.zhjt.mogo_core_function_devatools.R
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.toRecord
|
||||
@@ -32,7 +29,10 @@ import com.zhjt.mogo_core_function_devatools.feedback.biz.impl.FeedbackPresenter
|
||||
import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback
|
||||
import kotlinx.coroutines.*
|
||||
import record_cache.RecordPanelOuterClass
|
||||
import java.io.File
|
||||
import java.lang.IllegalStateException
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import kotlin.Result.Companion
|
||||
|
||||
internal object FeedbackManager {
|
||||
@@ -161,8 +161,10 @@ internal object FeedbackManager {
|
||||
}
|
||||
|
||||
private fun startRecordLog(record: AutoPilotRecord) {
|
||||
val prefix = record.fileName?.split(File.separator)?.last() ?: "BadCase_${SimpleDateFormat("yyyy_MM_dd-HH_mm_ss", Locale.getDefault()).format(Date())}"
|
||||
CallerLogger.d("${M_DEVA}${TAG}", "录制Bag开始, 触发录制全量日志 ...")
|
||||
CallerDevaToolsManager.startCatchLog(1,record.fileName)
|
||||
CallerLogger.d("${M_DEVA}${TAG}", "全量日志前缀: $prefix")
|
||||
CallerDevaToolsManager.startCatchLog(1, prefix)
|
||||
}
|
||||
|
||||
private fun stopRecordLog(newRecord: AutoPilotRecord) {
|
||||
|
||||
Reference in New Issue
Block a user