changeset 2755:9477910393ac

Android: Hopefully the final set of container query fixes. Missing "break" in the for loop causing only 2 possible results. Handle the case that the array has no checked items in it.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 02 Jan 2022 19:23:01 +0000
parents e256bd8628ba
children 4f09bf72b391
files android/DWindows.kt
diffstat 1 files changed, 20 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/android/DWindows.kt	Sun Jan 02 19:06:04 2022 +0000
+++ b/android/DWindows.kt	Sun Jan 02 19:23:01 2022 +0000
@@ -4090,10 +4090,15 @@
             // Handle DW_CRA_SELECTED
             if((flags and 1) != 0) {
                 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true)
-                val position = checked.keyAt(0)
-
-                adapter.model.querypos = position
-                retval = adapter.model.getRowTitle(position)
+
+                if(checked.size() > 0) {
+                    val position = checked.keyAt(0)
+
+                    adapter.model.querypos = position
+                    retval = adapter.model.getRowTitle(position)
+                } else {
+                    adapter.model.querypos = -1
+                }
             } else {
                 if(adapter.model.rowdata.size == 0) {
                     adapter.model.querypos = -1
@@ -4128,6 +4133,7 @@
 
                             adapter.model.querypos = newpos
                             retval = adapter.model.getRowTitle(newpos)
+                            break
                         }
                     }
                 } else {
@@ -4153,10 +4159,15 @@
             // Handle DW_CRA_SELECTED
             if((flags and 1) != 0) {
                 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true)
-                val position = checked.keyAt(0)
-
-                adapter.model.querypos = position
-                retval = adapter.model.getRowData(position)
+
+                if(checked.size() > 0) {
+                    val position = checked.keyAt(0)
+
+                    adapter.model.querypos = position
+                    retval = adapter.model.getRowData(position)
+                } else {
+                    adapter.model.querypos = -1
+                }
             } else {
                 if(adapter.model.rowdata.size == 0) {
                     adapter.model.querypos = -1
@@ -4191,6 +4202,7 @@
 
                             adapter.model.querypos = newpos
                             retval = adapter.model.getRowData(newpos)
+                            break
                         }
                     }
                 } else {