| /* |
| * libjingle |
| * Copyright 2014, Google Inc. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are met: |
| * |
| * 1. Redistributions of source code must retain the above copyright notice, |
| * this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright notice, |
| * this list of conditions and the following disclaimer in the documentation |
| * and/or other materials provided with the distribution. |
| * 3. The name of the author may not be used to endorse or promote products |
| * derived from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED |
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
| * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
| * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
| * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
| * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| package org.appspot.apprtc; |
| |
| import android.app.Activity; |
| import android.content.SharedPreferences; |
| import android.content.SharedPreferences.OnSharedPreferenceChangeListener; |
| import android.os.Bundle; |
| import android.preference.Preference; |
| |
| public class SettingsActivity extends Activity |
| implements OnSharedPreferenceChangeListener{ |
| private SettingsFragment settingsFragment; |
| private String keyprefResolution; |
| private String keyprefFps; |
| private String keyprefCpuUsageDetection; |
| |
| @Override |
| protected void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| keyprefResolution = getString(R.string.pref_resolution_key); |
| keyprefFps = getString(R.string.pref_fps_key); |
| keyprefCpuUsageDetection = getString(R.string.pref_cpu_usage_detection_key); |
| |
| // Display the fragment as the main content. |
| settingsFragment = new SettingsFragment(); |
| getFragmentManager().beginTransaction() |
| .replace(android.R.id.content, settingsFragment) |
| .commit(); |
| } |
| |
| @Override |
| protected void onResume() { |
| super.onResume(); |
| // Set summary to be the user-description for the selected value |
| SharedPreferences sharedPreferences = |
| settingsFragment.getPreferenceScreen().getSharedPreferences(); |
| sharedPreferences.registerOnSharedPreferenceChangeListener(this); |
| updateSummary(sharedPreferences, keyprefResolution); |
| updateSummary(sharedPreferences, keyprefFps); |
| updateSummaryB(sharedPreferences, keyprefCpuUsageDetection); |
| } |
| |
| @Override |
| protected void onPause() { |
| super.onPause(); |
| SharedPreferences sharedPreferences = |
| settingsFragment.getPreferenceScreen().getSharedPreferences(); |
| sharedPreferences.unregisterOnSharedPreferenceChangeListener(this); |
| } |
| |
| @Override |
| public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, |
| String key) { |
| if (key.equals(keyprefResolution) || key.equals(keyprefFps)) { |
| updateSummary(sharedPreferences, key); |
| } else if (key.equals(keyprefCpuUsageDetection)) { |
| updateSummaryB(sharedPreferences, key); |
| } |
| } |
| |
| private void updateSummary(SharedPreferences sharedPreferences, String key) { |
| Preference updatedPref = settingsFragment.findPreference(key); |
| // Set summary to be the user-description for the selected value |
| updatedPref.setSummary(sharedPreferences.getString(key, "")); |
| } |
| |
| private void updateSummaryB(SharedPreferences sharedPreferences, String key) { |
| Preference updatedPref = settingsFragment.findPreference(key); |
| updatedPref.setSummary(sharedPreferences.getBoolean(key, true) |
| ? getString(R.string.pref_cpu_usage_detection_on) |
| : getString(R.string.pref_cpu_usage_detection_off)); |
| } |
| |
| } |