@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_videoitem_list);
    StreamingService streamingService = null;

    View bg = findViewById(R.id.mainBG);
    bg.setVisibility(View.VISIBLE);

    try {
      // ------ todo: remove this line when multiservice support is implemented ------
      currentStreamingServiceId = ServiceList.getIdOfService("Youtube");
      streamingService = ServiceList.getService(currentStreamingServiceId);
    } catch (Exception e) {
      e.printStackTrace();
      ErrorActivity.reportError(
          VideoItemListActivity.this,
          e,
          null,
          findViewById(R.id.videoitem_list),
          ErrorActivity.ErrorInfo.make(
              ErrorActivity.SEARCHED,
              ServiceList.getNameOfService(currentStreamingServiceId),
              "",
              R.string.general_error));
    }
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    listFragment =
        (VideoItemListFragment) getSupportFragmentManager().findFragmentById(R.id.videoitem_list);
    listFragment.setStreamingService(streamingService);

    if (savedInstanceState != null && mode != PRESENT_VIDEOS_MODE) {
      searchQuery = savedInstanceState.getString(QUERY);
      currentStreamingServiceId = savedInstanceState.getInt(STREAMING_SERVICE);
      if (!searchQuery.isEmpty()) {
        listFragment.search(searchQuery);
      }
    }

    if (findViewById(R.id.videoitem_detail_container) != null) {
      // The detail container view will be present only in the
      // large-screen layouts (res/values-large and
      // res/values-sw600dp). If this view is present, then the
      // activity should be in two-pane mode.
      mTwoPane = true;

      // In two-pane mode, list items should be given the
      // 'activated' state when touched.

      ((VideoItemListFragment) getSupportFragmentManager().findFragmentById(R.id.videoitem_list))
          .setActivateOnItemClick(true);

      SearchView searchView = (SearchView) findViewById(R.id.searchViewTablet);
      if (mode != PRESENT_VIDEOS_MODE) {
        // Somehow the seticonifiedbydefault property set by the layout xml is not working on
        // the support version on SearchView, so it needs to be set programmatically.
        searchView.setIconifiedByDefault(false);
        searchView.setIconified(false);
        if (!searchQuery.isEmpty()) {
          searchView.setQuery(searchQuery, false);
        }
        searchView.setOnQueryTextListener(new SearchVideoQueryListener());
        suggestionListAdapter = new SuggestionListAdapter(this);
        searchView.setSuggestionsAdapter(suggestionListAdapter);
        searchView.setOnSuggestionListener(new SearchSuggestionListener(searchView));
      } else {
        searchView.setVisibility(View.GONE);
      }
    }

    PreferenceManager.setDefaultValues(this, R.xml.settings, false);
  }