package net.coding.program.setting;
import android.support.v7.app.AlertDialog;
import android.widget.TextView;
import net.coding.program.EntranceActivity;
import net.coding.program.MyApp;
import net.coding.program.R;
import net.coding.program.common.base.MyJsonResponse;
import net.coding.program.common.network.MyAsyncHttpClient;
import net.coding.program.common.network.util.Login;
import net.coding.program.common.ui.BackActivity;
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.EActivity;
import org.androidannotations.annotations.OnActivityResult;
import org.androidannotations.annotations.ViewById;
import org.json.JSONObject;
@EActivity(R.layout.activity_account_setting)
public class AccountSetting extends BackActivity {
private static final int RESULT_PHONE_SETTING = 1;
@ViewById
TextView email, suffix, phone;
@AfterViews
final void initAccountSetting() {
UserObject userObject = MyApp.sUserObject;
email.setText(userObject.email);
suffix.setText(userObject.global_key);
updatePhoneDisplay();
MyAsyncHttpClient.get(this, EntranceActivity.HOST_CURRENT, new MyJsonResponse(this) {
@Override
public void onMySuccess(JSONObject response) {
if (isFinishing()) {
return;
}
UserObject user = new UserObject(response.optJSONObject("data"));
AccountInfo.saveAccount(AccountSetting.this, user);
MyApp.sUserObject = user;
AccountInfo.saveReloginInfo(AccountSetting.this, user);
updatePhoneDisplay();
}
@Override
public void onMyFailure(JSONObject response) {
}
});
}
@Click
void phoneSetting() {
ValidePhoneActivity_.intent(this).startForResult(RESULT_PHONE_SETTING);
}
@OnActivityResult(RESULT_PHONE_SETTING)
void onResultPhone() {
updatePhoneDisplay();
}
private void updatePhoneDisplay() {
String phoneString = MyApp.sUserObject.phone;
if (!phoneString.isEmpty()) {
phone.setText(phoneString);
// phone.setCompoundDrawables(null, null, null, null);
} else {
phone.setText("未绑定");
}
String emailString = MyApp.sUserObject.email;
if (!emailString.isEmpty()) {
boolean emailValid = MyApp.sUserObject.isEmailValidation();
if (emailValid) {
email.setText(emailString);
} else {
emailString += " " + "未验证";
}
} else {
emailString += " " + "未绑定";
}
email.setText(emailString);
}
@Click
void passwordSetting() {
SetPasswordActivity_.intent(this).start();
}
@Click
void emailLayout() {
String emailString = MyApp.sUserObject.email;
boolean emailValid = MyApp.sUserObject.isEmailValidation();
if (!emailString.isEmpty() && !emailValid) {
new AlertDialog.Builder(this)
.setTitle("激活邮件")
.setMessage(R.string.alert_activity_email2)
.setPositiveButton("重发激活邮件", (dialog, which) -> {
Login.resendActivityEmail(AccountSetting.this);
})
.setNegativeButton("取消", null)
.show();
} else {
ModifyEmailActivity_.intent(this).start();
}
}
}