diff options
| author | 2017-08-13 07:24:03 -0500 | |
|---|---|---|
| committer | 2017-08-13 07:24:03 -0500 | |
| commit | 5e55d196be092f4a4dcb212cf09d7a1bdab70e00 (patch) | |
| tree | eb765a1b961fefdaa7ddc3cfae9cb83a09e0c031 /app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java | |
| parent | Profile: Add function to copy config from another profile (diff) | |
| download | wireguard-android-5e55d196be092f4a4dcb212cf09d7a1bdab70e00.tar.xz wireguard-android-5e55d196be092f4a4dcb212cf09d7a1bdab70e00.zip | |
Major renaming and refactoring in activity and service
Apparently "configuration" is the proper term, not "profile".
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
| -rw-r--r-- | app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java b/app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java index d2a5a4cc..dd3a380f 100644 --- a/app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java +++ b/app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java @@ -14,7 +14,7 @@ import android.widget.ListAdapter; import java.lang.ref.WeakReference; /** - * A generic ListAdapter backed by an ObservableMap. + * A generic ListAdapter backed by an ObservableArrayMap. */ class ObservableArrayMapAdapter<K, V> extends BaseAdapter implements ListAdapter { @@ -23,8 +23,10 @@ class ObservableArrayMapAdapter<K, V> extends BaseAdapter implements ListAdapter private ObservableArrayMap<K, V> map; private final OnMapChangedCallback<K, V> callback = new OnMapChangedCallback<>(this); - ObservableArrayMapAdapter(Context context, int layoutId, ObservableArrayMap<K, V> map) { - this.layoutInflater = LayoutInflater.from(context); + ObservableArrayMapAdapter(final Context context, final int layoutId, + final ObservableArrayMap<K, V> map) { + super(); + layoutInflater = LayoutInflater.from(context); this.layoutId = layoutId; setMap(map); } @@ -35,17 +37,17 @@ class ObservableArrayMapAdapter<K, V> extends BaseAdapter implements ListAdapter } @Override - public V getItem(int position) { - return map != null ? map.get(map.keyAt(position)) : null; + public V getItem(final int position) { + return map != null ? map.valueAt(position) : null; } @Override - public long getItemId(int position) { - return position; + public long getItemId(final int position) { + return getItem(position) != null ? getItem(position).hashCode() : -1; } @Override - public View getView(int position, View convertView, ViewGroup parent) { + 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); @@ -54,7 +56,12 @@ class ObservableArrayMapAdapter<K, V> extends BaseAdapter implements ListAdapter return binding.getRoot(); } - public void setMap(ObservableArrayMap<K, V> newMap) { + @Override + public boolean hasStableIds() { + return true; + } + + public void setMap(final ObservableArrayMap<K, V> newMap) { if (map != null) map.removeOnMapChangedCallback(callback); map = newMap; @@ -68,12 +75,13 @@ class ObservableArrayMapAdapter<K, V> extends BaseAdapter implements ListAdapter private final WeakReference<ObservableArrayMapAdapter<K, V>> weakAdapter; - private OnMapChangedCallback(ObservableArrayMapAdapter<K, V> adapter) { + private OnMapChangedCallback(final ObservableArrayMapAdapter<K, V> adapter) { + super(); weakAdapter = new WeakReference<>(adapter); } @Override - public void onMapChanged(ObservableMap<K, V> sender, K key) { + public void onMapChanged(final ObservableMap<K, V> sender, final K key) { final ObservableArrayMapAdapter<K, V> adapter = weakAdapter.get(); if (adapter != null) adapter.notifyDataSetChanged(); |
