1d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert/*
2d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert * Copyright (C) 2010 The Android Open Source Project
3d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert *
4d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
5d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert * you may not use this file except in compliance with the License.
6d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert * You may obtain a copy of the License at
7d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert *
8d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert *      http://www.apache.org/licenses/LICENSE-2.0
9d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert *
10d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert * Unless required by applicable law or agreed to in writing, software
11d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
12d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert * See the License for the specific language governing permissions and
14d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert * limitations under the License.
15d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert */
16d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertpackage com.android.browser.search;
17d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
18d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport com.android.browser.R;
19d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
20d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport android.app.SearchManager;
21d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport android.content.ComponentName;
22d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport android.content.Context;
23d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport android.content.pm.ActivityInfo;
24d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport android.content.pm.PackageManager;
25d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport android.content.res.Resources;
26d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport android.preference.ListPreference;
27d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport android.util.AttributeSet;
28d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport android.util.Log;
29d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
30d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertimport java.util.ArrayList;
31d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
32d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringertclass SearchEnginePreference extends ListPreference {
33d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
34d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert    private static final String TAG = "SearchEnginePreference";
35d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
36d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert    public SearchEnginePreference(Context context, AttributeSet attrs) {
37d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        super(context, attrs);
38d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
39d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        ArrayList<CharSequence> entryValues = new ArrayList<CharSequence>();
40d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        ArrayList<CharSequence> entries = new ArrayList<CharSequence>();
41d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
42d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        SearchEngine defaultSearchEngine = SearchEngines.getDefaultSearchEngine(context);
43d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        String defaultSearchEngineName = null;
44d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        if (defaultSearchEngine != null) {
45d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert            defaultSearchEngineName = defaultSearchEngine.getName();
46d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert            entryValues.add(defaultSearchEngineName);
47d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert            entries.add(defaultSearchEngine.getLabel());
48d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        }
49d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        for (SearchEngineInfo searchEngineInfo : SearchEngines.getSearchEngineInfos(context)) {
50d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert            String name = searchEngineInfo.getName();
51d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert            // Skip entry with same name as default provider
52d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert            if (!name.equals(defaultSearchEngineName)) {
53d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert                entryValues.add(name);
54d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert                entries.add(searchEngineInfo.getLabel());
55d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert            }
56d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        }
57d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
58d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        setEntryValues(entryValues.toArray(new CharSequence[entryValues.size()]));
59d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert        setEntries(entries.toArray(new CharSequence[entries.size()]));
60d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert    }
61d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert
62d69f51ddd5b6c28c9d16725e65facaf830d650e1Bjorn Bringert}
63