package com.xiaomi.xms.sales.ui; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import com.xiaomi.xms.sales.R; import com.xiaomi.xms.sales.ShopIntentService; import com.xiaomi.xms.sales.activity.BaseActivity; import com.xiaomi.xms.sales.activity.FCodeActivity; import com.xiaomi.xms.sales.loader.ImageLoader; import com.xiaomi.xms.sales.model.Image; import com.xiaomi.xms.sales.util.Constants; import com.xiaomi.xms.sales.util.ToastUtil; public class FCodeFragment extends BaseFragment { private EditText mFcodeText; private EditText mVcodeText; private ImageView mVerifyImage; private Button mChangeBtn; private Button mSubmitBtn; private ProgressDialog mProgressDialog; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fcode_fragment, container, false); mFcodeText = (EditText) view.findViewById(R.id.fcode); mVcodeText = (EditText) view.findViewById(R.id.vcode); mVerifyImage = (ImageView) view.findViewById(R.id.vcode_image); mChangeBtn = (Button) view.findViewById(R.id.change); mSubmitBtn = (Button) view.findViewById(R.id.submit); Bundle bundle = getArguments(); if (bundle != null) { String fcode = bundle.getString(Constants.Intent.EXTRA_CHECKCODE_FCODE); if (!TextUtils.isEmpty(fcode)) { mFcodeText.setText(fcode); } } return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); flushVerifyCode(); mProgressDialog = ProgressDialog.show(getActivity(), null, getResources().getString(R.string.vcode_waiting), false, true); mChangeBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mVcodeText.setText(""); mVcodeText.requestFocus(); flushVerifyCode(); } }); mSubmitBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { submit(); } }); } private void flushVerifyCode() { Activity activity = getActivity(); Intent intent = new Intent(activity, ShopIntentService.class); intent.setAction(Constants.Intent.ACTION_FETCH_VCODE); activity.startService(intent); } private void submit() { mProgressDialog = ProgressDialog.show(getActivity(), null, getResources().getString(R.string.fcode_waiting), false, true); Activity activity = getActivity(); Intent intent = new Intent(activity, ShopIntentService.class); intent.setAction(Constants.Intent.ACTION_VERIFY_VCODE); intent.putExtra(Constants.Intent.EXTRA_CHECKCODE_VCODE, mVcodeText.getText().toString()); activity.startService(intent); } public void onServiceCompleted(String action, Intent callbackIntent) { if (Constants.Intent.ACTION_FETCH_VCODE.equals(action)) { onFetchVcodeCompleted(callbackIntent); } else if (Constants.Intent.ACTION_VERIFY_VCODE.equals(action)) { onVerifyVcodeCompleted(callbackIntent); } else if (Constants.Intent.ACTION_VERIFY_FCODE.equals(action)) { onVerifyFcodeCompleted(callbackIntent); } } private void onFetchVcodeCompleted(Intent intent) { String url = intent.getStringExtra(Constants.Intent.EXTRA_CHECKCODE_URL); if (mProgressDialog != null) { mProgressDialog.dismiss(); } if (url != null) { ImageLoader.getInstance() .loadImage(mVerifyImage, new Image(url), R.drawable.list_default_bg); } else { ToastUtil.show(getActivity(), R.string.fcode_vcode_fetch_err); } } private void onVerifyVcodeCompleted(Intent intent) { boolean isOK = intent.getBooleanExtra(Constants.Intent.EXTRA_CHECKCODE_RESULT, false); if (isOK) { Activity activity = getActivity(); Intent verifyIntent = new Intent(activity, ShopIntentService.class); verifyIntent.setAction(Constants.Intent.ACTION_VERIFY_FCODE); verifyIntent.putExtra(Constants.Intent.EXTRA_CHECKCODE_FCODE, mFcodeText.getText() .toString()); activity.startService(verifyIntent); } else { if (mProgressDialog != null) { mProgressDialog.dismiss(); } mVcodeText.requestFocus(); ToastUtil.show(getActivity(), R.string.fcode_vcode_err); } } private void onVerifyFcodeCompleted(Intent intent) { boolean isOK = intent.getBooleanExtra(Constants.Intent.EXTRA_CHECKCODE_RESULT, false); if (mProgressDialog != null) { mProgressDialog.dismiss(); } if (isOK) { String json = intent.getStringExtra(Constants.Intent.EXTRA_CHECKCODE_LISTSTR); Bundle bundle = new Bundle(); bundle.putString(Constants.Intent.EXTRA_CHECKCODE_LISTSTR, json); ((BaseActivity) getActivity()).showFragment(FCodeActivity.TAG_SELECT_FRAGMENT, bundle, true); } else { mFcodeText.requestFocus(); String msg = intent.getStringExtra(Constants.Intent.EXTRA_CHECKCODE_MESSAGE); if (TextUtils.isEmpty(msg)) { ToastUtil.show(getActivity(), R.string.fcode_verify_fcode_err); } else { ToastUtil.show(getActivity(), msg); } } } }