diff --git a/app/src/main/java/com/geeksville/mesh/model/DebugViewModel.kt b/app/src/main/java/com/geeksville/mesh/model/DebugViewModel.kt index 161d2b6dd..236f09eb1 100644 --- a/app/src/main/java/com/geeksville/mesh/model/DebugViewModel.kt +++ b/app/src/main/java/com/geeksville/mesh/model/DebugViewModel.kt @@ -35,11 +35,13 @@ import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import java.text.DateFormat +import java.util.Date import java.util.Locale import javax.inject.Inject import com.geeksville.mesh.Portnums.PortNum import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow +import com.geeksville.mesh.repository.datastore.RadioConfigRepository data class SearchMatch( val logIndex: Int, @@ -155,6 +157,7 @@ class LogFilterManager { @HiltViewModel class DebugViewModel @Inject constructor( private val meshLogRepository: MeshLogRepository, + private val radioConfigRepository: RadioConfigRepository, ) : ViewModel(), Logging { val meshLog: StateFlow> = meshLogRepository.getAllLogs() @@ -275,10 +278,19 @@ class DebugViewModel @Inject constructor( private val TIME_FORMAT = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM) } - val presetFilters = arrayOf( - // "!xxxxxxxx", // Dynamically determine the address of the connected node (i.e., messages to us). - "!ffffffff", // broadcast - ) + PortNum.entries.map { it.name } // all apps + val presetFilters: List + get() = buildList { + // Our address if available + radioConfigRepository.myNodeInfo.value?.myNodeNum?.let { add("!%08x".format(it)) } + // broadcast + add("!ffffffff") + // decoded + add("decoded") + // today (locale-dependent short date format) + add(DateFormat.getDateInstance(DateFormat.SHORT).format(Date())) + // Each app name + addAll(PortNum.entries.map { it.name }) + } fun setSelectedLogId(id: String?) { _selectedLogId.value = id } } diff --git a/app/src/main/java/com/geeksville/mesh/ui/debug/Debug.kt b/app/src/main/java/com/geeksville/mesh/ui/debug/Debug.kt index f89e91f04..f13e5f3b2 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/debug/Debug.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/debug/Debug.kt @@ -139,7 +139,7 @@ internal fun DebugScreen( DebugSearchStateviewModelDefaults( searchState = searchState, filterTexts = filterTexts, - presetFilters = viewModel.presetFilters.asList(), + presetFilters = viewModel.presetFilters, ) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c9c75aa9e..c7d2d71cc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -165,7 +165,7 @@ Export Logs 500 last messages Filters - Active filters + Active filters (Match any) Search in logs... Clear Logs Clear