class SafeMenuClickListener(
private var defaultInterval: Int = 1000,
private val onSafeClick: (MenuItem?) -> Unit
): Toolbar.OnMenuItemClickListener {
private var lastTimeClicked: Long = 0
override fun onMenuItemClick(item: MenuItem?): Boolean {
var recentClickTime: Long = lastTimeClicked
lastTimeClicked = System.currentTimeMillis()
if(System.currentTimeMillis() - recentClickTime < defaultInterval){
return false
} else{
onSafeClick(item)
return true
}
}
}
//In another kotlin file create a function
fun Toolbar.setSafeMenuClickListener(onSafeClick: (MenuItem?) -> Unit) {
val safeMenuClickListener = SafeMenuClickListener(defaultInterval = 1000,onSafeClick = ({
onSafeClick(it)
}))
setOnMenuItemClickListener(safeMenuClickListener)
}
// SetOnMenuClickListner instead of setOnMenuItemClickListner
toolbar.setOnMenuClickListner{
doSomething()
}