From ce39da59f29d1b24ca7d9bec889254bd79ac46f7 Mon Sep 17 00:00:00 2001 From: Danny Baumann Date: Mon, 4 Apr 2016 08:44:26 +0200 Subject: Fix view index tracking. As we have a header and a footer view now, the assumption 'pref list size == child count' doesn't hold anymore. Change-Id: I1b4ab16907eea758921ccce64af01d2a73e82459 --- src/com/android/camera/ui/ListMenu.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/com/android/camera/ui/ListMenu.java b/src/com/android/camera/ui/ListMenu.java index 1e9d436a8..cb11a80f2 100644 --- a/src/com/android/camera/ui/ListMenu.java +++ b/src/com/android/camera/ui/ListMenu.java @@ -227,7 +227,7 @@ public class ListMenu extends ListView mEnabled[j] = enable; int offset = getFirstVisiblePosition(); if (offset >= 0) { - int indexInView = j - offset; + int indexInView = j + getHeaderViewsCount() - offset; if (getChildCount() > indexInView && indexInView >= 0) { getChildAt(indexInView).setEnabled(enable); } @@ -271,11 +271,9 @@ public class ListMenu extends ListView public void reloadPreference() { int count = getChildCount(); for (int i = 0; i < count; i++) { - ListPreference pref = mListItem.get(i); - if (pref != null) { - ListMenuItem listMenuItem = - (ListMenuItem) getChildAt(i); - listMenuItem.reloadPreference(); + View view = getChildAt(i); + if (view instanceof ListMenuItem) { + ((ListMenuItem) view).reloadPreference(); } } } -- cgit v1.2.3