package com.itbox.grzl.activity;
import java.util.ArrayList;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import butterknife.OnFocusChange;
import com.activeandroid.Model;
import com.activeandroid.content.ContentProvider;
import com.activeandroid.query.Delete;
import com.itbox.fx.net.GsonResponseHandler;
import com.itbox.fx.net.Net;
import com.itbox.fx.util.EditTextUtils;
import com.itbox.fx.util.ToastUtils;
import com.itbox.grzl.Api;
import com.itbox.grzl.AppContext;
import com.zhaoliewang.grzl.R;
import com.itbox.grzl.bean.Job;
import com.itbox.grzl.bean.UpdateUserExtension;
import com.itbox.grzl.bean.UserExtension;
import com.itbox.grzl.common.Contasts;
import com.itbox.grzl.enumeration.TeacherType;
import com.loopj.android.http.RequestParams;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.Loader;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
/**
* 更多资料
*
* @author youzh
*
*/
public class UserInfoMoreActivity extends BaseActivity implements
LoaderCallbacks<Cursor> {
@InjectView(R.id.text_left)
TextView mTVTopCancel;
@InjectView(R.id.text_medium)
TextView mTVTopMedium;
@InjectView(R.id.text_right)
TextView mTVTopSave;
@InjectView(R.id.more_my_name_et)
EditText mEtUserInfoName;
@InjectView(R.id.more_my_shenfenzheng)
TextView mTVShenfenzheng;
@InjectView(R.id.more_my_bankcard)
EditText mEtUserInfoBankCard;
@InjectView(R.id.more_my_bankcard_name)
EditText mEtUserInfoBankCardName;
@InjectView(R.id.teacher_type)
TextView mTeacherType;// 导师类型
@InjectView(R.id.position_type)
TextView mPositionType;// 职位类型
@InjectView(R.id.more_my_zixunPhone_et)
EditText mEtUserInfoZixunPhone;// 电话咨询
@InjectView(R.id.more_my_zixunImg_et)
EditText mEtUserInfoZixunImg;// 图文咨询
@InjectView(R.id.more_my_zixunTime_tv)
TextView mTVUserInfoZixunTime;// 咨询时段
private UserExtension userExtension;
private String time1;
private String time2;
private String[] jobsNames;
private int[] jobsIds;
private int teacherId;
private int jobId;
// private UserExtension newUserExtension = new UserExtension();
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_user_info_more);
ButterKnife.inject(mActThis);
initViews();
ArrayList<Job> jobList = AppContext.getJobs();
jobsNames = new String[jobList.size()];
jobsIds = new int[jobList.size()];
for (int i = 0; i < jobsNames.length; i++) {
jobsNames[i] = jobList.get(i).getName();
jobsIds[i] = jobList.get(i).getId();
}
getSupportLoaderManager().initLoader(0, null, this);
getData();
}
private void initViews() {
mTVTopCancel.setVisibility(View.VISIBLE);
mTVTopSave.setVisibility(View.VISIBLE);
mTVTopCancel.setText("返回");
mTVTopMedium.setText("更多资料");
mTVTopSave.setText("保存");
}
private String mSaveEtString;
@OnFocusChange({ R.id.more_my_zixunPhone_et, R.id.more_my_zixunImg_et })
public void onFocusChange(View v, boolean b) {
EditText et = (EditText) v;
if (b) {
mSaveEtString = et.getText().toString();
et.setText("");
} else if (TextUtils.isEmpty(et.getText().toString())) {
et.setText(mSaveEtString);
}
}
private void initDatas() {
mEtUserInfoName.setText(userExtension.getUsernickname());
switch (userExtension.getUsercodestate()) {
case 0:
mTVShenfenzheng.setTextColor(Color.rgb(235, 81, 77));// 红
mTVShenfenzheng.setText("未审核");
break;
case 1:
mTVShenfenzheng.setTextColor(Color.rgb(121, 185, 104));// 绿
mTVShenfenzheng.setText("已审核");
break;
case 2:
mTVShenfenzheng.setTextColor(Color.rgb(253, 108, 23));// 橘
mTVShenfenzheng.setText("审核中");
break;
case 3:
mTVShenfenzheng.setTextColor(Color.rgb(253, 108, 23));// 橘
mTVShenfenzheng.setText("审核失败");
break;
}
if (TextUtils.isEmpty(userExtension.getTeachertype())) {
teacherId = 1;
} else {
teacherId = Integer.parseInt(userExtension.getTeachertype());
}
mTeacherType.setText(TeacherType.getTeacherName(teacherId));
if (TextUtils.isEmpty(userExtension.getJobtype())) {
jobId = 1;
} else {
jobId = Integer.parseInt(userExtension.getJobtype());
if (jobId < 1) {
jobId = 1;
}
}
mPositionType.setText(jobsNames[jobId - 1]);
mEtUserInfoBankCard.setText(userExtension.getUserbank());
mEtUserInfoBankCardName.setText(userExtension.getBankaddress());
mEtUserInfoZixunPhone.setText(userExtension.getPhoneprice());
mEtUserInfoZixunImg.setText(userExtension.getPictureprice());
mTVUserInfoZixunTime.setText(userExtension.getStarttime() + "-"
+ userExtension.getEndtime());
time1 = userExtension.getStarttime();
time2 = userExtension.getEndtime();
}
// @Override
// protected boolean onBack() {
// userExtension.equals(obj);
// return true;
// }
@OnClick({ R.id.text_left, R.id.text_right, R.id.more_my_name_iv,
R.id.more_my_shenfenzheng_rl, R.id.more_my_bankcard_rl,
R.id.more_my_bankcard_name_rl, R.id.teacher_type,
R.id.position_type, R.id.more_my_zixunImg_rl,
R.id.more_my_zixunPhone_rl, R.id.more_my_zixunTime_rl })
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.text_left:
mActThis.finish();
break;
case R.id.text_right:
postDataMethod();
break;
case R.id.more_my_name_iv:
EditTextUtils.showKeyboard(mEtUserInfoName);
EditTextUtils.setSelection(mEtUserInfoName);
break;
case R.id.more_my_shenfenzheng_rl:
if (userExtension.getUsercodestate() == 1
|| userExtension.getUsercodestate() == 2) {
break;
}
startActivity(UserIDCardActivity.class);
break;
case R.id.more_my_bankcard_rl:// 银行卡号
EditTextUtils.showKeyboard(mEtUserInfoBankCard);
EditTextUtils.setSelection(mEtUserInfoBankCard);
break;
case R.id.more_my_bankcard_name_rl:// 开户行名称
EditTextUtils.showKeyboard(mEtUserInfoBankCardName);
EditTextUtils.setSelection(mEtUserInfoBankCardName);
break;
case R.id.teacher_type:
new AlertDialog.Builder(mActThis).setItems(
TeacherType.getAllTeacherName(), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
teacherId = TeacherType.getTeacherId(which + 1);
Log.i("youzh", "teacher:" + teacherId + "--"
+ which);
mTeacherType.setText(TeacherType
.getTeacherName(which + 1));
}
}).show();
break;
case R.id.position_type:
new AlertDialog.Builder(mActThis).setItems(jobsNames,
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
jobId = jobsIds[which];
Log.i("youzh", "job:" + jobId + "--" + which);
mPositionType.setText(jobsNames[which]);
}
}).show();
break;
case R.id.more_my_zixunImg_rl:// 图文咨询
EditTextUtils.showKeyboard(mEtUserInfoZixunImg);
EditTextUtils.setSelection(mEtUserInfoZixunImg);
break;
case R.id.more_my_zixunPhone_rl:// 电话咨询
EditTextUtils.showKeyboard(mEtUserInfoZixunPhone);
EditTextUtils.setSelection(mEtUserInfoZixunPhone);
break;
case R.id.more_my_zixunTime_rl:// 咨询时段
Intent intent = new Intent(mActThis, SelectDoubleHourActivity.class);
intent.putExtra("type", "workTime");
mActThis.startActivityForResult(intent,
Contasts.REQUEST_SELECT_ZIXUN_TIME);
break;
default:
break;
}
super.onClick(v);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case Contasts.REQUEST_SELECT_ZIXUN_TIME:
if (resultCode == RESULT_OK && data != null) {
time1 = (data
.getIntExtra(SelectDoubleHourActivity.Extra.Time_Earliest, 0) / 60) + "";
time2 = (data
.getIntExtra(SelectDoubleHourActivity.Extra.Time_Latest, 0) / 60) + "";
// String time3 =
// data.getStringExtra(SelectDoubleHourActivity.Extra.Time_Earliest);
// String time4 =
// data.getStringExtra(SelectDoubleHourActivity.Extra.Time_Latest);
// Log.i("youzh", time1 + "-"+time2 +"-"+ time3 + "-"+time4);
mTVUserInfoZixunTime.setText(time1 + "-" + time2);
}
break;
}
}
/**
* 获取用户更多资料
*/
private void getData() {
Net.request("userid", AppContext.getInstance().getAccount().getUserid()
+ "", Api.getUrl(Api.User.GET_USER_EXTENSION),
new GsonResponseHandler<UserExtension>(UserExtension.class) {
@Override
public void onSuccess(UserExtension object) {
super.onSuccess(object);
new Delete()
.from(UserExtension.class)
.where(UserExtension.USERID + "=?",
object.getUserid().toString())
.execute();
object.save();
}
});
}
/**
* 更改用户更多资料
*/
private void postDataMethod() {
final double picPrice = Double.parseDouble(EditTextUtils.getText(mEtUserInfoZixunImg));
final double phonePrice = Double.parseDouble(EditTextUtils.getText(mEtUserInfoZixunPhone));
if ((picPrice !=0 && picPrice < 1) || (phonePrice !=0 && phonePrice < 1)) {
showToast("咨询价格必须等于0或者大于1元");
return;
}
showProgressDialog("更新中...");
RequestParams params = new RequestParams();
params.put("userid", userExtension.getUserid());
params.put("userbank", EditTextUtils.getText(mEtUserInfoBankCard));
params.put("bankaddress",
EditTextUtils.getText(mEtUserInfoBankCardName));
params.put("teachertype", teacherId + "");
params.put("jobtype", jobId + "");
params.put("pictureprice", picPrice + "");
params.put("phoneprice", phonePrice + "");
params.put("starttime", time1);
params.put("endtime", time2);
Net.request(params, Api.getUrl(Api.User.UP_USER_MORE),
new GsonResponseHandler<UpdateUserExtension>(
UpdateUserExtension.class) {
@Override
public void onSuccess(UpdateUserExtension object) {
super.onSuccess(object);
int result = object.getResult();
switch (result) {
case Contasts.RESULT_SUCCES:
// 保存用户数据
userExtension.setUserbank(EditTextUtils
.getText(mEtUserInfoBankCard));
userExtension.setBankaddress(EditTextUtils
.getText(mEtUserInfoBankCardName));
userExtension.setTeachertype(teacherId + "");
userExtension.setJobtype(jobId + "");
userExtension.setPictureprice(picPrice + "");
userExtension.setPhoneprice(phonePrice + "");
userExtension.setStarttime(time1);
userExtension.setEndtime(time2);
userExtension.save();
dismissProgressDialog();
UserInfoMoreActivity.this.finish();
break;
case Contasts.RESULT_FAIL:
dismissProgressDialog();
ToastUtils.showToast(mActThis, "更新失败,请重试");
break;
default:
break;
}
}
@Override
public void onFinish() {
dismissProgressDialog();
}
@Override
public void onFailure(Throwable error, String content) {
showToast(content);
}
});
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
return new android.support.v4.content.CursorLoader(mActThis,
ContentProvider.createUri(UserExtension.class, null), null,
UserExtension.USERID + "=?", new String[] { AppContext
.getInstance().getAccount().getUserid().toString() },
null);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
if (cursor != null && cursor.moveToNext()) {
userExtension = new UserExtension();
userExtension.loadFromCursor(cursor);
initDatas();
} else {
getData();// 获取网络数据
}
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
// TODO Auto-generated method stub
}
}