aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2017-08-17 02:44:18 -0500
committerSamuel Holland <samuel@sholland.org>2017-08-17 02:44:18 -0500
commitf713370396c4fe759efba951fe66567c962b9a5c (patch)
tree1d1250f56c7c907bfb29ef3ba7a4b0b0cc8ed73c /app
parentConvert to using the ObservableTreeMap and its adapter (diff)
downloadwireguard-android-f713370396c4fe759efba951fe66567c962b9a5c.tar.xz
wireguard-android-f713370396c4fe759efba951fe66567c962b9a5c.zip
ObservableArrayMapAdapter: Remove
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/com/wireguard/android/BindingAdapters.java28
-rw-r--r--app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java92
2 files changed, 0 insertions, 120 deletions
diff --git a/app/src/main/java/com/wireguard/android/BindingAdapters.java b/app/src/main/java/com/wireguard/android/BindingAdapters.java
index 7e93c228..e3df7bb4 100644
--- a/app/src/main/java/com/wireguard/android/BindingAdapters.java
+++ b/app/src/main/java/com/wireguard/android/BindingAdapters.java
@@ -15,34 +15,6 @@ import android.widget.TextView;
@SuppressWarnings("unused")
public final class BindingAdapters {
@BindingAdapter({"items", "layout"})
- public static <K, V> void arrayMapBinding(final ListView view,
- final ObservableArrayMap<K, V> oldMap,
- final int oldLayoutId,
- final ObservableArrayMap<K, V> newMap,
- final int newLayoutId) {
- // Remove any existing binding when there is no new map.
- if (newMap == null) {
- view.setAdapter(null);
- return;
- }
- // The ListAdapter interface is not generic, so this cannot be checked.
- @SuppressWarnings("unchecked")
- ObservableArrayMapAdapter<K, V> adapter =
- (ObservableArrayMapAdapter<K, V>) view.getAdapter();
- // If the layout changes, any existing adapter must be replaced.
- if (newLayoutId != oldLayoutId)
- adapter = null;
- // Add a new binding if there was none, or if it must be replaced due to a layout change.
- if (adapter == null) {
- adapter = new ObservableArrayMapAdapter<>(view.getContext(), newLayoutId, newMap);
- view.setAdapter(adapter);
- } else if (newMap != oldMap) {
- // Changing the list only requires modifying the existing adapter.
- adapter.setMap(newMap);
- }
- }
-
- @BindingAdapter({"items", "layout"})
public static <T> void listBinding(final ListView view,
final ObservableList<T> oldList, final int oldLayoutId,
final ObservableList<T> newList, final int newLayoutId) {
diff --git a/app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java b/app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java
deleted file mode 100644
index dd3a380f..00000000
--- a/app/src/main/java/com/wireguard/android/ObservableArrayMapAdapter.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.wireguard.android;
-
-import android.content.Context;
-import android.databinding.DataBindingUtil;
-import android.databinding.ObservableArrayMap;
-import android.databinding.ObservableMap;
-import android.databinding.ViewDataBinding;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ListAdapter;
-
-import java.lang.ref.WeakReference;
-
-/**
- * A generic ListAdapter backed by an ObservableArrayMap.
- */
-
-class ObservableArrayMapAdapter<K, V> extends BaseAdapter implements ListAdapter {
- private final int layoutId;
- private final LayoutInflater layoutInflater;
- private ObservableArrayMap<K, V> map;
- private final OnMapChangedCallback<K, V> callback = new OnMapChangedCallback<>(this);
-
- ObservableArrayMapAdapter(final Context context, final int layoutId,
- final ObservableArrayMap<K, V> map) {
- super();
- layoutInflater = LayoutInflater.from(context);
- this.layoutId = layoutId;
- setMap(map);
- }
-
- @Override
- public int getCount() {
- return map != null ? map.size() : 0;
- }
-
- @Override
- public V getItem(final int position) {
- return map != null ? map.valueAt(position) : null;
- }
-
- @Override
- public long getItemId(final int position) {
- return getItem(position) != null ? getItem(position).hashCode() : -1;
- }
-
- @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.item, getItem(position));
- binding.executePendingBindings();
- return binding.getRoot();
- }
-
- @Override
- public boolean hasStableIds() {
- return true;
- }
-
- public void setMap(final ObservableArrayMap<K, V> newMap) {
- if (map != null)
- map.removeOnMapChangedCallback(callback);
- map = newMap;
- if (map != null) {
- map.addOnMapChangedCallback(callback);
- }
- }
-
- private static class OnMapChangedCallback<K, V>
- extends ObservableMap.OnMapChangedCallback<ObservableMap<K, V>, K, V> {
-
- private final WeakReference<ObservableArrayMapAdapter<K, V>> weakAdapter;
-
- private OnMapChangedCallback(final ObservableArrayMapAdapter<K, V> adapter) {
- super();
- weakAdapter = new WeakReference<>(adapter);
- }
-
- @Override
- public void onMapChanged(final ObservableMap<K, V> sender, final K key) {
- final ObservableArrayMapAdapter<K, V> adapter = weakAdapter.get();
- if (adapter != null)
- adapter.notifyDataSetChanged();
- else
- sender.removeOnMapChangedCallback(this);
- }
- }
-}