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.text.TextUtils;
2297850c066b3eccdabecdd5f424735883661c12edMick Linimport android.util.AttributeSet;
2397850c066b3eccdabecdd5f424735883661c12edMick Linimport android.view.LayoutInflater;
2497850c066b3eccdabecdd5f424735883661c12edMick Linimport android.view.View;
2597850c066b3eccdabecdd5f424735883661c12edMick Linimport android.widget.ImageView;
2697850c066b3eccdabecdd5f424735883661c12edMick Linimport android.widget.LinearLayout;
2797850c066b3eccdabecdd5f424735883661c12edMick Linimport android.widget.TextView;
2897850c066b3eccdabecdd5f424735883661c12edMick Lin
2997850c066b3eccdabecdd5f424735883661c12edMick Linimport com.android.internal.R;
3097850c066b3eccdabecdd5f424735883661c12edMick Linimport com.android.internal.widget.AccountViewAdapter.AccountElements;
3197850c066b3eccdabecdd5f424735883661c12edMick Lin
3297850c066b3eccdabecdd5f424735883661c12edMick Lin
3397850c066b3eccdabecdd5f424735883661c12edMick Lin/**
3497850c066b3eccdabecdd5f424735883661c12edMick Lin * An LinearLayout view, to show Accounts elements.
3597850c066b3eccdabecdd5f424735883661c12edMick Lin */
3697850c066b3eccdabecdd5f424735883661c12edMick Linpublic class AccountItemView extends LinearLayout {
3797850c066b3eccdabecdd5f424735883661c12edMick Lin
3897850c066b3eccdabecdd5f424735883661c12edMick Lin    private ImageView mAccountIcon;
3997850c066b3eccdabecdd5f424735883661c12edMick Lin    private TextView mAccountName;
4097850c066b3eccdabecdd5f424735883661c12edMick Lin    private TextView mAccountNumber;
4197850c066b3eccdabecdd5f424735883661c12edMick Lin
4297850c066b3eccdabecdd5f424735883661c12edMick Lin    /**
4397850c066b3eccdabecdd5f424735883661c12edMick Lin     * Constructor.
4497850c066b3eccdabecdd5f424735883661c12edMick Lin     */
4597850c066b3eccdabecdd5f424735883661c12edMick Lin    public AccountItemView(Context context) {
4697850c066b3eccdabecdd5f424735883661c12edMick Lin        this(context, null);
4797850c066b3eccdabecdd5f424735883661c12edMick Lin    }
4897850c066b3eccdabecdd5f424735883661c12edMick Lin
4997850c066b3eccdabecdd5f424735883661c12edMick Lin    /**
5097850c066b3eccdabecdd5f424735883661c12edMick Lin     * Constructor.
5197850c066b3eccdabecdd5f424735883661c12edMick Lin     */
5297850c066b3eccdabecdd5f424735883661c12edMick Lin    public AccountItemView(Context context, AttributeSet attrs) {
5397850c066b3eccdabecdd5f424735883661c12edMick Lin        super(context, attrs);
5497850c066b3eccdabecdd5f424735883661c12edMick Lin        LayoutInflater inflator = (LayoutInflater)
5597850c066b3eccdabecdd5f424735883661c12edMick Lin                context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
5697850c066b3eccdabecdd5f424735883661c12edMick Lin        View view = inflator.inflate(R.layout.simple_account_item, null);
5797850c066b3eccdabecdd5f424735883661c12edMick Lin        addView(view);
5897850c066b3eccdabecdd5f424735883661c12edMick Lin        initViewItem(view);
5997850c066b3eccdabecdd5f424735883661c12edMick Lin    }
6097850c066b3eccdabecdd5f424735883661c12edMick Lin
6197850c066b3eccdabecdd5f424735883661c12edMick Lin    private void initViewItem(View view) {
6297850c066b3eccdabecdd5f424735883661c12edMick Lin        mAccountIcon = (ImageView)view.findViewById(android.R.id.icon);
6397850c066b3eccdabecdd5f424735883661c12edMick Lin        mAccountName = (TextView)view.findViewById(android.R.id.title);
6497850c066b3eccdabecdd5f424735883661c12edMick Lin        mAccountNumber = (TextView)view.findViewById(android.R.id.summary);
6597850c066b3eccdabecdd5f424735883661c12edMick Lin    }
6697850c066b3eccdabecdd5f424735883661c12edMick Lin
6797850c066b3eccdabecdd5f424735883661c12edMick Lin    public void setViewItem(AccountElements element) {
6897850c066b3eccdabecdd5f424735883661c12edMick Lin        Drawable drawable = element.getDrawable();
6997850c066b3eccdabecdd5f424735883661c12edMick Lin        if (drawable != null) {
7097850c066b3eccdabecdd5f424735883661c12edMick Lin            setAccountIcon(drawable);
7197850c066b3eccdabecdd5f424735883661c12edMick Lin        } else {
7297850c066b3eccdabecdd5f424735883661c12edMick Lin            setAccountIcon(element.getIcon());
7397850c066b3eccdabecdd5f424735883661c12edMick Lin        }
7497850c066b3eccdabecdd5f424735883661c12edMick Lin        setAccountName(element.getName());
7597850c066b3eccdabecdd5f424735883661c12edMick Lin        setAccountNumber(element.getNumber());
7697850c066b3eccdabecdd5f424735883661c12edMick Lin    }
7797850c066b3eccdabecdd5f424735883661c12edMick Lin
7897850c066b3eccdabecdd5f424735883661c12edMick Lin    public void setAccountIcon(int resId) {
7997850c066b3eccdabecdd5f424735883661c12edMick Lin        mAccountIcon.setImageResource(resId);
8097850c066b3eccdabecdd5f424735883661c12edMick Lin    }
8197850c066b3eccdabecdd5f424735883661c12edMick Lin
8297850c066b3eccdabecdd5f424735883661c12edMick Lin    public void setAccountIcon(Drawable drawable) {
8397850c066b3eccdabecdd5f424735883661c12edMick Lin        mAccountIcon.setBackgroundDrawable(drawable);
8497850c066b3eccdabecdd5f424735883661c12edMick Lin    }
8597850c066b3eccdabecdd5f424735883661c12edMick Lin
8697850c066b3eccdabecdd5f424735883661c12edMick Lin    public void setAccountName(String name) {
8797850c066b3eccdabecdd5f424735883661c12edMick Lin        setText(mAccountName, name);
8897850c066b3eccdabecdd5f424735883661c12edMick Lin    }
8997850c066b3eccdabecdd5f424735883661c12edMick Lin
9097850c066b3eccdabecdd5f424735883661c12edMick Lin    public void setAccountNumber(String number) {
9197850c066b3eccdabecdd5f424735883661c12edMick Lin        setText(mAccountNumber, number);
9297850c066b3eccdabecdd5f424735883661c12edMick Lin    }
9397850c066b3eccdabecdd5f424735883661c12edMick Lin
9497850c066b3eccdabecdd5f424735883661c12edMick Lin    private void setText(TextView view, String text) {
9597850c066b3eccdabecdd5f424735883661c12edMick Lin        if (TextUtils.isEmpty(text)) {
9697850c066b3eccdabecdd5f424735883661c12edMick Lin            view.setVisibility(View.GONE);
9797850c066b3eccdabecdd5f424735883661c12edMick Lin        } else {
9897850c066b3eccdabecdd5f424735883661c12edMick Lin            view.setText(text);
9997850c066b3eccdabecdd5f424735883661c12edMick Lin            view.setVisibility(View.VISIBLE);
10097850c066b3eccdabecdd5f424735883661c12edMick Lin        }
10197850c066b3eccdabecdd5f424735883661c12edMick Lin    }
10297850c066b3eccdabecdd5f424735883661c12edMick Lin}
103