CameraSettings.java revision c8cd9098d9ca174f5a0374789145faf1f15d503d
1b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project/*
2b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
3b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project *
4b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project * you may not use this file except in compliance with the License.
6b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project * You may obtain a copy of the License at
7b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project *
8b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project *
10b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project * See the License for the specific language governing permissions and
14b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project * limitations under the License.
15b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project */
16b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
17b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Projectpackage com.android.camera;
18b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
19b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Projectimport android.content.SharedPreferences;
20b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Projectimport android.content.SharedPreferences.OnSharedPreferenceChangeListener;
2187341536812081826656040ac81f8f386c6c1407Wu-cheng Liimport android.hardware.Camera.Parameters;
22b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Projectimport android.os.Bundle;
23b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Projectimport android.preference.ListPreference;
24b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Projectimport android.preference.PreferenceActivity;
25d4247bc43702d5ccda5dde40e948fffd6c4445eeRay Chen
26d4247bc43702d5ccda5dde40e948fffd6c4445eeRay Chenimport java.util.ArrayList;
27d4247bc43702d5ccda5dde40e948fffd6c4445eeRay Chenimport java.util.StringTokenizer;
2887341536812081826656040ac81f8f386c6c1407Wu-cheng Li
29b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project/**
30b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project *  CameraSettings
31b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project */
32272c3fdc60d4b4f773dfdff46ad3dd643ce22d5cChih-Chung Changpublic class CameraSettings extends PreferenceActivity implements
33272c3fdc60d4b4f773dfdff46ad3dd643ce22d5cChih-Chung Chang        OnSharedPreferenceChangeListener {
340a475e11e2ceadbaa70308b52e06f4e6d9e56f12Chih-Chung Chang    public static final String KEY_VIDEO_QUALITY =
352ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            "pref_camera_videoquality_key";
360a475e11e2ceadbaa70308b52e06f4e6d9e56f12Chih-Chung Chang    public static final String KEY_WHITE_BALANCE =
372ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            "pref_camera_whitebalance_key";
382ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li    public static final String KEY_EFFECT = "pref_camera_effect_key";
39c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen    public static final String KEY_BRIGHTNESS = "pref_camera_brightness_key";
409dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li    public static final String KEY_PICTURE_SIZE = "pref_camera_picturesize_key";
41e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li    public static final String KEY_JPEG_QUALITY = "pref_camera_jpegquality_key";
420f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li    public static final String KEY_FOCUS_MODE = "pref_camera_focusmode_key";
43b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    public static final boolean DEFAULT_VIDEO_QUALITY_VALUE = true;
44b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
45b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    private ListPreference mVideoQuality;
4687341536812081826656040ac81f8f386c6c1407Wu-cheng Li    private ListPreference mWhiteBalance;
472ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li    private ListPreference mEffect;
48c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen    private ListPreference mBrightness;
499dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li    private ListPreference mPictureSize;
50e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li    private ListPreference mJpegQuality;
510f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li    private ListPreference mFocusMode;
5287341536812081826656040ac81f8f386c6c1407Wu-cheng Li    private Parameters mParameters;
53b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
54b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    @Override
552ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li    public void onCreate(Bundle icicle) {
56b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project        super.onCreate(icicle);
57b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project        addPreferencesFromResource(R.xml.camera_preferences);
58b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
59b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project        initUI();
60b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    }
61b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
62b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    @Override
63b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    protected void onResume() {
64b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project        super.onResume();
6587341536812081826656040ac81f8f386c6c1407Wu-cheng Li
662ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        updateVideoQualitySummary();
672ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        updateWhiteBalanceSummary();
682ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        updateEffectSummary();
69c8cd9098d9ca174f5a0374789145faf1f15d503dRay Chen        updateBrightnessSummary();
709dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li        updatePictureSizeSummary();
71e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li        updateJpegQualitySummary();
720f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        updateFocusModeSummary();
73b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    }
74b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
75b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    private void initUI() {
76b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project        mVideoQuality = (ListPreference) findPreference(KEY_VIDEO_QUALITY);
7787341536812081826656040ac81f8f386c6c1407Wu-cheng Li        mWhiteBalance = (ListPreference) findPreference(KEY_WHITE_BALANCE);
782ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        mEffect = (ListPreference) findPreference(KEY_EFFECT);
79c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen        mBrightness = (ListPreference) findPreference(KEY_BRIGHTNESS);
80c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen
819dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li        mPictureSize = (ListPreference) findPreference(KEY_PICTURE_SIZE);
82e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li        mJpegQuality = (ListPreference) findPreference(KEY_JPEG_QUALITY);
830f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        mFocusMode = (ListPreference) findPreference(KEY_FOCUS_MODE);
842ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        getPreferenceScreen().getSharedPreferences().
852ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li                registerOnSharedPreferenceChangeListener(this);
862ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li
872ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        // Get parameters.
882ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        android.hardware.Camera device = android.hardware.Camera.open();
892ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        mParameters = device.getParameters();
902ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        device.release();
912ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li
922ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        // Create white balance settings.
932ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        createSettings(mWhiteBalance, Camera.SUPPORTED_WHITE_BALANCE,
942ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li                       R.array.pref_camera_whitebalance_entries,
952ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li                       R.array.pref_camera_whitebalance_entryvalues);
96b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
972ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        // Create effect settings.
982ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        createSettings(mEffect, Camera.SUPPORTED_EFFECT,
992ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li                       R.array.pref_camera_effect_entries,
1002ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li                       R.array.pref_camera_effect_entryvalues);
1019dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li
102c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen        // Create brightness settings.
103c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen        createSettings(mBrightness, Camera.SUPPORTED_BRIGHTNESS,
104c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen                       R.array.pref_camera_brightness_entries,
105c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen                       R.array.pref_camera_brightness_entryvalues);
106c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen
1079dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li        // Create picture size settings.
1089dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li        createSettings(mPictureSize, Camera.SUPPORTED_PICTURE_SIZE,
1099dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li                       R.array.pref_camera_picturesize_entries,
1109dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li                       R.array.pref_camera_picturesize_entryvalues);
1110f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li
1120f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        // Set default JPEG quality value if it is empty.
1130f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        if (mJpegQuality.getValue() == null) {
1140f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li            mJpegQuality.setValue(getString(
1150f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li                R.string.pref_camera_jpegquality_default));
1160f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        }
1170f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li
1180f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        // Set default focus mode value if it is empty.
1190f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        if (mFocusMode.getValue() == null) {
1200f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li            mFocusMode.setValue(getString(
1210f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li                R.string.pref_camera_focusmode_default));
1220f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        }
123b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    }
124b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
1252ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li    private void createSettings(
1262ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            ListPreference pref, String paramName, int prefEntriesResId,
1272ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            int prefEntryValuesResId) {
1289dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li        // Disable the preference if the parameter is not supported.
1292ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        String supportedParamStr = mParameters.get(paramName);
1300a475e11e2ceadbaa70308b52e06f4e6d9e56f12Chih-Chung Chang        if (supportedParamStr == null) {
1319dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li            pref.setEnabled(false);
1329dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li            return;
1339dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li        }
1349dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li
1359dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li        // Get the supported parameter settings.
1362ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        StringTokenizer tokenizer = new StringTokenizer(supportedParamStr, ",");
1372ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        ArrayList<CharSequence> supportedParam = new ArrayList<CharSequence>();
13887341536812081826656040ac81f8f386c6c1407Wu-cheng Li        while (tokenizer.hasMoreElements()) {
1392ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            supportedParam.add(tokenizer.nextToken());
14087341536812081826656040ac81f8f386c6c1407Wu-cheng Li        }
14187341536812081826656040ac81f8f386c6c1407Wu-cheng Li
1422ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        // Prepare setting entries and entry values.
1432ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        String[] allEntries = getResources().getStringArray(prefEntriesResId);
1442ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        String[] allEntryValues = getResources().getStringArray(
1452ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li                prefEntryValuesResId);
1462ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        ArrayList<CharSequence> entries = new ArrayList<CharSequence>();
1472ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        ArrayList<CharSequence> entryValues = new ArrayList<CharSequence>();
1482ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        for (int i = 0, len = allEntryValues.length; i < len; i++) {
1492ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            int found = supportedParam.indexOf(allEntryValues[i]);
15087341536812081826656040ac81f8f386c6c1407Wu-cheng Li            if (found != -1) {
1512ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li                entries.add(allEntries[i]);
1522ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li                entryValues.add(allEntryValues[i]);
15387341536812081826656040ac81f8f386c6c1407Wu-cheng Li            }
15487341536812081826656040ac81f8f386c6c1407Wu-cheng Li        }
15587341536812081826656040ac81f8f386c6c1407Wu-cheng Li
1562ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        // Set entries and entry values to list preference.
1572ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        pref.setEntries(entries.toArray(new CharSequence[entries.size()]));
1582ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        pref.setEntryValues(entryValues.toArray(
1592ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li                new CharSequence[entryValues.size()]));
16087341536812081826656040ac81f8f386c6c1407Wu-cheng Li
1612ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        // Set the value to the first entry if it is invalid.
1622ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        String value = pref.getValue();
1632ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        int index = pref.findIndexOfValue(value);
16487341536812081826656040ac81f8f386c6c1407Wu-cheng Li        if (index == -1) {
1652ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            pref.setValueIndex(0);
16687341536812081826656040ac81f8f386c6c1407Wu-cheng Li        }
16787341536812081826656040ac81f8f386c6c1407Wu-cheng Li    }
16887341536812081826656040ac81f8f386c6c1407Wu-cheng Li
1692ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li    private void updateVideoQualitySummary() {
1702ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        mVideoQuality.setSummary(mVideoQuality.getEntry());
17187341536812081826656040ac81f8f386c6c1407Wu-cheng Li    }
17287341536812081826656040ac81f8f386c6c1407Wu-cheng Li
1732ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li    private void updateWhiteBalanceSummary() {
1742ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        mWhiteBalance.setSummary(mWhiteBalance.getEntry());
175b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    }
176b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
1772ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li    private void updateEffectSummary() {
1782ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        mEffect.setSummary(mEffect.getEntry());
179b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    }
180b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project
181c8cd9098d9ca174f5a0374789145faf1f15d503dRay Chen    private void updateBrightnessSummary() {
182c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen        mBrightness.setSummary(mBrightness.getEntry());
183c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen    }
184c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen
1859dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li    private void updatePictureSizeSummary() {
1869dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li        mPictureSize.setSummary(mPictureSize.getEntry());
1879dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li    }
1889dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li
189e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li    private void updateJpegQualitySummary() {
190e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li        mJpegQuality.setSummary(mJpegQuality.getEntry());
191e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li    }
192e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li
1930f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li    private void updateFocusModeSummary() {
1940f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        mFocusMode.setSummary(mFocusMode.getEntry());
1950f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li    }
1960f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li
197b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
198b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project            String key) {
19987341536812081826656040ac81f8f386c6c1407Wu-cheng Li        if (key.equals(KEY_VIDEO_QUALITY)) {
2002ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            updateVideoQualitySummary();
20187341536812081826656040ac81f8f386c6c1407Wu-cheng Li        } else if (key.equals(KEY_WHITE_BALANCE)) {
2022ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            updateWhiteBalanceSummary();
2032ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li        } else if (key.equals(KEY_EFFECT)) {
2042ac0387bbd6792187aeaacf10e40688f4260e316Wu-cheng Li            updateEffectSummary();
2059dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li        } else if (key.equals(KEY_PICTURE_SIZE)) {
2069dacf7b214339440c16f3d66e12d6afef1248f68Wu-cheng Li            updatePictureSizeSummary();
207e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li        } else if (key.equals(KEY_JPEG_QUALITY)) {
208e0770004600f76cc4b440104e98e14712b4fd1c6Wu-cheng Li            updateJpegQualitySummary();
2090f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li        } else if (key.equals(KEY_FOCUS_MODE)) {
2100f56ef5704b7f1a0874528367147487c051876d9Wu-cheng Li            updateFocusModeSummary();
211c396ca0bd5129bc6ae754ea7366e410c5bac41b0Ray Chen        } else if (key.equals(KEY_BRIGHTNESS)) {
212c8cd9098d9ca174f5a0374789145faf1f15d503dRay Chen            updateBrightnessSummary();
213c8cd9098d9ca174f5a0374789145faf1f15d503dRay Chen        }
214b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project    }
215b64d345c9d51cabce43b5191532a0c185d2a70a5The Android Open Source Project}
216