1package com.android.mail.ui;
2
3import android.content.Context;
4
5import com.android.mail.R;
6import com.android.mail.analytics.Analytics;
7import com.android.mail.browse.ConversationCursor;
8import com.android.mail.preferences.MailPrefs;
9import com.android.mail.providers.Folder;
10
11/**
12 * A teaser to introduce people to the contact photo check boxes
13 */
14public class ConversationPhotoTeaserView extends ConversationTipView {
15    private final MailPrefs mMailPrefs;
16    private boolean mShown;
17
18    public ConversationPhotoTeaserView(final Context context) {
19        super(context);
20
21        mMailPrefs = MailPrefs.get(context);
22        setText(getResources().getString(R.string.conversation_photo_welcome_text));
23    }
24
25    @Override
26    protected ImageAttrSet getStartIconAttr() {
27        return new ImageAttrSet(R.drawable.ic_check_24dp,
28                R.drawable.conversation_photo_teaser_checkmark_bg, null);
29    }
30
31    @Override
32    public void onUpdate(Folder folder, ConversationCursor cursor) {
33        mShown = checkWhetherToShow();
34    }
35
36    @Override
37    public boolean getShouldDisplayInList() {
38        // show if 1) sender images are enabled 2) there are items
39        mShown = checkWhetherToShow();
40        return mShown;
41    }
42
43    private boolean checkWhetherToShow() {
44        // show if 1) sender images are disabled 2) there are items
45        return shouldShowSenderImage() && !mAdapter.isEmpty()
46                && !mMailPrefs.isConversationPhotoTeaserAlreadyShown();
47    }
48
49    @Override
50    public void onCabModeEntered() {
51        if (mShown) {
52            dismiss();
53        }
54    }
55
56    @Override
57    public void dismiss() {
58        if (mShown) {
59            mMailPrefs.setConversationPhotoTeaserAlreadyShown();
60            mShown = false;
61            Analytics.getInstance().sendEvent("list_swipe", "photo_teaser", null, 0);
62        }
63        super.dismiss();
64    }
65
66    protected boolean shouldShowSenderImage() {
67        return mMailPrefs.getShowSenderImages();
68    }
69}
70