Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/SimpleExpandableListAdapter.java')
-rw-r--r--android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/SimpleExpandableListAdapter.java149
1 files changed, 149 insertions, 0 deletions
diff --git a/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/SimpleExpandableListAdapter.java b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/SimpleExpandableListAdapter.java
new file mode 100644
index 0000000000..b23c516464
--- /dev/null
+++ b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/SimpleExpandableListAdapter.java
@@ -0,0 +1,149 @@
+
+package org.holoeverywhere.widget;
+
+import java.util.List;
+import java.util.Map;
+
+import org.holoeverywhere.LayoutInflater;
+
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+
+public class SimpleExpandableListAdapter extends BaseExpandableListAdapter {
+ private List<? extends List<? extends Map<String, ?>>> mChildData;
+ private String[] mChildFrom;
+ private int mChildLayout;
+ private int[] mChildTo;
+ private int mCollapsedGroupLayout;
+ private int mExpandedGroupLayout;
+ private List<? extends Map<String, ?>> mGroupData;
+ private String[] mGroupFrom;
+ private int[] mGroupTo;
+ private LayoutInflater mInflater;
+ private int mLastChildLayout;
+
+ public SimpleExpandableListAdapter(Context context,
+ List<? extends Map<String, ?>> groupData, int expandedGroupLayout,
+ int collapsedGroupLayout, String[] groupFrom, int[] groupTo,
+ List<? extends List<? extends Map<String, ?>>> childData,
+ int childLayout, int lastChildLayout, String[] childFrom,
+ int[] childTo) {
+ mGroupData = groupData;
+ mExpandedGroupLayout = expandedGroupLayout;
+ mCollapsedGroupLayout = collapsedGroupLayout;
+ mGroupFrom = groupFrom;
+ mGroupTo = groupTo;
+ mChildData = childData;
+ mChildLayout = childLayout;
+ mLastChildLayout = lastChildLayout;
+ mChildFrom = childFrom;
+ mChildTo = childTo;
+ mInflater = LayoutInflater.from(context);
+ }
+
+ public SimpleExpandableListAdapter(Context context,
+ List<? extends Map<String, ?>> groupData, int expandedGroupLayout,
+ int collapsedGroupLayout, String[] groupFrom, int[] groupTo,
+ List<? extends List<? extends Map<String, ?>>> childData,
+ int childLayout, String[] childFrom, int[] childTo) {
+ this(context, groupData, expandedGroupLayout, collapsedGroupLayout,
+ groupFrom, groupTo, childData, childLayout, childLayout,
+ childFrom, childTo);
+ }
+
+ public SimpleExpandableListAdapter(Context context,
+ List<? extends Map<String, ?>> groupData, int groupLayout,
+ String[] groupFrom, int[] groupTo,
+ List<? extends List<? extends Map<String, ?>>> childData,
+ int childLayout, String[] childFrom, int[] childTo) {
+ this(context, groupData, groupLayout, groupLayout, groupFrom, groupTo, childData,
+ childLayout, childLayout, childFrom, childTo);
+ }
+
+ private void bindView(View view, Map<String, ?> data, String[] from, int[] to) {
+ int len = to.length;
+
+ for (int i = 0; i < len; i++) {
+ TextView v = (TextView) view.findViewById(to[i]);
+ if (v != null) {
+ v.setText((String) data.get(from[i]));
+ }
+ }
+ }
+
+ @Override
+ public Object getChild(int groupPosition, int childPosition) {
+ return mChildData.get(groupPosition).get(childPosition);
+ }
+
+ @Override
+ public long getChildId(int groupPosition, int childPosition) {
+ return childPosition;
+ }
+
+ @Override
+ public int getChildrenCount(int groupPosition) {
+ return mChildData.get(groupPosition).size();
+ }
+
+ @Override
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
+ View convertView, ViewGroup parent) {
+ View v;
+ if (convertView == null) {
+ v = newChildView(isLastChild, parent);
+ } else {
+ v = convertView;
+ }
+ bindView(v, mChildData.get(groupPosition).get(childPosition), mChildFrom, mChildTo);
+ return v;
+ }
+
+ @Override
+ public Object getGroup(int groupPosition) {
+ return mGroupData.get(groupPosition);
+ }
+
+ @Override
+ public int getGroupCount() {
+ return mGroupData.size();
+ }
+
+ @Override
+ public long getGroupId(int groupPosition) {
+ return groupPosition;
+ }
+
+ @Override
+ public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
+ ViewGroup parent) {
+ View v;
+ if (convertView == null) {
+ v = newGroupView(isExpanded, parent);
+ } else {
+ v = convertView;
+ }
+ bindView(v, mGroupData.get(groupPosition), mGroupFrom, mGroupTo);
+ return v;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return true;
+ }
+
+ @Override
+ public boolean isChildSelectable(int groupPosition, int childPosition) {
+ return true;
+ }
+
+ public View newChildView(boolean isLastChild, ViewGroup parent) {
+ return mInflater.inflate(isLastChild ? mLastChildLayout : mChildLayout, parent, false);
+ }
+
+ public View newGroupView(boolean isExpanded, ViewGroup parent) {
+ return mInflater.inflate(isExpanded ? mExpandedGroupLayout : mCollapsedGroupLayout,
+ parent, false);
+ }
+}