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 com.android.contacts.R;
19c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann
20c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannimport android.net.Uri;
21c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannimport android.view.LayoutInflater;
22c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannimport android.view.View;
23c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannimport android.view.ViewGroup;
24c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann
25c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann/**
26c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann * Fragment containing an email list for picking.
27c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann */
28c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmannpublic class EmailAddressPickerFragment extends ContactEntryListFragment<ContactEntryListAdapter> {
29c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    private OnEmailAddressPickerActionListener mListener;
30c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann
31c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    public EmailAddressPickerFragment() {
32c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        setQuickContactEnabled(false);
33c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        setPhotoLoaderEnabled(true);
34c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        setSectionHeaderDisplayEnabled(true);
35c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_DATA_SHORTCUT);
36c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    }
37c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann
38c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    public void setOnEmailAddressPickerActionListener(OnEmailAddressPickerActionListener listener) {
39c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        mListener = listener;
40c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    }
41c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann
42c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    @Override
43c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    protected void onItemClick(int position, long id) {
44c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        EmailAddressListAdapter adapter = (EmailAddressListAdapter)getAdapter();
45c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        pickEmailAddress(adapter.getDataUri(position));
46c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    }
47c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann
48c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    @Override
49c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    protected ContactEntryListAdapter createListAdapter() {
50c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        EmailAddressListAdapter adapter = new EmailAddressListAdapter(getActivity());
51c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        adapter.setSectionHeaderDisplayEnabled(true);
52c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        adapter.setDisplayPhotos(true);
53c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        return adapter;
54c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    }
55c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann
56c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    @Override
57c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
5834b901ca7781cf7fdd4f6275ef98ae73c95749c2Daisuke Miyakawa        return inflater.inflate(R.layout.contact_list_content, null);
59c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    }
60c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann
61e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa    @Override
62e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa    protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
63e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa        super.onCreateView(inflater, container);
64e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa
65e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa        setVisibleScrollbarEnabled(!isLegacyCompatibilityMode());
66e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa    }
67e231f1994a57b3ecaa3a1c73ed7ddfec40fbd235Daisuke Miyakawa
68c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    private void pickEmailAddress(Uri uri) {
69c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann        mListener.onPickEmailAddressAction(uri);
70c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann    }
71c86ace78ca5c2e10dcb001a916386c8a9865e230Daniel Lehmann}
72