package com.fancl.iloyalty.activity.login;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.RelativeLayout;
import com.fancl.iloyalty.Constants;
import com.fancl.iloyalty.R;
import com.fancl.iloyalty.activity.AndroidProjectFrameworkActivity;
import com.fancl.iloyalty.asynctask.ValidationAsyncTask;
import com.fancl.iloyalty.asynctask.callback.ValidationAsyncTaskCallback;
import com.fancl.iloyalty.factory.GeneralServiceFactory;
import com.fancl.iloyalty.pojo.User;
import com.fancl.iloyalty.pojo.ValidateUserParam;
import com.fancl.iloyalty.responseimpl.ValidationResult;
import com.fancl.iloyalty.util.LogController;
public class SignUpEnterMemberIDActivity extends AndroidProjectFrameworkActivity implements ValidationAsyncTaskCallback {
/** Called when the activity is first created. */
public User user;
private Activity activity;
private EditText memberIdEditText1;
private EditText memberIdEditText2;
private EditText memberIdEditText3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sign_up_enter_member_id_page);
// // Alert Dialog
// GeneralServiceFactory.getAlertDialogService().makeNativeDialog(this, "", getString(R.string.sign_up_scan_member_id_msg), getString(R.string.confirm_btn_title),
// new DialogInterface.OnClickListener() {
// public void onClick(DialogInterface dialog,int id) {
// // if this button is clicked, close
// // current activity
// Intent intent = new Intent(SignUpEnterMemberIDActivity.this, SignUpScanningBarCodeActivity.class);
// startActivityForResult(intent, Constants.SIGN_UP_BAR_CODE_INTENT);
// }
// },
// getString(R.string.cancel_btn_title),
// new DialogInterface.OnClickListener() {
// public void onClick(DialogInterface dialog,int id) {
// // if this button is clicked, just close
// // the dialog box and do nothing
// dialog.cancel();
// }
// },
// false, false);
addListener();
}
private void addListener() {
//Listener for EditText
memberIdEditText1 = (EditText)findViewById(R.id.member_id_edit_text_1);
memberIdEditText2 = (EditText)findViewById(R.id.member_id_edit_text_2);
memberIdEditText3 = (EditText)findViewById(R.id.member_id_edit_text_3);
memberIdEditText1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if (s.toString().length() > 1) {
memberIdEditText2.requestFocus();
}
}
});
memberIdEditText2.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if (s.toString().length() > 6) {
memberIdEditText3.requestFocus();
}
}
});
memberIdEditText3.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if (s.toString().length() > 3) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(memberIdEditText3.getWindowToken(), 0);
}
}
});
// Listener for Cancel Button
RelativeLayout cancelBtnLayout = (RelativeLayout)findViewById(R.id.cancel_btn);
cancelBtnLayout.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
// Go to the web login page, when the login button is pressed.
finish();
}
});
// Listener for Confirm Button
RelativeLayout confirmBtnLayout = (RelativeLayout)findViewById(R.id.confirm_btn);
confirmBtnLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
confirmBtnAction();
}
});
}
private void confirmBtnAction() {
String fanclMemberId = memberIdEditText1.getText().toString() + memberIdEditText2.getText().toString() + memberIdEditText3.getText().toString();
LogController.log("fanclMemberId " + fanclMemberId);
ValidateUserParam validateUserParam = new ValidateUserParam();
validateUserParam.setFanclMemberId(fanclMemberId);
ValidationAsyncTask accountServiceAsyncTask = new ValidationAsyncTask(this);
accountServiceAsyncTask.execute(validateUserParam);
if (checkLoadingDialog()) {
loadingDialog.loading();
final Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
if (loadingDialog != null) {
loadingDialog.stop();
}
// when the task active then close the dialog
t.cancel();
}
}, Constants.LOADING_DIALOG_TIMEOUT);
}
}
private void resetActiveBox () {
memberIdEditText1.setText("");
memberIdEditText2.setText("");
memberIdEditText3.setText("");
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (Constants.SIGN_UP_BAR_CODE_INTENT) : {
if (resultCode == SignUpEnterMemberIDActivity.RESULT_OK) {
String newText = data.getStringExtra(Constants.SIGN_UP_BAR_CODE_RETURN_KEY);
// TODO Update your TextView.
LogController.log("SignUpEnterMemberIDActivity onActivityResult : " + newText);
if (newText.length() > 2) {
memberIdEditText1.setText(newText.substring(0, 2));
}
if (newText.length() > 10) {
memberIdEditText2.setText(newText.substring(2, 10));
}
if (newText.length() >= 13) {
memberIdEditText3.setText(newText.substring(10, 13));
}
}
break;
}
}
}
@Override
public void onPostUserValidateUserAsyncTaskCallback(
ValidationResult validationResult) {
// TODO Auto-generated method stub
if (loadingDialog != null) {
loadingDialog.stop();
}
if (validationResult.getStatus() == null) {
return;
}
// status: 0 is success, 1 is fail, 2 is success but not yet register, 3 is success but not yet accept TOS
if (validationResult.getStatus() == 0) {
LogController.log("Status : 0 is success");
Intent resultIntent = new Intent(SignUpEnterMemberIDActivity.this, LoginFormActivity.class);
resultIntent.putExtra(Constants.LOGIN_FORM_MEMBER_ID_KEY, "");
startActivity(resultIntent);
// resultIntent.putExtra(Constants.SIGN_UP_ENTER_MEMBER_ID_RETURN_KEY, user.getEmail());
// setResult(SignUpEnterMemberIDActivity.RESULT_OK, resultIntent);
finish();
} else if (validationResult.getStatus() == 1) {
LogController.log("Status : 1 is fail");
GeneralServiceFactory.getAlertDialogService().makeNativeDialog(this, "",
GeneralServiceFactory.getLocaleService().textByLangaugeChooser(this, validationResult.getErrMsgEn(), validationResult.getErrMsgZh(), validationResult.getErrMsgSc()),
getString(R.string.ok_btn_title),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity
dialog.cancel();
}
},
"", null, false, false);
} else if (validationResult.getStatus() == 2) {
LogController.log("Status : 2 is success but not yet register");
String fanclMemberId = memberIdEditText1.getText().toString() + memberIdEditText2.getText().toString() + memberIdEditText3.getText().toString();
String name = validationResult.getName();
Intent intent = new Intent(SignUpEnterMemberIDActivity.this, SignUpFormActivity.class);
intent.putExtra("name", name);
intent.putExtra("id", fanclMemberId);
startActivity(intent);
finish();
} else if (validationResult.getStatus() == 3) {
LogController.log("Status : 3 is success but not yet accept TOS");
String fanclMemberId = memberIdEditText1.getText().toString() + memberIdEditText2.getText().toString() + memberIdEditText3.getText().toString();
Intent intent = new Intent(SignUpEnterMemberIDActivity.this, LoginTOSActivity.class);
intent.putExtra(Constants.LOGIN_FORM_MEMBER_ID_KEY, fanclMemberId);
startActivity(intent);
finish();
}
// resetActiveBox();
}
}