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 com.android.contacts.R; 19d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 20d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovimport android.net.Uri; 21d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovimport android.view.LayoutInflater; 22d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovimport android.view.View; 23d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovimport android.view.ViewGroup; 24d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 25d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov/** 26d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov * Fragment containing a postal address list for picking. 27d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov */ 28d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikovpublic class PostalAddressPickerFragment 29c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov extends ContactEntryListFragment<ContactEntryListAdapter> { 30d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov private OnPostalAddressPickerActionListener mListener; 31d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 32d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov public PostalAddressPickerFragment() { 3398fa1b049f3bd5c84237169983e171fae345439bDmitri Plotnikov setQuickContactEnabled(false); 34d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov setPhotoLoaderEnabled(true); 35d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov setSectionHeaderDisplayEnabled(true); 364d174aad97cd382f810e3bf1a7f1f4f4772be118Dmitri Plotnikov setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_DATA_SHORTCUT); 37d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 38d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 39d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov public void setOnPostalAddressPickerActionListener( 40d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov OnPostalAddressPickerActionListener listener) { 41d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov this.mListener = listener; 42d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 43d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 44d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov @Override 45d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov protected void onItemClick(int position, long id) { 461ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov if (!isLegacyCompatibilityMode()) { 47c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov PostalAddressListAdapter adapter = (PostalAddressListAdapter)getAdapter(); 48e124722daa8a4b31308d53e3f0457c3b66a20ae5Dmitri Plotnikov pickPostalAddress(adapter.getDataUri(position)); 49c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov } else { 50c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov LegacyPostalAddressListAdapter adapter = (LegacyPostalAddressListAdapter)getAdapter(); 51e124722daa8a4b31308d53e3f0457c3b66a20ae5Dmitri Plotnikov pickPostalAddress(adapter.getContactMethodUri(position)); 52c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov } 53d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 54d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 55d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov @Override 56c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov protected ContactEntryListAdapter createListAdapter() { 571ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov if (!isLegacyCompatibilityMode()) { 58c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov PostalAddressListAdapter adapter = new PostalAddressListAdapter(getActivity()); 59c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov adapter.setSectionHeaderDisplayEnabled(true); 60c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov adapter.setDisplayPhotos(true); 61c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov return adapter; 62c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov } else { 63c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov LegacyPostalAddressListAdapter adapter = 64c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov new LegacyPostalAddressListAdapter(getActivity()); 65c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov adapter.setSectionHeaderDisplayEnabled(false); 66c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov adapter.setDisplayPhotos(false); 67c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov return adapter; 68c28390b65183a2e1bf85f381ba27bf846706c04aDmitri Plotnikov } 69d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 70d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 71d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov @Override 72d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov protected View inflateView(LayoutInflater inflater, ViewGroup container) { 7334b901ca7781cf7fdd4f6275ef98ae73c95749c2Daisuke Miyakawa return inflater.inflate(R.layout.contact_list_content, null); 74d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 75d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov 76c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann private void pickPostalAddress(Uri uri) { 77d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov mListener.onPickPostalAddressAction(uri); 78d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov } 79d820cdbefa159bdf4c281ac8102805fe9a165379Dmitri Plotnikov} 80