Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7598245 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 1086 into donut

* changes:
  Fixes regression introduced in Cupcake: a couple of adapters were using setTag() to store their own data, which could interfere with the use of setTag() made by the applications. The fix is quite simple an rely on a WeakHashMap to store the holders within the adapters; using the Views as the keys of the map.
parents b1d790b6 e5b7632e
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.net.Uri;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.WeakHashMap;

/**
 * An easy adapter to map static data to views defined in an XML file. You can specify the data
@@ -57,6 +58,7 @@ public class SimpleAdapter extends BaseAdapter implements Filterable {
    private int mResource;
    private int mDropDownResource;
    private LayoutInflater mInflater;
    private final WeakHashMap<View, View[]> mHolders = new WeakHashMap<View, View[]>();

    private SimpleFilter mFilter;
    private ArrayList<Map<String, ?>> mUnfilteredData;
@@ -128,7 +130,7 @@ public class SimpleAdapter extends BaseAdapter implements Filterable {
                holder[i] = v.findViewById(to[i]);
            }

            v.setTag(holder);
            mHolders.put(v, holder);
        } else {
            v = convertView;
        }
@@ -160,7 +162,7 @@ public class SimpleAdapter extends BaseAdapter implements Filterable {
        }

        final ViewBinder binder = mViewBinder;
        final View[] holder = (View[]) view.getTag();
        final View[] holder = mHolders.get(view);
        final String[] from = mFrom;
        final int[] to = mTo;
        final int count = to.length;
+5 −2
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ import android.net.Uri;
import android.view.View;
import android.view.ViewGroup;

import java.util.WeakHashMap;

/**
 * An easy adapter to map columns from a cursor to TextViews or ImageViews
 * defined in an XML file. You can specify which columns you want, which
@@ -64,6 +66,7 @@ public class SimpleCursorAdapter extends ResourceCursorAdapter {
    private CursorToStringConverter mCursorToStringConverter;
    private ViewBinder mViewBinder;
    private String[] mOriginalFrom;
    private final WeakHashMap<View, View[]> mHolders = new WeakHashMap<View, View[]>();

    /**
     * Constructor.
@@ -106,7 +109,7 @@ public class SimpleCursorAdapter extends ResourceCursorAdapter {
        for (int i = 0; i < count; i++) {
            holder[i] = v.findViewById(to[i]);
        }
        v.setTag(holder);
        mHolders.put(v, holder);

        return v;
    }
@@ -137,7 +140,7 @@ public class SimpleCursorAdapter extends ResourceCursorAdapter {
     */
    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        final View[] holder = (View[]) view.getTag();
        final View[] holder = mHolders.get(view);
        final ViewBinder binder = mViewBinder;
        final int count = mTo.length;
        final int[] from = mFrom;