BrowserPreferencesPage.java revision d69f51ddd5b6c28c9d16725e65facaf830d650e1
10c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project/*
20c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
30c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project *
40c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
50c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * you may not use this file except in compliance with the License.
60c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * You may obtain a copy of the License at
70c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project *
80c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
90c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project *
100c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
110c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
120c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * See the License for the specific language governing permissions and
140c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * limitations under the License.
150c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */
160c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
170c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectpackage com.android.browser;
180c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
1978a98e459323f938e97789a6131beddbebb459ceNicolas Roardimport android.content.Intent;
200c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.net.Uri;
210c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.os.Bundle;
220c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.preference.EditTextPreference;
230c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.preference.Preference;
240c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.preference.PreferenceActivity;
2578a98e459323f938e97789a6131beddbebb459ceNicolas Roardimport android.preference.PreferenceScreen;
26f344d03c0b01d30575ba1ddd1ed340705c6f5a97Steve Blockimport android.webkit.GeolocationPermissions;
2799b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roardimport android.webkit.ValueCallback;
2878a98e459323f938e97789a6131beddbebb459ceNicolas Roardimport android.webkit.WebStorage;
29d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
30d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport java.util.Map;
31d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport java.util.Set;
320c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
330c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectpublic class BrowserPreferencesPage extends PreferenceActivity
34b81735a96d5e44ff9acf275619ad797ec0467670Andrei Popescu        implements Preference.OnPreferenceChangeListener {
350c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
3699b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard    private String LOGTAG = "BrowserPreferencesPage";
37d530494de9c182af4aff97ddd46343b32594da51Leon Scroggins    /* package */ static final String CURRENT_PAGE = "currentPage";
3878a98e459323f938e97789a6131beddbebb459ceNicolas Roard
390c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    @Override
400c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    protected void onCreate(Bundle savedInstanceState) {
410c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        super.onCreate(savedInstanceState);
420c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
430c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        // Load the XML preferences file
440c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        addPreferencesFromResource(R.xml.browser_preferences);
450c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
460c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        Preference e = findPreference(BrowserSettings.PREF_HOMEPAGE);
470c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        e.setOnPreferenceChangeListener(this);
480c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        e.setSummary(getPreferenceScreen().getSharedPreferences()
490c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                .getString(BrowserSettings.PREF_HOMEPAGE, null));
50d530494de9c182af4aff97ddd46343b32594da51Leon Scroggins        ((BrowserHomepagePreference) e).setCurrentPage(
51d530494de9c182af4aff97ddd46343b32594da51Leon Scroggins                getIntent().getStringExtra(CURRENT_PAGE));
520c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
530c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        e = findPreference(BrowserSettings.PREF_EXTRAS_RESET_DEFAULTS);
540c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        e.setOnPreferenceChangeListener(this);
550c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
560c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        e = findPreference(BrowserSettings.PREF_TEXT_SIZE);
570c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        e.setOnPreferenceChangeListener(this);
580c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        e.setSummary(getVisualTextSizeName(
590c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                getPreferenceScreen().getSharedPreferences()
600c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                .getString(BrowserSettings.PREF_TEXT_SIZE, null)) );
610c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
622f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        e = findPreference(BrowserSettings.PREF_DEFAULT_ZOOM);
632f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        e.setOnPreferenceChangeListener(this);
642f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        e.setSummary(getVisualDefaultZoomName(
652f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba                getPreferenceScreen().getSharedPreferences()
662f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba                .getString(BrowserSettings.PREF_DEFAULT_ZOOM, null)) );
672f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba
680c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        e = findPreference(BrowserSettings.PREF_DEFAULT_TEXT_ENCODING);
690c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        e.setOnPreferenceChangeListener(this);
70f344d03c0b01d30575ba1ddd1ed340705c6f5a97Steve Block
71fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins        e = findPreference(BrowserSettings.PREF_CLEAR_HISTORY);
72fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins        e.setOnPreferenceChangeListener(this);
73fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins
740c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        if (BrowserSettings.getInstance().showDebugSettings()) {
750c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            addPreferencesFromResource(R.xml.debug_preferences);
760c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        }
77f344d03c0b01d30575ba1ddd1ed340705c6f5a97Steve Block
78f344d03c0b01d30575ba1ddd1ed340705c6f5a97Steve Block        PreferenceScreen websiteSettings = (PreferenceScreen)
79e46990ea925f41bdb4d504c91a681e826f4b6eb1Nicolas Roard            findPreference(BrowserSettings.PREF_WEBSITE_SETTINGS);
80e46990ea925f41bdb4d504c91a681e826f4b6eb1Nicolas Roard        Intent intent = new Intent(this, WebsiteSettingsActivity.class);
81f344d03c0b01d30575ba1ddd1ed340705c6f5a97Steve Block        websiteSettings.setIntent(intent);
82e46990ea925f41bdb4d504c91a681e826f4b6eb1Nicolas Roard    }
836f480422c930d5a85624f42af8f1ca2c063cb4b5Nicolas Roard
84e46990ea925f41bdb4d504c91a681e826f4b6eb1Nicolas Roard    /*
85f344d03c0b01d30575ba1ddd1ed340705c6f5a97Steve Block     * We need to set the PreferenceScreen state in onResume(), as the number of
86f344d03c0b01d30575ba1ddd1ed340705c6f5a97Steve Block     * origins with active features (WebStorage, Geolocation etc) could have
87f344d03c0b01d30575ba1ddd1ed340705c6f5a97Steve Block     * changed after calling the WebsiteSettingsActivity.
88e46990ea925f41bdb4d504c91a681e826f4b6eb1Nicolas Roard     */
89e46990ea925f41bdb4d504c91a681e826f4b6eb1Nicolas Roard    @Override
90e46990ea925f41bdb4d504c91a681e826f4b6eb1Nicolas Roard    protected void onResume() {
91e46990ea925f41bdb4d504c91a681e826f4b6eb1Nicolas Roard        super.onResume();
9299b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard        final PreferenceScreen websiteSettings = (PreferenceScreen)
93e46990ea925f41bdb4d504c91a681e826f4b6eb1Nicolas Roard            findPreference(BrowserSettings.PREF_WEBSITE_SETTINGS);
9499b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard        websiteSettings.setEnabled(false);
9599b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard        WebStorage.getInstance().getOrigins(new ValueCallback<Map>() {
9699b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard            public void onReceiveValue(Map webStorageOrigins) {
9799b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard                if ((webStorageOrigins != null) && !webStorageOrigins.isEmpty()) {
9899b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard                    websiteSettings.setEnabled(true);
9999b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard                }
10099b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard            }
10199b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard        });
1022a6a0f478fb9b67bf7398b1ba7c54ca9c9e430bfSteve Block        GeolocationPermissions.getInstance().getOrigins(new ValueCallback<Set<String> >() {
1032a6a0f478fb9b67bf7398b1ba7c54ca9c9e430bfSteve Block            public void onReceiveValue(Set<String> geolocationOrigins) {
10499b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard                if ((geolocationOrigins != null) && !geolocationOrigins.isEmpty()) {
10599b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard                    websiteSettings.setEnabled(true);
10699b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard                }
10799b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard            }
10899b3ae1a384981f96fca5432f3d20bf4e8d13667Nicolas Roard        });
1090c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    }
1100c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
1110c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    @Override
1120c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    protected void onPause() {
1130c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        super.onPause();
1140c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
1150c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        // sync the shared preferences back to BrowserSettings
1160c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        BrowserSettings.getInstance().syncSharedPreferences(
117d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert                getApplicationContext(),
1180c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                getPreferenceScreen().getSharedPreferences());
1190c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    }
1200c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
1210c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    public boolean onPreferenceChange(Preference pref, Object objValue) {
1220c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        if (pref.getKey().equals(BrowserSettings.PREF_EXTRAS_RESET_DEFAULTS)) {
1230c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            Boolean value = (Boolean) objValue;
1240c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            if (value.booleanValue() == true) {
1250c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                finish();
1260c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            }
1270c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        } else if (pref.getKey().equals(BrowserSettings.PREF_HOMEPAGE)) {
1280c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            String value = (String) objValue;
1290c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            boolean needUpdate = value.indexOf(' ') != -1;
1300c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            if (needUpdate) {
1310c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                value = value.trim().replace(" ", "%20");
1320c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            }
1330c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            if (value.length() != 0 && Uri.parse(value).getScheme() == null) {
1340c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                value = "http://" + value;
1350c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                needUpdate = true;
1360c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            }
1370c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            // Set the summary value.
1380c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            pref.setSummary(value);
1390c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            if (needUpdate) {
1400c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                // Update through the EditText control as it has a cached copy
1410c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                // of the string and it will handle persisting the value
1420c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                ((EditTextPreference) pref).setText(value);
1430c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
1440c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                // as we update the value above, we need to return false
1450c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                // here so that setText() is not called by EditTextPref
1460c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                // with the old value.
1470c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                return false;
1480c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            } else {
1490c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                return true;
1500c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            }
1510c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        } else if (pref.getKey().equals(BrowserSettings.PREF_TEXT_SIZE)) {
1520c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            pref.setSummary(getVisualTextSizeName((String) objValue));
1530c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            return true;
1542f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        } else if (pref.getKey().equals(BrowserSettings.PREF_DEFAULT_ZOOM)) {
1552f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba            pref.setSummary(getVisualDefaultZoomName((String) objValue));
1562f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba            return true;
1570c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        } else if (pref.getKey().equals(
1580c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                BrowserSettings.PREF_DEFAULT_TEXT_ENCODING)) {
1590c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            pref.setSummary((String) objValue);
1600c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            return true;
161fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins        } else if (pref.getKey().equals(BrowserSettings.PREF_CLEAR_HISTORY)
162fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins                && ((Boolean) objValue).booleanValue() == true) {
163fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins            // Need to tell the browser to remove the parent/child relationship
164fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins            // between tabs
165fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins            setResult(RESULT_OK, (new Intent()).putExtra(Intent.EXTRA_TEXT,
166fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins                    pref.getKey()));
167fde9746ac3055848e110c35f19ec5893c621f766Leon Scroggins            return true;
1680c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        }
1690c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
1700c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        return false;
1710c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    }
1722f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba
1730c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    private CharSequence getVisualTextSizeName(String enumName) {
1742f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        CharSequence[] visualNames = getResources().getTextArray(
1752f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba                R.array.pref_text_size_choices);
1762f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        CharSequence[] enumNames = getResources().getTextArray(
1772f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba                R.array.pref_text_size_values);
1782f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba
1790c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        // Sanity check
1800c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        if (visualNames.length != enumNames.length) {
1810c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            return "";
1820c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        }
1832f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba
1840c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        for (int i = 0; i < enumNames.length; i++) {
1850c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            if (enumNames[i].equals(enumName)) {
1860c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                return visualNames[i];
1870c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            }
1880c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        }
1892f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba
1902f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        return "";
1912f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba    }
1922f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba
1932f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba    private CharSequence getVisualDefaultZoomName(String enumName) {
1942f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        CharSequence[] visualNames = getResources().getTextArray(
1952f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba                R.array.pref_default_zoom_choices);
1962f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        CharSequence[] enumNames = getResources().getTextArray(
1972f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba                R.array.pref_default_zoom_values);
1982f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba
1992f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        // Sanity check
2002f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        if (visualNames.length != enumNames.length) {
2012f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba            return "";
2022f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        }
2032f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba
2042f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        for (int i = 0; i < enumNames.length; i++) {
2052f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba            if (enumNames[i].equals(enumName)) {
2062f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba                return visualNames[i];
2072f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba            }
2082f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba        }
2092f83068b9e8835f97010bc2ee1d77f3a13827ae4Grace Kloba
2100c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        return "";
2110c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    }
2120c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project}
213