From 5e55d196be092f4a4dcb212cf09d7a1bdab70e00 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sun, 13 Aug 2017 07:24:03 -0500 Subject: Major renaming and refactoring in activity and service Apparently "configuration" is the proper term, not "profile". Signed-off-by: Jason A. Donenfeld --- .../android/ObservableArrayMapAdapter.java | 30 ++++++++++++++-------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java') 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 extends BaseAdapter implements ListAdapter { @@ -23,8 +23,10 @@ class ObservableArrayMapAdapter extends BaseAdapter implements ListAdapter private ObservableArrayMap map; private final OnMapChangedCallback callback = new OnMapChangedCallback<>(this); - ObservableArrayMapAdapter(Context context, int layoutId, ObservableArrayMap map) { - this.layoutInflater = LayoutInflater.from(context); + ObservableArrayMapAdapter(final Context context, final int layoutId, + final ObservableArrayMap map) { + super(); + layoutInflater = LayoutInflater.from(context); this.layoutId = layoutId; setMap(map); } @@ -35,17 +37,17 @@ class ObservableArrayMapAdapter 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 extends BaseAdapter implements ListAdapter return binding.getRoot(); } - public void setMap(ObservableArrayMap newMap) { + @Override + public boolean hasStableIds() { + return true; + } + + public void setMap(final ObservableArrayMap newMap) { if (map != null) map.removeOnMapChangedCallback(callback); map = newMap; @@ -68,12 +75,13 @@ class ObservableArrayMapAdapter extends BaseAdapter implements ListAdapter private final WeakReference> weakAdapter; - private OnMapChangedCallback(ObservableArrayMapAdapter adapter) { + private OnMapChangedCallback(final ObservableArrayMapAdapter adapter) { + super(); weakAdapter = new WeakReference<>(adapter); } @Override - public void onMapChanged(ObservableMap sender, K key) { + public void onMapChanged(final ObservableMap sender, final K key) { final ObservableArrayMapAdapter adapter = weakAdapter.get(); if (adapter != null) adapter.notifyDataSetChanged(); -- cgit v1.3-18-gd494