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