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