/** Initialize the search engine list. */ private void initEntries() { TemplateUrlService templateUrlService = TemplateUrlService.getInstance(); if (!templateUrlService.isLoaded()) { templateUrlService.registerLoadListener(this); templateUrlService.load(); return; // Flow continues in onTemplateUrlServiceLoaded below. } // Fetch all the search engine info and the currently active one. mSearchEngines = templateUrlService.getLocalizedSearchEngines(); int searchEngineIndex = templateUrlService.getDefaultSearchEngineIndex(); // Convert the TemplateUrl index into an index into mSearchEngines. mSelectedSearchEnginePosition = -1; for (int i = 0; i < mSearchEngines.size(); ++i) { if (mSearchEngines.get(i).getIndex() == searchEngineIndex) { mSelectedSearchEnginePosition = i; } } // Report back what is selected. String name = ""; if (mSelectedSearchEnginePosition > -1) { name = mSearchEngines.get(mSelectedSearchEnginePosition).getShortName(); } mCallback.currentSearchEngineDetermined(name); }
private void searchEngineSelected(int position) { // First clean up any automatically added permissions (if any) for the previously selected // search engine. SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); if (sharedPreferences.getBoolean(PrefServiceBridge.LOCATION_AUTO_ALLOWED, false)) { if (locationEnabled(mSelectedSearchEnginePosition, false)) { String url = TemplateUrlService.getInstance() .getSearchEngineUrlFromTemplateUrl(toIndex(mSelectedSearchEnginePosition)); WebsitePreferenceBridge.nativeSetGeolocationSettingForOrigin( url, url, ContentSetting.DEFAULT.toInt(), false); } sharedPreferences.edit().remove(PrefServiceBridge.LOCATION_AUTO_ALLOWED).apply(); } // Record the change in search engine. mSelectedSearchEnginePosition = position; TemplateUrlService.getInstance().setSearchEngine(toIndex(mSelectedSearchEnginePosition)); // Report the change back. TemplateUrl templateUrl = mSearchEngines.get(mSelectedSearchEnginePosition); mCallback.currentSearchEngineDetermined(templateUrl.getShortName()); notifyDataSetChanged(); }
private void onLocationLinkClicked() { if (!LocationSettings.getInstance().isSystemLocationSettingEnabled()) { mContext.startActivity(LocationSettings.getInstance().getSystemLocationSettingsIntent()); } else { Intent settingsIntent = PreferencesLauncher.createIntentForSettingsPage( mContext, SingleWebsitePreferences.class.getName()); String url = TemplateUrlService.getInstance() .getSearchEngineUrlFromTemplateUrl(toIndex(mSelectedSearchEnginePosition)); Bundle fragmentArgs = SingleWebsitePreferences.createFragmentArgsForSite(url); fragmentArgs.putBoolean( SingleWebsitePreferences.EXTRA_LOCATION, locationEnabled(mSelectedSearchEnginePosition, true)); settingsIntent.putExtra(Preferences.EXTRA_SHOW_FRAGMENT_ARGUMENTS, fragmentArgs); mContext.startActivity(settingsIntent); } mCallback.onDismissDialog(); }