diff --git a/Android/BewoMitarbeiterApp/.idea/.name b/Android/BewoMitarbeiterApp/.idea/.name
deleted file mode 100644
index 3707833a7..000000000
--- a/Android/BewoMitarbeiterApp/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-BewoMitarbeiterApp
\ No newline at end of file
diff --git a/Android/BewoMitarbeiterApp/.idea/codeStyleSettings.xml b/Android/BewoMitarbeiterApp/.idea/codeStyleSettings.xml
deleted file mode 100644
index b6c1cd7c7..000000000
--- a/Android/BewoMitarbeiterApp/.idea/codeStyleSettings.xml
+++ /dev/null
@@ -1,229 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Android/BewoMitarbeiterApp/.idea/compiler.xml b/Android/BewoMitarbeiterApp/.idea/compiler.xml
index 9a8b7e5c4..96cc43efa 100644
--- a/Android/BewoMitarbeiterApp/.idea/compiler.xml
+++ b/Android/BewoMitarbeiterApp/.idea/compiler.xml
@@ -1,7 +1,6 @@
-
@@ -12,6 +11,7 @@
+
diff --git a/Android/BewoMitarbeiterApp/.idea/encodings.xml b/Android/BewoMitarbeiterApp/.idea/encodings.xml
deleted file mode 100644
index 97626ba45..000000000
--- a/Android/BewoMitarbeiterApp/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Android/BewoMitarbeiterApp/.idea/misc.xml b/Android/BewoMitarbeiterApp/.idea/misc.xml
index 95f0f0310..5d1998103 100644
--- a/Android/BewoMitarbeiterApp/.idea/misc.xml
+++ b/Android/BewoMitarbeiterApp/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/Android/BewoMitarbeiterApp/BewoMitarbeiterApp.iml b/Android/BewoMitarbeiterApp/BewoMitarbeiterApp.iml
index 88dbd817b..fb3ed83ef 100644
--- a/Android/BewoMitarbeiterApp/BewoMitarbeiterApp.iml
+++ b/Android/BewoMitarbeiterApp/BewoMitarbeiterApp.iml
@@ -13,7 +13,7 @@
-
+
\ No newline at end of file
diff --git a/Android/BewoMitarbeiterApp/app/app.iml b/Android/BewoMitarbeiterApp/app/app.iml
index 775fb29fa..5c1f8f22c 100644
--- a/Android/BewoMitarbeiterApp/app/app.iml
+++ b/Android/BewoMitarbeiterApp/app/app.iml
@@ -66,14 +66,6 @@
-
-
-
-
-
-
-
-
@@ -82,9 +74,16 @@
+
+
+
+
+
+
+
+
-
@@ -100,6 +99,8 @@
+
+
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 8998ae55e..d0ed511e2 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java
@@ -362,6 +362,8 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
adapter.sort(DATE_COMPARATOR);
adapter.notifyDataSetChanged();
+ listView.setSelection(adapter.getCount() - 1);
+
text.setText("");
}
});
@@ -458,6 +460,7 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
spiceManager.execute(request, new JsonSoapPrimitiveRequestListener(corruptedSpiceCallback, isInitialCall));
}
};
+
SocketManager.connectToServer("ChatActivity -> Letzter Serverkontakt ist länger als " + BeWoChatApplication.getRefreshIntervalInMinutes() + " Minuten her");
}
} else {
@@ -668,13 +671,15 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
public void run() {
chatMessages.addAll(result);
adapter.sort(DATE_COMPARATOR);
- if(!isInitialCall) {
- try {
- listView.setSelection(0);
- } catch(Exception e) {
- Util.buildAlert(ChatActivity.this, "adapter.getCount() hat nicht funktioniert!");
- }
- }
+
+// if(!isInitialCall) {
+// try {
+// listView.setSelection(0);
+// } catch(Exception e) {
+// Util.buildAlert(ChatActivity.this, "adapter.getCount() hat nicht funktioniert!");
+// }
+// }
+
adapter.notifyDataSetChanged();
}
});
@@ -737,61 +742,6 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
}
}
- private final class JsonSoapChunkRequestListener implements RequestListener {
-
- @Override
- public void onRequestFailure(SpiceException spiceException) {
- BeWoLog.writeToLogFile("Das Chunkweise Laden der Nachrichten ist fehlgeschlagen. (ChatActivity->JsonSoapChunkRequestListener->onRequestFailure)");
-
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- Toast.makeText(ChatActivity.this, "Ein Fehler ist beim chunkweise Laden der Nachrichten auftegreten.", Toast.LENGTH_LONG).show();
- }
- });
-
- Log.e("GET_ALL_MESSAGES", "Das Chunkweise Laden der Nachrichten ist gescheitert: " + spiceException.getMessage());
- }
-
- @Override
- public void onRequestSuccess(SoapPrimitive soapPrimitive) {
- BeWoLog.writeToLogFile("Das chunkweise Laden der Nachrichten war erfolgreich. (ChatActivty, wo sonst?)");
-
- BeWoChatApplication.lastOnlineTS = Calendar.getInstance().getTime();
-
- GsonBuilder builder = new GsonBuilder();
- builder.registerTypeAdapter(ChatMessage.class, new ChatMessageDeserializer());
-
- Gson gson = builder.create();
-
- Type listType = new TypeToken>(){}.getType();
-
- final ArrayList result = gson.fromJson(soapPrimitive.toString(), listType);
-
- String abc = "Chunkweise geladenen Nachrichten:\n";
- for(ChatMessage m : result) {
- abc += m.MessageId + ": " + m.ChatText;
-
- if(result.indexOf(m) != (result.size() - 1)) {
- abc += "\n";
- }
- }
-
- Log.i("CHUNKS", abc);
-
- databaseHandler.addChatMessages(result);
-
- listView.post(new Runnable() {
- @Override
- public void run() {
- chatMessages.addAll(result);
- adapter.sort(DATE_COMPARATOR);
- adapter.notifyDataSetChanged();
- }
- });
- }
- }
-
public static final Comparator DATE_COMPARATOR = new Comparator() {
@Override
public int compare(ChatMessage lhs, ChatMessage rhs) {
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ContactListItem.java b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ContactListItem.java
index eff0224cb..e429e603b 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ContactListItem.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ContactListItem.java
@@ -1,5 +1,7 @@
package beyondsoft.bewomitarbeiterapp;
+import android.util.Log;
+
import entities.ChatPerson;
/**
@@ -35,10 +37,11 @@ public class ContactListItem {
this.mIsEmployee = isEmployee;
}
- ContactListItem(String kontaktname, int personOid, boolean isTeam, String teamMemberOids, String teamMemberNames, int version, boolean isEmployee){
+ ContactListItem(String kontaktname, int personOid, byte[] picture, boolean isTeam, String teamMemberOids, String teamMemberNames, int version, boolean isEmployee){
this.mChatName = kontaktname;
this.mPersonOid = personOid;
- this.mPicture = null;
+ this.mPicture = picture;
+
this.isTeam = isTeam;
this.teamMemberNames = teamMemberNames;
this.teamMemberOids = teamMemberOids;
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktAdapter.java b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktAdapter.java
index c8bf7306c..537a15530 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktAdapter.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktAdapter.java
@@ -73,6 +73,20 @@ public class KontaktAdapter extends ArrayAdapter {
Bitmap i = BitmapFactory.decodeByteArray(imageAsByteArray, 0, imageAsByteArray.length);
+ if(i == null) {
+ int bildId = R.drawable.mitarbeiter_avatar;
+
+ if(currentContact.isTeam) {
+ bildId = R.drawable.mitarbeiter_team_avatar;
+ } else if(!currentContact.getIsEmployee()) {
+ bildId = R.drawable.klient_avatar;
+ }
+
+ Bitmap bitmap = decodeSampledBitmapFromResource(inflater.getContext().getResources(), bildId, 100, 100);
+
+ imageView.setImageBitmap(ImageConverter.getRoundedCornerBitmap(bitmap, bitmap.getWidth() / 2));
+ }
+
getPic = new Thread(new CircleBitmapCreator(i));
getPic.start();
} else {
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 80780a5c8..2cd7e2479 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java
@@ -52,6 +52,7 @@ import tcpConnection.SocketManager;
import tcpConnection.UIHandler;
import util.BeWoLog;
import util.ChatMessageDeserializer;
+import util.ChatPersonDeserializer;
import util.ConnectivityReceiver;
import util.SecurityUtils;
import util.Util;
@@ -666,7 +667,6 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
Log.e(LOGTAG, "Der vom Server zurückgelieferte Wert ist NULL! (Laden der Kontakte)");
- //TODO: wie im Chat
try {
ArrayList propertyInfos = new ArrayList<>();
@@ -708,7 +708,10 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
isDownloadOfContacsInProgress = false;
- Gson gson = new GsonBuilder().create();
+ GsonBuilder builder = new GsonBuilder();
+ builder.registerTypeAdapter(ChatPerson.class, new ChatPersonDeserializer());
+
+ Gson gson = builder.create();
Type listType = new TypeToken>(){}.getType();
@@ -723,7 +726,8 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
}
for(ChatPerson cp : result) {
- ContactListItem contact = new ContactListItem(cp.Name, cp.Oid, cp.IsTeam, cp.TeamMemberOids, cp.TeamMemberNames, cp.Version, cp.IsEmployee);
+ Log.i("KONTAKTE_VOM_SERVER", "(" + cp.Name + ") Größe des Bildes: " + (cp.ImageThumbnail != null ? "" + cp.ImageThumbnail.length : "Bild ist NULL"));
+ ContactListItem contact = new ContactListItem(cp.Name, cp.Oid, cp.ImageThumbnail, cp.IsTeam, cp.TeamMemberOids, cp.TeamMemberNames, cp.Version, cp.IsEmployee);
ChatEntity cliEntity = new ChatEntity(cp.Oid, cp.IsTeam, cp.IsEmployee);
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/LoginActivity.java b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/LoginActivity.java
index 5232b4845..a86d278ae 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/LoginActivity.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/LoginActivity.java
@@ -22,7 +22,11 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
+import com.android.volley.Request;
import com.android.volley.RequestQueue;
+import com.android.volley.Response;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.octo.android.robospice.SpiceManager;
import com.octo.android.robospice.UncachedSpiceService;
@@ -248,7 +252,7 @@ public class LoginActivity extends ActionBarActivity {
showProgress(true);
RequestQueue queue = Volley.newRequestQueue(LoginActivity.this);
- String url = SoapCalls.TOKEN_CHECK_URL + token;
+ String url = SoapCalls.VOUCHER_ADDRESS + token;
// StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener() {
// @Override
@@ -262,23 +266,26 @@ public class LoginActivity extends ActionBarActivity {
//
// return;
// }
+//
+// Util.buildAlert(LoginActivity.this, response);
- ArrayList propertyInfos = new ArrayList<>();
- propertyInfos.add(SoapConnectionManager.BuildProperty("pTenant", tenant, String.class));
- propertyInfos.add(SoapConnectionManager.BuildProperty("pUsername", username, String.class));
- propertyInfos.add(SoapConnectionManager.BuildProperty("pPassword", password, String.class));
+ ArrayList propertyInfos = new ArrayList<>();
+ propertyInfos.add(SoapConnectionManager.BuildProperty("pTenant", tenant, String.class));
+ propertyInfos.add(SoapConnectionManager.BuildProperty("pUsername", username, String.class));
+ propertyInfos.add(SoapConnectionManager.BuildProperty("pPassword", password, String.class));
- JsonSoapPrimitiveRequest request = new JsonSoapPrimitiveRequest(SoapCalls.LOGIN_CALL, propertyInfos);
- spiceManager.execute(request, new JsonSoapPrimitiveRequestListener());
+ JsonSoapPrimitiveRequest request = new JsonSoapPrimitiveRequest(SoapCalls.LOGIN_CALL, propertyInfos);
+ spiceManager.execute(request, new JsonSoapPrimitiveRequestListener());
// }
// }, new Response.ErrorListener() {
// @Override
// public void onErrorResponse(VolleyError error) {
// showProgress(false);
+//
// Log.e("Error sending request", (error == null ? "error is null" : error.getMessage()));
// }
// });
-
+//
// queue.add(stringRequest);
}
}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatPerson.java b/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatPerson.java
index 6e2261ff0..e052e98e1 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatPerson.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatPerson.java
@@ -11,4 +11,14 @@ public class ChatPerson {
public String TeamMemberOids;
public int Version;
public boolean IsEmployee;
+
+ public ChatPerson(int oid, String name, boolean isTeam, String teamMemberNames, String teamMemberOids, int version, boolean isEmployee) {
+ Oid = oid;
+ Name = name;
+ IsTeam = isTeam;
+ TeamMemberNames = teamMemberNames;
+ TeamMemberOids = teamMemberOids;
+ Version = version;
+ IsEmployee = isEmployee;
+ }
}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/entities/ImageEntity.java b/Android/BewoMitarbeiterApp/app/src/main/java/entities/ImageEntity.java
new file mode 100644
index 000000000..a0e27661e
--- /dev/null
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/entities/ImageEntity.java
@@ -0,0 +1,15 @@
+package entities;
+
+/**
+ * Created by Lyndon Jetten on 21.11.2016.
+ */
+
+public class ImageEntity {
+ public int PersonOid;
+ public byte[] Image;
+
+ public ImageEntity(int personOid, byte[] image) {
+ PersonOid = personOid;
+ Image = image;
+ }
+}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java b/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java
index 17c3a5c4e..73944fd67 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java
@@ -5,6 +5,7 @@ package soapConnection;
*/
public class SoapCalls {
public static String GET_SERVER_ADDRESS_BY_TOKEN_CALL = "GetServerAddressByToken";
+ public static String VOUCHER_ADDRESS = "https://mobile.bewoplaner.de/checkvoucher.php?Voucher=";
public static String LOGIN_CALL = "Login";
public static String GET_CONTACTS_FOR_PERSON = "GetContactsForPerson";
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/util/ChatMessageDeserializer.java b/Android/BewoMitarbeiterApp/app/src/main/java/util/ChatMessageDeserializer.java
index b53936a6d..c6b0a4d1f 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/util/ChatMessageDeserializer.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/util/ChatMessageDeserializer.java
@@ -54,8 +54,6 @@ public class ChatMessageDeserializer implements JsonDeserializer {
e.printStackTrace();
}
- ChatMessage result = new ChatMessage(senderPersonOid, recipientPersonOid, insTs, chatText, isDelivered, serverseitigeOid, isTeam, messageId);
-
- return result;
+ return new ChatMessage(senderPersonOid, recipientPersonOid, insTs, chatText, isDelivered, serverseitigeOid, isTeam, messageId);
}
}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/util/ChatPersonDeserializer.java b/Android/BewoMitarbeiterApp/app/src/main/java/util/ChatPersonDeserializer.java
new file mode 100644
index 000000000..148e8935b
--- /dev/null
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/util/ChatPersonDeserializer.java
@@ -0,0 +1,48 @@
+package util;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParseException;
+
+import java.lang.reflect.Type;
+
+import entities.ChatPerson;
+
+/**
+ * Created by Lyndon Jetten on 18.11.2016.
+ */
+
+public class ChatPersonDeserializer implements JsonDeserializer {
+ @Override
+ public ChatPerson deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
+ JsonObject json = (JsonObject) jsonElement;
+
+ int oid = Long.valueOf(json.get("Oid").getAsLong()).intValue();
+ String name = json.get("Name").getAsString();
+ boolean isTeam = json.get("IsTeam").getAsBoolean();
+
+ boolean isTeamMemberNamesNull = json.get("TeamMemberNames").isJsonNull();
+ boolean isTeamMemberOidsNull = json.get("TeamMemberOids").isJsonNull();
+
+ String teamMemberNames = isTeamMemberNamesNull ? null : json.get("TeamMemberNames").getAsString(); // könnte NULL sein
+ String teamMemberOids = isTeamMemberOidsNull ? null : json.get("TeamMemberOids").getAsString(); // könnte NULL sein
+ int version = Long.valueOf(json.get("Version").getAsLong()).intValue();
+ boolean isEmployee = json.get("IsEmployee").getAsBoolean();
+
+// JsonArray originalValue = json.get("ImageThumbnail").getAsJsonArray();
+// String stringValue = originalValue.toString();
+// byte[] bytesValue = stringValue.getBytes();
+// byte[] image = null;//new byte[0];//isImageThumbnailNull ? new byte[0] : json.get("ImageThumbnail").getAsJsonArray().toString().getBytes();
+
+// String[] test = stringValue.substring(1, stringValue.length() - 1).split(",");
+// byte[] abcdef = new byte[test.length];
+// for(int i = 0; len = test.length; i < len; i++) {
+//
+// }
+
+
+ return new ChatPerson(oid, name, isTeam, teamMemberNames, teamMemberOids, version, isEmployee);
+ }
+}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/util/ImageEntityDeserializer.java b/Android/BewoMitarbeiterApp/app/src/main/java/util/ImageEntityDeserializer.java
new file mode 100644
index 000000000..307deb20a
--- /dev/null
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/util/ImageEntityDeserializer.java
@@ -0,0 +1,28 @@
+package util;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParseException;
+
+import java.lang.reflect.Type;
+
+import entities.ImageEntity;
+
+/**
+ * Created by Lyndon Jetten on 21.11.2016.
+ */
+
+public class ImageEntityDeserializer implements JsonDeserializer {
+ @Override
+ public ImageEntity deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext context) throws JsonParseException {
+
+ JsonObject json = (JsonObject) jsonElement;
+
+ int oid = Long.valueOf(json.get("Oid").getAsLong()).intValue();
+ String imgAsBase64 = json.get("").getAsString();
+
+ return null;
+ }
+}