1f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard/*
2f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * Copyright (C) 2013 The Android Open Source Project
3f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard *
4f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * Licensed under the Apache License, Version 2.0 (the "License");
5f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * you may not use this file except in compliance with the License.
6f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * You may obtain a copy of the License at
7f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard *
8f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard *      http://www.apache.org/licenses/LICENSE-2.0
9f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard *
10f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * Unless required by applicable law or agreed to in writing, software
11f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * distributed under the License is distributed on an "AS IS" BASIS,
12f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * See the License for the specific language governing permissions and
14f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * limitations under the License.
15f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard */
16f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
17f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardpackage com.android.gallery3d.filtershow.category;
18f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
19f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.content.Context;
20f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.view.View;
21f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.view.ViewGroup;
22f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.widget.ArrayAdapter;
23f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.widget.ListView;
241a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb
25860af325f2030a03c526e8551a85230d17df7b15nicolasroardimport com.android.gallery3d.R;
26860af325f2030a03c526e8551a85230d17df7b15nicolasroardimport com.android.gallery3d.filtershow.FilterShowActivity;
27f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport com.android.gallery3d.filtershow.filters.FilterRepresentation;
283cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunkimport com.android.gallery3d.filtershow.filters.FilterTinyPlanetRepresentation;
29ce9ceff5776a9b0479c30cbeb2a9388b44df1865nicolasroardimport com.android.gallery3d.filtershow.pipeline.ImagePreset;
30f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
31f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardpublic class CategoryAdapter extends ArrayAdapter<Action> {
32f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
33f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    private static final String LOGTAG = "CategoryAdapter";
345df43365995e2929d831302a76f08f2cd50d698dJohn Reck    private int mItemHeight;
351a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    private View mContainer;
36f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    private int mItemWidth = ListView.LayoutParams.MATCH_PARENT;
371a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    private int mSelectedPosition;
381a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    int mCategory;
39acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard    private int mOrientation;
40860af325f2030a03c526e8551a85230d17df7b15nicolasroard    private boolean mShowAddButton = false;
41860af325f2030a03c526e8551a85230d17df7b15nicolasroard    private String mAddButtonText;
42f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
43f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    public CategoryAdapter(Context context, int textViewResourceId) {
44f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        super(context, textViewResourceId);
455df43365995e2929d831302a76f08f2cd50d698dJohn Reck        mItemHeight = (int) (context.getResources().getDisplayMetrics().density * 100);
46f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
47f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
48f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    public CategoryAdapter(Context context) {
49f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        this(context, 0);
50f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
51f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
5232cc4dd751569721aa19218b4d947145577060d0nicolasroard    @Override
5332cc4dd751569721aa19218b4d947145577060d0nicolasroard    public void clear() {
5432cc4dd751569721aa19218b4d947145577060d0nicolasroard        for (int i = 0; i < getCount(); i++) {
5532cc4dd751569721aa19218b4d947145577060d0nicolasroard            Action action = getItem(i);
5632cc4dd751569721aa19218b4d947145577060d0nicolasroard            action.clearBitmap();
5732cc4dd751569721aa19218b4d947145577060d0nicolasroard        }
5832cc4dd751569721aa19218b4d947145577060d0nicolasroard        super.clear();
5932cc4dd751569721aa19218b4d947145577060d0nicolasroard    }
6032cc4dd751569721aa19218b4d947145577060d0nicolasroard
61f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    public void setItemHeight(int height) {
62f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        mItemHeight = height;
63f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
64f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
65f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    public void setItemWidth(int width) {
66f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        mItemWidth = width;
67f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
68f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
69f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    @Override
70f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    public void add(Action action) {
71f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        super.add(action);
72f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        action.setAdapter(this);
73f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
74f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
751a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    public void initializeSelection(int category) {
761a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        mCategory = category;
77ed60979e64de8837dd1e2e8b2d208e34583d853cnicolasroard        mSelectedPosition = -1;
78acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        if (category == MainPanel.LOOKS) {
79acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            mSelectedPosition = 0;
80860af325f2030a03c526e8551a85230d17df7b15nicolasroard            mAddButtonText = getContext().getString(R.string.filtershow_add_button_looks);
81acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        }
82acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        if (category == MainPanel.BORDERS) {
83acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            mSelectedPosition = 0;
84acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        }
85860af325f2030a03c526e8551a85230d17df7b15nicolasroard        if (category == MainPanel.VERSIONS) {
86860af325f2030a03c526e8551a85230d17df7b15nicolasroard            mAddButtonText = getContext().getString(R.string.filtershow_add_button_versions);
87860af325f2030a03c526e8551a85230d17df7b15nicolasroard        }
881a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    }
891a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb
90f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    @Override
91f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    public View getView(int position, View convertView, ViewGroup parent) {
92f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        if (convertView == null) {
93f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard            convertView = new CategoryView(getContext());
94f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        }
95f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        CategoryView view = (CategoryView) convertView;
96acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        view.setOrientation(mOrientation);
9755a0279ee420c649606edd7815403d3ca1820c07nicolasroard        Action action = getItem(position);
9855a0279ee420c649606edd7815403d3ca1820c07nicolasroard        view.setAction(action, this);
9955a0279ee420c649606edd7815403d3ca1820c07nicolasroard        int width = mItemWidth;
1004b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard        int height = mItemHeight;
10155a0279ee420c649606edd7815403d3ca1820c07nicolasroard        if (action.getType() == Action.SPACER) {
1024b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard            if (mOrientation == CategoryView.HORIZONTAL) {
1034b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard                width = width / 2;
1044b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard            } else {
1054b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard                height = height / 2;
1064b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard            }
1074b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard        }
1084b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard        if (action.getType() == Action.ADD_ACTION
1094b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard                && mOrientation == CategoryView.VERTICAL) {
1104b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard            height = height / 2;
11155a0279ee420c649606edd7815403d3ca1820c07nicolasroard        }
112f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        view.setLayoutParams(
1134b82f6f516ae100ae7c88441f4372dda65f01179nicolasroard                new ListView.LayoutParams(width, height));
1141a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        view.setTag(position);
115acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        view.invalidate();
116f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        return view;
117f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
118f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
1191a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    public void setSelected(View v) {
1201a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        int old = mSelectedPosition;
1211a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        mSelectedPosition = (Integer) v.getTag();
1221a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        if (old != -1) {
1231a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb            invalidateView(old);
1241a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        }
1251a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        invalidateView(mSelectedPosition);
126f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
127f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
1281a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    public boolean isSelected(View v) {
1291a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        return (Integer) v.getTag() == mSelectedPosition;
1301a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    }
1311a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb
1321a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    private void invalidateView(int position) {
1331a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        View child = null;
1341a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        if (mContainer instanceof ListView) {
1351a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb            ListView lv = (ListView) mContainer;
1361a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb            child = lv.getChildAt(position - lv.getFirstVisiblePosition());
1371a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        } else {
1381a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb            CategoryTrack ct = (CategoryTrack) mContainer;
1391a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb            child = ct.getChildAt(position);
1401a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        }
1411a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        if (child != null) {
1421a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb            child.invalidate();
1431a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        }
1441a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    }
1451a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb
1461a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb    public void setContainer(View container) {
1471a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb        mContainer = container;
148f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
149f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
150f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    public void imageLoaded() {
151f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        notifyDataSetChanged();
152f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
153f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
154f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    public FilterRepresentation getTinyPlanet() {
155f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        for (int i = 0; i < getCount(); i++) {
156f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard            Action action = getItem(i);
157f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard            if (action.getRepresentation() != null
1583cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk                    && action.getRepresentation()
1593cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk                    instanceof FilterTinyPlanetRepresentation) {
160f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard                return action.getRepresentation();
161f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard            }
162f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        }
163f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        return null;
164f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
165f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard
166f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    public void removeTinyPlanet() {
167f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        for (int i = 0; i < getCount(); i++) {
168f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard            Action action = getItem(i);
169f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard            if (action.getRepresentation() != null
1703cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk                    && action.getRepresentation()
1713cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk                    instanceof FilterTinyPlanetRepresentation) {
172860af325f2030a03c526e8551a85230d17df7b15nicolasroard                super.remove(action);
173f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard                return;
174f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard            }
175f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard        }
176f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard    }
177acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard
178860af325f2030a03c526e8551a85230d17df7b15nicolasroard    @Override
179860af325f2030a03c526e8551a85230d17df7b15nicolasroard    public void remove(Action action) {
1800a24e52185c4e88dd52b8e072cf7cd1d04f74b0anicolasroard        if (!(mCategory == MainPanel.VERSIONS
1810a24e52185c4e88dd52b8e072cf7cd1d04f74b0anicolasroard                || mCategory == MainPanel.LOOKS)) {
182860af325f2030a03c526e8551a85230d17df7b15nicolasroard            return;
183860af325f2030a03c526e8551a85230d17df7b15nicolasroard        }
184860af325f2030a03c526e8551a85230d17df7b15nicolasroard        super.remove(action);
185860af325f2030a03c526e8551a85230d17df7b15nicolasroard        FilterShowActivity activity = (FilterShowActivity) getContext();
1860a24e52185c4e88dd52b8e072cf7cd1d04f74b0anicolasroard        if (mCategory == MainPanel.LOOKS) {
1870a24e52185c4e88dd52b8e072cf7cd1d04f74b0anicolasroard            activity.removeLook(action);
1880a24e52185c4e88dd52b8e072cf7cd1d04f74b0anicolasroard        } else if (mCategory == MainPanel.VERSIONS) {
1890a24e52185c4e88dd52b8e072cf7cd1d04f74b0anicolasroard            activity.removeVersion(action);
1900a24e52185c4e88dd52b8e072cf7cd1d04f74b0anicolasroard        }
191860af325f2030a03c526e8551a85230d17df7b15nicolasroard    }
192860af325f2030a03c526e8551a85230d17df7b15nicolasroard
193acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard    public void setOrientation(int orientation) {
194acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        mOrientation = orientation;
195acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard    }
196acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard
197acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard    public void reflectImagePreset(ImagePreset preset) {
198fa474a198019851ecc3824a1dfbac94cd1928efcnicolasroard        if (preset == null) {
199fa474a198019851ecc3824a1dfbac94cd1928efcnicolasroard            return;
200fa474a198019851ecc3824a1dfbac94cd1928efcnicolasroard        }
201acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        int selected = 0; // if nothing found, select "none" (first element)
202acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        FilterRepresentation rep = null;
203acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        if (mCategory == MainPanel.LOOKS) {
204acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            int pos = preset.getPositionForType(FilterRepresentation.TYPE_FX);
205acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            if (pos != -1) {
206acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard                rep = preset.getFilterRepresentation(pos);
207acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            }
208acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        } else if (mCategory == MainPanel.BORDERS) {
209acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            int pos = preset.getPositionForType(FilterRepresentation.TYPE_BORDER);
210acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            if (pos != -1) {
211acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard                rep = preset.getFilterRepresentation(pos);
212acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            }
213acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        }
214acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        if (rep != null) {
215acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            for (int i = 0; i < getCount(); i++) {
21655a0279ee420c649606edd7815403d3ca1820c07nicolasroard                FilterRepresentation itemRep = getItem(i).getRepresentation();
21755a0279ee420c649606edd7815403d3ca1820c07nicolasroard                if (itemRep == null) {
21855a0279ee420c649606edd7815403d3ca1820c07nicolasroard                    continue;
21955a0279ee420c649606edd7815403d3ca1820c07nicolasroard                }
220acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard                if (rep.getName().equalsIgnoreCase(
22155a0279ee420c649606edd7815403d3ca1820c07nicolasroard                        itemRep.getName())) {
222acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard                    selected = i;
223860dfcfa96936adf716ab89fb41ed18994fbbd71nicolasroard                    break;
224acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard                }
225acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            }
226acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        }
227acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        if (mSelectedPosition != selected) {
228acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            mSelectedPosition = selected;
229acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard            this.notifyDataSetChanged();
230acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard        }
231acc00f8fed8960b079448db8f05c3fbac8642ca4nicolasroard    }
232860af325f2030a03c526e8551a85230d17df7b15nicolasroard
233860af325f2030a03c526e8551a85230d17df7b15nicolasroard    public boolean showAddButton() {
234860af325f2030a03c526e8551a85230d17df7b15nicolasroard        return mShowAddButton;
235860af325f2030a03c526e8551a85230d17df7b15nicolasroard    }
236860af325f2030a03c526e8551a85230d17df7b15nicolasroard
237860af325f2030a03c526e8551a85230d17df7b15nicolasroard    public void setShowAddButton(boolean showAddButton) {
238860af325f2030a03c526e8551a85230d17df7b15nicolasroard        mShowAddButton = showAddButton;
239860af325f2030a03c526e8551a85230d17df7b15nicolasroard    }
240860af325f2030a03c526e8551a85230d17df7b15nicolasroard
241860af325f2030a03c526e8551a85230d17df7b15nicolasroard    public String getAddButtonText() {
242860af325f2030a03c526e8551a85230d17df7b15nicolasroard        return mAddButtonText;
243860af325f2030a03c526e8551a85230d17df7b15nicolasroard    }
244f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard}
245