185ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein/**
285ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * Copyright (c) 2013, Google Inc.
385ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein *
485ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * Licensed under the Apache License, Version 2.0 (the "License");
585ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * you may not use this file except in compliance with the License.
685ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * You may obtain a copy of the License at
785ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein *
885ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein *     http://www.apache.org/licenses/LICENSE-2.0
985ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein *
1085ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * Unless required by applicable law or agreed to in writing, software
1185ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * distributed under the License is distributed on an "AS IS" BASIS,
1285ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1385ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * See the License for the specific language governing permissions and
1485ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * limitations under the License.
1585ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein */
1685ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
1785ea6188b3c62ede2eb0427379f050717f79562cAndrew Sappersteinpackage com.android.mail.browse;
1885ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
1985ea6188b3c62ede2eb0427379f050717f79562cAndrew Sappersteinimport android.content.Context;
2085ea6188b3c62ede2eb0427379f050717f79562cAndrew Sappersteinimport android.util.AttributeSet;
2185ea6188b3c62ede2eb0427379f050717f79562cAndrew Sappersteinimport android.widget.LinearLayout;
2285ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
23821e578a71c7015646522e729600618f0ec16fc0Tony Mantlerimport com.android.emailcommon.mail.Address;
2485ea6188b3c62ede2eb0427379f050717f79562cAndrew Sappersteinimport com.android.mail.ContactInfoSource;
25a467d40eeb9c598fc6d7cb2dbafa2a331292d23eAndrew Sappersteinimport com.android.mail.browse.MessageHeaderView.MessageHeaderViewCallbacks;
2685ea6188b3c62ede2eb0427379f050717f79562cAndrew Sappersteinimport com.android.mail.utils.VeiledAddressMatcher;
2785ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
2885ea6188b3c62ede2eb0427379f050717f79562cAndrew Sappersteinimport java.util.Map;
2985ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
3085ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein/**
3185ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * Abstract view class that must be overridden for any view that wishes to be a snap
3285ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein * header in the {@link com.android.mail.browse.ConversationContainer}.
3385ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein */
34a467d40eeb9c598fc6d7cb2dbafa2a331292d23eAndrew Sappersteinpublic abstract class SnapHeader extends LinearLayout {
3585ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
36a467d40eeb9c598fc6d7cb2dbafa2a331292d23eAndrew Sapperstein    public SnapHeader(Context context) {
3785ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein        this(context, null);
3885ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein    }
3985ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
40a467d40eeb9c598fc6d7cb2dbafa2a331292d23eAndrew Sapperstein    public SnapHeader(Context context, AttributeSet attrs) {
4185ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein        this(context, attrs, -1);
4285ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein    }
4385ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
44a467d40eeb9c598fc6d7cb2dbafa2a331292d23eAndrew Sapperstein    public SnapHeader(Context context, AttributeSet attrs, int defStyle) {
4585ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein        super(context, attrs, defStyle);
4685ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein    }
4785ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
48a467d40eeb9c598fc6d7cb2dbafa2a331292d23eAndrew Sapperstein    public abstract void initialize(ConversationAccountController accountController,
4985ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein            Map<String, Address> addressCache, MessageHeaderViewCallbacks callbacks,
50a467d40eeb9c598fc6d7cb2dbafa2a331292d23eAndrew Sapperstein            ContactInfoSource contactInfoSource, VeiledAddressMatcher veiledAddressMatcher);
5185ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
5285ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein
53a467d40eeb9c598fc6d7cb2dbafa2a331292d23eAndrew Sapperstein    public abstract void setSnappy();
5485ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein    public abstract boolean isBoundTo(ConversationOverlayItem item);
5585ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein    public abstract void unbind();
5685ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein    public abstract void refresh();
5785ea6188b3c62ede2eb0427379f050717f79562cAndrew Sapperstein}
58