package com.jaf.biubiu;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.baidu.location.BDLocation;
import com.jaf.jcore.Application;
import com.jaf.jcore.BaseActionBarActivity;
import com.jaf.jcore.BindView;
import com.jaf.jcore.Http;
import com.jaf.jcore.HttpCallBack;
import com.jaf.jcore.JacksonWrapper;
import org.json.JSONObject;
import java.io.Serializable;
public class ActivityPublish extends BaseActionBarActivity {
private static final String TAG = "Activity Publish";
public static final String PUBLISH_EXTRA = "publish_extra";
@BindView(id = R.id.location)
private TextView mLocation;
@BindView(id = R.id.refresh, onClick = "refreshLocation")
private View mRefreshLocation;
@BindView(id = R.id.content)
private EditText mContent;
@BindView(id = R.id.sign)
private EditText mSign;
@BindView(id = R.id.textCount)
private TextView mTextCount;
@Override
protected int onLoadViewResource() {
return R.layout.activity_publish;
}
@Override
protected View getActionBarView() {
mActionBarView = getLayoutInflater().inflate(R.layout.view_action_bar_publish, null);
mActionBarView.findViewById(R.id.barOption).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
publish();
}
});
return mActionBarView;
}
@Override
protected void onViewDidLoad(Bundle savedInstanceState) {
updateLocation();
mContent.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int max = 200;
int input = mContent.length();
mTextCount.setText(String.valueOf(max - input));
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
private void publish() {
String text = mContent.getText().toString();
boolean valid = !TextUtils.isEmpty(text) && text.length() >= 5;
if(valid) {
Http http = new Http(TAG);
String sign = mSign.getText().toString();
String locDesc = Application.getInstance().getAppExtraInfo().addrStr;
String quest = mContent.getText().toString();
Extra extra = (Extra) getIntent().getSerializableExtra(PUBLISH_EXTRA);
int questType = extra.isUnionQuestion ? 2 : 1;
int unionId = extra.unionId;
JSONObject jo = JacksonWrapper.bean2Json(U.buildPublishQuestion(sign, locDesc, questType, unionId, quest));
http.url(Constant.API).JSON(jo).post(new HttpCallBack() {
@Override
public void onResponse(JSONObject response) {
super.onResponse(response);
Toast.makeText(ActivityPublish.this, R.string.publishSuccess, Toast.LENGTH_SHORT).show();
ActivityPublish.this.finish();
}
});
}else{
Toast.makeText(this, R.string.publish_at_leasst, Toast.LENGTH_SHORT).show();
}
}
public void refreshLocation(View v) {
updateLocation();
}
private void updateLocation() {
Toast.makeText(this, R.string.refresh_location, Toast.LENGTH_SHORT).show();
LocationManager.getInstance().requestLocation(new LocationManager.JLsn() {
@Override
public void onResult(double latitude, double longitude, BDLocation location) {
super.onResult(latitude, longitude, location);
Application.getInstance().getAppExtraInfo().lat = latitude;
Application.getInstance().getAppExtraInfo().lon = longitude;
Application.getInstance().getAppExtraInfo().city = location.getCity();
Application.getInstance().getAppExtraInfo().addrStr = location.getAddrStr();
mLocation.setText(location.getAddrStr());
}
});
}
public static void start(Activity activity, Extra extra) {
Intent intent = new Intent(activity, ActivityPublish.class);
intent.putExtra(PUBLISH_EXTRA, extra);
activity.startActivity(intent);
}
public static class Extra implements Serializable{
boolean isUnionQuestion;
int unionId;
}
}