Mercurial > dwindows
changeset 2613:72f1141c07aa
Android: Standardize DWContainer behavior part 2.
If single selection a single tap on a row will cause ENTER.
If multiple selection... single tap will select or deselect.
A long tap will cause CONTEXT, a double tap will cause ENTER.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 18 Jul 2021 21:21:49 +0000 |
parents | 4628c8c34125 |
children | dbcd9416e9c9 |
files | android/DWindows.kt |
diffstat | 1 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/android/DWindows.kt Sun Jul 18 20:55:45 2021 +0000 +++ b/android/DWindows.kt Sun Jul 18 21:21:49 2021 +0000 @@ -628,6 +628,8 @@ var simpleMode: Boolean = true var oddColor: Int? = null var evenColor: Int? = null + var lastClick: Long = 0 + var lastClickRow: Int = -1 override fun getCount(): Int { return model.numberOfRows() @@ -2147,10 +2149,22 @@ cont!!.setOnItemClickListener { parent, view, position, id -> val title = adapter.model.getRowTitle(position) val data = adapter.model.getRowData(position) + val now = System.currentTimeMillis() view.isSelected = !view.isSelected adapter.selectedItem = position - eventHandlerContainer(cont!!, 12, title, 0, 0, data) + // If we are single select or we got a double tap... + // Generate an ENTER event + if(cont!!.choiceMode != ListView.CHOICE_MODE_MULTIPLE || + (position == adapter.lastClickRow && + (now - adapter.lastClick) < ViewConfiguration.getDoubleTapTimeout())) { + eventHandlerContainer(cont!!, 9, title, 0, 0, data) + } else { + // If we are mutiple select, generate a SELECT event + eventHandlerContainer(cont!!, 12, title, 0, 0, data) + } + adapter.lastClick = now + adapter.lastClickRow = position } cont!!.setOnContextClickListener { if(adapter.selectedItem > -1 && adapter.selectedItem < adapter.model.numberOfRows()) { @@ -2165,7 +2179,7 @@ val title = adapter.model.getRowTitle(position) val data = adapter.model.getRowData(position) - eventHandlerContainer(cont!!, 9, title, 0, 0, data) + eventHandlerContainer(cont!!, 10, title, 0, 0, data) true } }