package net.dev123.yibo.service.task; import net.dev123.exception.LibException; import net.dev123.yibo.PassportActivity; import net.dev123.yibo.R; import net.dev123.yibo.common.Constants; import net.dev123.yibo.common.ResourceBook; import net.dev123.yibo.db.ConfigSystemDao; import net.dev123.yibome.YiBoMe; import net.dev123.yibome.entity.Passport; import android.app.ProgressDialog; import android.os.AsyncTask; import android.util.Log; import android.widget.Button; import android.widget.Toast; public class PassportLoginTask extends AsyncTask<Void, Void, Boolean> { private static final String TAG = PassportLoginTask.class.getSimpleName(); private PassportActivity context; private ProgressDialog progressDialog; private String username; private String password; private Passport passport; private String message; private Button btnSubmit; public PassportLoginTask(PassportActivity context, String username, String password) { this.context = context; this.username = username; this.password = password; } @Override protected void onPreExecute() { btnSubmit = (Button)context.findViewById(R.id.btnPassportFormSubmit); btnSubmit.setEnabled(false); progressDialog = ProgressDialog.show(context, "", context.getString(R.string.msg_passport_login), true, false); progressDialog.setOwnerActivity(context); } @Override protected Boolean doInBackground(Void... arg) { boolean isSuccess= false; try { passport = YiBoMe.login(username, password); isSuccess = true; } catch (LibException e) { if (Constants.DEBUG) { Log.d(TAG, e.getMessage()); } message = ResourceBook.getStatusCodeValue(e.getExceptionCode(), context); } return isSuccess; } protected void onPostExecute(Boolean result) { if (progressDialog != null && progressDialog.isShowing()) { try { progressDialog.dismiss(); } catch(Exception e){} } btnSubmit.setEnabled(true); if (result) { ConfigSystemDao configDao = new ConfigSystemDao(context); configDao.savePassport(passport); Toast.makeText(context, R.string.msg_passport_login_success, Toast.LENGTH_LONG).show(); context.setResult(Constants.RESULT_CODE_SUCCESS); context.finish(); } else { Toast.makeText(context, message, Toast.LENGTH_LONG).show(); } } }