--- 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<String, String> 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;
}
--- 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);
+ }
}