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

Commit 6ea03676 authored by Android (Google) Code Review's avatar Android (Google) Code Review Committed by The Android Open Source Project
Browse files

am f7598245: Merge change 1086 into donut

Merge commit 'f7598245'

* commit 'f7598245':
  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 959a4bcc f7598245
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;