Mercurial > dwindows
comparison android/DWindows.kt @ 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 |
comparison
equal
deleted
inserted
replaced
2754:e256bd8628ba | 2755:9477910393ac |
---|---|
4088 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter | 4088 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
4089 | 4089 |
4090 // Handle DW_CRA_SELECTED | 4090 // Handle DW_CRA_SELECTED |
4091 if((flags and 1) != 0) { | 4091 if((flags and 1) != 0) { |
4092 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true) | 4092 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true) |
4093 val position = checked.keyAt(0) | 4093 |
4094 | 4094 if(checked.size() > 0) { |
4095 adapter.model.querypos = position | 4095 val position = checked.keyAt(0) |
4096 retval = adapter.model.getRowTitle(position) | 4096 |
4097 adapter.model.querypos = position | |
4098 retval = adapter.model.getRowTitle(position) | |
4099 } else { | |
4100 adapter.model.querypos = -1 | |
4101 } | |
4097 } else { | 4102 } else { |
4098 if(adapter.model.rowdata.size == 0) { | 4103 if(adapter.model.rowdata.size == 0) { |
4099 adapter.model.querypos = -1 | 4104 adapter.model.querypos = -1 |
4100 } else { | 4105 } else { |
4101 retval = adapter.model.getRowTitle(0) | 4106 retval = adapter.model.getRowTitle(0) |
4126 if (adapter.model.querypos == position && (i + 1) < checked.size()) { | 4131 if (adapter.model.querypos == position && (i + 1) < checked.size()) { |
4127 val newpos = checked.keyAt(i + 1) | 4132 val newpos = checked.keyAt(i + 1) |
4128 | 4133 |
4129 adapter.model.querypos = newpos | 4134 adapter.model.querypos = newpos |
4130 retval = adapter.model.getRowTitle(newpos) | 4135 retval = adapter.model.getRowTitle(newpos) |
4136 break | |
4131 } | 4137 } |
4132 } | 4138 } |
4133 } else { | 4139 } else { |
4134 if (adapter.model.rowtitle.size > adapter.model.querypos) { | 4140 if (adapter.model.rowtitle.size > adapter.model.querypos) { |
4135 adapter.model.querypos += 1 | 4141 adapter.model.querypos += 1 |
4151 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter | 4157 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter |
4152 | 4158 |
4153 // Handle DW_CRA_SELECTED | 4159 // Handle DW_CRA_SELECTED |
4154 if((flags and 1) != 0) { | 4160 if((flags and 1) != 0) { |
4155 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true) | 4161 val checked: SparseBooleanArray = onlyBooleanArray(cont.checkedItemPositions, true) |
4156 val position = checked.keyAt(0) | 4162 |
4157 | 4163 if(checked.size() > 0) { |
4158 adapter.model.querypos = position | 4164 val position = checked.keyAt(0) |
4159 retval = adapter.model.getRowData(position) | 4165 |
4166 adapter.model.querypos = position | |
4167 retval = adapter.model.getRowData(position) | |
4168 } else { | |
4169 adapter.model.querypos = -1 | |
4170 } | |
4160 } else { | 4171 } else { |
4161 if(adapter.model.rowdata.size == 0) { | 4172 if(adapter.model.rowdata.size == 0) { |
4162 adapter.model.querypos = -1 | 4173 adapter.model.querypos = -1 |
4163 } else { | 4174 } else { |
4164 retval = adapter.model.getRowData(0) | 4175 retval = adapter.model.getRowData(0) |
4189 if (adapter.model.querypos == position && (i + 1) < checked.size()) { | 4200 if (adapter.model.querypos == position && (i + 1) < checked.size()) { |
4190 val newpos = checked.keyAt(i + 1) | 4201 val newpos = checked.keyAt(i + 1) |
4191 | 4202 |
4192 adapter.model.querypos = newpos | 4203 adapter.model.querypos = newpos |
4193 retval = adapter.model.getRowData(newpos) | 4204 retval = adapter.model.getRowData(newpos) |
4205 break | |
4194 } | 4206 } |
4195 } | 4207 } |
4196 } else { | 4208 } else { |
4197 if (adapter.model.rowdata.size > adapter.model.querypos) { | 4209 if (adapter.model.rowdata.size > adapter.model.querypos) { |
4198 adapter.model.querypos += 1 | 4210 adapter.model.querypos += 1 |