/* * Copyright (C) 2007 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.camera; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.ListPreference; import android.preference.PreferenceActivity; /** * CameraSettings */ public class CameraSettings extends PreferenceActivity implements OnSharedPreferenceChangeListener { public static final String KEY_VIDEO_QUALITY = "pref_camera_videoquality_key"; public static final boolean DEFAULT_VIDEO_QUALITY_VALUE = true; private ListPreference mVideoQuality; public CameraSettings() { } /** Called with the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); addPreferencesFromResource(R.xml.camera_preferences); initUI(); } @Override protected void onResume() { super.onResume(); updateVideoQuality(); } private void initUI() { mVideoQuality = (ListPreference) findPreference(KEY_VIDEO_QUALITY); getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); } private void updateVideoQuality() { boolean vidQualityValue = getBooleanPreference(mVideoQuality, DEFAULT_VIDEO_QUALITY_VALUE); int vidQualityIndex = vidQualityValue ? 1 : 0; String[] vidQualities = getResources().getStringArray(R.array.pref_camera_videoquality_entries); String vidQuality = vidQualities[vidQualityIndex]; mVideoQuality.setSummary(vidQuality); } private static int getIntPreference(ListPreference preference, int defaultValue) { String s = preference.getValue(); int result = defaultValue; try { result = Integer.parseInt(s); } catch (NumberFormatException e) { // Ignore, result is already the default value. } return result; } private boolean getBooleanPreference(ListPreference preference, boolean defaultValue) { return getIntPreference(preference, defaultValue ? 1 : 0) != 0; } public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals(KEY_VIDEO_QUALITY)) { updateVideoQuality(); } } }