[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.mogo.logger.CallerLogger
|
||||||
import com.mogo.eagle.core.utilcode.kotlin.lifecycleOwner
|
import com.mogo.eagle.core.utilcode.kotlin.lifecycleOwner
|
||||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
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.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.BadCasePresenter
|
||||||
import com.zhjt.mogo_core_function_devatools.badcase.biz.BadCaseView
|
import com.zhjt.mogo_core_function_devatools.badcase.biz.BadCaseView
|
||||||
@@ -55,6 +58,9 @@ internal object BadCaseManager : LifecycleEventObserver {
|
|||||||
@Volatile
|
@Volatile
|
||||||
private var dismissJob: Job? = null
|
private var dismissJob: Job? = null
|
||||||
|
|
||||||
|
@Volatile
|
||||||
|
private var feedbackFloatShow = false
|
||||||
|
|
||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
private var channel: Channel<AutoPilotRecord> = Channel(Channel.RENDEZVOUS)
|
private var channel: Channel<AutoPilotRecord> = Channel(Channel.RENDEZVOUS)
|
||||||
get() = if (field.isClosedForReceive || field.isClosedForSend) {
|
get() = if (field.isClosedForReceive || field.isClosedForSend) {
|
||||||
@@ -89,6 +95,19 @@ internal object BadCaseManager : LifecycleEventObserver {
|
|||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
private fun register() {
|
private fun register() {
|
||||||
scope?.launch(Dispatchers.Default) {
|
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) {
|
while (true) {
|
||||||
CallerLogger.d("$M_DEVA$TAG", "---- 开始监听BadCase事件 ----")
|
CallerLogger.d("$M_DEVA$TAG", "---- 开始监听BadCase事件 ----")
|
||||||
val old = record
|
val old = record
|
||||||
@@ -172,6 +191,9 @@ internal object BadCaseManager : LifecycleEventObserver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun onReceiveBadCaseRecord(record: RecordPanelOuterClass.RecordPanel) {
|
fun onReceiveBadCaseRecord(record: RecordPanelOuterClass.RecordPanel) {
|
||||||
|
if (feedbackFloatShow) {
|
||||||
|
return
|
||||||
|
}
|
||||||
scope?.launch {
|
scope?.launch {
|
||||||
val newRecord = record.toRecord()
|
val newRecord = record.toRecord()
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
|
|||||||
@@ -118,6 +118,11 @@ internal fun Context.pop(content: View, width: Int, height: Int, fitSystemWindow
|
|||||||
}
|
}
|
||||||
pop.contentView = content
|
pop.contentView = content
|
||||||
val reminder = object : PopupWindowReminder(pop) {
|
val reminder = object : PopupWindowReminder(pop) {
|
||||||
|
|
||||||
|
override fun key(): String {
|
||||||
|
return "FeedBackFloatWindow_" + super.key()
|
||||||
|
}
|
||||||
|
|
||||||
override fun show() {
|
override fun show() {
|
||||||
pop.showAtLocation(activity.window.decorView, Gravity.START, 0, if (fitSystemWindow) WindowUtils.getStatusBarHeight(activity) else 0)
|
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.content.Context
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Log
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.widget.TextView
|
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.function.call.devatools.CallerDevaToolsManager
|
||||||
import com.mogo.eagle.core.utilcode.kotlin.*
|
import com.mogo.eagle.core.utilcode.kotlin.*
|
||||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
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.logger.scene.SceneConstant.Companion.M_DEVA
|
||||||
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
|
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
|
||||||
import com.mogo.eagle.core.utilcode.util.KeyboardUtils
|
import com.mogo.eagle.core.utilcode.util.KeyboardUtils
|
||||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||||
import com.zhjt.mogo_core_function_devatools.R
|
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.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.repository.net.api.entity.BadCaseResponse.Reason
|
||||||
import com.zhjt.mogo_core_function_devatools.badcase.toRecord
|
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 com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import record_cache.RecordPanelOuterClass
|
import record_cache.RecordPanelOuterClass
|
||||||
|
import java.io.File
|
||||||
import java.lang.IllegalStateException
|
import java.lang.IllegalStateException
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
import java.util.*
|
||||||
import kotlin.Result.Companion
|
import kotlin.Result.Companion
|
||||||
|
|
||||||
internal object FeedbackManager {
|
internal object FeedbackManager {
|
||||||
@@ -161,8 +161,10 @@ internal object FeedbackManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun startRecordLog(record: AutoPilotRecord) {
|
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开始, 触发录制全量日志 ...")
|
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) {
|
private fun stopRecordLog(newRecord: AutoPilotRecord) {
|
||||||
|
|||||||
Reference in New Issue
Block a user