1 /*** 2 * Ambient - A music player for the Android platform 3 Copyright (C) 2007 Martin Vysny 4 5 This program is free software: you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation, either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 package sk.baka.ambient.activity.search; 20 21 import java.util.List; 22 23 import sk.baka.ambient.R; 24 import sk.baka.ambient.activity.main.AbstractListController; 25 import sk.baka.ambient.views.gesturelist.GesturesListView; 26 import android.view.View; 27 import android.widget.TextView; 28 29 /*** 30 * Shows an immutable list of strings. 31 * 32 * @author Martin Vysny 33 */ 34 public class StringListController extends AbstractListController { 35 /*** 36 * Creates new controller. 37 * 38 * @param listViewId 39 * the list view id. 40 * @param mainActivity 41 * owning activity. 42 */ 43 public StringListController(final int listViewId, 44 final SearchActivity mainActivity) { 45 super(listViewId, listViewId, mainActivity); 46 } 47 48 private List<String> content = null; 49 50 /*** 51 * Sets the content and updates the list view. 52 * 53 * @param content 54 * the content. 55 */ 56 public void setContent(final List<String> content) { 57 this.content = content; 58 update(null); 59 } 60 61 @Override 62 protected void recomputeListItems() { 63 listView.getModel().getModel().clear(); 64 listView.getModel().getModel().addAll(content); 65 } 66 67 public void itemActivated(int index, Object model) { 68 ((SearchActivity) mainActivity).stringItemClicked((String) model); 69 } 70 71 public void update(GesturesListView listView, View itemView, int index, 72 Object model) { 73 final boolean highlighted = listView.getHighlight().contains(index); 74 final int bgColor; 75 if (highlighted) { 76 bgColor = highlightColor; 77 } else { 78 bgColor = 0; 79 } 80 itemView.setBackgroundColor(bgColor); 81 final TextView text = (TextView) itemView 82 .findViewById(R.id.playlist_item_text); 83 text.setText((String) model); 84 } 85 }