From 6b0af8296009bc8b89bc98a8ec8b3afd7815ed8e Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Sun, 19 Apr 2015 11:04:32 +0200 Subject: [PATCH] HOTFIX: prevent OOM when scrolling Thumbnails --- .../android/ui/adapter/FileListListAdapter.java | 27 +++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) 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(); -- 2.11.0