103 lines
3.5 KiB
Java
103 lines
3.5 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;
|
|
import java.util.zip.DataFormatException;
|
|
|
|
|
|
/**
|
|
* 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 Packet() {
|
|
ChatDataIdentifier = DataIdentifier.NULL;
|
|
ChatMessage = "";
|
|
ChatName = SoapConnectionManager.User.getFullName();
|
|
Tenant = "";
|
|
SenderPersonOid = SoapConnectionManager.User.getPersonOid().intValue();
|
|
RecipientPersonOid = 0;
|
|
|
|
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;Tenant;[ClientName][ChatMessage][MessageTimeStamp]
|
|
|
|
//23;281;20;389;1;[Tenant]; 6 Semikola
|
|
|
|
public Packet(String 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];
|
|
Tenant = gesplittet[5];
|
|
|
|
SenderPersonOid = Integer.parseInt(senderPersonOidString);
|
|
RecipientPersonOid = Integer.parseInt(recipientPersonOidString);
|
|
|
|
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() + 7;
|
|
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();
|
|
}
|
|
}
|
|
|
|
public byte[] GetDataStream() {
|
|
|
|
String dataStreamAsString = "" + SenderPersonOid + ";" + RecipientPersonOid + ";" + ChatName.length() + ";" + ChatMessage.length()+ ";" + ChatDataIdentifier.getValue() + ";" + Tenant + ";";
|
|
|
|
dataStreamAsString += ChatName + ChatMessage + getFormattedMessageTimeStamp();
|
|
|
|
byte[] blaaah = new byte[dataStreamAsString.length()];
|
|
|
|
try {
|
|
blaaah = dataStreamAsString.getBytes("UTF8");
|
|
} catch (UnsupportedEncodingException e) {
|
|
Log.e("Packet.GetDataStream", e.getMessage());
|
|
}
|
|
|
|
return blaaah;
|
|
}
|
|
}
|