172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/* 272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 Esmertec AG. 372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * you may not use this file except in compliance with the License. 772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * You may obtain a copy of the License at 872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 1072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 1172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * See the License for the specific language governing permissions and 1572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * limitations under the License. 1672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 1772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 1872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpackage com.android.mms.ui; 1972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 20d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport java.util.List; 21d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chen 2272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.content.Context; 2372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.LayoutInflater; 2472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.View; 2572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.view.ViewGroup; 2672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.ArrayAdapter; 2772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.ImageView; 2872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.TextView; 2972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 3072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport com.android.mms.R; 3172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 3272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/** 3372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * An adapter to store icons. 3472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 3572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpublic class IconListAdapter extends ArrayAdapter<IconListAdapter.IconListItem> { 3672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected LayoutInflater mInflater; 3772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private static final int mResource = R.layout.icon_list_item; 38da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen private ViewHolder mViewHolder; 3972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 40da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen static class ViewHolder { 41da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen private View mView; 42da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen private TextView mTextView; 43da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen private ImageView mImageView; 44da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen 45da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen public ViewHolder(View view) { 46da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen mView = view; 47da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen } 48da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen 49da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen public TextView getTextView() { 50da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen if (mTextView == null) { 51da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen mTextView = (TextView) mView.findViewById(R.id.text1); 52da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen } 53da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen 54da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen return mTextView; 55da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen } 56da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen 57da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen public ImageView getImageView() { 58da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen if (mImageView == null) { 59da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen mImageView = (ImageView) mView.findViewById(R.id.icon); 60da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen } 61da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen 62da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen return mImageView; 63da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen } 64da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen } 6572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public IconListAdapter(Context context, 6672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project List<IconListItem> items) { 6772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super(context, mResource, items); 6872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 6972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 7072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 7172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 7272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public View getView(int position, View convertView, ViewGroup parent) { 7372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project View view; 7472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (convertView == null) { 7572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project view = mInflater.inflate(mResource, parent, false); 76da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen mViewHolder = new ViewHolder(view); 77da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen view.setTag(mViewHolder); 7872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 7972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project view = convertView; 80da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen mViewHolder = (ViewHolder) view.getTag(); 8172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 8272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 8372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Set text field 84da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen TextView text = mViewHolder.getTextView(); 8572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project text.setText(getItem(position).getTitle()); 8672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 8772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Set resource icon 88da3bbf39e92b43124dd71c7118f8a606ace7f6c9Roger Chen ImageView image = mViewHolder.getImageView(); 8972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project image.setImageResource(getItem(position).getResource()); 9072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 9172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return view; 9272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 9372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 9472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public static class IconListItem { 9572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final String mTitle; 9672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private final int mResource; 9772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 9872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public IconListItem(String title, int resource) { 9972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mResource = resource; 10072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mTitle = title; 10172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 10272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 10372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public String getTitle() { 10472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return mTitle; 10572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 10672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 10772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public int getResource() { 10872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project return mResource; 10972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 11072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 11172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project} 112