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