1 /* 2 * Copyright (C) 2011-2014 The Android Open Source Project. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.internal.widget; 18 19 import android.content.Context; 20 import android.graphics.drawable.Drawable; 21 import android.view.View; 22 import android.view.ViewGroup; 23 import android.widget.BaseAdapter; 24 25 import java.util.List; 26 27 public class AccountViewAdapter extends BaseAdapter { 28 29 private List<AccountElements> mData; 30 private Context mContext; 31 32 /** 33 * Constructor 34 * 35 * @param context The context where the View associated with this Adapter is running 36 * @param data A list with AccountElements data type. The list contains the data of each 37 * account and the each member of AccountElements will correspond to one item view. 38 */ 39 public AccountViewAdapter(Context context, final List<AccountElements> data) { 40 mContext = context; 41 mData = data; 42 } 43 44 @Override 45 public int getCount() { 46 return mData.size(); 47 } 48 49 @Override 50 public Object getItem(int position) { 51 return mData.get(position); 52 } 53 54 @Override 55 public long getItemId(int position) { 56 return position; 57 } 58 59 public void updateData(final List<AccountElements> data) { 60 mData = data; 61 notifyDataSetChanged(); 62 } 63 64 @Override 65 public View getView(int position, View convertView, ViewGroup parent) { 66 AccountItemView view; 67 if (convertView == null) { 68 view = new AccountItemView(mContext); 69 } else { 70 view = (AccountItemView) convertView; 71 } 72 AccountElements elements = (AccountElements) getItem(position); 73 view.setViewItem(elements); 74 return view; 75 } 76 77 public static class AccountElements { 78 private int mIcon; 79 private Drawable mDrawable; 80 private String mName; 81 private String mNumber; 82 83 /** 84 * Constructor 85 * A structure with basic element of an Account, icon, name and number 86 * 87 * @param icon Account icon id 88 * @param name Account name 89 * @param num Account number 90 */ 91 public AccountElements(int icon, String name, String number) { 92 this(icon, null, name, number); 93 } 94 95 /** 96 * Constructor 97 * A structure with basic element of an Account, drawable, name and number 98 * 99 * @param drawable Account drawable 100 * @param name Account name 101 * @param num Account number 102 */ 103 public AccountElements(Drawable drawable, String name, String number) { 104 this(0, drawable, name, number); 105 } 106 107 private AccountElements(int icon, Drawable drawable, String name, String number) { 108 mIcon = icon; 109 mDrawable = drawable; 110 mName = name; 111 mNumber = number; 112 } 113 114 public int getIcon() { 115 return mIcon; 116 } 117 public String getName() { 118 return mName; 119 } 120 public String getNumber() { 121 return mNumber; 122 } 123 public Drawable getDrawable() { 124 return mDrawable; 125 } 126 } 127 } 128