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 257b182d706649466a3a803afdc0c0291369f001ffJohn Reckimport com.android.browser.preferences.BandwidthPreferencesFragment; 267b182d706649466a3a803afdc0c0291369f001ffJohn Reckimport com.android.browser.preferences.DebugPreferencesFragment; 277b182d706649466a3a803afdc0c0291369f001ffJohn Reck 28462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamiltonimport java.util.List; 290c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 30462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamiltonpublic class BrowserPreferencesPage extends PreferenceActivity { 310c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 32462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton public static final String CURRENT_PAGE = "currentPage"; 337b182d706649466a3a803afdc0c0291369f001ffJohn Reck private List<Header> mHeaders; 3478a98e459323f938e97789a6131beddbebb459ceNicolas Roard 357ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch @Override 367ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch public void onCreate(Bundle icicle) { 377ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch super.onCreate(icicle); 387ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch 397ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch ActionBar actionBar = getActionBar(); 407ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch if (actionBar != null) { 417ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch actionBar.setDisplayOptions( 427ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP); 437ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 447ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 457ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch 46462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton /** 47462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton * Populate the activity with the top-level headers. 48462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton */ 490c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project @Override 50462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton public void onBuildHeaders(List<Header> target) { 51462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton loadHeadersFromResource(R.xml.preference_headers, target); 52fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins 53f48314fcba4d6ddda8abf2e30f94112542363ca5John Reck if (BrowserSettings.getInstance().isDebugEnabled()) { 54462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton Header debug = new Header(); 55462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton debug.title = getText(R.string.pref_development_title); 56462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton debug.fragment = DebugPreferencesFragment.class.getName(); 57462b8e8442d0fb734b4fe4bd13c21303f2b154fcJeff Hamilton target.add(debug); 580c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 597b182d706649466a3a803afdc0c0291369f001ffJohn Reck mHeaders = target; 607b182d706649466a3a803afdc0c0291369f001ffJohn Reck } 617b182d706649466a3a803afdc0c0291369f001ffJohn Reck 627b182d706649466a3a803afdc0c0291369f001ffJohn Reck @Override 637b182d706649466a3a803afdc0c0291369f001ffJohn Reck public Header onGetInitialHeader() { 647b182d706649466a3a803afdc0c0291369f001ffJohn Reck String action = getIntent().getAction(); 657b182d706649466a3a803afdc0c0291369f001ffJohn Reck if (Intent.ACTION_MANAGE_NETWORK_USAGE.equals(action)) { 667b182d706649466a3a803afdc0c0291369f001ffJohn Reck String fragName = BandwidthPreferencesFragment.class.getName(); 677b182d706649466a3a803afdc0c0291369f001ffJohn Reck for (Header h : mHeaders) { 687b182d706649466a3a803afdc0c0291369f001ffJohn Reck if (fragName.equals(h.fragment)) { 697b182d706649466a3a803afdc0c0291369f001ffJohn Reck return h; 707b182d706649466a3a803afdc0c0291369f001ffJohn Reck } 717b182d706649466a3a803afdc0c0291369f001ffJohn Reck } 727b182d706649466a3a803afdc0c0291369f001ffJohn Reck } 737b182d706649466a3a803afdc0c0291369f001ffJohn Reck return super.onGetInitialHeader(); 740c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 750c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 760c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project @Override 777ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch public boolean onOptionsItemSelected(MenuItem item) { 787ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch switch (item.getItemId()) { 797ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch case android.R.id.home: 80bf1d10af39eb23d68db69a8eda9e12e62f1a9682Dianne Hackborn if (getFragmentManager().getBackStackEntryCount() > 0) { 817ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch getFragmentManager().popBackStack(); 827ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } else { 837ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch finish(); 847ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 857ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch return true; 867ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 877ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch 887ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch return false; 897ed9bd7323a2ac950a30af1139519f4900697813Ben Murdoch } 9042dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck 9142dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck @Override 9242dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck public Intent onBuildStartFragmentIntent(String fragmentName, Bundle args, 9342dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck int titleRes, int shortTitleRes) { 9442dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck Intent intent = super.onBuildStartFragmentIntent(fragmentName, args, 9542dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck titleRes, shortTitleRes); 9642dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck String url = getIntent().getStringExtra(CURRENT_PAGE); 9742dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck intent.putExtra(CURRENT_PAGE, url); 9842dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck return intent; 9942dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck } 10042dfb9f816bfcd8f4fd9fa47ac44e48681ae2f1fJohn Reck 1010c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project} 102