DefaultContactBrowseListFragment.java revision 92a6fdf1b07b8f1447560174e24455fd46aee7cd
1238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov/*
2238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project
3238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov *
4238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License");
5238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * you may not use this file except in compliance with the License.
6238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * You may obtain a copy of the License at
7238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov *
8238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov *      http://www.apache.org/licenses/LICENSE-2.0
9238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov *
10238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * Unless required by applicable law or agreed to in writing, software
11238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS,
12238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * See the License for the specific language governing permissions and
14238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * limitations under the License.
15238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov */
16238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikovpackage com.android.contacts.list;
17238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
18238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikovimport com.android.contacts.R;
191ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikovimport com.android.contacts.ui.ContactsPreferencesActivity.Prefs;
20238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
211ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikovimport android.content.SharedPreferences;
22238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikovimport android.database.Cursor;
2392a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikovimport android.os.Bundle;
241ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikovimport android.preference.PreferenceManager;
25238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikovimport android.view.LayoutInflater;
26238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikovimport android.view.View;
27238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikovimport android.view.ViewGroup;
28fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikovimport android.widget.FrameLayout;
29238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikovimport android.widget.TextView;
30238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
31238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov/**
32238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * Fragment containing a contact list used for browsing (as compared to
33238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov * picking a contact with one of the PICK intents).
34238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov */
35238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikovpublic class DefaultContactBrowseListFragment extends ContactBrowseListFragment {
36238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
3792a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    private static final String KEY_EDIT_MODE = "editMode";
3892a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    private static final String KEY_CREATE_CONTACT_ENABLED = "createContactEnabled";
3992a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    private static final String KEY_DISPLAY_WITH_PHONES_ONLY = "displayWithPhonesOnly";
4092a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    private static final String KEY_VISIBLE_CONTACTS_RESTRICTION = "visibleContactsRestriction";
4192a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov
42238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    private boolean mEditMode;
43238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    private boolean mCreateContactEnabled;
441ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    private int mDisplayWithPhonesOnlyOption = ContactsRequest.DISPLAY_ONLY_WITH_PHONES_DISABLED;
45792a9eacaf73abb29a7ea2020f4ea63368d83258Dmitri Plotnikov    private boolean mVisibleContactsRestrictionEnabled = true;
46fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov    private View mHeaderView;
474b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov
489716d05319f62719019496ee7a97488c2ab9a9a8Dmitri Plotnikov    public DefaultContactBrowseListFragment() {
499716d05319f62719019496ee7a97488c2ab9a9a8Dmitri Plotnikov        setPhotoLoaderEnabled(true);
501ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        setSectionHeaderDisplayEnabled(true);
51899df4a5a48e8a579ca842d303679975c3cef947Daniel Lehmann        setAizyEnabled(true);
529716d05319f62719019496ee7a97488c2ab9a9a8Dmitri Plotnikov    }
539716d05319f62719019496ee7a97488c2ab9a9a8Dmitri Plotnikov
544b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov    @Override
5592a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    public void onSaveInstanceState(Bundle outState) {
5692a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        super.onSaveInstanceState(outState);
5792a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        outState.putBoolean(KEY_EDIT_MODE, mEditMode);
5892a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        outState.putBoolean(KEY_CREATE_CONTACT_ENABLED, mCreateContactEnabled);
5992a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        outState.putInt(KEY_DISPLAY_WITH_PHONES_ONLY, mDisplayWithPhonesOnlyOption);
6092a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        outState.putBoolean(KEY_VISIBLE_CONTACTS_RESTRICTION, mVisibleContactsRestrictionEnabled);
6192a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    }
6292a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov
6392a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    @Override
6492a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    public void restoreSavedState(Bundle savedState) {
6592a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        super.restoreSavedState(savedState);
6692a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov
6792a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        if (savedState == null) {
6892a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov            return;
6992a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        }
7092a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov
7192a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        mEditMode = savedState.getBoolean(KEY_EDIT_MODE);
7292a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        mCreateContactEnabled = savedState.getBoolean(KEY_CREATE_CONTACT_ENABLED);
7392a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        mDisplayWithPhonesOnlyOption = savedState.getInt(KEY_DISPLAY_WITH_PHONES_ONLY);
7492a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov        mVisibleContactsRestrictionEnabled =
7592a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov                savedState.getBoolean(KEY_VISIBLE_CONTACTS_RESTRICTION);
7692a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    }
7792a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov
7892a6fdf1b07b8f1447560174e24455fd46aee7cdDmitri Plotnikov    @Override
794b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov    protected void prepareEmptyView() {
801ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        if (isShowingContactsWithPhonesOnly()) {
814b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov            setEmptyText(R.string.noContactsWithPhoneNumbers);
824b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov        } else {
834b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov            super.prepareEmptyView();
844b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov        }
854b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov    }
864b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov
871ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    private boolean isShowingContactsWithPhonesOnly() {
881ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        switch (mDisplayWithPhonesOnlyOption) {
891ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov            case ContactsRequest.DISPLAY_ONLY_WITH_PHONES_DISABLED:
901ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov                return false;
911ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov            case ContactsRequest.DISPLAY_ONLY_WITH_PHONES_ENABLED:
921ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov                return true;
931ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov            case ContactsRequest.DISPLAY_ONLY_WITH_PHONES_PREFERENCE:
941ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov                SharedPreferences prefs = PreferenceManager
950b976fc26e8eb09919cd24a4e13370d0ddb5ff38Dmitri Plotnikov                        .getDefaultSharedPreferences(getContext());
961ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov                return prefs.getBoolean(Prefs.DISPLAY_ONLY_PHONES,
971ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov                        Prefs.DISPLAY_ONLY_PHONES_DEFAULT);
981ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        }
991ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        return false;
1001ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    }
1011ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov
1021ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov    public void setDisplayWithPhonesOnlyOption(int displayWithPhonesOnly) {
1031ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov        mDisplayWithPhonesOnlyOption = displayWithPhonesOnly;
104792a9eacaf73abb29a7ea2020f4ea63368d83258Dmitri Plotnikov        configureAdapter();
105792a9eacaf73abb29a7ea2020f4ea63368d83258Dmitri Plotnikov    }
106792a9eacaf73abb29a7ea2020f4ea63368d83258Dmitri Plotnikov
107792a9eacaf73abb29a7ea2020f4ea63368d83258Dmitri Plotnikov    public void setVisibleContactsRestrictionEnabled(boolean flag) {
108dd56f01fb6fd313e9286139bc4e8dfe8e9ecfed2Dmitri Plotnikov        mVisibleContactsRestrictionEnabled = flag;
109792a9eacaf73abb29a7ea2020f4ea63368d83258Dmitri Plotnikov        configureAdapter();
1104b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov    }
111238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
112238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    @Override
113238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    protected void onItemClick(int position, long id) {
114238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        ContactListAdapter adapter = getAdapter();
115d5061fe322880ee993ea18db331fbc1110ddc538Dmitri Plotnikov        if (isEditMode()) {
116d5061fe322880ee993ea18db331fbc1110ddc538Dmitri Plotnikov            if (position == 0 && !isSearchMode() && isCreateContactEnabled()) {
117d5061fe322880ee993ea18db331fbc1110ddc538Dmitri Plotnikov                createNewContact();
118238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            } else {
119d5061fe322880ee993ea18db331fbc1110ddc538Dmitri Plotnikov                editContact(adapter.getContactUri(position));
120238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            }
121d5061fe322880ee993ea18db331fbc1110ddc538Dmitri Plotnikov        } else {
122d5061fe322880ee993ea18db331fbc1110ddc538Dmitri Plotnikov            viewContact(adapter.getContactUri(position));
123238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        }
124238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    }
125238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
126238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    @Override
127238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    protected ContactListAdapter createListAdapter() {
1280b976fc26e8eb09919cd24a4e13370d0ddb5ff38Dmitri Plotnikov        DefaultContactListAdapter adapter = new DefaultContactListAdapter(getContext());
129238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        adapter.setSectionHeaderDisplayEnabled(isSectionHeaderDisplayEnabled());
130238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        adapter.setDisplayPhotos(true);
131238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        adapter.setQuickContactEnabled(true);
132238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        return adapter;
133238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    }
134238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
135238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    @Override
1364b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov    protected void configureAdapter() {
1374b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov        super.configureAdapter();
1384b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov
1394b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov        DefaultContactListAdapter adapter = (DefaultContactListAdapter)getAdapter();
140792a9eacaf73abb29a7ea2020f4ea63368d83258Dmitri Plotnikov        if (adapter != null) {
1411ce1e7cf261994e46e6fe85ed4d445241ad55f16Dmitri Plotnikov            adapter.setContactsWithPhoneNumbersOnly(isShowingContactsWithPhonesOnly());
142dd56f01fb6fd313e9286139bc4e8dfe8e9ecfed2Dmitri Plotnikov            adapter.setVisibleContactsOnly(mVisibleContactsRestrictionEnabled);
143792a9eacaf73abb29a7ea2020f4ea63368d83258Dmitri Plotnikov        }
1444b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov    }
1454b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov
1464b4681dbdedf60c5828ed7a6990097528df635f2Dmitri Plotnikov    @Override
147238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    protected View inflateView(LayoutInflater inflater, ViewGroup container) {
1484cc85dd15d6546bcb2feb587691bfca3f1654d94Dmitri Plotnikov        return inflater.inflate(R.layout.contacts_list_content, null);
149238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    }
150238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
151238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    @Override
152bba62ac4a2d519be8e4896261d14b168fa49fbdfDmitri Plotnikov    protected void onCreateView(LayoutInflater inflater, ViewGroup container) {
153bba62ac4a2d519be8e4896261d14b168fa49fbdfDmitri Plotnikov        super.onCreateView(inflater, container);
154fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov
155fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        // Putting the header view inside a container will allow us to make
156fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        // it invisible later. See checkHeaderViewVisibility()
157fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        FrameLayout headerContainer = new FrameLayout(inflater.getContext());
158fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        mHeaderView = inflater.inflate(R.layout.total_contacts, null, false);
159fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        headerContainer.addView(mHeaderView);
160fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        getListView().addHeaderView(headerContainer);
161fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        checkHeaderViewVisibility();
162fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov    }
163fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov
164fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov    @Override
165fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov    public void setSearchMode(boolean flag) {
166fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        super.setSearchMode(flag);
167fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        checkHeaderViewVisibility();
168fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov    }
169fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov
170fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov    private void checkHeaderViewVisibility() {
171fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov        if (mHeaderView != null) {
172fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov            mHeaderView.setVisibility(isSearchMode() ? View.GONE : View.VISIBLE);
173238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        }
174238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    }
175238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
176238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    @Override
177d5061fe322880ee993ea18db331fbc1110ddc538Dmitri Plotnikov    protected void showCount(int partitionIndex, Cursor data) {
178fcfbe6a92a8a34b4a6ca784de02287647b903bb2Dmitri Plotnikov        if (!isSearchMode() && data != null) {
179fe3f79046be7012349fe9cac0fa89c00945ce737Dmitri Plotnikov            int count = data.getCount();
180238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            // TODO
181238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            // if (contactsListActivity.mDisplayOnlyPhones) {
182238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            // text = contactsListActivity.getQuantityText(count,
183238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            // R.string.listTotalPhoneContactsZero,
184238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            // R.plurals.listTotalPhoneContacts);
185238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            TextView textView = (TextView)getView().findViewById(R.id.totalContactsText);
186238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            String text = getQuantityText(count, R.string.listTotalAllContactsZero,
187238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov                    R.plurals.listTotalAllContacts);
188238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov            textView.setText(text);
189238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        }
190238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    }
191238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
192238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    public boolean isEditMode() {
193238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        return mEditMode;
194238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    }
195238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
1961c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov    public void setEditMode(boolean flag) {
1971c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov        mEditMode = flag;
198238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    }
199238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov
200238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    public boolean isCreateContactEnabled() {
201238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov        return mCreateContactEnabled;
202238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov    }
2031c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov
2041c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov    public void setCreateContactEnabled(boolean flag) {
2051c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov        this.mCreateContactEnabled = flag;
2061c5c8e23849ac3babb2bdec65ec63c190a5c40dfDmitri Plotnikov    }
207238d9847d8f2ace658fb7337c8847a2088ddc9d1Dmitri Plotnikov}
208