private void startListFragments(Bundle savedInstanceState, Uri accountsUri, Uri allowedKeysUri) {
    // However, if we're being restored from a previous state,
    // then we don't need to do anything and should return or else
    // we could end up with overlapping fragments.
    if (savedInstanceState != null) {
      return;
    }

    // show accounts only if available (deprecated API)
    Cursor cursor = getContentResolver().query(accountsUri, null, null, null, null);
    if (cursor != null && cursor.moveToFirst())
      try {
        mAccountsLabel.setVisibility(View.VISIBLE);
        mAccountsListFragment = AccountsListFragment.newInstance(accountsUri);
        // Create an instance of the fragments
        getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.api_accounts_list_fragment, mAccountsListFragment)
            .commitAllowingStateLoss();
      } finally {
        cursor.close();
      }

    // Create an instance of the fragments
    mAllowedKeysFragment = AppSettingsAllowedKeysListFragment.newInstance(allowedKeysUri);
    // Add the fragment to the 'fragment_container' FrameLayout
    // NOTE: We use commitAllowingStateLoss() to prevent weird crashes!
    getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.api_allowed_keys_list_fragment, mAllowedKeysFragment)
        .commitAllowingStateLoss();
    // do it immediately!
    getSupportFragmentManager().executePendingTransactions();
  }
    @Override
    public Fragment getItem(int i) {
      AccountsListFragment currentFragment;
      switch (i) {
        case INDEX_RECENT_ACCOUNTS_FRAGMENT:
          currentFragment =
              AccountsListFragment.newInstance(AccountsListFragment.DisplayMode.RECENT);
          break;

        case INDEX_FAVORITE_ACCOUNTS_FRAGMENT:
          currentFragment =
              AccountsListFragment.newInstance(AccountsListFragment.DisplayMode.FAVORITES);
          break;

        case INDEX_TOP_LEVEL_ACCOUNTS_FRAGMENT:
        default:
          currentFragment =
              AccountsListFragment.newInstance(AccountsListFragment.DisplayMode.TOP_LEVEL);
          break;
      }

      mFragmentPageReferenceMap.put(i, currentFragment);
      return currentFragment;
    }