1c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann/* 2c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * Copyright (C) 2011 The Android Open Source Project 3c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * 4c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * Licensed under the Apache License, Version 2.0 (the "License"); 5c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * you may not use this file except in compliance with the License. 6c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * You may obtain a copy of the License at 7c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * 8c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * http://www.apache.org/licenses/LICENSE-2.0 9c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * 10c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * Unless required by applicable law or agreed to in writing, software 11c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * distributed under the License is distributed on an "AS IS" BASIS, 12c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * See the License for the specific language governing permissions and 14c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * limitations under the License. 15c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann */ 16c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannpackage com.android.contacts.list; 17c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann 18c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannimport android.net.Uri; 19c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannimport android.view.LayoutInflater; 20c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannimport android.view.View; 21c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannimport android.view.ViewGroup; 22c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann 23e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Chengimport com.android.contacts.R; 24a0233a048858f1593ea4924e9c5036f39aedbcddChiao Chengimport com.android.contacts.common.list.ContactEntryListAdapter; 25821a657d618285c04cbb3c440f1777a08381f868Chiao Chengimport com.android.contacts.common.list.ContactEntryListFragment; 26a0233a048858f1593ea4924e9c5036f39aedbcddChiao Chengimport com.android.contacts.common.list.DirectoryListLoader; 27e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Cheng 28c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann/** 29c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * Fragment containing an email list for picking. 30c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann */ 31c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannpublic class EmailAddressPickerFragment extends ContactEntryListFragment<ContactEntryListAdapter> { 32c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann private OnEmailAddressPickerActionListener mListener; 33c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann 34c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann public EmailAddressPickerFragment() { 35c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann setQuickContactEnabled(false); 36c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann setPhotoLoaderEnabled(true); 37c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann setSectionHeaderDisplayEnabled(true); 38c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_DATA_SHORTCUT); 39c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann } 40c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann 41c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann public void setOnEmailAddressPickerActionListener(OnEmailAddressPickerActionListener listener) { 42c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann mListener = listener; 43c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann } 44c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann 45c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann @Override 46c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann protected void onItemClick(int position, long id) { 47c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann EmailAddressListAdapter adapter = (EmailAddressListAdapter)getAdapter(); 48c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann pickEmailAddress(adapter.getDataUri(position)); 49c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann } 50c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann 51c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann @Override 52c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann protected ContactEntryListAdapter createListAdapter() { 53c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann EmailAddressListAdapter adapter = new EmailAddressListAdapter(getActivity()); 54c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann adapter.setSectionHeaderDisplayEnabled(true); 55c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann adapter.setDisplayPhotos(true); 56c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann return adapter; 57c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann } 58c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann 59c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann @Override 60c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann protected View inflateView(LayoutInflater inflater, ViewGroup container) { 6134b901ca7781cf7fdd4f6275ef98ae73c95749c2Daisuke Miyakawa return inflater.inflate(R.layout.contact_list_content, null); 62c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann } 63c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann 64e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa @Override 65e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa protected void onCreateView(LayoutInflater inflater, ViewGroup container) { 66e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa super.onCreateView(inflater, container); 67e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa 68e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa setVisibleScrollbarEnabled(!isLegacyCompatibilityMode()); 69e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa } 70e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa 71c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann private void pickEmailAddress(Uri uri) { 72c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann mListener.onPickEmailAddressAction(uri); 73c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann } 74c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann} 75