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