package com.xiaomi.xms.sales.xmsf.account.ui; import android.app.Activity; import android.content.Context; import android.content.res.Configuration; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import com.xiaomi.xms.sales.R; import com.xiaomi.xms.sales.util.LogUtil; public abstract class StepsFragment extends Fragment implements OnClickListener { private static final String TAG = "StepsFragment"; protected Button mButtonPrevious; protected Button mButtonNext; protected Button mButtonFinish; @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mButtonPrevious = (Button) view.findViewById(R.id.btn_previous); mButtonNext = (Button) view.findViewById(R.id.btn_next); mButtonFinish = (Button) view.findViewById(R.id.btn_finish); if (mButtonPrevious != null) { mButtonPrevious.setOnClickListener(this); } if (mButtonNext != null) { mButtonNext.setOnClickListener(this); } if (mButtonFinish != null) { mButtonFinish.setOnClickListener(this); } } @Override public void onClick(View view) { if (view == mButtonPrevious) { onButtonPreviousClicked(); } else if (view == mButtonNext) { onButtonNextClicked(); } else if (view == mButtonFinish) { onButtonFinishClicked(); } } protected void displaySoftInputIfNeed(View focusedView, boolean tryDisplay) { // determine whether tryDisplay soft input keyboard or not InputMethodManager imm = (InputMethodManager) getActivity() .getSystemService(Context.INPUT_METHOD_SERVICE); if (tryDisplay && getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { imm.showSoftInput(focusedView, 0); } else { imm.hideSoftInputFromWindow(focusedView.getWindowToken(), 0); } } public void setButtonPreviousGone(boolean gone) { if (mButtonPrevious != null) { mButtonPrevious.setVisibility(gone ? View.GONE : View.VISIBLE); } else { Log.w(TAG, "button previous is null"); } } public void setButtonNextGone(boolean gone) { if (mButtonNext != null) { mButtonNext.setVisibility(gone ? View.GONE : View.VISIBLE); } else { Log.w(TAG, "button next is null"); } } protected void triggerNextStep() { onButtonNextClicked(); } protected void replaceToFragment(final Fragment f, final boolean clearBottom) { FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); if (clearBottom) { int count = manager.getBackStackEntryCount(); for (int i = 0; i < count; i++) { manager.popBackStack(); } } transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); transaction.replace(R.id.fragment_container, f); if (!clearBottom) { transaction.addToBackStack(null); } transaction.commitAllowingStateLoss(); } protected void onButtonPreviousClicked() { getFragmentManager().popBackStack(); } protected void onButtonNextClicked() { } protected void onButtonFinishClicked() { LogUtil.d(TAG, "on button finish clicked"); getActivity().setResult(Activity.RESULT_OK); getActivity().finish(); } }