19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.widget;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.DataSetObserver;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.View;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.ViewGroup;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * An adapter that links a {@link ExpandableListView} with the underlying
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * data. The implementation of this interface will provide access
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to the data of the children (categorized by groups), and also instantiate
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link View}s for children and groups.
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface ExpandableListAdapter {
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see Adapter#registerDataSetObserver(DataSetObserver)
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void registerDataSetObserver(DataSetObserver observer);
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see Adapter#unregisterDataSetObserver(DataSetObserver)
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void unregisterDataSetObserver(DataSetObserver observer);
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the number of groups.
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return the number of groups
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getGroupCount();
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the number of children in a specified group.
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition the position of the group for which the children
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            count should be returned
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return the children count in the specified group
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getChildrenCount(int groupPosition);
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the data associated with the given group.
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition the position of the group
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return the data child for the specified group
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Object getGroup(int groupPosition);
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the data associated with the given child within the given group.
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition the position of the group that the child resides in
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param childPosition the position of the child with respect to other
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            children in the group
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return the data of the child
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Object getChild(int groupPosition, int childPosition);
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the ID for the group at the given position. This group ID must be
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * unique across groups. The combined ID (see
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #getCombinedGroupId(long)}) must be unique across ALL items
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (groups and all children).
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition the position of the group for which the ID is wanted
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return the ID associated with the group
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    long getGroupId(int groupPosition);
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the ID for the given child within the given group. This ID must be
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * unique across all children within the group. The combined ID (see
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #getCombinedChildId(long, long)}) must be unique across ALL items
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (groups and all children).
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition the position of the group that contains the child
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param childPosition the position of the child within the group for which
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            the ID is wanted
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return the ID associated with the child
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    long getChildId(int groupPosition, int childPosition);
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Indicates whether the child and group IDs are stable across changes to the
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * underlying data.
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether or not the same ID always refers to the same object
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see Adapter#hasStableIds()
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean hasStableIds();
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets a View that displays the given group. This View is only for the
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * group--the Views for the group's children will be fetched using
1108340afe0f66663f032dd999e2d377564df0bb6d5Gilles Debunne     * {@link #getChildView(int, int, boolean, View, ViewGroup)}.
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition the position of the group for which the View is
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            returned
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param isExpanded whether the group is expanded or collapsed
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param convertView the old view to reuse, if possible. You should check
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            that this view is non-null and of an appropriate type before
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            using. If it is not possible to convert this view to display
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            the correct data, this method can create a new view. It is not
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            guaranteed that the convertView will have been previously
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            created by
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            {@link #getGroupView(int, boolean, View, ViewGroup)}.
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param parent the parent that this view will eventually be attached to
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return the View corresponding to the group at the specified position
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent);
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets a View that displays the data for the given child within the given
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * group.
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition the position of the group that contains the child
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param childPosition the position of the child (for which the View is
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            returned) within the group
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param isLastChild Whether the child is the last child within the group
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param convertView the old view to reuse, if possible. You should check
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            that this view is non-null and of an appropriate type before
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            using. If it is not possible to convert this view to display
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            the correct data, this method can create a new view. It is not
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            guaranteed that the convertView will have been previously
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            created by
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *            {@link #getChildView(int, int, boolean, View, ViewGroup)}.
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param parent the parent that this view will eventually be attached to
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return the View corresponding to the child at the specified position
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    View getChildView(int groupPosition, int childPosition, boolean isLastChild,
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            View convertView, ViewGroup parent);
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Whether the child at the specified position is selectable.
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition the position of the group that contains the child
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param childPosition the position of the child within the group
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return whether the child is selectable.
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isChildSelectable(int groupPosition, int childPosition);
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see ListAdapter#areAllItemsEnabled()
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean areAllItemsEnabled();
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see ListAdapter#isEmpty()
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isEmpty();
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Called when a group is expanded.
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition The group being expanded.
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void onGroupExpanded(int groupPosition);
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Called when a group is collapsed.
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupPosition The group being collapsed.
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void onGroupCollapsed(int groupPosition);
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets an ID for a child that is unique across any item (either group or
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * child) that is in this list. Expandable lists require each item (group or
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * child) to have a unique ID among all children and groups in the list.
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This method is responsible for returning that unique ID given a child's
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ID and its group's ID. Furthermore, if {@link #hasStableIds()} is true, the
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * returned ID must be stable as well.
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupId The ID of the group that contains this child.
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param childId The ID of the child.
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The unique (and possibly stable) ID of the child across all
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *         groups and children in this list.
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    long getCombinedChildId(long groupId, long childId);
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets an ID for a group that is unique across any item (either group or
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * child) that is in this list. Expandable lists require each item (group or
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * child) to have a unique ID among all children and groups in the list.
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This method is responsible for returning that unique ID given a group's
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ID. Furthermore, if {@link #hasStableIds()} is true, the returned ID must be
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * stable as well.
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param groupId The ID of the group
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The unique (and possibly stable) ID of the group across all
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *         groups and children in this list.
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    long getCombinedGroupId(long groupId);
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
210