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