# HG changeset patch # User Nikita Kozlov # Date 1320327956 -3600 # Node ID 3039eca6adabb8abc016c5d1497f8cc2c10d4f11 # Parent 391114f750f0f6972ba65a847ed465494580d302 Save in database send message diff -r 391114f750f0 -r 3039eca6adab src/com/beem/project/beem/providers/MessageProvider.java --- a/src/com/beem/project/beem/providers/MessageProvider.java Wed Nov 02 18:01:06 2011 +0100 +++ b/src/com/beem/project/beem/providers/MessageProvider.java Thu Nov 03 14:45:56 2011 +0100 @@ -61,7 +61,6 @@ private static HashMap messagesProjectionMap; private DatabaseHelper mDbHelper; - private Context mContext; /** * Constructor. @@ -94,7 +93,8 @@ if (rowId == -1) throw new SQLException("Failed to insert row into " + uri); Uri messageUri = ContentUris.withAppendedId(Messages.CONTENT_URI, rowId); - mContext.getContentResolver().notifyChange(messageUri, null); + Log.e(TAG, "INSERT " + getContext()); + getContext().getContentResolver().notifyChange(messageUri, null); return messageUri; } @@ -114,7 +114,7 @@ } SQLiteDatabase db = mDbHelper.getReadableDatabase(); Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder); - c.setNotificationUri(mContext.getContentResolver(), uri); + c.setNotificationUri(getContext().getContentResolver(), uri); return c; } @@ -130,7 +130,7 @@ default: throw new IllegalArgumentException("Unknown URI " + uri); } - mContext.getContentResolver().notifyChange(uri, null); + getContext().getContentResolver().notifyChange(uri, null); return count; } @@ -146,7 +146,7 @@ default: throw new IllegalArgumentException("Unknown URI " + uri); } - mContext.getContentResolver().notifyChange(uri, null); + getContext().getContentResolver().notifyChange(uri, null); return count; } diff -r 391114f750f0 -r 3039eca6adab src/com/beem/project/beem/ui/Chat.java --- a/src/com/beem/project/beem/ui/Chat.java Wed Nov 02 18:01:06 2011 +0100 +++ b/src/com/beem/project/beem/ui/Chat.java Thu Nov 03 14:45:56 2011 +0100 @@ -43,7 +43,11 @@ */ package com.beem.project.beem.ui; +import java.text.SimpleDateFormat; +import java.util.Date; + import android.app.Activity; +import android.content.ContentValues; import android.content.SharedPreferences; import android.graphics.drawable.LayerDrawable; import android.net.Uri; @@ -52,11 +56,16 @@ import android.util.Log; import android.view.KeyEvent; import android.view.View; +import android.view.View.OnClickListener; import android.view.View.OnKeyListener; +import android.widget.Button; +import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import com.beem.project.beem.R; +import com.beem.project.beem.providers.Messages; +import com.beem.project.beem.service.Message; /** * The chat activity for communication with 1 contact. @@ -94,6 +103,14 @@ } else { setContentView(R.layout.chat_compact); } + + Button sendButton = (Button) findViewById(R.id.chat_send_message); + sendButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + sendMessage(); + } + }); } @@ -112,7 +129,42 @@ @Override public boolean onKey(View v, int keyCode, KeyEvent event) { + Log.e(TAG, "ONKEY"); + if (event.getAction() == KeyEvent.ACTION_DOWN) { + Log.e(TAG, "ONKEY"); + switch (keyCode) { + case KeyEvent.KEYCODE_ENTER: + sendMessage(); + return true; + default: + return false; + } + } return false; } + + private void sendMessage() { + EditText inputField = (EditText) findViewById(R.id.chat_input); + final String inputContent = inputField.getText().toString(); + + Message message = new Message(mjid, Message.MSG_TYPE_CHAT); + message.setBody(inputContent); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + ContentValues values = new ContentValues(); + values.put(Messages.FROM, "me"); //TODO: Get current account name + values.put(Messages.MESSAGE_ID, "message id"); + values.put(Messages.TO, mjid); + values.put(Messages.TYPE, message.getType()); + values.put(Messages.SUBJECT, "SUBJECT"); + values.put(Messages.BODY, message.getBody()); + values.put(Messages.THREAD, "THREAD"); + values.put(Messages.EXTRAS, "EXTRAS"); + values.put(Messages.IS_RECEIVE, true); + values.put(Messages.DATE_RECEIVE, dateFormat.format(new Date())); + values.put(Messages.DATE_READ, dateFormat.format(message.getTimestamp())); + getContentResolver().insert(Messages.CONTENT_URI, values); + inputField.setText(null); + } }