package org.wordpress.android.ui.plans; import android.app.Fragment; import android.os.Bundle; import android.support.percent.PercentLayoutHelper; import android.support.percent.PercentRelativeLayout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import org.wordpress.android.R; import org.wordpress.android.WordPress; import org.wordpress.android.ui.ActivityLauncher; import org.wordpress.android.ui.themes.ThemeWebActivity; import org.wordpress.android.util.AppLog; import org.wordpress.android.util.DisplayUtils; /** * single page within the post-purchase activity's ViewPager */ public class PlanPostPurchaseFragment extends Fragment { private static final String ARG_PAGE_NUMBER = "page_number"; private int mPageNumber; static PlanPostPurchaseFragment newInstance(int pageNumber) { PlanPostPurchaseFragment fragment = new PlanPostPurchaseFragment(); Bundle args = new Bundle(); args.putInt(ARG_PAGE_NUMBER, pageNumber); fragment.setArguments(args); return fragment; } @Override public void setArguments(Bundle args) { super.setArguments(args); mPageNumber = args.getInt(ARG_PAGE_NUMBER); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(ARG_PAGE_NUMBER, mPageNumber); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { mPageNumber = savedInstanceState.getInt(ARG_PAGE_NUMBER); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.plan_post_purchase_fragment, container, false); ImageView image = (ImageView) rootView.findViewById(R.id.image); TextView txtTitle = (TextView) rootView.findViewById(R.id.text_title); TextView txtDescription = (TextView) rootView.findViewById(R.id.text_description); Button button = (Button) rootView.findViewById(R.id.button); // reduce margin of image on landscape phones so content doesn't extend beyond the screen if (DisplayUtils.isLandscape(getActivity()) && !DisplayUtils.isXLarge(getActivity())) { PercentRelativeLayout.LayoutParams layoutParams = (PercentRelativeLayout.LayoutParams) image.getLayoutParams(); PercentLayoutHelper.PercentLayoutInfo percentLayoutInfo = layoutParams.getPercentLayoutInfo(); percentLayoutInfo.topMarginPercent = 15 * 0.01f; // 15% percentLayoutInfo.bottomMarginPercent = 5 * 0.01f; // 5% image.setLayoutParams(layoutParams); } int titleResId; int textResId; int buttonResId; int imageResId; switch (mPageNumber) { case PlanPostPurchaseActivity.PAGE_NUMBER_INTRO: titleResId = R.string.plans_post_purchase_title_intro; textResId = R.string.plans_post_purchase_text_intro; buttonResId = 0; imageResId = R.drawable.plans_business_active; break; case PlanPostPurchaseActivity.PAGE_NUMBER_CUSTOMIZE: titleResId = R.string.plans_post_purchase_title_customize; textResId = R.string.plans_post_purchase_text_customize; buttonResId = R.string.plans_post_purchase_button_customize; imageResId = R.drawable.plans_customize; break; case PlanPostPurchaseActivity.PAGE_NUMBER_VIDEO: titleResId = R.string.plans_post_purchase_title_video; textResId = R.string.plans_post_purchase_text_video; buttonResId = R.string.plans_post_purchase_button_video; imageResId = R.drawable.plans_video_upload; break; case PlanPostPurchaseActivity.PAGE_NUMBER_THEMES: titleResId = R.string.plans_post_purchase_title_themes; textResId = R.string.plans_post_purchase_text_themes; buttonResId = R.string.plans_post_purchase_button_themes; imageResId = R.drawable.plans_premium_themes; break; default: AppLog.w(AppLog.T.PLANS, "invalid plans post-purchase page"); throw new IllegalArgumentException("invalid plans post-purchase page"); } txtTitle.setText(titleResId); txtDescription.setText(textResId); image.setImageResource(imageResId); if (buttonResId != 0) { button.setVisibility(View.VISIBLE); button.setText(buttonResId); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { handleButtonClick(); } }); } else { button.setVisibility(View.GONE); } return rootView; } private void handleButtonClick() { switch (mPageNumber) { case PlanPostPurchaseActivity.PAGE_NUMBER_CUSTOMIZE: ThemeWebActivity.openCurrentTheme(getActivity(), ThemeWebActivity.ThemeWebActivityType.PREVIEW); break; case PlanPostPurchaseActivity.PAGE_NUMBER_THEMES: ActivityLauncher.viewCurrentBlogThemes(getActivity()); break; case PlanPostPurchaseActivity.PAGE_NUMBER_VIDEO: ActivityLauncher.addNewBlogPostOrPageForResult(getActivity(), WordPress.currentBlog, false); break; } // the user launched another activity, so we close this one getActivity().finish(); } }