ContactsRequest.java revision f48efd72289c1725f00550f09167f5cfc05e9bfd
11ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov/*
21ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project
31ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov *
41ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License");
51ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * you may not use this file except in compliance with the License.
61ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * You may obtain a copy of the License at
71ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov *
81ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov *      http://www.apache.org/licenses/LICENSE-2.0
91ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov *
101ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * Unless required by applicable law or agreed to in writing, software
111ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS,
121ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * See the License for the specific language governing permissions and
141ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * limitations under the License.
151ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov */
161ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
171ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikovpackage com.android.contacts.list;
181ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
191ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikovimport android.content.Intent;
2027b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikovimport android.net.Uri;
211ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikovimport android.os.Parcel;
221ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikovimport android.os.Parcelable;
231ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
241ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov/**
251ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov * Parsed form of the intent sent to the Contacts application.
261ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov */
27f48efd72289c1725f00550f09167f5cfc05e9bfdBrian Attwellpublic class ContactsRequest {
281ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
291ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Default mode: browse contacts */
301ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_DEFAULT = 10;
311ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
3248cc25047d2c61828e9137c50b3496feada7a175Dmitri Plotnikov    /** Show all contacts */
3348cc25047d2c61828e9137c50b3496feada7a175Dmitri Plotnikov    public static final int ACTION_ALL_CONTACTS = 15;
3448cc25047d2c61828e9137c50b3496feada7a175Dmitri Plotnikov
3591ab5b436ebf12e29fdf3e19b3ea195287fcc1d9Dmitri Plotnikov    /** Show all contacts with phone numbers */
3691ab5b436ebf12e29fdf3e19b3ea195287fcc1d9Dmitri Plotnikov    public static final int ACTION_CONTACTS_WITH_PHONES = 17;
3791ab5b436ebf12e29fdf3e19b3ea195287fcc1d9Dmitri Plotnikov
381ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show contents of a specific group */
391ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_GROUP = 20;
401ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
411ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show all starred contacts */
421ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_STARRED = 30;
431ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
441ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show frequently contacted contacts */
451ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_FREQUENT = 40;
461ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
471ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show starred and the frequent */
481ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_STREQUENT = 50;
491ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
501ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show all contacts and pick them when clicking */
511ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_PICK_CONTACT = 60;
521ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
531ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show all contacts as well as the option to create a new one */
541ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_PICK_OR_CREATE_CONTACT = 70;
551ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
561ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show all contacts and pick them for edit when clicking, and allow creating a new contact */
571ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_INSERT_OR_EDIT_CONTACT = 80;
581ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
591ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show all phone numbers and pick them when clicking */
601ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_PICK_PHONE = 90;
611ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
621ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show all postal addresses and pick them when clicking */
631ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_PICK_POSTAL = 100;
641ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
65c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    /** Show all postal addresses and pick them when clicking */
66c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    public static final int ACTION_PICK_EMAIL = 105;
67c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann
681ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show all contacts and create a shortcut for the picked contact */
691ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_CREATE_SHORTCUT_CONTACT = 110;
701ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
711ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show all phone numbers and create a call shortcut for the picked number */
721ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_CREATE_SHORTCUT_CALL = 120;
731ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
741ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    /** Show all phone numbers and create an SMS shortcut for the picked number */
751ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public static final int ACTION_CREATE_SHORTCUT_SMS = 130;
761ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
7727b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov    /** Show all contacts and activate the specified one */
7827b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov    public static final int ACTION_VIEW_CONTACT = 140;
7927b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov
8081cc3b3d09d9296e521ac3454ad01c6b6c2ba71bBrian Attwell    /** Show contacts recommended for joining with a specified target contact */
8181cc3b3d09d9296e521ac3454ad01c6b6c2ba71bBrian Attwell    public static final int ACTION_PICK_JOIN = 150;
8281cc3b3d09d9296e521ac3454ad01c6b6c2ba71bBrian Attwell
831ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    private boolean mValid = true;
841ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    private int mActionCode = ACTION_DEFAULT;
851ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    private Intent mRedirectIntent;
861ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    private CharSequence mTitle;
871ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    private boolean mSearchMode;
881ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    private String mQueryString;
890a4d2258411478c7c78790cd55ba25c99f588c26Dave Santoro    private boolean mIncludeProfile;
901ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    private boolean mLegacyCompatibilityMode;
911c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov    private boolean mDirectorySearchEnabled = true;
9227b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov    private Uri mContactUri;
931ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
946d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki    @Override
956d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki    public String toString() {
966d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki        return "{ContactsRequest:mValid=" + mValid
976d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + " mActionCode=" + mActionCode
986d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + " mRedirectIntent=" + mRedirectIntent
996d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + " mTitle=" + mTitle
1006d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + " mSearchMode=" + mSearchMode
1016d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + " mQueryString=" + mQueryString
1026d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + " mIncludeProfile=" + mIncludeProfile
1036d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + " mLegacyCompatibilityMode=" + mLegacyCompatibilityMode
1046d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + " mDirectorySearchEnabled=" + mDirectorySearchEnabled
1056d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + " mContactUri=" + mContactUri
1066d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki                + "}";
1076d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki    }
1086d9befe1de956c50e31e4d1c22809fe9826f680cMakoto Onuki
1091ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public boolean isValid() {
1101ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        return mValid;
1111ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1121ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1131ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public void setValid(boolean flag) {
1141ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        mValid = flag;
1151ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1161ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1171ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public Intent getRedirectIntent() {
1181ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        return mRedirectIntent;
1191ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1201ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1211ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public void setRedirectIntent(Intent intent) {
1221ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        mRedirectIntent = intent;
1231ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1241ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1251ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public void setActivityTitle(CharSequence title) {
1261ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        mTitle = title;
1271ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1281ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1291ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public CharSequence getActivityTitle() {
1301ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        return mTitle;
1311ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1321ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1331ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public int getActionCode() {
1341ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        return mActionCode;
1351ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1361ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1371ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public void setActionCode(int actionCode) {
1381ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        mActionCode = actionCode;
1391ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1401ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1411ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public boolean isSearchMode() {
1421ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        return mSearchMode;
1431ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1441ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1451ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public void setSearchMode(boolean flag) {
1461ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        mSearchMode = flag;
1471ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1481ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1491ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public String getQueryString() {
1501ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        return mQueryString;
1511ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1521ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1531ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public void setQueryString(String string) {
1541ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        mQueryString = string;
1551ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1561ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1570a4d2258411478c7c78790cd55ba25c99f588c26Dave Santoro    public boolean shouldIncludeProfile() {
1580a4d2258411478c7c78790cd55ba25c99f588c26Dave Santoro        return mIncludeProfile;
1590a4d2258411478c7c78790cd55ba25c99f588c26Dave Santoro    }
1600a4d2258411478c7c78790cd55ba25c99f588c26Dave Santoro
1610a4d2258411478c7c78790cd55ba25c99f588c26Dave Santoro    public void setIncludeProfile(boolean includeProfile) {
1620a4d2258411478c7c78790cd55ba25c99f588c26Dave Santoro        mIncludeProfile = includeProfile;
1630a4d2258411478c7c78790cd55ba25c99f588c26Dave Santoro    }
1640a4d2258411478c7c78790cd55ba25c99f588c26Dave Santoro
1651ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public boolean isLegacyCompatibilityMode() {
1661ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        return mLegacyCompatibilityMode;
1671ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1681ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1691ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public void setLegacyCompatibilityMode(boolean flag) {
1701ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        mLegacyCompatibilityMode = flag;
1711ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1721c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov
1731c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov    /**
1741c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov     * Determines whether this search request should include directories or
1751c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov     * is limited to local contacts only.
1761c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov     */
1771c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov    public boolean isDirectorySearchEnabled() {
1781c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov        return mDirectorySearchEnabled;
1791c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov    }
1801c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov
1811c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov    public void setDirectorySearchEnabled(boolean flag) {
1821c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov        mDirectorySearchEnabled = flag;
1831c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov    }
18427b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov
18527b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov    public Uri getContactUri() {
18627b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov        return mContactUri;
18727b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov    }
18827b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov
18927b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov    public void setContactUri(Uri contactUri) {
19027b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov        this.mContactUri = contactUri;
19127b97bca14c84b3f830c7a433e14ae5c180a32c3Dmitri Plotnikov    }
1921ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov}
193