From: tobiasKaminsky Date: Sun, 19 Apr 2015 09:04:32 +0000 (+0200) Subject: HOTFIX: prevent OOM when scrolling Thumbnails X-Git-Tag: test~6^2^2~9 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/6b0af8296009bc8b89bc98a8ec8b3afd7815ed8e?ds=inline;hp=--cc HOTFIX: prevent OOM when scrolling Thumbnails --- 6b0af8296009bc8b89bc98a8ec8b3afd7815ed8e diff --git a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java index d4c1c7b2..2c1aa9e9 100644 --- a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java @@ -158,17 +158,22 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { viewType = ViewType.GRID_ITEM; } - // Create View - switch (viewType){ - case GRID_IMAGE: - view = inflator.inflate(R.layout.grid_image, null); - break; - case GRID_ITEM: - view = inflator.inflate(R.layout.grid_item, null); - break; - case LIST_ITEM: - view = inflator.inflate(R.layout.list_item, null); - break; + // create view only if differs, otherwise reuse + if (convertView == null || (convertView != null && convertView.getTag() != viewType)) { + switch (viewType) { + case GRID_IMAGE: + view = inflator.inflate(R.layout.grid_image, null); + view.setTag(ViewType.GRID_IMAGE); + break; + case GRID_ITEM: + view = inflator.inflate(R.layout.grid_item, null); + view.setTag(ViewType.GRID_ITEM); + break; + case LIST_ITEM: + view = inflator.inflate(R.layout.list_item, null); + view.setTag(ViewType.LIST_ITEM); + break; + } } view.invalidate();