1c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang/*
2c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang * Copyright (C) 2013 The Android Open Source Project
3c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang *
4c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang * Licensed under the Apache License, Version 2.0 (the "License");
5c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang * you may not use this file except in compliance with the License.
6c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang * You may obtain a copy of the License at
7c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang *
8c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang *      http://www.apache.org/licenses/LICENSE-2.0
9c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang *
10c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang * Unless required by applicable law or agreed to in writing, software
11c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang * distributed under the License is distributed on an "AS IS" BASIS,
12c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang * See the License for the specific language governing permissions and
14c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang * limitations under the License.
15c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang */
16c86b1fbcea43513ea903bb2ca14573423a72d7b5Alice Yang
17c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yangpackage com.android.mail.ui;
18c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
19079d02b6021c640213888d446434e2c925756e29Jin Caoimport android.content.Context;
20079d02b6021c640213888d446434e2c925756e29Jin Cao
21c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yangimport com.android.mail.R;
22042a530b2296487fa5899a3e871214ac4a47e3d8Andy Huangimport com.android.mail.analytics.Analytics;
23c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yangimport com.android.mail.browse.ConversationCursor;
24c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yangimport com.android.mail.preferences.MailPrefs;
25c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yangimport com.android.mail.providers.Folder;
26c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
27c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang/**
28c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang * A tip to educate users about long press to enter CAB mode.  Appears on top of conversation list.
29c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang */
30079d02b6021c640213888d446434e2c925756e29Jin Caopublic class ConversationLongPressTipView extends ConversationTipView {
31c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    private final MailPrefs mMailPrefs;
32c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    private boolean mShow;
33c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
34c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    public ConversationLongPressTipView(final Context context) {
35079d02b6021c640213888d446434e2c925756e29Jin Cao        super(context);
36c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
37c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang        mMailPrefs = MailPrefs.get(context);
38079d02b6021c640213888d446434e2c925756e29Jin Cao        setText(getResources().getString(R.string.long_press_to_select_tip));
39c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    }
40c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
41c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    @Override
420e8dc84326ad3e6d146a203538665f98dd98f688Scott Kennedy    public void onUpdate(Folder folder, ConversationCursor cursor) {
43c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang        mShow = checkWhetherToShow();
44c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    }
45c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
46c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    @Override
47c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    public boolean getShouldDisplayInList() {
48c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang        mShow = checkWhetherToShow();
49c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang        return mShow;
50c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    }
51c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
52c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    private boolean checkWhetherToShow() {
53c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang        // show if 1) sender images are disabled 2) there are items
54c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang        return !shouldShowSenderImage() && !mAdapter.isEmpty()
55c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang                && !mMailPrefs.isLongPressToSelectTipAlreadyShown();
56c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    }
57c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
58c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    @Override
59c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    public void onCabModeEntered() {
60d6522ea881e80ab849f2a88565db5a6a73e7623eScott Kennedy        if (mShow) {
61d6522ea881e80ab849f2a88565db5a6a73e7623eScott Kennedy            dismiss();
62d6522ea881e80ab849f2a88565db5a6a73e7623eScott Kennedy        }
63c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    }
64c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
65cc139833bc5829ba70244519e9870de783c41848Scott Kennedy    @Override
66c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    public void dismiss() {
67c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang        if (mShow) {
68c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang            mMailPrefs.setLongPressToSelectTipAlreadyShown();
69c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang            mShow = false;
70042a530b2296487fa5899a3e871214ac4a47e3d8Andy Huang            Analytics.getInstance().sendEvent("list_swipe", "long_press_tip", null, 0);
71c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang        }
72079d02b6021c640213888d446434e2c925756e29Jin Cao        super.dismiss();
73c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    }
74c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang
75c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    protected boolean shouldShowSenderImage() {
76c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang        return mMailPrefs.getShowSenderImages();
77c5567737cb40ca156ea89f169a23008524ebd1a4Alice Yang    }
78079d02b6021c640213888d446434e2c925756e29Jin Cao}