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