package com.itbox.grzl.activity;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import com.itbox.fx.net.GsonResponseHandler;
import com.itbox.fx.util.ImageUtils;
import com.itbox.grzl.AppContext;
import com.itbox.grzl.api.ConsultationApi;
import com.itbox.grzl.api.ConsultationApi.AskQuestionListener;
import com.itbox.grzl.bean.UploadImageResult;
import com.itbox.grzl.engine.UserEngine;
import com.zhaoliewang.grzl.R;
public class PublishConsultationActivity extends BaseActivity implements
AskQuestionListener {
private final String DIR = Environment.getExternalStorageDirectory()
+ "/gaorenzhilu";
private final String TEMP_FEED_IMAGE_PATH = DIR + "TEMP_FEED_IMAGE.jpg";
private Uri imageFileUri;
@InjectView(R.id.et_title)
EditText titleEditText;
@InjectView(R.id.et_content)
EditText contentEditText;
@InjectView(R.id.iv)
ImageView mImageView;
@InjectView(R.id.tv_add_picture)
TextView addPicture;
@InjectView(R.id.tv_select_jobtype)
TextView selectJobtype;
@InjectView(R.id.btn_add)
Button btnAdd;
private String[] jobNames;
private int jobType = -1;
private File file;
private ConsultationApi api;
private ProgressDialog dialog;
@InjectView(R.id.text_medium)
TextView mediumTextView;
@InjectView(R.id.text_left)
TextView leftTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_publish_pic_consultation);
ButterKnife.inject(this);
mediumTextView.setText("图文咨询");
leftTextView.setVisibility(View.VISIBLE);
jobNames = AppContext.getJobNameArray();
File file = new File(DIR);
file.mkdir();
dialog = new ProgressDialog(this);
dialog.setMessage("正在发表提问...");
}
@OnClick(R.id.btn_add)
public void addConsultation() {
final String title = titleEditText.getText().toString();
final String content = contentEditText.getText().toString();
file = new File(TEMP_FEED_IMAGE_PATH);
if (TextUtils.isEmpty(title)) {
Toast.makeText(this, "标题不能为空", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(content)) {
Toast.makeText(this, "内容不能为空", Toast.LENGTH_SHORT).show();
return;
}
if (jobType == -1) {
Toast.makeText(this, "请选择工作类型", Toast.LENGTH_SHORT).show();
return;
}
if (!file.exists()) {
Toast.makeText(this, "请添加图片", Toast.LENGTH_SHORT).show();
return;
}
api = new ConsultationApi();
api.setmAskQuestionListener(this);
// 上传图片
FileInputStream in;
try {
in = new FileInputStream(file);
} catch (FileNotFoundException e) {
return;
}
showProgressDialog("上传图片...");
UserEngine.uploadImg(AppContext.getInstance().getAccount().getUserid()
.toString(), in, 2, new GsonResponseHandler<UploadImageResult>(
UploadImageResult.class) {
@Override
public void onFinish() {
dismissProgressDialog();
}
@Override
public void onSuccess(UploadImageResult result) {
super.onSuccess(result);
if (result != null && result.getReturnUrl() != null) {
api.freeAskQuestion(title, jobType + "",
result.getReturnUrl(), content, AppContext
.getInstance().getAccount().getUserid()
.toString());
} else {
dismissProgressDialog();
showToast("图片上传失败");
}
}
@Override
public void onFailure(Throwable error, String content) {
super.onFailure(error, content);
dismissProgressDialog();
showToast(content);
}
});
}
@OnClick(R.id.text_left)
public void back() {
finish();
}
@OnClick(R.id.tv_select_jobtype)
public void selectJobType() {
AlertDialog.Builder builder = new Builder(this);
builder.setItems(jobNames, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
jobType = arg1;
selectJobtype.setText(jobNames[arg1]);
}
}).show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == 1) {
imageFileUri = data.getData();
}
Bitmap bitmap = ImageUtils.getBitmap(this, null, null,
imageFileUri, 800, 600);
mImageView.setVisibility(View.VISIBLE);
mImageView.setImageBitmap(bitmap);
ImageUtils.Bitmap2File(bitmap, TEMP_FEED_IMAGE_PATH);
}
}
@OnClick(R.id.tv_add_picture)
public void getPic() {
AlertDialog.Builder builder = new Builder(this);
builder.setItems(new String[] { "拍照", "从图库选择" },
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
imageFileUri = getContentResolver()
.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new ContentValues());
if (imageFileUri != null) {
Intent intent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(
android.provider.MediaStore.EXTRA_OUTPUT,
imageFileUri);
// 开启系统拍照的Activity
startActivityForResult(intent, 0);
}
break;
case 1:
Intent intent = new Intent(
"android.intent.action.PICK");
intent.setType("image/*");
startActivityForResult(intent, 1);
break;
}
}
}).show();
}
@Override
public void onStartAsk() {
dialog.show();
}
@Override
public void onSuccess() {
dialog.dismiss();
Toast.makeText(this, "提问成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFail() {
dialog.dismiss();
Toast.makeText(this, "提问失败", Toast.LENGTH_SHORT).show();
}
}