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