summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/widget/HeaderViewListAdapter.java25
1 files changed, 20 insertions, 5 deletions
diff --git a/core/java/android/widget/HeaderViewListAdapter.java b/core/java/android/widget/HeaderViewListAdapter.java
index ca97987..e2a269e 100644
--- a/core/java/android/widget/HeaderViewListAdapter.java
+++ b/core/java/android/widget/HeaderViewListAdapter.java
@@ -31,15 +31,21 @@ import java.util.ArrayList;
*/
public class HeaderViewListAdapter implements WrapperListAdapter, Filterable {
- private ListAdapter mAdapter;
+ private final ListAdapter mAdapter;
// These two ArrayList are assumed to NOT be null.
- // They are indeed created when declared in ListView and then shared.
+ // They are indeed created when declared in ListView and then shared.
ArrayList<ListView.FixedViewInfo> mHeaderViewInfos;
ArrayList<ListView.FixedViewInfo> mFooterViewInfos;
+
+ // Used as a placeholder in case the provided info views are indeed null.
+ // Currently only used by some CTS tests, which may be removed.
+ static final ArrayList<ListView.FixedViewInfo> EMPTY_INFO_LIST =
+ new ArrayList<ListView.FixedViewInfo>();
+
boolean mAreAllFixedViewsSelectable;
- private boolean mIsFilterable;
+ private final boolean mIsFilterable;
public HeaderViewListAdapter(ArrayList<ListView.FixedViewInfo> headerViewInfos,
ArrayList<ListView.FixedViewInfo> footerViewInfos,
@@ -47,8 +53,17 @@ public class HeaderViewListAdapter implements WrapperListAdapter, Filterable {
mAdapter = adapter;
mIsFilterable = adapter instanceof Filterable;
- mHeaderViewInfos = headerViewInfos;
- mFooterViewInfos = footerViewInfos;
+ if (headerViewInfos == null) {
+ mHeaderViewInfos = EMPTY_INFO_LIST;
+ } else {
+ mHeaderViewInfos = headerViewInfos;
+ }
+
+ if (footerViewInfos == null) {
+ mFooterViewInfos = EMPTY_INFO_LIST;
+ } else {
+ mFooterViewInfos = footerViewInfos;
+ }
mAreAllFixedViewsSelectable =
areAllListInfosSelectable(mHeaderViewInfos)