blob: 53b1c824bc61cc4da413b0f64ca4de7b6d08eba7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package net.lacolaco.smileessence.view.adapter
import net.lacolaco.smileessence.entity.IdObject
import java.util.*
abstract class OrderedCustomListAdapter<T : IdObject>
constructor(comparator: Comparator<Long> = Comparator { x, y -> java.lang.Long.compare(x, y) }) : CustomListAdapter<T>() {
private val treeMap: MutableMap<Long, T> = TreeMap(Collections.reverseOrder(comparator))
override val list: List<T>
@Synchronized get() = ArrayList(treeMap.values)
@Synchronized
fun add(item: T) {
treeMap.put(item.id, item)
}
@Synchronized
fun addAll(items: Collection<T>) {
for (item in items) {
treeMap.put(item.id, item)
}
}
@Synchronized
fun clear() {
treeMap.clear()
}
@Synchronized
fun remove(item: T): T {
return treeMap.remove(item.id)!!
}
}
|