package com.socks.jiandan.ui; import android.graphics.Color; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.text.Editable; import android.text.TextWatcher; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.EditText; import android.widget.TextView; import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.MaterialDialog; import com.android.volley.Response; import com.android.volley.VolleyError; import com.socks.jiandan.R; import com.socks.jiandan.base.BaseActivity; import com.socks.jiandan.base.ConstantString; import com.socks.jiandan.base.JDApplication; import com.socks.jiandan.model.Commentator; import com.socks.jiandan.net.Request4PushComment; import com.socks.jiandan.net.Request4PushFreshComment; import com.socks.jiandan.utils.EditTextShakeHelper; import com.socks.jiandan.utils.SharedPreUtils; import com.socks.jiandan.utils.ShowToast; import com.socks.jiandan.utils.TextUtil; import java.util.HashMap; import butterknife.ButterKnife; import butterknife.InjectView; public class PushCommentActivity extends BaseActivity { @InjectView(R.id.tv_title) TextView tv_title; @InjectView(R.id.et_content) EditText et_content; @InjectView(R.id.toolbar) Toolbar mToolbar; private String thread_id; private String parent_id; private String parent_name; private String author_name; private String author_email; private String message; private EditText et_name; private EditText et_email; private View positiveAction; private MaterialDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_push_comment); initView(); initData(); } @Override public void initView() { ButterKnife.inject(this); mToolbar.setTitleTextColor(Color.WHITE); setSupportActionBar(mToolbar); mToolbar.setTitle("回复"); mToolbar.setNavigationIcon(R.drawable.ic_actionbar_back); } @Override protected void initData() { parent_name = getIntent().getStringExtra("parent_name"); tv_title.setText(TextUtil.isNull(parent_name) ? "回复:" : "回复:" + parent_name); /*新鲜事中 文章id=当前的thread_id=接口参数中的post_id*/ thread_id = getIntent().getStringExtra("thread_id"); parent_id = getIntent().getStringExtra("parent_id"); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_push_comment, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; case R.id.action_push: message = et_content.getText().toString(); if (TextUtil.isNull(message)) { ShowToast.Short(ConstantString.INPUT_TOO_SHORT); new EditTextShakeHelper(this).shake(et_content); return true; } dialog = new MaterialDialog.Builder(this) .title("作为游客留言") .backgroundColor(getResources().getColor(JDApplication.COLOR_OF_DIALOG)) .contentColor(JDApplication.COLOR_OF_DIALOG_CONTENT) .positiveColor(JDApplication.COLOR_OF_DIALOG_CONTENT) .negativeColor(JDApplication.COLOR_OF_DIALOG_CONTENT) .titleColor(JDApplication.COLOR_OF_DIALOG_CONTENT) .customView(R.layout.dialog_commentotar_info, true) .positiveText("确定") .negativeText(android.R.string.cancel) .callback(new MaterialDialog.ButtonCallback() { @Override public void onPositive(final MaterialDialog dialog) { author_name = et_name.getText().toString(); author_email = et_email.getText().toString(); SharedPreUtils.setString(PushCommentActivity.this, "author_name", author_name); SharedPreUtils.setString(PushCommentActivity.this, "author_email", author_email); //新鲜事评论get if (thread_id.length() == 5) { String url; //回复别人 和首次评论 if (!TextUtil.isNull(parent_id) && !TextUtil.isNull (parent_name)) { url = Request4PushFreshComment.getRequestURL(thread_id, parent_id, parent_name, author_name, author_email, message); } else { url = Request4PushFreshComment.getRequestURLNoParent(thread_id, author_name, author_email, message); } //提交评论 executeRequest(new Request4PushFreshComment(url, new PushCommentListener(), new PushCommentErrorListener())); return; } //多说的评论post HashMap<String, String> requestParams; //回复别人 和首次评论 if (!TextUtil.isNull(parent_id)) { requestParams = Request4PushComment.getRequestParams(thread_id, parent_id, author_name, author_email, message); } else { requestParams = Request4PushComment.getRequestParamsNoParent(thread_id, author_name, author_email, message); } executeRequest(new Request4PushComment(Commentator.URL_PUSH_COMMENT, requestParams, new PushCommentListener(), new PushCommentErrorListener())); } @Override public void onNegative(MaterialDialog dialog) { } }).build(); et_name = (EditText) (dialog.getCustomView().findViewById(R.id .et_name)); et_email = (EditText) (dialog.getCustomView().findViewById(R.id .et_email)); positiveAction = dialog.getActionButton(DialogAction.POSITIVE); et_name.addTextChangedListener(new InputWatcher()); et_email.addTextChangedListener(new InputWatcher()); et_name.setText(SharedPreUtils.getString(PushCommentActivity .this, "author_name")); et_email.setText(SharedPreUtils.getString(PushCommentActivity .this, "author_email")); dialog.show(); return true; } return super.onOptionsItemSelected(item); } class PushCommentListener implements Response.Listener<Boolean> { @Override public void onResponse(Boolean response) { dialog.dismiss(); if (response) { setResult(RESULT_OK); finish(); } else { ShowToast.Short(ConstantString.COMMENT_FAILED); } } } class PushCommentErrorListener implements Response.ErrorListener { @Override public void onErrorResponse(VolleyError error) { ShowToast.Short(ConstantString.COMMENT_FAILED); dialog.dismiss(); } } private class InputWatcher implements 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) { positiveAction.setEnabled(TextUtil.isEmail(et_email.getText().toString().trim() ) && !TextUtil.isNull(et_name.getText().toString())); } @Override public void afterTextChanged(Editable s) { } } }