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