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 17package com.android.internal.widget; 18 19import android.content.Context; 20import android.graphics.drawable.Drawable; 21import android.text.TextUtils; 22import android.util.AttributeSet; 23import android.view.LayoutInflater; 24import android.view.View; 25import android.widget.ImageView; 26import android.widget.LinearLayout; 27import android.widget.TextView; 28 29import com.android.internal.R; 30import com.android.internal.widget.AccountViewAdapter.AccountElements; 31 32 33/** 34 * An LinearLayout view, to show Accounts elements. 35 */ 36public class AccountItemView extends LinearLayout { 37 38 private ImageView mAccountIcon; 39 private TextView mAccountName; 40 private TextView mAccountNumber; 41 42 /** 43 * Constructor. 44 */ 45 public AccountItemView(Context context) { 46 this(context, null); 47 } 48 49 /** 50 * Constructor. 51 */ 52 public AccountItemView(Context context, AttributeSet attrs) { 53 super(context, attrs); 54 LayoutInflater inflator = (LayoutInflater) 55 context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 56 View view = inflator.inflate(R.layout.simple_account_item, null); 57 addView(view); 58 initViewItem(view); 59 } 60 61 private void initViewItem(View view) { 62 mAccountIcon = (ImageView)view.findViewById(android.R.id.icon); 63 mAccountName = (TextView)view.findViewById(android.R.id.title); 64 mAccountNumber = (TextView)view.findViewById(android.R.id.summary); 65 } 66 67 public void setViewItem(AccountElements element) { 68 Drawable drawable = element.getDrawable(); 69 if (drawable != null) { 70 setAccountIcon(drawable); 71 } else { 72 setAccountIcon(element.getIcon()); 73 } 74 setAccountName(element.getName()); 75 setAccountNumber(element.getNumber()); 76 } 77 78 public void setAccountIcon(int resId) { 79 mAccountIcon.setImageResource(resId); 80 } 81 82 public void setAccountIcon(Drawable drawable) { 83 mAccountIcon.setBackgroundDrawable(drawable); 84 } 85 86 public void setAccountName(String name) { 87 setText(mAccountName, name); 88 } 89 90 public void setAccountNumber(String number) { 91 setText(mAccountNumber, number); 92 } 93 94 private void setText(TextView view, String text) { 95 if (TextUtils.isEmpty(text)) { 96 view.setVisibility(View.GONE); 97 } else { 98 view.setText(text); 99 view.setVisibility(View.VISIBLE); 100 } 101 } 102} 103