package org.holoeverywhere.widget; import android.database.DataSetObservable; import android.database.DataSetObserver; import android.widget.ExpandableListAdapter; public abstract class BaseExpandableListAdapter implements ExpandableListAdapter, HeterogeneousExpandableList { private final DataSetObservable mDataSetObservable = new DataSetObservable(); @Override public boolean areAllItemsEnabled() { return true; } @Override public int getChildType(int groupPosition, int childPosition) { return 0; } @Override public int getChildTypeCount() { return 1; } @Override public long getCombinedChildId(long groupId, long childId) { return 0x8000000000000000L | (groupId & 0x7FFFFFFF) << 32 | childId & 0xFFFFFFFF; } @Override public long getCombinedGroupId(long groupId) { return (groupId & 0x7FFFFFFF) << 32; } @Override public int getGroupType(int groupPosition) { return 0; } @Override public int getGroupTypeCount() { return 1; } @Override public boolean isEmpty() { return getGroupCount() == 0; } public void notifyDataSetChanged() { mDataSetObservable.notifyChanged(); } public void notifyDataSetInvalidated() { mDataSetObservable.notifyInvalidated(); } @Override public void onGroupCollapsed(int groupPosition) { } @Override public void onGroupExpanded(int groupPosition) { } @Override public void registerDataSetObserver(DataSetObserver observer) { mDataSetObservable.registerObserver(observer); } @Override public void unregisterDataSetObserver(DataSetObserver observer) { mDataSetObservable.unregisterObserver(observer); } }