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