package com.dreamspace.uucampus.ui.activity.FreeGoods;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.dreamspace.uucampus.R;
import com.dreamspace.uucampus.api.ApiManager;
import com.dreamspace.uucampus.common.UploadImage;
import com.dreamspace.uucampus.common.utils.CommonUtils;
import com.dreamspace.uucampus.common.utils.NetUtils;
import com.dreamspace.uucampus.common.utils.TLog;
import com.dreamspace.uucampus.model.CategoryItem;
import com.dreamspace.uucampus.model.api.AllCategoryRes;
import com.dreamspace.uucampus.model.api.CreateIdleReq;
import com.dreamspace.uucampus.model.api.CreateIdleRes;
import com.dreamspace.uucampus.model.api.QnRes;
import com.dreamspace.uucampus.ui.base.AbsActivity;
import com.dreamspace.uucampus.ui.dialog.VerifyGoodsInfoDialog;
import com.dreamspace.uucampus.ui.dialog.WheelViewDialog;
import com.qiniu.android.http.ResponseInfo;
import com.qiniu.android.storage.UpCompletionHandler;
import org.json.JSONObject;
import java.util.ArrayList;
import butterknife.Bind;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
/**
* Created by wufan on 2015/9/22.
*/
public class FreeGoodsPublishSecondActivity extends AbsActivity {
public static final String EXTRA_LOCAL_IMAGE_PATH = "goods_photo";
@Bind(R.id.free_goods_publish_second_next_button)
Button mNextBtn;
@Bind(R.id.free_goods_publish_second_name_et)
EditText mGoodsNameEt;
@Bind(R.id.free_goods_publish_second_price_et)
EditText mGoodsPriceEt;
@Bind(R.id.free_goods_publish_second_detail_et)
EditText mGoodsDetailEt;
@Bind(R.id.free_goods_publish_second_classify_et)
EditText mGoodsClassifyEt;
private String mImagePath;
private String mGoodsName;
private String mGoodsPrice;
private String mGoodsClassify;
private String mGoodsDetail;
private String mGoodsInfoWrong; //输出填写错误信息
private boolean isInfoCorrect;
// private ProgressDialog pd;
private com.dreamspace.uucampus.ui.dialog.ProgressDialog pd;
private CreateIdleReq req = new CreateIdleReq();
@Override
protected int getContentView() {
return R.layout.activity_free_goods_publish_second;
}
@Override
protected void prepareDatas() {
Bundle bundle = new Bundle();
bundle = getIntent().getExtras();
mImagePath = bundle.getString(EXTRA_LOCAL_IMAGE_PATH);
}
@Override
protected void initViews() {
mNextBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isGoodsInfoCorrect()) { //确认填写信息无误
req.setName(mGoodsNameEt.getText().toString());
req.setCategory(mGoodsClassifyEt.getText().toString());
req.setPrice(Float.parseFloat(mGoodsPriceEt.getText().toString())*100);
req.setDescription(mGoodsDetailEt.getText().toString());
mGoodsName = ":"+mGoodsNameEt.getText().toString();
mGoodsClassify = ":"+mGoodsClassifyEt.getText().toString();
mGoodsPrice = ":"+mGoodsPriceEt.getText().toString();
mGoodsDetail = ":"+mGoodsDetailEt.getText().toString();
final VerifyGoodsInfoDialog dialog = new VerifyGoodsInfoDialog(FreeGoodsPublishSecondActivity.this);
dialog.setGoodsName(mGoodsName);
dialog.setGoodsPrice(mGoodsPrice);
dialog.setGoodsClassify(mGoodsClassify);
dialog.setGoodsDetail(mGoodsDetail);
dialog.setTitle("确认商品信息");
dialog.setPositiveButton("返回修改", new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.setNegativeButton("确认提交", new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
upLoadImage(mImagePath); //先上传图片
//把所有信息写入后台
}
});
}
}
});
mGoodsClassifyEt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showClassify();
}
});
CommonUtils.setPricePoint(mGoodsPriceEt);
}
@Override
protected View getLoadingTargetView() {
return null;
}
public boolean isGoodsInfoCorrect() {
isInfoCorrect = false;
if(mGoodsNameEt.length()==0){
showToast("请填写商品名称");
}else if(mGoodsPriceEt.length()==0) {
showToast("请填写商品价格");
}else if(mGoodsClassifyEt.length()==0){
showToast("请选择商品分类");
}else if(mGoodsDetailEt.getText().toString().length()<10){
showToast("详情描述不少于10个字");
}else {
isInfoCorrect=true;
}
return isInfoCorrect;
}
private void updateGoods(CreateIdleReq req) { //更新后台商品信息,启动发布成功页面,并传递该商品所在的页面和列表所在列数
if (NetUtils.isNetworkConnected(FreeGoodsPublishSecondActivity.this)) {
ApiManager.getService(getApplicationContext()).createIdle(req, new Callback<CreateIdleRes>() {
@Override
public void success(CreateIdleRes createIdleRes, Response response) {
String idle_id = createIdleRes.getIdle_id();
TLog.e("FreeGoods create Idle:", idle_id);
Bundle bundle = new Bundle();
bundle.putString(FreeGoodsPublishSuccessActivity.EXTRA_IDLE_ID, idle_id);
finish();
pd.dismiss();
//发送广播,销毁前一个activity
Intent intent = new Intent();
intent.setAction("destroyActivity");
sendBroadcast(intent);
readyGoThenKill(FreeGoodsPublishSuccessActivity.class, bundle);
}
@Override
public void failure(RetrofitError error) {
pd.dismiss();
showInnerError(error);
}
});
} else {
pd.dismiss();
showNetWorkError();
}
}
//后台获取的商品分类,并展示分类对话框
private void showClassifyDialog(ArrayList<String> classifys) {
final WheelViewDialog dialog = new WheelViewDialog(
FreeGoodsPublishSecondActivity.this, classifys, getString(R.string.goods_classify));
dialog.setPositiveButton("取消", new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.setNegativeButton("确认", new View.OnClickListener() {
@Override
public void onClick(View v) {
mGoodsClassifyEt.setText(dialog.getSelected());
dialog.dismiss();
}
});
}
public void showClassify() {
final ArrayList<String> classifys = new ArrayList<String>();
if(NetUtils.isNetworkConnected(getApplicationContext())){
ApiManager.getService(getApplicationContext()).getAllIdleCategory(new Callback<AllCategoryRes>() {
@Override
public void success(AllCategoryRes allCategoryRes, Response response) {
TLog.i("idle tabs:", response.getReason());
for (CategoryItem categoryItem : allCategoryRes.getCategory()) {
classifys.add(categoryItem.getName());
}
showClassifyDialog(classifys);
}
@Override
public void failure(RetrofitError error) {
showInnerError(error);
}
});
}else {
showNetWorkError();
}
}
//上传图片
private void upLoadImage(final String path){
// pd = ProgressDialog.show(FreeGoodsPublishSecondActivity.this, "", "正在创建", true, false);
pd = new com.dreamspace.uucampus.ui.dialog.ProgressDialog(this);
pd.setContent("正在创建");
pd.show();
if (NetUtils.isNetworkConnected(FreeGoodsPublishSecondActivity.this)) {
ApiManager.getService(this).createQiNiuToken(new Callback<QnRes>() {
@Override
public void success(QnRes qnRes, Response response) {
UploadImage.upLoadImage(path, qnRes.getKey(), qnRes.getToken(), new UpCompletionHandler() {
@Override
public void complete(String key, ResponseInfo info, JSONObject response) {
if (info.isOK()) {
req.setImage(key);
updateGoods(req);
} else if (info.isServerError()) {
pd.dismiss();
showToast("服务暂时不可用,请稍后重试");
}
}
}, null);
}
@Override
public void failure(RetrofitError error) {
pd.dismiss();
showInnerError(error);
}
});
}else{
pd.dismiss();
showNetWorkError();
}
}
}