summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Rose <rosej@google.com>2024-04-24 09:16:54 -0700
committerJames Rose <rosej@google.com>2024-04-26 13:41:42 -0700
commit343ccc223c6437863362363455ba008b5eb6e8cf (patch)
tree44c3d741fea6ab26fa827751cda47c1e541ba2e8
parentf9d1084adf075592eafbce3f3ddedfe6d58b4a52 (diff)
downloadidea-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.kt67
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,
+ )
+ }
}
}