diff options
author | James Rose <rosej@google.com> | 2024-04-24 09:16:54 -0700 |
---|---|---|
committer | James Rose <rosej@google.com> | 2024-04-26 13:41:42 -0700 |
commit | 343ccc223c6437863362363455ba008b5eb6e8cf (patch) | |
tree | 44c3d741fea6ab26fa827751cda47c1e541ba2e8 | |
parent | f9d1084adf075592eafbce3f3ddedfe6d58b4a52 (diff) | |
download | idea-343ccc223c6437863362363455ba008b5eb6e8cf.tar.gz |
Show message when all devices filtered out
Fixes: 336648419
Test: n/a
Change-Id: Ib5f5440ef5c0762d23fcf4bbf64f599bb3f31d36
-rw-r--r-- | intellij.android.device/src/com/android/tools/idea/adddevicedialog/DeviceTable.kt | 67 |
1 files changed, 41 insertions, 26 deletions
diff --git a/intellij.android.device/src/com/android/tools/idea/adddevicedialog/DeviceTable.kt b/intellij.android.device/src/com/android/tools/idea/adddevicedialog/DeviceTable.kt index 61d57fbc33c..860f7d581bd 100644 --- a/intellij.android.device/src/com/android/tools/idea/adddevicedialog/DeviceTable.kt +++ b/intellij.android.device/src/com/android/tools/idea/adddevicedialog/DeviceTable.kt @@ -88,34 +88,49 @@ internal fun DeviceTable( Icon("actions/previewDetails.svg", "Details", AllIcons::class.java, Modifier.size(20.dp)) } } - HorizontalSplitLayout( - first = { DeviceFilters(filterState, modifier = it) }, - second = { - Row(modifier = it) { - Table( - columns, - devices.filter(filterState::apply), - { it }, - modifier = Modifier.weight(1f), - tableSelectionState = tableSelectionState, - ) - if (showDetails) { - when (val selection = tableSelectionState.selection) { - null -> EmptyStatePanel("Select a device", Modifier.width(200.dp).fillMaxHeight()) - else -> - DeviceDetails( - selection, - filterState.apiLevelFilter.apiLevel.apiLevel, - modifier = Modifier.width(200.dp).fillMaxHeight(), - ) + if (devices.none(filterState.textFilter::apply)) { + EmptyStatePanel( + "No devices found for \"${filterState.textFilter.searchText}\".", + Modifier.fillMaxSize(), + ) + } else { + HorizontalSplitLayout( + first = { DeviceFilters(filterState, modifier = it) }, + second = { + Row(modifier = it) { + val filteredDevices = devices.filter(filterState::apply) + if (filteredDevices.isEmpty()) { + EmptyStatePanel( + "No devices found matching the current filters.", + Modifier.fillMaxSize(), + ) + } else { + Table( + columns, + filteredDevices, + { it }, + modifier = Modifier.weight(1f), + tableSelectionState = tableSelectionState, + ) + if (showDetails) { + when (val selection = tableSelectionState.selection) { + null -> EmptyStatePanel("Select a device", Modifier.width(200.dp).fillMaxHeight()) + else -> + DeviceDetails( + selection, + filterState.apiLevelFilter.apiLevel.apiLevel, + modifier = Modifier.width(200.dp).fillMaxHeight(), + ) + } + } } } - } - }, - modifier = Modifier.fillMaxSize(), - minRatio = 0.1f, - maxRatio = 0.5f, - ) + }, + modifier = Modifier.fillMaxSize(), + minRatio = 0.1f, + maxRatio = 0.5f, + ) + } } } |