1ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein/*
2ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * Copyright (C) 2014 Google Inc.
3ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * Licensed to The Android Open Source Project.
4ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein *
5ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * Licensed under the Apache License, Version 2.0 (the "License");
6ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * you may not use this file except in compliance with the License.
7ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * You may obtain a copy of the License at
8ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein *
9ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein *      http://www.apache.org/licenses/LICENSE-2.0
10ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein *
11ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * Unless required by applicable law or agreed to in writing, software
12ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * distributed under the License is distributed on an "AS IS" BASIS,
13ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * See the License for the specific language governing permissions and
15ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein * limitations under the License.
16ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein */
17ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein
18ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sappersteinpackage com.android.mail.browse;
19ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein
20ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sappersteinimport android.content.Context;
21de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sappersteinimport android.graphics.drawable.Drawable;
22de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sappersteinimport android.net.Uri;
23ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sappersteinimport android.util.AttributeSet;
24ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sappersteinimport android.view.View;
25de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sappersteinimport android.widget.ImageView;
26ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sappersteinimport android.widget.QuickContactBadge;
27ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein
28de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sappersteinimport com.android.mail.R;
29ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sappersteinimport com.android.mail.analytics.Analytics;
30ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein
31de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sappersteinpublic class MessageHeaderContactBadge extends ImageView implements View.OnClickListener {
32de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein
3358aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein    private QuickContactBadge mQuickContactBadge;
34de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein
35de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein    private Drawable mDefaultAvatar;
36de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein
37ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein    public MessageHeaderContactBadge(Context context) {
38de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein        this(context, null);
39ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein    }
40ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein
41ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein    public MessageHeaderContactBadge(Context context, AttributeSet attrs) {
42de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein        this(context, attrs, 0);
43ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein    }
44ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein
45ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein    public MessageHeaderContactBadge(Context context, AttributeSet attrs, int defStyle) {
46ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein        super(context, attrs, defStyle);
47de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein
48de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein        setOnClickListener(this);
49ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein    }
50ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein
51ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein    @Override
52ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein    public void onClick(View v) {
53ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein        Analytics.getInstance().sendEvent("quick_contact", "clicked", null, 0);
5458aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein        if (mQuickContactBadge != null) {
5558aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein            mQuickContactBadge.onClick(v);
5658aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein        }
57de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein    }
58de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein
59de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein    public void setImageToDefault() {
60de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein        if (mDefaultAvatar == null) {
61de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein            mDefaultAvatar = getResources().getDrawable(R.drawable.ic_contact_picture);
62de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein        }
63de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein        setImageDrawable(mDefaultAvatar);
64de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein    }
65de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein
66de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein    public void assignContactUri(Uri contactUri) {
6758aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein        if (mQuickContactBadge != null) {
6858aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein            mQuickContactBadge.assignContactUri(contactUri);
6958aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein        }
70de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein    }
71de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein
72de40dd3a292531c7dd8a5741eb0980f666a88b84Andrew Sapperstein    public void assignContactFromEmail(String emailAddress, boolean lazyLookup) {
7358aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein        if (mQuickContactBadge != null) {
7458aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein            mQuickContactBadge.assignContactFromEmail(emailAddress, lazyLookup);
7558aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein        }
7658aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein    }
7758aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein
7858aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein    public void setQuickContactBadge(QuickContactBadge quickContactBadge) {
7958aea286155200751000d5ceefbfa3d6f55fe68dAndrew Sapperstein        mQuickContactBadge = quickContactBadge;
80ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein    }
81ab3837c008df53d445a3fb87f739e7e6400848c2Andrew Sapperstein}
82