diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java index ea837955e..98611c8c5 100644 --- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java +++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java @@ -141,23 +141,31 @@ public class ChatActivity extends ActionBarActivity { @Override public void updateUserInterface(final Packet chatPacket) { try { - if(!chatPacket.ChatDataIdentifier.equals(DataIdentifier.MESSAGE)) { - return; + switch(chatPacket.ChatDataIdentifier) { + case MESSAGE: + listView.post(new Runnable() { + @Override + public void run() { + chatPacket.writeToLog(); + + ChatMessage message = new ChatMessage(chatPacket.SenderPersonOid, chatPacket.RecipientPersonOid, chatPacket.MessageTimeStamp, chatPacket.ChatMessage, false, chatPacket.ServerseitigeOid); + + databaseHandler.addChatMessage(message); + + chatMessages.add(message); + adapter.notifyDataSetChanged(); + } + }); + break; + case MESSAGE_RESPONSE: + ChatMessage cm = databaseHandler.getChatMessageById(chatPacket.ClientseitigeOid); + + cm.ServerseitigeOid = chatPacket.ServerseitigeOid; + + databaseHandler.updateChatMessage(cm); + + break; } - - listView.post(new Runnable() { - @Override - public void run() { - chatPacket.writeToLog(); - - ChatMessage message = new ChatMessage(chatPacket.SenderPersonOid, chatPacket.RecipientPersonOid, chatPacket.MessageTimeStamp, chatPacket.ChatMessage, false, chatPacket.ServerseitigeOid); - - databaseHandler.addChatMessage(message); - - chatMessages.add(message); - adapter.notifyDataSetChanged(); - } - }); } catch(Exception pe) { pe.printStackTrace(); } @@ -191,7 +199,7 @@ public class ChatActivity extends ActionBarActivity { e.printStackTrace(); } - packet.writeToLog(); + final ChatMessage message = new ChatMessage(packet.SenderPersonOid, packet.RecipientPersonOid, packet.MessageTimeStamp, packet.ChatMessage, false, 0); @@ -199,6 +207,8 @@ public class ChatActivity extends ActionBarActivity { packet.ClientseitigeOid = Long.valueOf(coid).intValue(); + packet.writeToLog(); + SocketManager.sendMessage(packet); listView.post(new Runnable() { @@ -215,6 +225,12 @@ public class ChatActivity extends ActionBarActivity { } } }); + + ArrayList test = databaseHandler.getExistingChatMessageIds(); + + for(int id : test) { + Log.i("CHATMESSAGE-ID", "" + id); + } } @Override diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/DatabaseHandler.java b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/DatabaseHandler.java index fcd26b6c3..b511a95b0 100644 --- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/DatabaseHandler.java +++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/DatabaseHandler.java @@ -79,8 +79,6 @@ public class DatabaseHandler extends SQLiteOpenHelper { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); - Log.i("ZEIT_CHECK_DB", getDateTimeString(message.InsTs)); - values.put(KEY_SENDER_PERSON_OID_CHATMESSAGE, message.SenderPersonOid); values.put(KEY_RECIPIENT_PERSON_OID_CHATMESSAGE, message.RecipientPersonOid); values.put(KEY_INSTS_CHATMESSAGE, getDateTimeString(message.InsTs)); @@ -89,12 +87,43 @@ public class DatabaseHandler extends SQLiteOpenHelper { values.put(KEY_SERVERSEITIGE_OID_CHATMESSAGE, message.ServerseitigeOid); long rowId = db.insert(TABLE_CHATMESSAGE, null, values); - Log.i("CHAT_MESSAGE_INSERT", "RowID: " + rowId); db.close(); return rowId; } + void updateChatMessage(ChatMessage message) { + SQLiteDatabase db = this.getWritableDatabase(); + ContentValues values = new ContentValues(); + + values.put(KEY_SENDER_PERSON_OID_CHATMESSAGE, message.SenderPersonOid); + values.put(KEY_RECIPIENT_PERSON_OID_CHATMESSAGE, message.RecipientPersonOid); + values.put(KEY_INSTS_CHATMESSAGE, getDateTimeString(message.InsTs)); + values.put(KEY_CHAT_TEXT_CHATMESSAGE, message.ChatText); + values.put(KEY_IS_DELIVERED_CHATMESSAGE, (message.IsDelivered ? 1 : 0)); + values.put(KEY_SERVERSEITIGE_OID_CHATMESSAGE, message.ServerseitigeOid); + + db.update(TABLE_CHATMESSAGE, values, KEY_ID_CHATMESSAGE + " = ?", new String[] { String.valueOf(message.Id)}); + } + + ArrayList getExistingChatMessageIds() { + ArrayList result = new ArrayList(); + + SQLiteDatabase db = this.getWritableDatabase(); + + String selectQuery = "SELECT "+ KEY_SERVERSEITIGE_OID_CHATMESSAGE + " FROM " + TABLE_CHATMESSAGE + " WHERE " + KEY_SERVERSEITIGE_OID_CHATMESSAGE + " <> 0"; + + Cursor cursor = db.rawQuery(selectQuery, null); + + if(cursor.moveToFirst()) { + do { + result.add(cursor.getInt(0)); + } while(cursor.moveToNext()); + } + + return result; + } + private String getDateTimeString(Date date) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.GERMAN); return dateFormat.format(date); diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java index cfe698f8d..c2f73569c 100644 --- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java +++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java @@ -52,11 +52,11 @@ public class KontaktChatActivity extends ListActivity { private SpiceManager spiceManager = new SpiceManager(UncachedSpiceService.class); private DatabaseHandler databaseHandler; - private ArrayList onlinePersonOids = new ArrayList<>(); + private static ArrayList onlinePersonOids = new ArrayList<>(); private UIHandler kontaktChatUIHandler; - public ListView listView; + public static ListView listView; ArrayList contactList = new ArrayList<>(); @@ -195,6 +195,10 @@ public class KontaktChatActivity extends ListActivity { @Override public void onResume() { SocketManager.uiHandler = kontaktChatUIHandler; + + // Update der Kontaktliste + + super.onResume(); } diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/DataIdentifier.java b/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/DataIdentifier.java index 11b58b192..0911ddad3 100644 --- a/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/DataIdentifier.java +++ b/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/DataIdentifier.java @@ -12,7 +12,9 @@ public enum DataIdentifier { STATUS_NOTIFICATION_LOGOUT(5), OLD_MESSAGE(6), DELIVERING_STATUS_CHANGE(7), - STATUS_NOTIFICATION_LOGIN_BROADCAST(8); + STATUS_NOTIFICATION_LOGIN_BROADCAST(8), + TEAM(9), + MESSAGE_RESPONSE(10); private final int value; DataIdentifier(int value) { diff --git a/BeWoChatServer/Server.cs b/BeWoChatServer/Server.cs index 19969c8b9..4065e43eb 100644 --- a/BeWoChatServer/Server.cs +++ b/BeWoChatServer/Server.cs @@ -202,7 +202,9 @@ namespace BeWoChatServer recipient.Key.Send(dataPacket.GetDataStream()); } - // Oid zurückschicken + var packet = new Packet {ClientseitigeOid = dataPacket.ClientseitigeOid, ServerseitigeOid = dataPacket.ServerseitigeOid, DataIdentifier = DataIdentifier.MessageResponse}; + + dataPacket.Socket.Send(packet.GetDataStream()); } } finally diff --git a/BeWoOhneReports.v12.suo b/BeWoOhneReports.v12.suo index 47e63d779..c719c9647 100644 Binary files a/BeWoOhneReports.v12.suo and b/BeWoOhneReports.v12.suo differ diff --git a/Shared/BeWoEntityEnums.cs b/Shared/BeWoEntityEnums.cs index 59fbb22e2..11c57bfbd 100644 --- a/Shared/BeWoEntityEnums.cs +++ b/Shared/BeWoEntityEnums.cs @@ -833,6 +833,7 @@ namespace BS.Shared OldMessage, DeliveringStatusChange, StatusNotificationLoginBroadcast, - Team + Team, + MessageResponse } } \ No newline at end of file