18cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky/* 28cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * Copyright (C) 2013 The Android Open Source Project 38cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * 48cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * Licensed under the Apache License, Version 2.0 (the "License"); 58cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * you may not use this file except in compliance with the License. 68cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * You may obtain a copy of the License at 78cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * 88cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * http://www.apache.org/licenses/LICENSE-2.0 98cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * 108cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * Unless required by applicable law or agreed to in writing, software 118cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * distributed under the License is distributed on an "AS IS" BASIS, 128cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * See the License for the specific language governing permissions and 148cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * limitations under the License. 158cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky */ 168cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 178cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshanskypackage com.example.android.expandingcells; 188cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 198cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky/** 208cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * This custom object is used to populate the list adapter. It contains a reference 218cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * to an image, title, and the extra text to be displayed. Furthermore, it keeps track 228cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * of the current state (collapsed/expanded) of the corresponding item in the list, 238cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky * as well as store the height of the cell in its collapsed state. 248cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky */ 258cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshanskypublic class ExpandableListItem implements OnSizeChangedListener { 268cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 278cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky private String mTitle; 288cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky private String mText; 298cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky private boolean mIsExpanded; 308cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky private int mImgResource; 318cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky private int mCollapsedHeight; 328cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky private int mExpandedHeight; 338cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 348cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public ExpandableListItem(String title, int imgResource, int collapsedHeight, String text) { 358cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mTitle = title; 368cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mImgResource = imgResource; 378cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mCollapsedHeight = collapsedHeight; 388cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mIsExpanded = false; 398cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mText = text; 408cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mExpandedHeight = -1; 418cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 428cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 438cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public boolean isExpanded() { 448cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky return mIsExpanded; 458cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 468cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 478cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public void setExpanded(boolean isExpanded) { 488cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mIsExpanded = isExpanded; 498cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 508cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 518cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public String getTitle() { 528cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky return mTitle; 538cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 548cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 558cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public int getImgResource() { 568cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky return mImgResource; 578cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 588cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 598cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public int getCollapsedHeight() { 608cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky return mCollapsedHeight; 618cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 628cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 638cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public void setCollapsedHeight(int collapsedHeight) { 648cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mCollapsedHeight = collapsedHeight; 658cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 668cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 678cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public String getText() { 688cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky return mText; 698cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 708cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 718cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public void setText(String text) { 728cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mText = text; 738cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 748cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 758cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public int getExpandedHeight() { 768cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky return mExpandedHeight; 778cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 788cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 798cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public void setExpandedHeight(int expandedHeight) { 808cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky mExpandedHeight = expandedHeight; 818cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 828cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky 838cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky @Override 848cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky public void onSizeChanged(int newHeight) { 858cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky setExpandedHeight(newHeight); 868cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky } 878cfd63c979293145b068ffdf14a24b3ea87c7267Daniel Olshansky} 88