Files
BeWoPlaner/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/Packet.java
2016-07-25 14:48:35 +02:00

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;
}
}