10c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project/* 20c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 30c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * 40c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 50c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * you may not use this file except in compliance with the License. 60c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * You may obtain a copy of the License at 70c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * 80c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 90c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * 100c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 110c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 120c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * See the License for the specific language governing permissions and 140c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * limitations under the License. 150c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 160c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 170c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectpackage com.android.browser; 180c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 197ed9bd7323a2ac950a30af1139519f4900697813Ben Murdochimport android.app.ActionBar; 207b182d706649466a3a803afdc0c0291369f001ffJohn Reckimport android.content.Intent; 217ed9bd7323a2ac950a30af1139519f4900697813Ben Murdochimport android.os.Bundle; 220c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.preference.PreferenceActivity; 237ed9bd7323a2ac950a30af1139519f4900697813Ben Murdochimport android.view.MenuItem; 24d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert 250184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdochimport com.android.browser.preferences.AccessibilityPreferencesFragment; 260184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdochimport com.android.browser.preferences.AdvancedPreferencesFragment; 277b182d706649466a3a803afdc0c0291369f001ffJohn Reckimport com.android.browser.preferences.BandwidthPreferencesFragment; 287b182d706649466a3a803afdc0c0291369f001ffJohn Reckimport com.android.browser.preferences.DebugPreferencesFragment; 290184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdochimport com.android.browser.preferences.GeneralPreferencesFragment; 300184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdochimport com.android.browser.preferences.LabPreferencesFragment; 310184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdochimport com.android.browser.preferences.PrivacySecurityPreferencesFragment; 320184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdochimport com.android.browser.preferences.WebsiteSettingsFragment; 337b182d706649466a3a803afdc0c0291369f001ffJohn Reck 34462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamiltonimport java.util.List; 350c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 36462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamiltonpublic class BrowserPreferencesPage extends PreferenceActivity { 370c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 38462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton public static final String CURRENT_PAGE = "currentPage"; 397b182d706649466a3a803afdc0c0291369f001ffJohn Reck private List<Header> mHeaders; 4078a98e459323f938e97789a6131beddbebb459ceNicolas Roard 417ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch @Override 427ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch public void onCreate(Bundle icicle) { 437ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch super.onCreate(icicle); 447ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch 457ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch ActionBar actionBar = getActionBar(); 467ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch if (actionBar != null) { 477ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch actionBar.setDisplayOptions( 487ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP); 497ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 507ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 517ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch 52462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton /** 53462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton * Populate the activity with the top-level headers. 54462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton */ 550c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project @Override 56462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton public void onBuildHeaders(List<Header> target) { 57462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton loadHeadersFromResource(R.xml.preference_headers, target); 58fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins 59f48314fcba4d6ddda8abf2e30f94112542363ca5John Reck if (BrowserSettings.getInstance().isDebugEnabled()) { 60462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton Header debug = new Header(); 61462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton debug.title = getText(R.string.pref_development_title); 62462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton debug.fragment = DebugPreferencesFragment.class.getName(); 63462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton target.add(debug); 640c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 657b182d706649466a3a803afdc0c0291369f001ffJohn Reck mHeaders = target; 667b182d706649466a3a803afdc0c0291369f001ffJohn Reck } 677b182d706649466a3a803afdc0c0291369f001ffJohn Reck 687b182d706649466a3a803afdc0c0291369f001ffJohn Reck @Override 697b182d706649466a3a803afdc0c0291369f001ffJohn Reck public Header onGetInitialHeader() { 707b182d706649466a3a803afdc0c0291369f001ffJohn Reck String action = getIntent().getAction(); 717b182d706649466a3a803afdc0c0291369f001ffJohn Reck if (Intent.ACTION_MANAGE_NETWORK_USAGE.equals(action)) { 727b182d706649466a3a803afdc0c0291369f001ffJohn Reck String fragName = BandwidthPreferencesFragment.class.getName(); 737b182d706649466a3a803afdc0c0291369f001ffJohn Reck for (Header h : mHeaders) { 747b182d706649466a3a803afdc0c0291369f001ffJohn Reck if (fragName.equals(h.fragment)) { 757b182d706649466a3a803afdc0c0291369f001ffJohn Reck return h; 767b182d706649466a3a803afdc0c0291369f001ffJohn Reck } 777b182d706649466a3a803afdc0c0291369f001ffJohn Reck } 787b182d706649466a3a803afdc0c0291369f001ffJohn Reck } 797b182d706649466a3a803afdc0c0291369f001ffJohn Reck return super.onGetInitialHeader(); 800c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 810c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 820c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project @Override 837ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch public boolean onOptionsItemSelected(MenuItem item) { 847ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch switch (item.getItemId()) { 857ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch case android.R.id.home: 86bf1d10af39eb23d68db69a8eda9e12e62f1a9682Dianne Hackborn if (getFragmentManager().getBackStackEntryCount() > 0) { 877ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch getFragmentManager().popBackStack(); 887ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } else { 897ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch finish(); 907ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 917ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch return true; 927ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 937ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch 947ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch return false; 957ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 9642dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck 9742dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck @Override 9842dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck public Intent onBuildStartFragmentIntent(String fragmentName, Bundle args, 9942dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck int titleRes, int shortTitleRes) { 10042dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck Intent intent = super.onBuildStartFragmentIntent(fragmentName, args, 10142dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck titleRes, shortTitleRes); 10242dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck String url = getIntent().getStringExtra(CURRENT_PAGE); 10342dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck intent.putExtra(CURRENT_PAGE, url); 10442dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck return intent; 10542dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck } 10642dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck 1070184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch @Override 1080184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch protected boolean isValidFragment(String fragmentName) { 1090184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch return AccessibilityPreferencesFragment.class.getName().equals(fragmentName) || 1100184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch AdvancedPreferencesFragment.class.getName().equals(fragmentName) || 1110184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch BandwidthPreferencesFragment.class.getName().equals(fragmentName) || 1120184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch DebugPreferencesFragment.class.getName().equals(fragmentName) || 1130184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch GeneralPreferencesFragment.class.getName().equals(fragmentName) || 1140184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch LabPreferencesFragment.class.getName().equals(fragmentName) || 1150184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch PrivacySecurityPreferencesFragment.class.getName().equals(fragmentName) || 1160184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch WebsiteSettingsFragment.class.getName().equals(fragmentName); 1170184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch 1180184f3391b86ce36d74455e3c87d77d32b3c1fc8Ben Murdoch } 1190c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project} 120