package ca.allanwang.kau.adapters import com.mikepenz.fastadapter.FastAdapter import com.mikepenz.fastadapter.IAdapter import com.mikepenz.fastadapter.IAdapterExtension import com.mikepenz.fastadapter.IItem import com.mikepenz.fastadapter.select.SelectExtension /** * Created by Allan Wang on 2017-11-08. */ /** * Add kotlin's generic syntax to better support out types */ fun > fastAdapter(vararg adapter: IAdapter) = FastAdapter.with>(adapter.toList())!! inline fun , Item : IItem<*, *>> FastAdapter.getExtension(): T? = getExtension(T::class.java) /** * Returns selection size, or -1 if selection is disabled */ inline val > IAdapter.selectionSize: Int get() = fastAdapter.getExtension, Item>()?.selections?.size ?: -1 inline val > IAdapter.selectedItems: Set get() = fastAdapter.getExtension, Item>()?.selectedItems ?: emptySet()