@Override public void onThemeSelected(String themeId) { FragmentManager fm = getSupportFragmentManager(); if (!Utils.isXLarge(ThemeBrowserActivity.this)) { // show details as a fragment on top FragmentTransaction ft = fm.beginTransaction(); if (mSearchFragment != null && mSearchFragment.isVisible()) { fm.popBackStack(); } setupBaseLayout(); mDetailsFragment = ThemeDetailsFragment.newInstance(themeId); ft.add(R.id.theme_browser_container, mDetailsFragment, ThemeDetailsFragment.TAG); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.addToBackStack(null); ft.commit(); } else { // show details as a dialog mDetailsFragment = ThemeDetailsFragment.newInstance(themeId); mDetailsFragment.show(getSupportFragmentManager(), ThemeDetailsFragment.TAG); getSupportFragmentManager().executePendingTransactions(); int minWidth = getResources().getDimensionPixelSize(R.dimen.theme_details_dialog_min_width); int height = getResources().getDimensionPixelSize(R.dimen.theme_details_dialog_height); int width = Math.max((int) (DisplayUtils.getDisplayPixelWidth(this) * 0.6), minWidth); mDetailsFragment.getDialog().getWindow().setLayout(width, height); } }