197850c066b3eccdabecdd5f424735883661c12edMick Lin/* 297850c066b3eccdabecdd5f424735883661c12edMick Lin* Copyright (C) 2011-2014 The Android Open Source Project. 397850c066b3eccdabecdd5f424735883661c12edMick Lin* 497850c066b3eccdabecdd5f424735883661c12edMick Lin* Licensed under the Apache License, Version 2.0 (the "License"); 597850c066b3eccdabecdd5f424735883661c12edMick Lin* you may not use this file except in compliance with the License. 697850c066b3eccdabecdd5f424735883661c12edMick Lin* You may obtain a copy of the License at 797850c066b3eccdabecdd5f424735883661c12edMick Lin* 897850c066b3eccdabecdd5f424735883661c12edMick Lin* http://www.apache.org/licenses/LICENSE-2.0 997850c066b3eccdabecdd5f424735883661c12edMick Lin* 1097850c066b3eccdabecdd5f424735883661c12edMick Lin* Unless required by applicable law or agreed to in writing, software 1197850c066b3eccdabecdd5f424735883661c12edMick Lin* distributed under the License is distributed on an "AS IS" BASIS, 1297850c066b3eccdabecdd5f424735883661c12edMick Lin* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1397850c066b3eccdabecdd5f424735883661c12edMick Lin* See the License for the specific language governing permissions and 1497850c066b3eccdabecdd5f424735883661c12edMick Lin* limitations under the License. 1597850c066b3eccdabecdd5f424735883661c12edMick Lin*/ 1697850c066b3eccdabecdd5f424735883661c12edMick Lin 1797850c066b3eccdabecdd5f424735883661c12edMick Linpackage com.android.internal.widget; 1897850c066b3eccdabecdd5f424735883661c12edMick Lin 1997850c066b3eccdabecdd5f424735883661c12edMick Linimport android.content.Context; 2097850c066b3eccdabecdd5f424735883661c12edMick Linimport android.graphics.drawable.Drawable; 2197850c066b3eccdabecdd5f424735883661c12edMick Linimport android.view.View; 2297850c066b3eccdabecdd5f424735883661c12edMick Linimport android.view.ViewGroup; 2397850c066b3eccdabecdd5f424735883661c12edMick Linimport android.widget.BaseAdapter; 2497850c066b3eccdabecdd5f424735883661c12edMick Lin 2597850c066b3eccdabecdd5f424735883661c12edMick Linimport java.util.List; 2697850c066b3eccdabecdd5f424735883661c12edMick Lin 2797850c066b3eccdabecdd5f424735883661c12edMick Linpublic class AccountViewAdapter extends BaseAdapter { 2897850c066b3eccdabecdd5f424735883661c12edMick Lin 2997850c066b3eccdabecdd5f424735883661c12edMick Lin private List<AccountElements> mData; 3097850c066b3eccdabecdd5f424735883661c12edMick Lin private Context mContext; 3197850c066b3eccdabecdd5f424735883661c12edMick Lin 3297850c066b3eccdabecdd5f424735883661c12edMick Lin /** 3397850c066b3eccdabecdd5f424735883661c12edMick Lin * Constructor 3497850c066b3eccdabecdd5f424735883661c12edMick Lin * 3597850c066b3eccdabecdd5f424735883661c12edMick Lin * @param context The context where the View associated with this Adapter is running 3697850c066b3eccdabecdd5f424735883661c12edMick Lin * @param data A list with AccountElements data type. The list contains the data of each 3797850c066b3eccdabecdd5f424735883661c12edMick Lin * account and the each member of AccountElements will correspond to one item view. 3897850c066b3eccdabecdd5f424735883661c12edMick Lin */ 3997850c066b3eccdabecdd5f424735883661c12edMick Lin public AccountViewAdapter(Context context, final List<AccountElements> data) { 4097850c066b3eccdabecdd5f424735883661c12edMick Lin mContext = context; 4197850c066b3eccdabecdd5f424735883661c12edMick Lin mData = data; 4297850c066b3eccdabecdd5f424735883661c12edMick Lin } 4397850c066b3eccdabecdd5f424735883661c12edMick Lin 4497850c066b3eccdabecdd5f424735883661c12edMick Lin @Override 4597850c066b3eccdabecdd5f424735883661c12edMick Lin public int getCount() { 4697850c066b3eccdabecdd5f424735883661c12edMick Lin return mData.size(); 4797850c066b3eccdabecdd5f424735883661c12edMick Lin } 4897850c066b3eccdabecdd5f424735883661c12edMick Lin 4997850c066b3eccdabecdd5f424735883661c12edMick Lin @Override 5097850c066b3eccdabecdd5f424735883661c12edMick Lin public Object getItem(int position) { 5197850c066b3eccdabecdd5f424735883661c12edMick Lin return mData.get(position); 5297850c066b3eccdabecdd5f424735883661c12edMick Lin } 5397850c066b3eccdabecdd5f424735883661c12edMick Lin 5497850c066b3eccdabecdd5f424735883661c12edMick Lin @Override 5597850c066b3eccdabecdd5f424735883661c12edMick Lin public long getItemId(int position) { 5697850c066b3eccdabecdd5f424735883661c12edMick Lin return position; 5797850c066b3eccdabecdd5f424735883661c12edMick Lin } 5897850c066b3eccdabecdd5f424735883661c12edMick Lin 5997850c066b3eccdabecdd5f424735883661c12edMick Lin public void updateData(final List<AccountElements> data) { 6097850c066b3eccdabecdd5f424735883661c12edMick Lin mData = data; 6197850c066b3eccdabecdd5f424735883661c12edMick Lin notifyDataSetChanged(); 6297850c066b3eccdabecdd5f424735883661c12edMick Lin } 6397850c066b3eccdabecdd5f424735883661c12edMick Lin 6497850c066b3eccdabecdd5f424735883661c12edMick Lin @Override 6597850c066b3eccdabecdd5f424735883661c12edMick Lin public View getView(int position, View convertView, ViewGroup parent) { 6697850c066b3eccdabecdd5f424735883661c12edMick Lin AccountItemView view; 6797850c066b3eccdabecdd5f424735883661c12edMick Lin if (convertView == null) { 6897850c066b3eccdabecdd5f424735883661c12edMick Lin view = new AccountItemView(mContext); 6997850c066b3eccdabecdd5f424735883661c12edMick Lin } else { 7097850c066b3eccdabecdd5f424735883661c12edMick Lin view = (AccountItemView) convertView; 7197850c066b3eccdabecdd5f424735883661c12edMick Lin } 7297850c066b3eccdabecdd5f424735883661c12edMick Lin AccountElements elements = (AccountElements) getItem(position); 7397850c066b3eccdabecdd5f424735883661c12edMick Lin view.setViewItem(elements); 7497850c066b3eccdabecdd5f424735883661c12edMick Lin return view; 7597850c066b3eccdabecdd5f424735883661c12edMick Lin } 7697850c066b3eccdabecdd5f424735883661c12edMick Lin 7797850c066b3eccdabecdd5f424735883661c12edMick Lin public static class AccountElements { 7897850c066b3eccdabecdd5f424735883661c12edMick Lin private int mIcon; 7997850c066b3eccdabecdd5f424735883661c12edMick Lin private Drawable mDrawable; 8097850c066b3eccdabecdd5f424735883661c12edMick Lin private String mName; 8197850c066b3eccdabecdd5f424735883661c12edMick Lin private String mNumber; 8297850c066b3eccdabecdd5f424735883661c12edMick Lin 8397850c066b3eccdabecdd5f424735883661c12edMick Lin /** 8497850c066b3eccdabecdd5f424735883661c12edMick Lin * Constructor 8597850c066b3eccdabecdd5f424735883661c12edMick Lin * A structure with basic element of an Account, icon, name and number 8697850c066b3eccdabecdd5f424735883661c12edMick Lin * 8797850c066b3eccdabecdd5f424735883661c12edMick Lin * @param icon Account icon id 8897850c066b3eccdabecdd5f424735883661c12edMick Lin * @param name Account name 8997850c066b3eccdabecdd5f424735883661c12edMick Lin * @param num Account number 9097850c066b3eccdabecdd5f424735883661c12edMick Lin */ 9197850c066b3eccdabecdd5f424735883661c12edMick Lin public AccountElements(int icon, String name, String number) { 9297850c066b3eccdabecdd5f424735883661c12edMick Lin this(icon, null, name, number); 9397850c066b3eccdabecdd5f424735883661c12edMick Lin } 9497850c066b3eccdabecdd5f424735883661c12edMick Lin 9597850c066b3eccdabecdd5f424735883661c12edMick Lin /** 9697850c066b3eccdabecdd5f424735883661c12edMick Lin * Constructor 9797850c066b3eccdabecdd5f424735883661c12edMick Lin * A structure with basic element of an Account, drawable, name and number 9897850c066b3eccdabecdd5f424735883661c12edMick Lin * 9997850c066b3eccdabecdd5f424735883661c12edMick Lin * @param drawable Account drawable 10097850c066b3eccdabecdd5f424735883661c12edMick Lin * @param name Account name 10197850c066b3eccdabecdd5f424735883661c12edMick Lin * @param num Account number 10297850c066b3eccdabecdd5f424735883661c12edMick Lin */ 10397850c066b3eccdabecdd5f424735883661c12edMick Lin public AccountElements(Drawable drawable, String name, String number) { 10497850c066b3eccdabecdd5f424735883661c12edMick Lin this(0, drawable, name, number); 10597850c066b3eccdabecdd5f424735883661c12edMick Lin } 10697850c066b3eccdabecdd5f424735883661c12edMick Lin 10797850c066b3eccdabecdd5f424735883661c12edMick Lin private AccountElements(int icon, Drawable drawable, String name, String number) { 10897850c066b3eccdabecdd5f424735883661c12edMick Lin mIcon = icon; 10997850c066b3eccdabecdd5f424735883661c12edMick Lin mDrawable = drawable; 11097850c066b3eccdabecdd5f424735883661c12edMick Lin mName = name; 11197850c066b3eccdabecdd5f424735883661c12edMick Lin mNumber = number; 11297850c066b3eccdabecdd5f424735883661c12edMick Lin } 11397850c066b3eccdabecdd5f424735883661c12edMick Lin 11497850c066b3eccdabecdd5f424735883661c12edMick Lin public int getIcon() { 11597850c066b3eccdabecdd5f424735883661c12edMick Lin return mIcon; 11697850c066b3eccdabecdd5f424735883661c12edMick Lin } 11797850c066b3eccdabecdd5f424735883661c12edMick Lin public String getName() { 11897850c066b3eccdabecdd5f424735883661c12edMick Lin return mName; 11997850c066b3eccdabecdd5f424735883661c12edMick Lin } 12097850c066b3eccdabecdd5f424735883661c12edMick Lin public String getNumber() { 12197850c066b3eccdabecdd5f424735883661c12edMick Lin return mNumber; 12297850c066b3eccdabecdd5f424735883661c12edMick Lin } 12397850c066b3eccdabecdd5f424735883661c12edMick Lin public Drawable getDrawable() { 12497850c066b3eccdabecdd5f424735883661c12edMick Lin return mDrawable; 12597850c066b3eccdabecdd5f424735883661c12edMick Lin } 12697850c066b3eccdabecdd5f424735883661c12edMick Lin } 12797850c066b3eccdabecdd5f424735883661c12edMick Lin} 128