diff options
| author | 2017-11-08 00:07:29 -0600 | |
|---|---|---|
| committer | 2017-11-08 00:07:29 -0600 | |
| commit | 70156381a7cd29f75fed664101af30e44deb7bb9 (patch) | |
| tree | 4fa0ddb7e66d738b38b697706110e064273cdd86 /app/src/main/java/com/wireguard/android/bindings/ObservableMapAdapter.java | |
| parent | Bindings: Move to a separate package (diff) | |
| download | wireguard-android-70156381a7cd29f75fed664101af30e44deb7bb9.tar.xz wireguard-android-70156381a7cd29f75fed664101af30e44deb7bb9.zip | |
Bindings: Merge bugfixes and updates
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'app/src/main/java/com/wireguard/android/bindings/ObservableMapAdapter.java')
| -rw-r--r-- | app/src/main/java/com/wireguard/android/bindings/ObservableMapAdapter.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/app/src/main/java/com/wireguard/android/bindings/ObservableMapAdapter.java b/app/src/main/java/com/wireguard/android/bindings/ObservableMapAdapter.java index da0c36a7..8e474e47 100644 --- a/app/src/main/java/com/wireguard/android/bindings/ObservableMapAdapter.java +++ b/app/src/main/java/com/wireguard/android/bindings/ObservableMapAdapter.java @@ -44,20 +44,18 @@ public class ObservableMapAdapter<K extends Comparable<K>, V> extends BaseAdapte public V getItem(final int position) { if (map == null || position < 0 || position >= map.size()) return null; - return map.get(getKeys().get(position)); + return map.get(getKey(position)); } @Override public long getItemId(final int position) { if (map == null || position < 0 || position >= map.size()) return -1; - return map.get(getKeys().get(position)).hashCode(); + return getItem(position).hashCode(); } - public int getItemPosition(final K key) { - if (map == null) - return -1; - return Collections.binarySearch(getKeys(), key); + private K getKey(final int position) { + return getKeys().get(position); } private ArrayList<K> getKeys() { @@ -66,11 +64,18 @@ public class ObservableMapAdapter<K extends Comparable<K>, V> extends BaseAdapte return keys; } + public int getPosition(final K key) { + if (map == null || key == null) + return -1; + return Collections.binarySearch(getKeys(), key); + } + @Override public View getView(final int position, final View convertView, final ViewGroup parent) { ViewDataBinding binding = DataBindingUtil.getBinding(convertView); if (binding == null) binding = DataBindingUtil.inflate(layoutInflater, layoutId, parent, false); + binding.setVariable(BR.key, getKey(position)); binding.setVariable(BR.item, getItem(position)); binding.executePendingBindings(); return binding.getRoot(); @@ -81,7 +86,7 @@ public class ObservableMapAdapter<K extends Comparable<K>, V> extends BaseAdapte return true; } - public void setMap(final ObservableSortedMap<K, V> newMap) { + void setMap(final ObservableSortedMap<K, V> newMap) { if (map != null) map.removeOnMapChangedCallback(callback); keys = null; |
