1d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov/* 2d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project 3d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * 4d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License"); 5d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * you may not use this file except in compliance with the License. 6d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * You may obtain a copy of the License at 7d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * 8d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * http://www.apache.org/licenses/LICENSE-2.0 9d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * 10d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * Unless required by applicable law or agreed to in writing, software 11d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS, 12d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * See the License for the specific language governing permissions and 14d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * limitations under the License. 15d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov */ 16d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovpackage com.android.contacts.list; 17d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 18d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovimport android.net.Uri; 19d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovimport android.view.LayoutInflater; 20d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovimport android.view.View; 21d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovimport android.view.ViewGroup; 22d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 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 28d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov/** 29d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * Fragment containing a postal address list for picking. 30d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov */ 31d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovpublic class PostalAddressPickerFragment 32c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov extends ContactEntryListFragment<ContactEntryListAdapter> { 33d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov private OnPostalAddressPickerActionListener mListener; 34d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 35d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov public PostalAddressPickerFragment() { 3698fa1b049f3bd5c84237169983e171fae345439bDmitri Plotnikov setQuickContactEnabled(false); 37d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov setPhotoLoaderEnabled(true); 38d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov setSectionHeaderDisplayEnabled(true); 394d174aad97cd382f810e3bf1a7f1f4f4772be118Dmitri Plotnikov setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_DATA_SHORTCUT); 40d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 41d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 42d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov public void setOnPostalAddressPickerActionListener( 43d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov OnPostalAddressPickerActionListener listener) { 44d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov this.mListener = listener; 45d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 46d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 47d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov @Override 48d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov protected void onItemClick(int position, long id) { 49b831b14466d640fe260ba2e752c88c7fcd62a14bBrian Attwell if (getAdapter().getItem(position) == null) { 50b831b14466d640fe260ba2e752c88c7fcd62a14bBrian Attwell return; 51b831b14466d640fe260ba2e752c88c7fcd62a14bBrian Attwell } 521ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov if (!isLegacyCompatibilityMode()) { 53c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov PostalAddressListAdapter adapter = (PostalAddressListAdapter)getAdapter(); 54e124722daa8a4b31308d53e3f0457c3b66a20ae5Dmitri Plotnikov pickPostalAddress(adapter.getDataUri(position)); 55c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov } else { 56c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov LegacyPostalAddressListAdapter adapter = (LegacyPostalAddressListAdapter)getAdapter(); 57e124722daa8a4b31308d53e3f0457c3b66a20ae5Dmitri Plotnikov pickPostalAddress(adapter.getContactMethodUri(position)); 58c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov } 59d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 60d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 61d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov @Override 62c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov protected ContactEntryListAdapter createListAdapter() { 631ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov if (!isLegacyCompatibilityMode()) { 64c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov PostalAddressListAdapter adapter = new PostalAddressListAdapter(getActivity()); 65c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov adapter.setSectionHeaderDisplayEnabled(true); 66c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov adapter.setDisplayPhotos(true); 67c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov return adapter; 68c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov } else { 69c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov LegacyPostalAddressListAdapter adapter = 70c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov new LegacyPostalAddressListAdapter(getActivity()); 71c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov adapter.setSectionHeaderDisplayEnabled(false); 72c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov adapter.setDisplayPhotos(false); 73c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov return adapter; 74c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov } 75d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 76d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 77d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov @Override 78d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov protected View inflateView(LayoutInflater inflater, ViewGroup container) { 7934b901ca7781cf7fdd4f6275ef98ae73c95749c2Daisuke Miyakawa return inflater.inflate(R.layout.contact_list_content, null); 80d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 81d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 82e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa @Override 83e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa protected void onCreateView(LayoutInflater inflater, ViewGroup container) { 84e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa super.onCreateView(inflater, container); 85e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa 86e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa setVisibleScrollbarEnabled(!isLegacyCompatibilityMode()); 87e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa } 88e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa 89c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann private void pickPostalAddress(Uri uri) { 90d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov mListener.onPickPostalAddressAction(uri); 91d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 92d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov} 93