117 lines
4.7 KiB
Java
117 lines
4.7 KiB
Java
package soapConnection;
|
|
|
|
import android.util.Log;
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.text.DateFormat;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
import java.util.Locale;
|
|
|
|
|
|
/**
|
|
* Created by JettenM on 05.07.2016.
|
|
*/
|
|
public class Packet {
|
|
public DataIdentifier ChatDataIdentifier;
|
|
public String ChatName;
|
|
public int SenderPersonOid;
|
|
public int RecipientPersonOid;
|
|
public String ChatMessage;
|
|
public Date MessageTimeStamp;
|
|
public String Tenant;
|
|
public boolean IsDelivered;
|
|
public int ServerseitigeOid;
|
|
public int ClientseitigeOid;
|
|
|
|
public Packet() {
|
|
ChatDataIdentifier = DataIdentifier.NULL;
|
|
ChatMessage = "";
|
|
ChatName = SoapConnectionManager.User.getFullName();
|
|
Tenant = "";
|
|
SenderPersonOid = SoapConnectionManager.User.getPersonOid().intValue();
|
|
RecipientPersonOid = 0;
|
|
IsDelivered = false;
|
|
|
|
MessageTimeStamp = Calendar.getInstance().getTime();
|
|
}
|
|
|
|
public String getFormattedMessageTimeStamp() {
|
|
DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
|
|
return df.format(MessageTimeStamp);
|
|
}
|
|
|
|
//Aufbau Message:
|
|
// die ersten fünf ";" ignorieren
|
|
// SenderOid;RecipientOid;ClientNameLength;MessageLength;ChatDataIdentifier;ServerseitigeOid;ClientseitigeOid;Tenant;[ClientName][ChatMessage][MessageTimeStamp][IsDelivered]
|
|
|
|
//23;281;20;389;1;38;932[Tenant]; 8 Semikola
|
|
|
|
public Packet(String message) {
|
|
|
|
Log.d("PACKET >>>>>>>>>", message);
|
|
|
|
String[] gesplittet = message.split(";");
|
|
|
|
String senderPersonOidString = gesplittet[0];
|
|
String recipientPersonOidString = gesplittet[1];
|
|
String chatNameLengthString = gesplittet[2];
|
|
String chatMessageLengthString = gesplittet[3];
|
|
String chatIdentifierString = gesplittet[4];
|
|
String serverseitigeOidString = gesplittet[5];
|
|
String clientseitigeOidString = gesplittet[6];
|
|
Tenant = gesplittet[7];
|
|
|
|
SenderPersonOid = Integer.parseInt(senderPersonOidString);
|
|
RecipientPersonOid = Integer.parseInt(recipientPersonOidString);
|
|
ServerseitigeOid = Integer.parseInt(serverseitigeOidString);
|
|
ClientseitigeOid = Integer.parseInt(clientseitigeOidString);
|
|
|
|
ChatDataIdentifier = DataIdentifier.getEnumValue(Integer.parseInt(chatIdentifierString));
|
|
|
|
int chatNameLength = Integer.parseInt(chatNameLengthString);
|
|
int chatMessageLength = Integer.parseInt(chatMessageLengthString);
|
|
|
|
int headerLength = senderPersonOidString.length() + recipientPersonOidString.length() + chatNameLengthString.length() + chatMessageLengthString.length() + chatIdentifierString.length() + Tenant.length() + serverseitigeOidString.length() + clientseitigeOidString.length() + 9;
|
|
String actualMessage = message.substring(headerLength - 1);
|
|
|
|
ChatName = actualMessage.substring(0, chatNameLength);
|
|
|
|
ChatMessage = actualMessage.substring(chatNameLength, chatMessageLength + chatNameLength);
|
|
|
|
String dateString = actualMessage.substring(chatMessageLength + chatNameLength);
|
|
|
|
DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss", Locale.GERMAN);
|
|
try {
|
|
MessageTimeStamp = df.parse(dateString);
|
|
} catch (ParseException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
IsDelivered = Integer.parseInt(actualMessage.substring(chatMessageLength + chatNameLength + 19, chatMessageLength + chatNameLength + 20)) != 0;
|
|
}
|
|
|
|
public byte[] getDataStream() {
|
|
|
|
String dataStreamAsString = "" + SenderPersonOid + ";" + RecipientPersonOid + ";" + ChatName.length() + ";" + ChatMessage.length()+ ";" + ChatDataIdentifier.getValue() + ";" + ServerseitigeOid + ";" + ClientseitigeOid + ";" + Tenant + ";";
|
|
|
|
dataStreamAsString += ChatName + ChatMessage + getFormattedMessageTimeStamp() + "" + (IsDelivered ? 1 : 0);
|
|
|
|
byte[] blaaah = new byte[dataStreamAsString.length()];
|
|
|
|
try {
|
|
blaaah = dataStreamAsString.getBytes("UTF8");
|
|
} catch (UnsupportedEncodingException e) {
|
|
Log.e("Packet.getDataStream", e.getMessage());
|
|
}
|
|
|
|
return blaaah;
|
|
}
|
|
|
|
public void writeToLog() {
|
|
Log.i("PACKET_LOG", "SenderPersonOid: " + SenderPersonOid + "\nRecipientPersonOid: " + RecipientPersonOid + "\nChatDataIdentifier: " + ChatDataIdentifier.name() + "\nChatName: " + ChatName + "\nChatMessage: " + ChatMessage + "\nTenant: " + Tenant + "\nIsDelivered: " + IsDelivered + "\nMessageTimeStamp: " + MessageTimeStamp + "\nServerseitigeOid: " + ServerseitigeOid + "\nClientseitigeOid: " + ClientseitigeOid);
|
|
}
|
|
}
|