diff options
| author | 2017-11-07 23:34:20 -0600 | |
|---|---|---|
| committer | 2017-11-07 23:34:22 -0600 | |
| commit | 6231bb18acf53342be20470d2b175fd4bb31b9ee (patch) | |
| tree | 327751d0e0e4b8beda24a5c55615a7d7c5f53608 /app/src/main/java/com/wireguard/android/ObservableTreeMap.java | |
| parent | project: Update gradle files (diff) | |
| download | wireguard-android-6231bb18acf53342be20470d2b175fd4bb31b9ee.tar.xz wireguard-android-6231bb18acf53342be20470d2b175fd4bb31b9ee.zip | |
Bindings: Move to a separate package
These are really app-independent reusable classes. Moving them to a
separate package helps avoid polluting the main app package, and makes
them easier to upgrade.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'app/src/main/java/com/wireguard/android/ObservableTreeMap.java')
| -rw-r--r-- | app/src/main/java/com/wireguard/android/ObservableTreeMap.java | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/app/src/main/java/com/wireguard/android/ObservableTreeMap.java b/app/src/main/java/com/wireguard/android/ObservableTreeMap.java deleted file mode 100644 index db72d857..00000000 --- a/app/src/main/java/com/wireguard/android/ObservableTreeMap.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.wireguard.android; - -import android.databinding.MapChangeRegistry; -import android.databinding.ObservableMap; -import android.support.annotation.NonNull; - -import java.util.Map; -import java.util.TreeMap; - -/** - * Observable version of a TreeMap. Only notifies for changes made through methods, not iterators or - * views. This behavior is in line with that of ObservableArrayMap. - */ - -public class ObservableTreeMap<K, V> extends TreeMap<K, V> implements ObservableSortedMap<K, V> { - private transient MapChangeRegistry listeners; - - @Override - public void clear() { - super.clear(); - notifyChange(null); - } - - @Override - public void addOnMapChangedCallback( - final OnMapChangedCallback<? extends ObservableMap<K, V>, K, V> listener) { - if (listeners == null) - listeners = new MapChangeRegistry(); - listeners.add(listener); - } - - private void notifyChange(final K key) { - if (listeners != null) - listeners.notifyChange(this, key); - } - - @Override - public V put(final K key, final V value) { - final V oldValue = super.put(key, value); - notifyChange(key); - return oldValue; - } - - @Override - public void putAll(@NonNull final Map<? extends K, ? extends V> map) { - super.putAll(map); - for (final K key : map.keySet()) - notifyChange(key); - } - - @Override - public V remove(final Object key) { - final V oldValue = super.remove(key); - @SuppressWarnings("unchecked") - final K k = (K) key; - notifyChange(k); - return oldValue; - } - - @Override - public void removeOnMapChangedCallback( - final OnMapChangedCallback<? extends ObservableMap<K, V>, K, V> listener) { - if (listeners != null) - listeners.remove(listener); - } -} |
