Beispiel #1
0
  /** 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);
  }
Beispiel #2
0
  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();
  }