Save in database send message
authorNikita Kozlov <nikita@elyzion.net>
Thu, 03 Nov 2011 14:45:56 +0100
changeset 915 3039eca6adab
parent 914 391114f750f0
child 916 d697250668af
Save in database send message
src/com/beem/project/beem/providers/MessageProvider.java
src/com/beem/project/beem/ui/Chat.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<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);
+    }
 }