package in.co.praveenkumar.mdroid.dialog; import in.co.praveenkumar.R; import in.co.praveenkumar.mdroid.helper.LetterColor; import in.co.praveenkumar.mdroid.helper.SessionSetting; import in.co.praveenkumar.mdroid.model.MoodleContact; import in.co.praveenkumar.mdroid.model.MoodleMessage; import in.co.praveenkumar.mdroid.moodlerest.MoodleRestMessage; import android.app.Dialog; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class MessageDialog extends Dialog implements android.view.View.OnClickListener { Context context; MoodleContact contact = new MoodleContact(); EditText messageET; SessionSetting session; public MessageDialog(Context context) { super(context); this.context = context; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.dialog_message); // Setup widget values TextView userImage = (TextView) findViewById(R.id.dialog_contact_image); TextView userName = (TextView) findViewById(R.id.dialog_contact_name); LinearLayout headerLine = (LinearLayout) findViewById(R.id.dialog_header_line); TextView unreadCount = (TextView) findViewById(R.id.dialog_unread_count); ImageView sendButton = (ImageView) findViewById(R.id.dialog_message_sendbutton); messageET = (EditText) findViewById(R.id.dialog_message_text); // Set values char letter = (contact.getFullname().length() > 0) ? contact .getFullname().charAt(0) : '0'; userImage.setText(String.valueOf(letter)); userName.setText(contact.getFullname()); userImage.setBackgroundColor(LetterColor.of(letter)); headerLine.setBackgroundColor(LetterColor.of(letter)); if (contact.getUnread() > 0) unreadCount.setText(String.valueOf(contact.getUnread())); else unreadCount.setVisibility(TextView.GONE); // Send button listener sendButton.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.dialog_message_sendbutton: session = new SessionSetting(context); new AsyncMessageSender(session.getmUrl(), session.getToken(), contact.getContactid(), messageET.getText().toString()) .execute(""); break; } dismiss(); } public void setContact(MoodleContact contact) { this.contact = contact; } private class AsyncMessageSender extends AsyncTask<String, Integer, Boolean> { String mUrl; String token; int userid; String message; MoodleRestMessage mrm; public AsyncMessageSender(String mUrl, String token, int userid, String message) { this.mUrl = mUrl; this.token = token; this.userid = userid; this.message = message; } @Override protected Boolean doInBackground(String... params) { mrm = new MoodleRestMessage(mUrl, token); MoodleMessage mMessage = new MoodleMessage(userid, message + "\n" + session.getMessageSignature()); return mrm.sendMessage(mMessage); } @Override protected void onPostExecute(Boolean result) { if (!result) Toast.makeText(context, "Message sending failed. Error: " + mrm.getError(), Toast.LENGTH_LONG).show(); else Toast.makeText(context, "Message sent!", Toast.LENGTH_SHORT) .show(); } } }