RecipientEntry.java revision 6ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84
16ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa/*
26ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * Copyright (C) 2011 The Android Open Source Project
36ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa *
46ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License");
56ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * you may not use this file except in compliance with the License.
66ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * You may obtain a copy of the License at
76ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa *
86ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa *      http://www.apache.org/licenses/LICENSE-2.0
96ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa *
106ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * Unless required by applicable law or agreed to in writing, software
116ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS,
126ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * See the License for the specific language governing permissions and
146ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * limitations under the License.
156ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa */
166ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
176ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawapackage com.android.ex.chips;
186ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
196ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa/**
206ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa * Represents one entry inside recipient auto-complete list.
216ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa */
226ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawapublic class RecipientListEntry {
236ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    /** Separator entry dividing two persons or groups. */
246ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public static final RecipientListEntry SEP_NORMAL = new RecipientListEntry();
256ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    /** Separator entry dividing two entries inside a person or a group. */
266ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public static final RecipientListEntry SEP_WITHIN_GROUP = new RecipientListEntry();
276ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
286ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    /**
296ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa     * True when this entry is the first entry in a group, which should have a photo and display
306ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa     * name, while the second or later entries won't.
316ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa     */
326ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    private boolean mIsFirstLevel;
336ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    private final String mDisplayName;
346ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    /** Destination for this contact entry. Would be an email address or a phone number. */
356ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    private final String mDestination;
366ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    private final int mContactId;
376ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    private final boolean mIsDivider;
386ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    private byte[] mPhotoBytes;
396ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
406ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    private RecipientListEntry() {
416ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mDisplayName = null;
426ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mDestination = null;
436ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mContactId = -1;
446ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mPhotoBytes = null;
456ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mIsDivider = true;
466ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
476ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
486ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    private RecipientListEntry(String displayName, String destination, int contactId) {
496ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mIsFirstLevel = false;
506ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mDisplayName = displayName;
516ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mDestination = destination;
526ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mContactId = contactId;
536ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mIsDivider = false;
546ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
556ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
566ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    private RecipientListEntry(
576ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa            String displayName, String destination, int contactId, byte[] photoBytes) {
586ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mIsFirstLevel = true;
596ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mDisplayName = displayName;
606ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mDestination = destination;
616ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mContactId = contactId;
626ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mIsDivider = false;
636ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        mPhotoBytes = photoBytes;
646ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
656ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
666ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public static RecipientListEntry constructTopLevelEntry(
676ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa            String displayName, String destination, int contactId, byte[] photoBytes) {
686ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        return new RecipientListEntry(displayName, destination, contactId, photoBytes);
696ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
706ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
716ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public static RecipientListEntry constructSecondLevelEntry(
726ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa            String displayName, String destination, int contactId) {
736ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        return new RecipientListEntry(displayName, destination, contactId);
746ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
756ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
766ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public String getDisplayName() {
776ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        return mDisplayName;
786ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
796ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
806ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public String getDestination() {
816ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        return mDestination;
826ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
836ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
846ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public int getContactId() {
856ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        return mContactId;
866ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
876ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
886ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public boolean isFirstLevel() {
896ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        return mIsFirstLevel;
906ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
916ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
926ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public byte[] getPhotoBytes() {
936ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        return mPhotoBytes;
946ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
956ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa
966ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    public boolean isSeparator() {
976ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa        return mIsDivider;
986ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa    }
996ac7d0c6f6db2f5af06f9f2c73f24760d4df7b84Daisuke Miyakawa}