aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2017-08-13 07:24:03 -0500
committerSamuel Holland <samuel@sholland.org>2017-08-13 07:24:03 -0500
commit5e55d196be092f4a4dcb212cf09d7a1bdab70e00 (patch)
treeeb765a1b961fefdaa7ddc3cfae9cb83a09e0c031 /app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java
parentProfile: Add function to copy config from another profile (diff)
downloadwireguard-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.java30
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();