1b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang/*
2b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * Copyright (C) 2009 The Android Open Source Project
3b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang *
4b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * Licensed under the Apache License, Version 2.0 (the "License");
5b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * you may not use this file except in compliance with the License.
6b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * You may obtain a copy of the License at
7b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang *
8b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang *      http://www.apache.org/licenses/LICENSE-2.0
9b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang *
10b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * Unless required by applicable law or agreed to in writing, software
11b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * distributed under the License is distributed on an "AS IS" BASIS,
12b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * See the License for the specific language governing permissions and
14b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * limitations under the License.
15b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang */
16b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
17b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wangpackage com.android.contacts.common.preference;
18b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
19b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wangimport android.content.Context;
20b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wangimport android.os.Bundle;
21d0fb3822446c9e4e1793b73ce5081694fb390652Wenyi Wangimport android.app.ActionBar;
22d0fb3822446c9e4e1793b73ce5081694fb390652Wenyi Wangimport android.preference.PreferenceActivity;
23b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wangimport android.view.MenuItem;
24b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
25b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wangimport com.android.contacts.common.R;
26b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
27b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang/**
28b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang * Contacts settings.
29b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang */
30d0fb3822446c9e4e1793b73ce5081694fb390652Wenyi Wangpublic final class ContactsPreferenceActivity extends PreferenceActivity {
31b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
32b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    private static final String TAG_ABOUT_CONTACTS = "about_contacts";
33b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
34b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    @Override
35b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    protected void onCreate(Bundle savedInstanceState) {
36b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        super.onCreate(savedInstanceState);
37b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
38d0fb3822446c9e4e1793b73ce5081694fb390652Wenyi Wang        final ActionBar actionBar = getActionBar();
39b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        if (actionBar != null) {
40b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);
41b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        }
42b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
43b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        if (savedInstanceState == null) {
44b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            getFragmentManager().beginTransaction()
45b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                    .replace(android.R.id.content, new DisplayOptionsPreferenceFragment())
46b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                    .commit();
47b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            setActivityTitle(R.string.activity_title_settings);
48b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        } else {
49b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            final AboutPreferenceFragment fragment = (AboutPreferenceFragment) getFragmentManager()
50b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                    .findFragmentByTag(TAG_ABOUT_CONTACTS);
51b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            setActivityTitle(fragment == null ?
52b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                    R.string.activity_title_settings : R.string.setting_about);
53b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        }
54b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    }
55b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
56b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    public void showAboutFragment() {
57b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        getFragmentManager().beginTransaction()
58b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                .replace(android.R.id.content, new AboutPreferenceFragment(), TAG_ABOUT_CONTACTS)
59b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                .addToBackStack(null)
60b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                .commit();
61b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        setActivityTitle(R.string.setting_about);
62b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    }
63b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
64b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    /**
65b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang     * Returns true if there are no preferences to display and therefore the
66b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang     * corresponding menu item can be removed.
67b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang     */
68b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    public static boolean isEmpty(Context context) {
69b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        return !context.getResources().getBoolean(R.bool.config_sort_order_user_changeable)
70b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                && !context.getResources().getBoolean(R.bool.config_display_order_user_changeable)
71b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                && !context.getResources().getBoolean(
72b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang                        R.bool.config_default_account_user_changeable);
73b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    }
74b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
75b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    @Override
76b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    public boolean onOptionsItemSelected(MenuItem item) {
77b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        if (item.getItemId() == android.R.id.home) {
78b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            onBackPressed();
79b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            return true;
80b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        }
81b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        return false;
82b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    }
83b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
84b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    @Override
85b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    public void onBackPressed() {
86b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        if (getFragmentManager().getBackStackEntryCount() > 0) {
87b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            setActivityTitle(R.string.activity_title_settings);
88b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            getFragmentManager().popBackStack();
89b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        } else {
90b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            super.onBackPressed();
91b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        }
92b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    }
93b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang
94b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    private void setActivityTitle(int res) {
95d0fb3822446c9e4e1793b73ce5081694fb390652Wenyi Wang        final ActionBar actionBar = getActionBar();
96b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        if (actionBar != null) {
97b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang            actionBar.setTitle(res);
98b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang        }
99b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang    }
100b28aaaf25f4cc3b8c9b48fe88f6ec779326551ecWenyi Wang}
101