11package com.ms.square.debugoverlay.internal.ui
22
33import android.content.ClipData
4- import android.os.Process
54import androidx.compose.animation.AnimatedVisibility
65import androidx.compose.animation.fadeIn
76import androidx.compose.animation.fadeOut
@@ -36,8 +35,6 @@ import androidx.compose.material3.IconButton
3635import androidx.compose.material3.MaterialTheme
3736import androidx.compose.material3.OutlinedTextField
3837import androidx.compose.material3.Surface
39- import androidx.compose.material3.Switch
40- import androidx.compose.material3.SwitchDefaults
4138import androidx.compose.material3.Text
4239import androidx.compose.material3.TextFieldDefaults
4340import androidx.compose.runtime.Composable
@@ -77,7 +74,6 @@ private const val TIMESTAMP_DISPLAY_LENGTH = 12 // HH:MM:SS.mmm
7774 *
7875 * Features:
7976 * - Filter by log level (V, D, I, W, E)
80- * - Toggle between all logs and current app logs
8177 * - Auto-scroll to bottom for new entries
8278 * - Manual scroll pauses auto-scroll
8379 * - Tap log entry to copy to clipboard
@@ -90,21 +86,17 @@ internal fun LogcatTabContent(modifier: Modifier = Modifier) {
9086 val logcatEntries by DebugOverlay .overlayDataRepository.logs.collectAsStateWithLifecycle(emptyList())
9187
9288 var selectedLevel by remember { mutableStateOf(LogLevel .DEBUG ) }
93- var showOnlyMyApp by remember { mutableStateOf(true ) }
9489 var isPaused by remember { mutableStateOf(false ) }
9590 var isProgrammaticScroll by remember { mutableStateOf(false ) }
9691 var searchQuery by remember { mutableStateOf(" " ) }
9792
98- val myPid = remember { Process .myPid() }
99-
100- val filteredEntries = remember(logcatEntries, selectedLevel, showOnlyMyApp, searchQuery) {
93+ val filteredEntries = remember(logcatEntries, selectedLevel, searchQuery) {
10194 logcatEntries.filter { entry ->
10295 val levelMatch = entry.level.ordinal >= selectedLevel.ordinal
103- val pidMatch = ! showOnlyMyApp || entry.pid == myPid
10496 val searchMatch = searchQuery.isBlank() ||
10597 entry.message.contains(searchQuery, ignoreCase = true ) ||
10698 entry.tag.contains(searchQuery, ignoreCase = true )
107- levelMatch && pidMatch && searchMatch
99+ levelMatch && searchMatch
108100 }
109101 }
110102
@@ -128,9 +120,7 @@ internal fun LogcatTabContent(modifier: Modifier = Modifier) {
128120
129121 LogcatFilters (
130122 selectedLevel = selectedLevel,
131- onLevelSelected = { selectedLevel = it },
132- showOnlyMyApp = showOnlyMyApp,
133- onShowOnlyMyAppChanged = { showOnlyMyApp = it }
123+ onLevelSelected = { selectedLevel = it }
134124 )
135125
136126 LogcatContent (
@@ -153,18 +143,13 @@ internal fun LogcatTabContent(modifier: Modifier = Modifier) {
153143private fun LogcatFilters (
154144 selectedLevel : LogLevel ,
155145 onLevelSelected : (LogLevel ) -> Unit ,
156- showOnlyMyApp : Boolean ,
157- onShowOnlyMyAppChanged : (Boolean ) -> Unit ,
158146 modifier : Modifier = Modifier ,
159147) {
160- val switchContentDescription = stringResource(R .string.debugoverlay_filter_my_app_description)
161-
162148 FlowRow (
163149 modifier = modifier
164150 .fillMaxWidth()
165- .padding(horizontal = 4 .dp, vertical = 4 .dp),
166- horizontalArrangement = Arrangement .spacedBy(4 .dp),
167- verticalArrangement = Arrangement .spacedBy(4 .dp)
151+ .padding(horizontal = 8 .dp, vertical = 4 .dp),
152+ horizontalArrangement = Arrangement .spacedBy(8 .dp)
168153 ) {
169154 LogLevel .entries.forEach { level ->
170155 FilterChip (
@@ -174,29 +159,6 @@ private fun LogcatFilters(
174159 onClick = { onLevelSelected(level) }
175160 )
176161 }
177-
178- Row (
179- horizontalArrangement = Arrangement .spacedBy(4 .dp),
180- verticalAlignment = Alignment .CenterVertically ,
181- modifier = Modifier .padding(start = 4 .dp)
182- ) {
183- Text (
184- text = stringResource(R .string.debugoverlay_my_app_filter),
185- style = MaterialTheme .typography.labelSmall,
186- color = MaterialTheme .colorScheme.onSurface
187- )
188- Switch (
189- checked = showOnlyMyApp,
190- onCheckedChange = onShowOnlyMyAppChanged,
191- modifier = Modifier .semantics {
192- contentDescription = switchContentDescription
193- },
194- colors = SwitchDefaults .colors(
195- checkedThumbColor = Color .White ,
196- checkedTrackColor = MaterialTheme .colorScheme.primary
197- )
198- )
199- }
200162 }
201163}
202164
0 commit comments