@Override
  public void onActivateThemeClicked(String themeId, final Fragment fragment) {
    final String siteId = getBlogId();
    if (themeId == null) {
      themeId = mPreviewFragment.getThemeId();
    }

    final String newThemeId = themeId;
    final WeakReference<ThemeBrowserActivity> ref = new WeakReference<ThemeBrowserActivity>(this);
    mIsActivatingTheme = true;
    final int page = mViewPager.getCurrentItem();
    WordPress.getRestClientUtils()
        .setTheme(
            siteId,
            themeId,
            new Listener() {
              @Override
              public void onResponse(JSONObject arg0) {
                mIsActivatingTheme = false;
                Toast.makeText(
                        ThemeBrowserActivity.this, R.string.theme_set_success, Toast.LENGTH_LONG)
                    .show();

                WordPress.wpDB.setCurrentTheme(siteId, newThemeId);
                if (mDetailsFragment != null) {
                  mDetailsFragment.onThemeActivated(true);
                }
                setRefreshing(false, page);

                if (ref.get() != null && mIsRunning && fragment instanceof ThemePreviewFragment) {
                  FragmentManager fm = ref.get().getSupportFragmentManager();

                  if (fm.getBackStackEntryCount() > 0) {
                    fm.popBackStack();
                    setupBaseLayout();
                    invalidateOptionsMenu();
                  }
                }
              }
            },
            new ErrorListener() {
              @Override
              public void onErrorResponse(VolleyError arg0) {
                mIsActivatingTheme = false;
                if (mDetailsFragment != null && mDetailsFragment.isVisible())
                  mDetailsFragment.onThemeActivated(false);
                if (ref.get() != null)
                  Toast.makeText(ref.get(), R.string.theme_set_failed, Toast.LENGTH_LONG).show();
              }
            });
  }
  @Override
  public void onLivePreviewClicked(String themeId, String previewURL) {
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();

    if (mPreviewFragment == null) {
      mPreviewFragment = ThemePreviewFragment.newInstance(themeId, previewURL);
    } else {
      mPreviewFragment.load(themeId, previewURL);
    }

    if (mDetailsFragment != null) {
      if (Utils.isXLarge(ThemeBrowserActivity.this)) {
        mDetailsFragment.dismiss();
      } else {
        ft.hide(mDetailsFragment);
      }
    }
    ft.add(R.id.theme_browser_container, mPreviewFragment, ThemePreviewFragment.TAG);
    ft.addToBackStack(null);
    ft.commit();
    setupBaseLayout();
  }