SpamWarningView.java revision c59dd8270215f97d39697dae9e69976bcfe3642b
1package com.android.mail.browse; 2 3import android.content.Context; 4import android.util.AttributeSet; 5import android.view.View; 6import android.view.View.OnClickListener; 7import android.widget.ImageView; 8import android.widget.RelativeLayout; 9import android.widget.TextView; 10 11import com.android.mail.R; 12import com.android.mail.providers.Address; 13import com.android.mail.providers.Message; 14import com.android.mail.providers.UIProvider; 15import com.android.mail.utils.Utils; 16 17public class SpamWarningView extends RelativeLayout implements OnClickListener { 18 private ImageView mSpamWarningIcon; 19 private TextView mSpamWarningText; 20 private TextView mSpamWarningLink; 21 private final int mHighWarningColor; 22 private final int mLowWarningColor; 23 24 public SpamWarningView(Context context) { 25 this(context, null); 26 } 27 28 public SpamWarningView(Context context, AttributeSet attrs) { 29 super(context, attrs); 30 31 mHighWarningColor = getResources().getColor(R.color.high_spam_color); 32 mLowWarningColor = getResources().getColor(R.color.conv_header_text_light); 33 } 34 35 @Override 36 public void onFinishInflate() { 37 setOnClickListener(this); 38 39 mSpamWarningIcon = (ImageView) findViewById(R.id.spam_warning_icon); 40 mSpamWarningText = (TextView) findViewById(R.id.spam_warning_text); 41 mSpamWarningLink = (TextView) findViewById(R.id.spam_warning_link); 42 mSpamWarningLink.setOnClickListener(this); 43 } 44 45 @Override 46 public void onClick(View v) { 47 final int id = v.getId(); 48 49 switch (id) { 50 case R.id.spam_warning: 51 break; 52 case R.id.spam_warning_link: 53 // TODO - once we have final design, 54 // make clicking this text do what needs to be done 55 break; 56 } 57 58 } 59 60 public void showSpamWarning(Message message, Address sender) { 61 setVisibility(VISIBLE); 62 63 // Sets the text and adds any necessary formatting 64 // to enable the proper display. 65 final String senderAddress = sender.getAddress(); 66 final String senderDomain = senderAddress.substring(senderAddress.indexOf('@')+1); 67 mSpamWarningText.setText(Utils.convertHtmlToPlainText(String.format( 68 message.spamWarningString, senderAddress, senderDomain))); 69 70 if (message.spamWarningLevel == UIProvider.SpamWarningLevel.HIGH_WARNING) { 71 mSpamWarningText.setTextColor(mHighWarningColor); 72 mSpamWarningIcon.setImageResource(R.drawable.ic_alert_red); 73 } else { 74 mSpamWarningText.setTextColor(mLowWarningColor); 75 mSpamWarningIcon.setImageResource(R.drawable.ic_alert_grey); 76 } 77 78 // Sets the link to the appropriate text 79 // and sets visibility, if necessary. 80 final int linkType = message.spamLinkType; 81 switch (linkType) { 82 case UIProvider.SpamWarningLinkType.NO_LINK: 83 mSpamWarningLink.setVisibility(GONE); 84 break; 85 case UIProvider.SpamWarningLinkType.IGNORE_WARNING: 86 mSpamWarningLink.setVisibility(VISIBLE); 87 mSpamWarningLink.setText(R.string.ignore_spam_warning); 88 break; 89 case UIProvider.SpamWarningLinkType.REPORT_PHISHING: 90 mSpamWarningLink.setVisibility(VISIBLE); 91 mSpamWarningLink.setText(R.string.report_phishing); 92 break; 93 } 94 } 95} 96