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