package cn.edu.njupt.allgo.logicImpl;
import java.io.IOException;
import java.io.InputStream;
import org.json.JSONException;
import org.json.JSONObject;
import com.alibaba.fastjson.JSON;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.RequestParams;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import cn.edu.njupt.allgo.R;
import cn.edu.njupt.allgo.activity.UpdateUserDetailACTIVITY;
import cn.edu.njupt.allgo.application.MyDeclare;
import cn.edu.njupt.allgo.logic.RefreshInterFace;
import cn.edu.njupt.allgo.logic.UpdateUserDetailLogic;
import cn.edu.njupt.allgo.logic.UserDataLogic;
import cn.edu.njupt.allgo.util.ImageUtil;
import cn.edu.njupt.allgo.util.MD5;
import cn.edu.njupt.allgo.util.NetUtil;
import cn.edu.njupt.allgo.util.NetUtil.NetCallBack;
import cn.edu.njupt.allgo.vo.UserDataVo;
public class UpdateUserDetailLogicImpl implements UpdateUserDetailLogic{
private Context context ;
private RefreshInterFace refresh ;
private MyDeclare declare;
private UserDataVo userdata;
public UpdateUserDetailLogicImpl (Context context , RefreshInterFace refresh){
this.context = context;
this.refresh = refresh;
declare =(MyDeclare)context.getApplicationContext();
}
public void submitDetail(UserDataVo vo){
NetUtil netUtil = new NetUtil("user/detail", refresh, context, new NetCallBack(){
@Override
public void getResult(JSONObject jsonObject) {
try {
if(jsonObject.getString("response").equals("user_detail")){
userdata = JSON.parseObject(jsonObject.getString("user_detail") , UserDataVo.class);
refresh.refresh(userdata , 1);
}else{
refresh.refresh("更新出错", -1);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
netUtil.add("uid", vo.getUid()+"");
netUtil.add("usex", vo.getUsex()+"");
netUtil.add("ubirthday", vo.getUbirthday());
netUtil.add("uaddress", vo.getUaddress());
netUtil.add("usatement", vo.getUsatement());
netUtil.post();
}
@Override
public void updateAvatar(Bitmap avatar) {
NetUtil netUtil = new NetUtil("user/avatar", refresh, context, new NetCallBack(){
@Override
public void getResult(JSONObject jsonObject) {
try {
if(jsonObject.getString("response").equals("user_avatar")){
//Log.i("DB","success");
refresh.refresh(null , 1);
}else{
refresh.refresh("注册出错", -1);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bitmap bit = null;
if(avatar == null){
bit = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_avatar_120);
}else{
bit = avatar;
}
InputStream s = ImageUtil.Bitmap2InputStream(bit);
try {
netUtil.addStream("avatar",s,s.available());
} catch (IOException e) {
e.printStackTrace();
}
SharedPreferences sharedPref = context.getSharedPreferences("userdata",Context.MODE_PRIVATE);
int uid = sharedPref.getInt("uid", -1) ;
netUtil.add("uid", uid+"");
netUtil.post();
}
}