diff options
Diffstat (limited to 'src/com/android/swe/browser/BrowserPreferencesPage.java')
-rw-r--r-- | src/com/android/swe/browser/BrowserPreferencesPage.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/com/android/swe/browser/BrowserPreferencesPage.java b/src/com/android/swe/browser/BrowserPreferencesPage.java new file mode 100644 index 00000000..6e6da178 --- /dev/null +++ b/src/com/android/swe/browser/BrowserPreferencesPage.java @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.browser; + +import android.app.ActionBar; +import android.content.Intent; +import android.os.Bundle; +import android.preference.PreferenceActivity; +import android.view.MenuItem; + +import com.android.browser.preferences.BandwidthPreferencesFragment; +import com.android.browser.preferences.DebugPreferencesFragment; + +import java.util.List; + +public class BrowserPreferencesPage extends PreferenceActivity { + + public static final String CURRENT_PAGE = "currentPage"; + private List<Header> mHeaders; + + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + + ActionBar actionBar = getActionBar(); + if (actionBar != null) { + actionBar.setDisplayOptions( + ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP); + } + } + + /** + * Populate the activity with the top-level headers. + */ + @Override + public void onBuildHeaders(List<Header> target) { + loadHeadersFromResource(R.xml.preference_headers, target); + + if (BrowserSettings.getInstance().isDebugEnabled()) { + Header debug = new Header(); + debug.title = getText(R.string.pref_development_title); + debug.fragment = DebugPreferencesFragment.class.getName(); + target.add(debug); + } + mHeaders = target; + } + + @Override + public Header onGetInitialHeader() { + String action = getIntent().getAction(); + if (Intent.ACTION_MANAGE_NETWORK_USAGE.equals(action)) { + String fragName = BandwidthPreferencesFragment.class.getName(); + for (Header h : mHeaders) { + if (fragName.equals(h.fragment)) { + return h; + } + } + } + return super.onGetInitialHeader(); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + if (getFragmentManager().getBackStackEntryCount() > 0) { + getFragmentManager().popBackStack(); + } else { + finish(); + } + return true; + } + + return false; + } + + @Override + public Intent onBuildStartFragmentIntent(String fragmentName, Bundle args, + int titleRes, int shortTitleRes) { + Intent intent = super.onBuildStartFragmentIntent(fragmentName, args, + titleRes, shortTitleRes); + String url = getIntent().getStringExtra(CURRENT_PAGE); + intent.putExtra(CURRENT_PAGE, url); + return intent; + } + +} |