package it.demo.twitterlike.android.ui;
import it.demo.twitterlike.android.domain.InternalMessage;
import it.demo.twitterlike.android.tasks.MessageCreateTask;
import it.demo.twitterlike.android.ui.utils.ViewUtils;
import org.apache.commons.lang3.StringUtils;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import com.telly.groundy.Groundy;
import com.telly.groundy.annotations.OnStart;
import com.telly.groundy.annotations.OnSuccess;
import com.telly.groundy.annotations.Param;
public class MessageCreateActivity extends AbstractAsyncActivity {
public static final String MESSAGE_RESULT = MessageCreateTask.MESSAGE_RESULT;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_messagecreate);
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle(R.string.activity_message_create_title);
final EditText etMessage = (EditText) findViewById(R.id.et_message);
final View buttonOk = findViewById(R.id.bt_message_create);
final View buttonCancel = findViewById(R.id.bt_message_cancel);
etMessage.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i,
int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1,
int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
buttonOk.setEnabled(StringUtils
.isNotBlank(editable != null ? editable.toString()
: null));
}
});
buttonOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Editable text = etMessage.getText();
if (text != null) {
saveMessage(text.toString());
}
}
});
buttonCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
{
Editable editable = etMessage.getText();
buttonOk.setEnabled(StringUtils
.isNotBlank(editable != null ? editable.toString() : null));
}
ViewUtils.openKeyboard(this);
}
protected void saveMessage(String message ) {
Groundy.create(MessageCreateTask.class)
.callback(this)
.arg(MessageCreateTask.ARGS_MESSAGE_TEXT,
message)
.callbackManager(callbacksManager)
.queueUsing(this);
}
@OnStart(MessageCreateTask.class)
public void onDeleteUserTaskStarted() {
showProgressDialog(getString(R.string.progressbar_create_message));
}
@OnSuccess({ MessageCreateTask.class })
public void onMessageCreated(
@Param(MessageCreateTask.MESSAGE_RESULT) InternalMessage message) {
dismissProgressDialog();
ViewUtils.closeKeyboard(this, findViewById(R.id.et_message));
makeToastText(R.string.toast_message_created);
Intent result = new Intent();
result.putExtra(MESSAGE_RESULT, message);
setResult(RESULT_OK, result);
finish();
}
public static void show(Activity context, int requestCode) {
final Intent intent = new Intent(context, MessageCreateActivity.class);
context.startActivityForResult(intent, requestCode);
}
}