package com.yaoyumeng.v2ex.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.text.Editable;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import com.yaoyumeng.v2ex.R;
import com.yaoyumeng.v2ex.api.HttpRequestHandler;
import com.yaoyumeng.v2ex.api.V2EXManager;
import com.yaoyumeng.v2ex.model.MemberModel;
import com.yaoyumeng.v2ex.model.ReplyModel;
import com.yaoyumeng.v2ex.ui.swipeback.SwipeBackActivity;
import com.yaoyumeng.v2ex.utils.InputUtils;
import com.yaoyumeng.v2ex.utils.MessageUtils;
import com.yaoyumeng.v2ex.utils.SimpleTextWatcher;
public class TopicCommentActivity extends SwipeBackActivity
implements HttpRequestHandler<Integer> {
EditText mContent;
MenuItem mMenuAdd;
int mTopicId;
String mReplyToWho;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_topic_comment);
mContent = (EditText) findViewById(R.id.topic_add_content);
mContent.addTextChangedListener(textWatcher);
Intent intent = getIntent();
mTopicId = intent.getIntExtra("topic_id", 0);
mReplyToWho = intent.getStringExtra("reply_to");
if (mReplyToWho != null && !mReplyToWho.isEmpty()) {
mContent.setText("@" + mReplyToWho + " ");
//mContent.setSelection(mContent.getText().length());
InputUtils.popSoftkeyboard(TopicCommentActivity.this, mContent, true);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_topic_comment, menu);
mMenuAdd = menu.findItem(R.id.action_add);
updateAddButton();
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_add:
createComment();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private SimpleTextWatcher textWatcher = new SimpleTextWatcher() {
@Override
public void afterTextChanged(Editable s) {
updateAddButton();
}
};
@Override
public void onSuccess(Integer data) {
showProgressBar(false);
Intent intent = new Intent();
ReplyModel reply = new ReplyModel();
reply.content = reply.contentRendered = mContent.getText().toString();
reply.created = System.currentTimeMillis() / 1000;
reply.member = new MemberModel();
reply.member.username = mLoginProfile.username;
reply.member.avatar = mLoginProfile.avatar;
intent.putExtra("reply_result", (Parcelable) reply);
setResult(Activity.RESULT_OK, intent);
finish();
}
@Override
public void onSuccess(Integer data, int total, int current) {
}
@Override
public void onFailure(String error) {
showProgressBar(false);
MessageUtils.showErrorMessage(TopicCommentActivity.this, error);
}
private void createComment() {
InputUtils.popSoftkeyboard(this, mContent, false);
showProgressBar(R.string.topic_comment_working);
V2EXManager.replyCreateWithTopicId(this, mTopicId,
mContent.getText().toString(), this);
}
private void updateAddButton() {
enableSendButton(!mContent.getText().toString().isEmpty());
}
private void enableSendButton(boolean enable) {
if (mMenuAdd == null)
return;
mMenuAdd.setEnabled(enable);
}
}