@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(); }