diff --git a/Android/BewoMitarbeiterApp/app/app.iml b/Android/BewoMitarbeiterApp/app/app.iml
index dadeec421..bf9062721 100644
--- a/Android/BewoMitarbeiterApp/app/app.iml
+++ b/Android/BewoMitarbeiterApp/app/app.iml
@@ -64,14 +64,6 @@
-
-
-
-
-
-
-
-
@@ -80,6 +72,14 @@
+
+
+
+
+
+
+
+
@@ -96,7 +96,6 @@
-
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/BeWoChatApplication.java b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/BeWoChatApplication.java
index 2172cce1e..cad7f339e 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/BeWoChatApplication.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/BeWoChatApplication.java
@@ -17,10 +17,8 @@ public class BeWoChatApplication extends Application {
Thread.UncaughtExceptionHandler uncaughtExceptionHandler = new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
-
- //TODO: Notifications löschen
-
Log.e("UNCAUGHT_EXCEPTION", "Eine unbehandelte Ausnahme ist aufgetreten!");
+ ex.printStackTrace();
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
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 7dd1d0c92..660a4f427 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java
@@ -182,7 +182,14 @@ public class ChatActivity extends ActionBarActivity {
chatMessages.add(message);
adapter.notifyDataSetChanged();
} else {
- SetNotify(chatPacket.ChatName, chatPacket.ChatMessage, chatPacket.SenderPersonOid, false, null, null);
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(getApplicationContext(), "ChatName: " + chatPacket.ChatName, Toast.LENGTH_LONG).show();
+ }
+ });
+
+ Util.SetNotify(chatPacket.ChatName, chatPacket.ChatMessage, chatPacket.SenderPersonOid, false, null, null, getApplicationContext());
}
}
});
@@ -201,12 +208,30 @@ public class ChatActivity extends ActionBarActivity {
SocketManager.onlinePersonOids.add(chatPacket.SenderPersonOid);
}
+ if(chatPacket.SenderPersonOid == recipientPersonOid) {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ ImageView status = (ImageView) mCustomView.findViewById(R.id.status);
+ status.setImageResource(R.drawable.statusonline);
+ }
+ });
+ }
+
break;
case STATUS_NOTIFICATION_LOGOUT:
if(SocketManager.onlinePersonOids.contains(chatPacket.SenderPersonOid)) {
SocketManager.onlinePersonOids.remove(Integer.valueOf(chatPacket.SenderPersonOid));
}
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ ImageView status = (ImageView) mCustomView.findViewById(R.id.status);
+ status.setImageResource(R.drawable.statusoffline);
+ }
+ });
+
break;
case TEAM:
listView.post(new Runnable() {
@@ -252,16 +277,7 @@ public class ChatActivity extends ActionBarActivity {
packet.RecipientPersonOid = recipientPersonOid;
packet.MessageTimeStamp = now;
-// SharedPreferences settings = getSharedPreferences(Util.PREFS_NAME, 0);
-
-// byte[] tenantByteArray = Base64.decode(settings.getString(Util.PREFS_TENANT_KEY, null), Base64.DEFAULT);
-// ByteArrayInputStream tenantStream = new ByteArrayInputStream(tenantByteArray);
-
-// try {
- packet.Tenant = SoapConnectionManager.User.getTenant();// SecurityUtils.decrypt(tenantStream).toString();
-// } catch (IOException | NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException e) {
-// e.printStackTrace();
-// }
+ packet.Tenant = SoapConnectionManager.User.getTenant();
final ChatMessage message = new ChatMessage(packet.SenderPersonOid, packet.RecipientPersonOid, packet.MessageTimeStamp, packet.ChatMessage, false, 0, isTeam);
@@ -369,39 +385,6 @@ public class ChatActivity extends ActionBarActivity {
ReloadChatView(rn, rpoid, imageAsByteArray, blahIsTeam, tMemberOids, tMemberNames);
}
- public void SetNotify(String username, String message, int recipientOid, boolean isTeam, String teamMemberOids, String teamMemberNames){
- NotificationCompat.Builder mBuilder =
- new NotificationCompat.Builder(this)
- .setSmallIcon(R.drawable.ic_stat_name)
- .setContentTitle(username)
- .setContentText(message)
- .setAutoCancel(true)
- .setDefaults(Notification.DEFAULT_SOUND)
- .setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 }) //Notification.Default_Vibrate
- .setLights(Color.YELLOW, 3000, 3000) //Notification.Default_Lights
- .setOngoing(true);
-
- Bundle bundle = new Bundle();
- bundle.putString("Name", username);
- bundle.putInt("RecipientOid", recipientOid);
- bundle.putBoolean("IsTeam", isTeam);
- bundle.putString("TeamMemberOids", teamMemberOids);
- bundle.putString("TeamMemberNames", teamMemberNames);
-
- Intent resultIntent = new Intent(this, ChatActivity.class);
- resultIntent.putExtras(bundle);
-
- resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
-
- PendingIntent resultPendingIntent = PendingIntent.getActivity(this.getApplicationContext(), (int) (Math.random() * 100), resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
-
- NotificationManager mNotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
-
- mBuilder.setContentIntent(resultPendingIntent);
-
- mNotifyMgr.notify((new Random()).nextInt(9999 - 1000) + 1000, mBuilder.build());
- }
-
private Bitmap GetCircleBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
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 a9c8c930b..13535d870 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java
@@ -262,6 +262,8 @@ public class KontaktChatActivity extends ListActivity {
}
for(ChatPerson cp : result) {
+ Log.i("KONTAKTLISTE", "Version: " + cp.Version);
+
if(!oidList.contains(cp.Oid)) {
databaseHandler.addContact(new ContactListItem(cp.Name, cp.Oid, cp.IsTeam, cp.TeamMemberOids, cp.TeamMemberNames));
}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/MainActivityMitarbeiter.java b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/MainActivityMitarbeiter.java
index 9a40b941b..de1064b65 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/MainActivityMitarbeiter.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/MainActivityMitarbeiter.java
@@ -153,4 +153,12 @@ public class MainActivityMitarbeiter extends Activity {
super.onResume();
}
+
+ @Override
+ public void onBackPressed() {
+ SocketManager.logout();
+
+ finish();
+ System.exit(0);
+ }
}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatPerson.java b/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatPerson.java
index 93bf4f6fa..08bb3e165 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatPerson.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatPerson.java
@@ -9,4 +9,5 @@ public class ChatPerson {
public boolean IsTeam;
public String TeamMemberNames;
public String TeamMemberOids;
+ public int Version;
}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java b/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java
index 00886f61f..0709df599 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java
@@ -11,13 +11,13 @@ public class SoapCalls {
public static String GET_ALL_CHAT_MESSAGES = "GetAllChatMessagesForSenderAndRecipient";
//"app4.bewoplaner.de";//
- public static String DESTINATION_ADDRESS = "192.168.1.103";
+ public static String DESTINATION_ADDRESS = "app4.bewoplaner.de";//"192.168.1.103";
public static int DESTINATION_PORT = 5000;
- public static String TOKEN_CHECK_URL = "http://" + DESTINATION_ADDRESS + "/mobil/main/checktoken?token=";
+ public static String TOKEN_CHECK_URL = "https://" + DESTINATION_ADDRESS + "/mobil/main/checktoken?token=";
- public static String WEB_DOKU_URL = "http://" + DESTINATION_ADDRESS + "/mobil/login/demo";
+ public static String WEB_DOKU_URL = "https://" + DESTINATION_ADDRESS + "/mobil/login/demo";
public static String WSDL_TARGET_NAME = "bliblablubb.org/";
- public static String SOAP_ADDRESS = "http://" + DESTINATION_ADDRESS + "/BeWoPlanerAndroid/AndroidSoapService.asmx";
+ public static String SOAP_ADDRESS = "https://" + DESTINATION_ADDRESS + "/BeWoPlanerAndroid/AndroidSoapService.asmx";
}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/util/Util.java b/Android/BewoMitarbeiterApp/app/src/main/java/util/Util.java
index 38757b0c1..300bc8d71 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/util/Util.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/util/Util.java
@@ -50,6 +50,10 @@ public class Util {
bundle.putString("TeamMemberOids", teamMemberOids);
bundle.putString("TeamMemberNames", teamMemberNames);
+ //TODO: mehrere Notifications von mehrern Kontakten -> KontaktChatActivity öffnen, sonst ChatActivity
+
+
+
Intent resultIntent = new Intent(packageContext, ChatActivity.class);
resultIntent.putExtras(bundle);
@@ -59,6 +63,9 @@ public class Util {
NotificationManager mNotifyMgr = (NotificationManager) packageContext.getSystemService(Context.NOTIFICATION_SERVICE);
+
+
+
mBuilder.setContentIntent(resultPendingIntent);
mNotifyMgr.notify((new Random()).nextInt(9999 - 1000) + 1000, mBuilder.build());
diff --git a/BeWoChatServer/Server.cs b/BeWoChatServer/Server.cs
index f92bebf75..52248e77e 100644
--- a/BeWoChatServer/Server.cs
+++ b/BeWoChatServer/Server.cs
@@ -48,7 +48,7 @@ namespace BeWoChatServer
}
catch (Exception e)
{
- Debug.WriteLine("ChatServerException (1010): " + e.Message);
+ WriteErrorMessageToConsole(e.Message, e.StackTrace);
}
}
@@ -70,7 +70,7 @@ namespace BeWoChatServer
}
catch (SocketException e)
{
- Debug.WriteLine("ChatServerException (1020): " + e.Message);
+ WriteErrorMessageToConsole(e.Message, e.StackTrace);
}
}
@@ -89,7 +89,7 @@ namespace BeWoChatServer
}
catch (Exception e)
{
- Debug.WriteLine("ChatServerException (1030): " + e.Message);
+ WriteErrorMessageToConsole(e.Message, e.StackTrace);
}
}
@@ -199,7 +199,11 @@ namespace BeWoChatServer
{
try
{
+ Console.BackgroundColor = ConsoleColor.Black;
+ Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(DateTime.Now + ": Chat-Nachricht erhalten");
+ Console.BackgroundColor = ConsoleColor.Black;
+ Console.ForegroundColor = ConsoleColor.Gray;
Monitor.Enter(_Lock);
@@ -375,7 +379,7 @@ namespace BeWoChatServer
Monitor.Exit(_Lock);
}
- Debug.WriteLine("ChatServerException: " + e.Message);
+ WriteErrorMessageToConsole(e.Message, e.StackTrace);
}
}
@@ -389,5 +393,15 @@ namespace BeWoChatServer
client.Key.Send(notificationPacket.GetDataStream());
}
}
+
+ private static void WriteErrorMessageToConsole(string message, string stackTrace)
+ {
+ Console.BackgroundColor = ConsoleColor.Black;
+ Console.ForegroundColor = ConsoleColor.Red;
+ Console.WriteLine(DateTime.Now + ": " + message);
+ Console.WriteLine(stackTrace);
+ Console.BackgroundColor = ConsoleColor.Black;
+ Console.ForegroundColor = ConsoleColor.Gray;
+ }
}
}
\ No newline at end of file
diff --git a/BeWoOhneReports.v12.suo b/BeWoOhneReports.v12.suo
index 4b432a8a3..95d58d4b5 100644
Binary files a/BeWoOhneReports.v12.suo and b/BeWoOhneReports.v12.suo differ
diff --git a/BeWoPlanerAndroid/AndroidSoapService.asmx.cs b/BeWoPlanerAndroid/AndroidSoapService.asmx.cs
index 6c8d62101..73bb59a61 100644
--- a/BeWoPlanerAndroid/AndroidSoapService.asmx.cs
+++ b/BeWoPlanerAndroid/AndroidSoapService.asmx.cs
@@ -129,8 +129,8 @@ namespace BeWoPlanerAndroid
var employees = EmployeeService.GetAllActiveEmployeesCompact().Where(w => !Equals(w.EmployeeOid, employee.Oid.Value));
- var result = employees.Select(emp => new ChatPerson(emp.PersonOid, emp.FirstName + " " + emp.LastName, false, null, null)).ToList();
- result.AddRange(customers.Select(cus => new ChatPerson(cus.PersonOid, cus.FullName, false, null, null)));
+ var result = employees.Select(emp => new ChatPerson(emp.PersonOid, emp.FirstName + " " + emp.LastName, false, null, null, emp.Version)).ToList();
+ result.AddRange(customers.Select(cus => new ChatPerson(cus.PersonOid, cus.FullName, false, null, null, cus.Version)));
var teams = DAOFactory.SearchDAO.FindTeamsOfEmployee(employee.Oid.Value).Where(w => w.MemberList.Count > 1);
@@ -153,7 +153,7 @@ namespace BeWoPlanerAndroid
}
}
- result.Add(new ChatPerson(team.Oid.Value, team.Name, true, memberString, memberNames));
+ result.Add(new ChatPerson(team.Oid.Value, team.Name, true, memberString, memberNames, team.Version.Value));
}
return SerializeObject(result);
@@ -176,13 +176,16 @@ namespace BeWoPlanerAndroid
public string TeamMemberNames { get; set; }
- public ChatPerson(long pOid, string pName, bool pIsTeam, string pTeamMemberOids, string pTeamMemberNames)
+ public long Version { get; set; }
+
+ public ChatPerson(long pOid, string pName, bool pIsTeam, string pTeamMemberOids, string pTeamMemberNames, long pVersion)
{
- Oid = pOid;
- Name = pName;
- IsTeam = pIsTeam;
- TeamMemberOids = pTeamMemberOids;
+ Oid = pOid;
+ Name = pName;
+ IsTeam = pIsTeam;
+ TeamMemberOids = pTeamMemberOids;
TeamMemberNames = pTeamMemberNames;
+ Version = pVersion;
}
}
}