12f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick/* 22f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * Copyright (C) 2012 The Android Open Source Project 32f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * 42f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 52f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * in compliance with the License. You may obtain a copy of the License at 62f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * 72f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * http://www.apache.org/licenses/LICENSE-2.0 82f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * 92f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * Unless required by applicable law or agreed to in writing, software distributed under the License 102f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 112f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * or implied. See the License for the specific language governing permissions and limitations under 122f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * the License. 132f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick */ 142f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 152f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormickpackage com.example.android.networkusage; 162f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 172f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormickimport android.content.SharedPreferences; 182f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormickimport android.content.SharedPreferences.OnSharedPreferenceChangeListener; 192f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormickimport android.os.Bundle; 202f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormickimport android.preference.PreferenceActivity; 212f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormickimport com.example.android.networkusage.R; 222f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 232f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick/** 242f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * This preference activity has in its manifest declaration an intent filter for 252f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * the ACTION_MANAGE_NETWORK_USAGE action. This activity provides a settings UI 262f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick * for users to specify network settings to control data usage. 272f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick */ 282f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormickpublic class SettingsActivity extends PreferenceActivity 292f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick implements 302f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick OnSharedPreferenceChangeListener { 312f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 322f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick @Override 332f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick protected void onCreate(Bundle savedInstanceState) { 342f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick super.onCreate(savedInstanceState); 352f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 362f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick // Loads the XML preferences file. 372f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick addPreferencesFromResource(R.xml.preferences); 382f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick } 392f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 402f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick @Override 412f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick protected void onResume() { 422f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick super.onResume(); 432f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 442f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick // Registers a callback to be invoked whenever a user changes a preference. 452f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); 462f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick } 472f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 482f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick @Override 492f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick protected void onPause() { 502f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick super.onPause(); 512f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 522f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick // Unregisters the listener set in onResume(). 532f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick // It's best practice to unregister listeners when your app isn't using them to cut down on 542f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick // unnecessary system overhead. You do this in onPause(). 552f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick getPreferenceScreen() 562f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick .getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); 572f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick } 582f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick 592f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick // Fires when the user changes a preference. 602f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick @Override 612f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { 622f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick // Sets refreshDisplay to true so that when the user returns to the main 632f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick // activity, the display refreshes to reflect the new settings. 642f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick NetworkActivity.refreshDisplay = true; 652f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick } 662f8cc17f5fbc2e05ac0889fbbddf4e530750087bKatie McCormick} 67