package net.coding.program.login.phone;
import android.app.Activity;
import android.content.Intent;
import android.text.Editable;
import android.widget.TextView;
import android.widget.Toast;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.RequestParams;
import net.coding.program.MainActivity_;
import net.coding.program.MyApp;
import net.coding.program.R;
import net.coding.program.common.Global;
import net.coding.program.common.SimpleSHA1;
import net.coding.program.common.base.MyJsonResponse;
import net.coding.program.common.enter.SimpleTextWatcher;
import net.coding.program.common.guide.GuideActivity;
import net.coding.program.common.network.MyAsyncHttpClient;
import net.coding.program.common.ui.BaseActivity;
import net.coding.program.common.ui.BaseFragment;
import net.coding.program.common.util.ActivityNavigate;
import net.coding.program.common.util.SingleToast;
import net.coding.program.common.util.ViewStyleUtil;
import net.coding.program.common.widget.LoginEditText;
import net.coding.program.common.widget.ValidePhoneView;
import net.coding.program.model.AccountInfo;
import net.coding.program.model.UserObject;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EFragment;
import org.androidannotations.annotations.FragmentArg;
import org.androidannotations.annotations.ViewById;
import org.json.JSONObject;
@EFragment(R.layout.fragment_phone_set_password4)
public class PhoneSetPasswordFragment2 extends BaseFragment {
@FragmentArg
String account = "";
@ViewById
LoginEditText phoneEdit, phoneCaptchaEdit, passwordEdit, repasswordEdit;
@ViewById
TextView loginButton;
@ViewById
ValidePhoneView sendCode;
@AfterViews
final void initPhoneSetPasswordFragment() {
phoneEdit.setText(account);
ViewStyleUtil.editTextBindButton(loginButton, phoneEdit, phoneCaptchaEdit, passwordEdit,
repasswordEdit);
sendCode.setUrl(ValidePhoneView.RESET_SEND_MESSAGE_URL);
sendCode.setPhoneString(account);
phoneEdit.addTextChangedListener(new SimpleTextWatcher() {
@Override
public void afterTextChanged(Editable s) {
account = s.toString();
sendCode.setPhoneString(account);
}
});
}
@Override
public void onStop() {
sendCode.onStop();
super.onStop();
}
@Click
void loginButton() {
String phoneCode = phoneCaptchaEdit.getTextString();
String password = passwordEdit.getTextString();
String repassword = repasswordEdit.getTextString();
if (password.length() < 6) {
SingleToast.showMiddleToast(getActivity(), "密码至少为6位");
return;
} else if (64 < password.length()) {
SingleToast.showMiddleToast(getActivity(), "密码不能大于64位");
return;
} else if (!password.equals(repassword)) {
SingleToast.showMiddleToast(getActivity(), "两次输入的密码不一致");
return;
}
RequestParams params = new RequestParams();
String url = ValidePhoneView.URL_RESET_PASSWORD;
String sha1Password = SimpleSHA1.sha1(password);
params.put("password", sha1Password);
params.put("confirm", sha1Password);
params.put("code", phoneCode);
params.put("account", account);
MyAsyncHttpClient.post(getActivity(), url, params, new MyJsonResponse(((BaseActivity) getActivity())) {
@Override
public void onMySuccess(JSONObject response) {
super.onMySuccess(response);
closeActivity();
}
@Override
public void onMyFailure(JSONObject response) {
super.onMyFailure(response);
showProgressBar(false, "");
}
});
showProgressBar(true, "");
}
@Click
void textClause() {
ActivityNavigate.startTermActivity(this);
}
protected void loadCurrentUser() {
AsyncHttpClient client = MyAsyncHttpClient.createClient(getActivity());
String url = Global.HOST_API + "/current_user";
client.get(getActivity(), url, new MyJsonResponse(getActivity()) {
@Override
public void onMySuccess(JSONObject respanse) {
super.onMySuccess(respanse);
// showProgressBar(false);
UserObject user = new UserObject(respanse.optJSONObject("data"));
AccountInfo.saveAccount(getActivity(), user);
MyApp.sUserObject = user;
AccountInfo.saveReloginInfo(getActivity(), user);
Global.syncCookie(getActivity());
AccountInfo.saveLastLoginName(getActivity(), user.name);
getActivity().sendBroadcast(new Intent(GuideActivity.BROADCAST_GUIDE_ACTIVITY));
getActivity().finish();
startActivity(new Intent(getActivity(), MainActivity_.class));
}
@Override
public void onMyFailure(JSONObject response) {
super.onMyFailure(response);
showProgressBar(false, "");
}
});
}
private void closeActivity() {
Toast.makeText(getActivity(), "重置密码成功", Toast.LENGTH_SHORT).show();
getActivity().setResult(Activity.RESULT_OK);
getActivity().finish();
}
}