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 Original line Diff line number Diff line
@@ -25,6 +25,7 @@ import android.net.Uri;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
import java.util.Map;
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
 * 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 mResource;
    private int mDropDownResource;
    private int mDropDownResource;
    private LayoutInflater mInflater;
    private LayoutInflater mInflater;
    private final WeakHashMap<View, View[]> mHolders = new WeakHashMap<View, View[]>();


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


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


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


import java.util.WeakHashMap;

/**
/**
 * An easy adapter to map columns from a cursor to TextViews or ImageViews
 * 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
 * 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 CursorToStringConverter mCursorToStringConverter;
    private ViewBinder mViewBinder;
    private ViewBinder mViewBinder;
    private String[] mOriginalFrom;
    private String[] mOriginalFrom;
    private final WeakHashMap<View, View[]> mHolders = new WeakHashMap<View, View[]>();


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


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