ContactBrowseListFragment.java revision 416b569901ce4c577c1f76c3f29496d1adab29e1
1/* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16package com.android.contacts.list; 17 18import com.android.contacts.ContactsListActivity; 19import com.android.contacts.R; 20 21import android.content.Intent; 22import android.net.Uri; 23import android.view.LayoutInflater; 24import android.view.View; 25import android.view.ViewGroup; 26 27/** 28 * Fragment containing a contact list used for browsing (as compared to 29 * picking a contact with one of the PICK intents). 30 */ 31public class ContactBrowseListFragment extends ContactEntryListFragment { 32 33 private OnContactBrowserActionListener mListener; 34 private boolean mEditMode; 35 private boolean mCreateContactEnabled; 36 37 public void setOnContactListActionListener(OnContactBrowserActionListener listener) { 38 mListener = listener; 39 } 40 41 public boolean isSearchAllContactsItemPosition(int position) { 42 return isSearchMode() && position == getAdapter().getCount() - 1; 43 } 44 45 @Override 46 protected void onItemClick(int position, long id) { 47 if (isSearchAllContactsItemPosition(position)) { 48 mListener.onSearchAllContactsAction((String)null); 49 } else if (isEditMode()) { 50 if (position == 0 && !isSearchMode() && isCreateContactEnabled()) { 51 mListener.onCreateNewContactAction(); 52 } else { 53 ContactEntryListAdapter adapter = getAdapter(); 54 adapter.moveToPosition(position); 55 mListener.onEditContactAction(adapter.getContactUri()); 56 } 57 } else { 58 ContactEntryListAdapter adapter = getAdapter(); 59 adapter.moveToPosition(position); 60 mListener.onViewContactAction(adapter.getContactUri()); 61 } 62 } 63 64 @Override 65 protected ContactEntryListAdapter createListAdapter() { 66 ContactItemListAdapter adapter = 67 new ContactItemListAdapter((ContactsListActivity)getActivity()); 68 adapter.setSectionHeaderDisplayEnabled(isSectionHeaderDisplayEnabled()); 69 adapter.setDisplayPhotos(isPhotoLoaderEnabled()); 70 return adapter; 71 } 72 73 @Override 74 protected View inflateView(LayoutInflater inflater, ViewGroup container) { 75 if (isSearchMode()) { 76 return inflater.inflate(R.layout.contacts_search_content, null); 77 } else if (isSearchResultsMode()) { 78 return inflater.inflate(R.layout.contacts_list_search_results, null); 79 } else { 80 return inflater.inflate(R.layout.contacts_list_content, null); 81 } 82 } 83 84 public void setEditMode(boolean flag) { 85 mEditMode = flag; 86 } 87 88 public boolean isEditMode() { 89 return mEditMode; 90 } 91 92 public void setCreateContactEnabled(boolean flag) { 93 this.mCreateContactEnabled = flag; 94 } 95 96 public boolean isCreateContactEnabled() { 97 return mCreateContactEnabled; 98 } 99 100 public void viewContact(Uri contactUri) { 101 mListener.onViewContactAction(contactUri); 102 } 103 104 public void editContact(Uri contactUri) { 105 mListener.onEditContactAction(contactUri); 106 } 107 108 public void deleteContact(Uri contactUri) { 109 mListener.onDeleteContactAction(contactUri); 110 } 111 112 public void addToFavorites(Uri contactUri) { 113 mListener.onAddToFavoritesAction(contactUri); 114 } 115 116 public void removeFromFavorites(Uri contactUri) { 117 mListener.onRemoveFromFavoritesAction(contactUri); 118 } 119 120 public void callContact(Uri contactUri) { 121 mListener.onCallContactAction(contactUri); 122 } 123 124 public void smsContact(Uri contactUri) { 125 mListener.onSmsContactAction(contactUri); 126 } 127} 128