don't use a Set to keep protest_image views for which click listener has been set; could be a leak; use keyed tag instead

Change-Id: I0860708a6c7f9dd576eaf3f382eefad9a6f7545a
This commit is contained in:
Axel Uhl committed 2016-04-25 10:12:26 +02:00
1 parent f7cf2d0ec8
commit 3cc6706e71
2 files changed
+4 -5

No files matched your search

@@ -4,5 +4,6 @@
<item name="drag_handle" type="id" />
<item name="fling_remove" type="id" />
<item name="click_remove" type="id" />
<item name="protest_flag_image_click_listener" type="id" />
</resources>
@@ -6,7 +6,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -80,7 +79,6 @@ public class ManagedRaceListAdapter extends ArrayAdapter<RaceListDataType> imple
private TextView boat_class;
private TextView fleet_series;
private ImageView protest_image;
private final Set<ImageView> protestFlagsWithClickListenerSet;
private ImageView has_dependent_races;
private SimpleDateFormat dateFormat;
private RaceListDataType mSelectedRace;
@@ -93,7 +91,6 @@ public class ManagedRaceListAdapter extends ArrayAdapter<RaceListDataType> imple
public ManagedRaceListAdapter(Context context, Set<ManagedRace> allRaces) {
super(context, 0);
protestFlagsWithClickListenerSet = new HashSet<>();
mAllRaces = allRaces;
mShownViewItems = new ArrayList<>();
this.viewItemsRaces = new HashMap<>();
@@ -175,8 +172,9 @@ public class ManagedRaceListAdapter extends ArrayAdapter<RaceListDataType> imple
fleet_series.setVisibility(View.VISIBLE);
}
protest_image.setImageDrawable(FlagsResources.getFlagDrawable(getContext(), Flags.BRAVO.name(), flag_size));
if (!protestFlagsWithClickListenerSet.contains(protest_image)) {
protestFlagsWithClickListenerSet.add(protest_image);
if (protest_image.getTag(R.id.protest_flag_image_click_listener) == null ||
protest_image.getTag(R.id.protest_flag_image_click_listener) != Boolean.TRUE) {
protest_image.setTag(R.id.protest_flag_image_click_listener, Boolean.TRUE);
protest_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {