From 70156381a7cd29f75fed664101af30e44deb7bb9 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Wed, 8 Nov 2017 00:07:29 -0600 Subject: Bindings: Merge bugfixes and updates Signed-off-by: Jason A. Donenfeld --- .../android/bindings/ObservableMapAdapter.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'app/src/main/java/com/wireguard/android/bindings/ObservableMapAdapter.java') 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, 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 getKeys() { @@ -66,11 +64,18 @@ public class ObservableMapAdapter, 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, V> extends BaseAdapte return true; } - public void setMap(final ObservableSortedMap newMap) { + void setMap(final ObservableSortedMap newMap) { if (map != null) map.removeOnMapChangedCallback(callback); keys = null; -- cgit v1.3-18-gd494