diff --git a/Android/BewoMitarbeiterApp/app/app.iml b/Android/BewoMitarbeiterApp/app/app.iml
index 3d5797514..2b71d64e0 100644
--- a/Android/BewoMitarbeiterApp/app/app.iml
+++ b/Android/BewoMitarbeiterApp/app/app.iml
@@ -66,14 +66,6 @@
-
-
-
-
-
-
-
-
@@ -82,6 +74,14 @@
+
+
+
+
+
+
+
+
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/Database/DatabaseHandler.java b/Android/BewoMitarbeiterApp/app/src/main/java/Database/DatabaseHandler.java
index 628a5144b..b4e87f4d3 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/Database/DatabaseHandler.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/Database/DatabaseHandler.java
@@ -303,7 +303,16 @@ public class DatabaseHandler extends SQLiteOpenHelper {
Cursor cursor = readableDatabase.query(
TABLE_CHATMESSAGE,
- new String[] {KEY_ID_CHATMESSAGE, KEY_SENDER_PERSON_OID_CHATMESSAGE, KEY_RECIPIENT_PERSON_OID_CHATMESSAGE, KEY_INSTS_CHATMESSAGE, KEY_CHAT_TEXT_CHATMESSAGE, KEY_IS_DELIVERED_CHATMESSAGE, KEY_SERVERSEITIGE_OID_CHATMESSAGE, KEY_IS_TEAM_CHATMESSAGE},
+ new String[] {
+ KEY_ID_CHATMESSAGE,
+ KEY_SENDER_PERSON_OID_CHATMESSAGE,
+ KEY_RECIPIENT_PERSON_OID_CHATMESSAGE,
+ KEY_INSTS_CHATMESSAGE,
+ KEY_CHAT_TEXT_CHATMESSAGE,
+ KEY_IS_DELIVERED_CHATMESSAGE,
+ KEY_SERVERSEITIGE_OID_CHATMESSAGE,
+ KEY_IS_TEAM_CHATMESSAGE
+ },
KEY_ID_CHATMESSAGE + "=?",
new String[]{String.valueOf(id)},
null, null, null, null);
@@ -334,8 +343,22 @@ public class DatabaseHandler extends SQLiteOpenHelper {
Cursor cursor = readableDatabase.query(
TABLE_CHATMESSAGE,
- new String[] {KEY_ID_CHATMESSAGE, KEY_SENDER_PERSON_OID_CHATMESSAGE, KEY_RECIPIENT_PERSON_OID_CHATMESSAGE, KEY_INSTS_CHATMESSAGE, KEY_CHAT_TEXT_CHATMESSAGE, KEY_IS_DELIVERED_CHATMESSAGE, KEY_SERVERSEITIGE_OID_CHATMESSAGE, KEY_IS_TEAM_CHATMESSAGE},
- KEY_SENDER_PERSON_OID_CHATMESSAGE + "=? AND " + KEY_RECIPIENT_PERSON_OID_CHATMESSAGE + "=? OR " + KEY_RECIPIENT_PERSON_OID_CHATMESSAGE + "=? AND " + KEY_SENDER_PERSON_OID_CHATMESSAGE + "=?",
+ new String[] {
+ KEY_ID_CHATMESSAGE,
+ KEY_SENDER_PERSON_OID_CHATMESSAGE,
+ KEY_RECIPIENT_PERSON_OID_CHATMESSAGE,
+ KEY_INSTS_CHATMESSAGE,
+ KEY_CHAT_TEXT_CHATMESSAGE,
+ KEY_IS_DELIVERED_CHATMESSAGE,
+ KEY_SERVERSEITIGE_OID_CHATMESSAGE,
+ KEY_IS_TEAM_CHATMESSAGE
+ },
+ KEY_IS_TEAM_CHATMESSAGE + " = 0 AND " +
+ KEY_SENDER_PERSON_OID_CHATMESSAGE + "=? AND " +
+ KEY_RECIPIENT_PERSON_OID_CHATMESSAGE + "=? OR " +
+ KEY_RECIPIENT_PERSON_OID_CHATMESSAGE + "=? AND " +
+ KEY_SENDER_PERSON_OID_CHATMESSAGE + "=?"
+ ,
new String[] {String.valueOf(SoapConnectionManager.User.getPersonOid()), String.valueOf(recipientOid), String.valueOf(SoapConnectionManager.User.getPersonOid()), String.valueOf(recipientOid)},
null, null, null, null);
@@ -587,6 +610,28 @@ public class DatabaseHandler extends SQLiteOpenHelper {
return null;
}
+ public boolean GetIsMessageInDatabase(int pServerseitigeOid) {
+
+ SQLiteDatabase readableDatabase = this.getReadableDatabase();
+
+ Cursor cursor = readableDatabase.query(TABLE_CHATMESSAGE,
+ new String[] {
+ KEY_ID_CHATMESSAGE,
+ KEY_SENDER_PERSON_OID_CHATMESSAGE,
+ KEY_RECIPIENT_PERSON_OID_CHATMESSAGE,
+ KEY_INSTS_CHATMESSAGE,
+ KEY_CHAT_TEXT_CHATMESSAGE,
+ KEY_IS_DELIVERED_CHATMESSAGE,
+ KEY_SERVERSEITIGE_OID_CHATMESSAGE,
+ KEY_IS_TEAM_CHATMESSAGE
+ },
+ KEY_SERVERSEITIGE_OID_CHATMESSAGE + " =?",
+ new String[] {String.valueOf(pServerseitigeOid)},
+ null, null, null, null);
+
+ return cursor != null && cursor.moveToFirst();
+ }
+
public ArrayList getUnsentChatMessages() {
ArrayList messages = new ArrayList<>();
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 835c2da31..7e908ea52 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/BeWoChatApplication.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/BeWoChatApplication.java
@@ -27,6 +27,20 @@ import util.ConnectivityReceiver;
* Created by JettenM on 24.08.2016.
*/
public class BeWoChatApplication extends Application {
+ private static boolean activityVisible;
+
+ public static boolean isActivityVisible() {
+ return activityVisible;
+ }
+
+ public static void activityResumed() {
+ activityVisible = true;
+ }
+
+ public static void activityPaused() {
+ activityVisible = false;
+ }
+
private Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler;
private static final SpiceManager spiceManager = new SpiceManager(UncachedSpiceService.class);
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 e26e05879..d76af264c 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ChatActivity.java
@@ -20,6 +20,7 @@ import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
@@ -46,12 +47,10 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
-import java.util.Map;
import Database.DatabaseHandler;
import entities.ChatEntity;
import entities.ChatMessage;
-import entities.NotificationLog;
import soapConnection.DataIdentifier;
import soapConnection.JsonSoapPrimitiveRequest;
import soapConnection.Packet;
@@ -119,6 +118,21 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
listView = (ListView)findViewById(R.id.list_msg);
+ listView.setOnScrollListener(new AbsListView.OnScrollListener() {
+
+ @Override
+ public void onScrollStateChanged(AbsListView view, int scrollState) {
+ if(scrollState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
+ Log.i("ON_SCROLL_STATE_CHANGED", "Berühre das Ende");
+ }
+ }
+
+ @Override
+ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+ Log.i("ON_SCROLL", "Scrolle... firstVisibleItem: " + firstVisibleItem + "; visibleItemCount: " + visibleItemCount + "; totalItemCount" + totalItemCount);
+ }
+ });
+
Bundle zielkorb = getIntent().getExtras();
recipientName = zielkorb.getString("Name");
recipientPersonOid = zielkorb.getInt("RecipientOid");
@@ -158,9 +172,8 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
chatMessages = isTeam ? databaseHandler.getMessagesForTeam(recipientPersonOid) : databaseHandler.getMessagesForRecipient(recipientPersonOid);
- Collections.sort(chatMessages, DATE_COMPARATOR);
-
adapter = new MessageAdapter(this, R.layout.item_chat_left, chatMessages);
+ adapter.sort(DATE_COMPARATOR);
listView.setAdapter(adapter);
chatUIHandler = new UIHandler() {
@@ -172,8 +185,9 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
listView.post(new Runnable() {
@Override
public void run() {
- if(chatPacket.SenderPersonOid == recipientPersonOid) {
+ if(chatPacket.SenderPersonOid == recipientPersonOid && BeWoChatApplication.isActivityVisible()) {
chatMessages.add(new ChatMessage(chatPacket.SenderPersonOid, chatPacket.RecipientPersonOid, chatPacket.MessageTimeStamp, chatPacket.ChatMessage, true, chatPacket.ServerseitigeOid, false));
+ adapter.sort(DATE_COMPARATOR);
adapter.notifyDataSetChanged();
} else {
Util.SetNotify(chatPacket.ChatName, chatPacket.ChatMessage, chatPacket.SenderPersonOid, false, null, null, getApplicationContext());
@@ -210,8 +224,9 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
listView.post(new Runnable() {
@Override
public void run() {
- if(isTeam && chatPacket.RecipientPersonOid == recipientPersonOid) {
+ if(isTeam && chatPacket.RecipientPersonOid == recipientPersonOid && BeWoChatApplication.isActivityVisible()) {
chatMessages.add(new ChatMessage(chatPacket.SenderPersonOid, chatPacket.RecipientPersonOid, chatPacket.MessageTimeStamp, chatPacket.ChatMessage, true, chatPacket.ServerseitigeOid, true));
+ adapter.sort(DATE_COMPARATOR);
adapter.notifyDataSetChanged();
} else {
Util.SetNotify(chatPacket.ChatName, chatPacket.ChatMessage, chatPacket.RecipientPersonOid, true, teamMemberOids, teamMemberNames, getApplicationContext());
@@ -250,7 +265,6 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
final ChatMessage message = new ChatMessage(packet.SenderPersonOid, packet.RecipientPersonOid, packet.MessageTimeStamp, packet.ChatMessage, false, 0, isTeam);
- Log.i("MESSAGE_TRACER", "ChatActivity: Speichere Nachricht in der Datenbank " + message.ChatText);
long coid = databaseHandler.addChatMessage(message);
packet.ClientseitigeOid = Long.valueOf(coid).intValue();
@@ -261,7 +275,7 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
@Override
public void run() {
chatMessages.add(message);
-
+ adapter.sort(DATE_COMPARATOR);
adapter.notifyDataSetChanged();
text.setText("");
@@ -275,8 +289,6 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
ArrayList test = isTeam ? databaseHandler.getExistingTeamChatMessageIds() : databaseHandler.getExistingChatMessageIds();
- Log.i(LOGTAG, "Chat-Messages in der Datenbank: " + test.size());
-
String pExceptions = "";
for(int i = 0; i < test.size(); i++) {
pExceptions += test.get(i);
@@ -292,6 +304,8 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
propertyInfos.add(SoapConnectionManager.BuildProperty("pExceptions", pExceptions, String.class));
propertyInfos.add(SoapConnectionManager.BuildProperty("pIsForTeam", isTeam, Boolean.class));
+ Log.i(LOGTAG, "IsTeam: " + isTeam);
+
JsonSoapPrimitiveRequest request = new JsonSoapPrimitiveRequest(SoapCalls.GET_ALL_CHAT_MESSAGES, propertyInfos);
spiceManager.execute(request, new JsonSoapPrimitiveRequestListener());
@@ -308,6 +322,8 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
@Override
public void onResume() {
+ BeWoChatApplication.activityResumed();
+
SocketManager.uiHandler = chatUIHandler;
BeWoChatApplication.getInstance().setConnectivityListener(this);
@@ -324,6 +340,7 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
@Override
public void onPause() {
super.onPause();
+ BeWoChatApplication.activityPaused();
}
@Override
@@ -421,27 +438,13 @@ public class ChatActivity extends ActionBarActivity implements ConnectivityRecei
final ArrayList result = gson.fromJson(soapPrimitive.toString(), listType);
- Log.i(LOGTAG, "Chat-Messages aus der Serveranfrage: " + result.size());
- String abc = "";
- for(ChatMessage m : result) {
-
- abc += "\t" + m.ChatText;
-
- if(result.indexOf(m) < result.size() - 1) {
- abc += "\n";
- }
- }
-
- Log.i(LOGTAG, "Heruntergeladene Nachrichten:\n" + abc);
-
databaseHandler.addChatMessages(result);
listView.post(new Runnable() {
@Override
public void run() {
- Collections.sort(result, DATE_COMPARATOR);
-
chatMessages.addAll(result);
+ adapter.sort(DATE_COMPARATOR);
adapter.notifyDataSetChanged();
}
});
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 b1986e9e7..39300222a 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ContactListItem.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/ContactListItem.java
@@ -17,6 +17,9 @@ public class ContactListItem {
public String teamMemberOids;
public String teamMemberNames;
+ private String messagePreview;
+ private boolean isNewMessage2Preview;
+
public ContactListItem(){}
public ContactListItem(int id, String kontaktname, int personOid, byte[] picture, boolean isTeam, String teamMemberOids, String teamMemberNames, int version){
@@ -87,6 +90,22 @@ public class ContactListItem {
this.mVersion = mVersion;
}
+ public String getMessagePreview() {
+ return messagePreview;
+ }
+
+ public void setMessagePreview(String message) {
+ messagePreview = message;
+ }
+
+ public boolean getIsNewMessage2Preview() {
+ return isNewMessage2Preview;
+ }
+
+ public void setIsNewMessage2Preview(boolean isNewMessage2Preview) {
+ this.isNewMessage2Preview = isNewMessage2Preview;
+ }
+
@Override
public String toString() {
String result = "";
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 e0dc7f8ad..e0d654aea 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktAdapter.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktAdapter.java
@@ -26,20 +26,18 @@ import java.util.ArrayList;
public class KontaktAdapter extends ArrayAdapter {
private final Context context;
- public final ArrayList values;
+ final ArrayList values;
private Bitmap bitmaping;
- ImageView imageView;
+ private ImageView imageView;
+ private TextView messagePreview;
+ private TextView minitext;
public void setMinitext(TextView minitext) {
this.minitext = minitext;
}
- TextView minitext;
-
- Thread getPic;
-
- public KontaktAdapter(Context context, ArrayList values) {
+ KontaktAdapter(Context context, ArrayList values) {
super(context, R.layout.kontakt_list_chat, values);
this.context = context;
this.values = values;
@@ -52,16 +50,20 @@ public class KontaktAdapter extends ArrayAdapter {
View rowView = inflater.inflate(R.layout.contact_listview_item, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.label);
minitext = (TextView) rowView.findViewById(R.id.subtitle);
-
- ImageView onlinestats = (ImageView)rowView.findViewById(R.id.status);
+ messagePreview = (TextView) rowView.findViewById(R.id.messagePreview);
+ ImageView onlinestats = (ImageView) rowView.findViewById(R.id.status);
imageView = (ImageView) rowView.findViewById(R.id.logo);
textView.setText(values.get(position).getChatName());
+ messagePreview.setText(values.get(position).getMessagePreview());
+ messagePreview.setTypeface(messagePreview.getTypeface(), values.get(position).getIsNewMessage2Preview() ? 1 : 0);
+
if(values.get(position).isTeam) {
minitext.setText(values.get(position).teamMemberNames);
}
+ Thread getPic;
if(values.get(position).getPicture() != null) {
byte[] imageAsByteArray = values.get(position).getPicture();
@@ -82,7 +84,7 @@ public class KontaktAdapter extends ArrayAdapter {
return rowView;
}
- public class CircleBitmapCreator implements Runnable{
+ private class CircleBitmapCreator implements Runnable{
Bitmap bitmap;
CircleBitmapCreator(Bitmap _bitmap){
@@ -119,7 +121,7 @@ public class KontaktAdapter extends ArrayAdapter {
}
}
- public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {
+ private static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(res, resId, options);
@@ -130,7 +132,7 @@ public class KontaktAdapter extends ArrayAdapter {
return BitmapFactory.decodeResource(res, resId, options);
}
- public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
+ private static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
final int height = options.outHeight;
final int width = options.outWidth;
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 236e5291d..9bdb95d02 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/KontaktChatActivity.java
@@ -26,6 +26,7 @@ import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapPrimitive;
import java.io.ByteArrayOutputStream;
+import java.lang.reflect.Array;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
@@ -34,6 +35,7 @@ import java.util.Map;
import Database.DatabaseHandler;
import entities.ChatEntity;
+import entities.ChatMessage;
import entities.ChatPerson;
import soapConnection.JsonSoapPrimitiveRequest;
import soapConnection.OnRequestSuccessCallback;
@@ -42,6 +44,7 @@ import soapConnection.SoapCalls;
import soapConnection.SoapConnectionManager;
import tcpConnection.SocketManager;
import tcpConnection.UIHandler;
+import util.ChatMessageDeserializer;
import util.ConnectivityReceiver;
import util.Util;
@@ -122,12 +125,6 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
if(SocketManager.uiHandler == null ||! SocketManager.uiHandler.equals(kontaktChatActivityUIHandler)) {
SocketManager.uiHandler = kontaktChatActivityUIHandler;
}
-
-// ArrayList propertyInfos = new ArrayList<>();
-// propertyInfos.add(SoapConnectionManager.BuildProperty("pPersonOid", SoapConnectionManager.User.getPersonOid(), Long.class));
-//
-// JsonSoapPrimitiveRequest request = new JsonSoapPrimitiveRequest(SoapCalls.GET_CONTACTS_FOR_PERSON, propertyInfos);
-// spiceManager.execute(request, new JsonSoapPrimitiveRequestListener());
}
@Override
@@ -148,6 +145,12 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
Util.sendStatusRequest();
swipeRefreshLayout.setRefreshing(false);
+
+ ArrayList propertyInfos = new ArrayList<>();
+ propertyInfos.add(SoapConnectionManager.BuildProperty("pRecipientPersonOid", SoapConnectionManager.User.getPersonOid(), Long.class));
+
+ JsonSoapPrimitiveRequest request = new JsonSoapPrimitiveRequest("GetNewestMessages", propertyInfos);
+ spiceManager.execute(request, new JsonSoapPrimitiveRequestListenerForNewestMessages());
}
}));
}
@@ -158,15 +161,53 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
try {
switch(chatPacket.ChatDataIdentifier) {
case MESSAGE:
-
+ //TODO: Statt Notification Nachricht fett in der Liste darstellen? Oder beides?
Util.SetNotify(chatPacket.ChatName, chatPacket.ChatMessage, chatPacket.SenderPersonOid, false, null, null, getApplicationContext());
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ KontaktAdapter ka =((KontaktAdapter) listView.getAdapter());
+
+ for(ContactListItem item : ka.values) {
+ if(item.getPersonOid() == chatPacket.SenderPersonOid && !item.isTeam) {
+ item.setMessagePreview(chatPacket.ChatMessage);
+ item.setIsNewMessage2Preview(true);
+
+ break;
+ }
+ }
+
+ ka.notifyDataSetChanged();
+ }
+ });
+
break;
case TEAM:
ContactListItem cli = DatabaseHandler.getInstance(getApplicationContext()).getContactByPersonOid(chatPacket.RecipientPersonOid, true);
Util.SetNotify(chatPacket.ChatName, chatPacket.ChatMessage, chatPacket.RecipientPersonOid, true, cli.teamMemberOids, cli.teamMemberNames, getApplicationContext());
+
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ KontaktAdapter ka =((KontaktAdapter) listView.getAdapter());
+
+ for(ContactListItem item : ka.values) {
+ if(item.getPersonOid() == chatPacket.RecipientPersonOid && !item.isTeam) {
+ item.setMessagePreview(chatPacket.ChatMessage);
+ item.setIsNewMessage2Preview(true);
+
+ break;
+ }
+ }
+
+ ka.notifyDataSetChanged();
+ }
+ });
+
+
break;
case STATUS_NOTIFICATION_LOGIN:
runOnUiThread(new Runnable() {
@@ -223,9 +264,6 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
break;
case STATUS_REQUEST:
-
- Log.i(LOGTAG, "Aktualisiere die Kontaktliste");
-
runOnUiThread(new Runnable() {
@Override
public void run() {
@@ -278,6 +316,8 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
@Override
public void onResume() {
+ BeWoChatApplication.activityResumed();
+
SocketManager.uiHandler = kontaktChatActivityUIHandler;
BeWoChatApplication.getInstance().setConnectivityListener(this);
@@ -305,6 +345,7 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
@Override
public void onPause() {
super.onPause();
+ BeWoChatApplication.activityPaused();
}
@Override
@@ -324,9 +365,47 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
super.onBackPressed();
}
+ private final class JsonSoapPrimitiveRequestListenerForNewestMessages implements RequestListener {
+
+ @Override
+ public void onRequestFailure(SpiceException spiceException) {
+ Toast.makeText(KontaktChatActivity.this, "Ein Fehler ist beim laden der neuesten Nachrichten aufgetreten.", Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void onRequestSuccess(SoapPrimitive soapPrimitive) {
+ if(soapPrimitive == null) {
+ Log.e("KONTAKT_CHAT_ACTIVITY", "Neueste Nachrichten ist NULL!");
+ }
+
+ GsonBuilder builder = new GsonBuilder();
+ builder.registerTypeAdapter(ChatMessage.class, new ChatMessageDeserializer());
+
+ Gson gson = builder.create();
+
+ Type listType = new TypeToken>(){}.getType();
+ ArrayList result = gson.fromJson(soapPrimitive.toString(), listType);
+
+ KontaktAdapter adapter = (KontaktAdapter) listView.getAdapter();
+
+ for(ChatMessage message : result) {
+ if(adapter != null) {
+ for(ContactListItem item : adapter.values) {
+
+ if(item.getPersonOid() == message.SenderPersonOid && !item.isTeam && !message.IsTeam || item.isTeam && message.IsTeam && item.getPersonOid() == message.RecipientPersonOid) {
+ item.setMessagePreview(message.ChatText);
+ item.setIsNewMessage2Preview(!databaseHandler.GetIsMessageInDatabase(message.ServerseitigeOid));
+ }
+ }
+
+ adapter.notifyDataSetChanged();
+ }
+ }
+ }
+ }
+
private final class JsonSoapPrimitiveRequestListener implements RequestListener {
- //TODO: zusätzliches onRequestSuccess-Callback einbauen
OnRequestSuccessCallback callback;
JsonSoapPrimitiveRequestListener(OnRequestSuccessCallback callback) {
@@ -344,8 +423,6 @@ public class KontaktChatActivity extends ActionBarActivity implements Connectivi
Log.e("KONTAKT_CHAT_ACTIVITY", "soapPrimitive ist NULL!");
}
- Log.i(LOGTAG, "Lade Kontakte vom Server herunter");
-
Gson gson = new GsonBuilder().create();
Type listType = new TypeToken>(){}.getType();
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 bf30b91dc..673ce22ac 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/LoginActivity.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/beyondsoft/bewomitarbeiterapp/LoginActivity.java
@@ -257,61 +257,83 @@ public class LoginActivity extends ActionBarActivity {
String abc = soapPrimitive.toString();
if(abc != null) {
- String[] blubb = abc.split(";");
- SoapConnectionManager.User = new ApplicationUser(blubb[1], blubb[2], Long.valueOf(blubb[0]), Long.valueOf(blubb[3]));
- DatabaseHandler databaseHandler = DatabaseHandler.getInstance(getApplicationContext());
+ Log.i("LOGIN", abc);
- int owner = databaseHandler.getOwnerOid();
- if(owner == 0) {
- databaseHandler.insertOwnerOid(SoapConnectionManager.User.getPersonOid().intValue());
- } else if(owner != SoapConnectionManager.User.getPersonOid().intValue()) {
- databaseHandler.clearDatabase();
- databaseHandler.insertOwnerOid(SoapConnectionManager.User.getPersonOid().intValue());
- }
+ if(abc.contains(";")) {
+ String[] blubb = abc.split(";");
+ SoapConnectionManager.User = new ApplicationUser(blubb[1], blubb[2], Long.valueOf(blubb[0]), Long.valueOf(blubb[3]));
- SoapConnectionManager.User.setTenant(mTenantView.getText().toString());
+ DatabaseHandler databaseHandler = DatabaseHandler.getInstance(getApplicationContext());
- if(mRememberMeCheckBoxView.isChecked()) {
- ByteArrayOutputStream tokenOutputStream = new ByteArrayOutputStream();
- ByteArrayOutputStream tenantOutputStream = new ByteArrayOutputStream();
- ByteArrayOutputStream usernameOutputStream = new ByteArrayOutputStream();
- ByteArrayOutputStream passwordOutputStream = new ByteArrayOutputStream();
+ int owner = databaseHandler.getOwnerOid();
+ if(owner == 0) {
+ databaseHandler.insertOwnerOid(SoapConnectionManager.User.getPersonOid().intValue());
+ } else if(owner != SoapConnectionManager.User.getPersonOid().intValue()) {
+ databaseHandler.clearDatabase();
+ databaseHandler.insertOwnerOid(SoapConnectionManager.User.getPersonOid().intValue());
+ }
- try {
- SecurityUtils.encrypt(mChatCodeView.getText().toString(), tokenOutputStream);
- SecurityUtils.encrypt(mTenantView.getText().toString(), tenantOutputStream);
- SecurityUtils.encrypt(mUsernameView.getText().toString(), usernameOutputStream);
- SecurityUtils.encrypt(mPasswordView.getText().toString(), passwordOutputStream);
+ SoapConnectionManager.User.setTenant(mTenantView.getText().toString());
- SharedPreferences settings = getSharedPreferences(Util.PREFS_NAME, 0);
- SharedPreferences.Editor editor = settings.edit();
+ if(mRememberMeCheckBoxView.isChecked()) {
+ ByteArrayOutputStream tokenOutputStream = new ByteArrayOutputStream();
+ ByteArrayOutputStream tenantOutputStream = new ByteArrayOutputStream();
+ ByteArrayOutputStream usernameOutputStream = new ByteArrayOutputStream();
+ ByteArrayOutputStream passwordOutputStream = new ByteArrayOutputStream();
- editor.putString(Util.PREFS_TOKEN_KEY, Base64.encodeToString(tokenOutputStream.toByteArray(), Base64.DEFAULT));
- editor.putString(Util.PREFS_TENANT_KEY, Base64.encodeToString(tenantOutputStream.toByteArray(), Base64.DEFAULT));
- editor.putString(Util.PREFS_USERNAME_KEY, Base64.encodeToString(usernameOutputStream.toByteArray(), Base64.DEFAULT));
- editor.putString(Util.PREFS_PASSWORD, Base64.encodeToString(passwordOutputStream.toByteArray(), Base64.DEFAULT));
+ try {
+ SecurityUtils.encrypt(mChatCodeView.getText().toString(), tokenOutputStream);
+ SecurityUtils.encrypt(mTenantView.getText().toString(), tenantOutputStream);
+ SecurityUtils.encrypt(mUsernameView.getText().toString(), usernameOutputStream);
+ SecurityUtils.encrypt(mPasswordView.getText().toString(), passwordOutputStream);
- editor.apply();
+ SharedPreferences settings = getSharedPreferences(Util.PREFS_NAME, 0);
+ SharedPreferences.Editor editor = settings.edit();
- } catch (IOException | NoSuchAlgorithmException | NoSuchPaddingException | InvalidAlgorithmParameterException | InvalidKeyException e) {
- e.printStackTrace();
+ editor.putString(Util.PREFS_TOKEN_KEY, Base64.encodeToString(tokenOutputStream.toByteArray(), Base64.DEFAULT));
+ editor.putString(Util.PREFS_TENANT_KEY, Base64.encodeToString(tenantOutputStream.toByteArray(), Base64.DEFAULT));
+ editor.putString(Util.PREFS_USERNAME_KEY, Base64.encodeToString(usernameOutputStream.toByteArray(), Base64.DEFAULT));
+ editor.putString(Util.PREFS_PASSWORD, Base64.encodeToString(passwordOutputStream.toByteArray(), Base64.DEFAULT));
+
+ editor.apply();
+
+ } catch (IOException | NoSuchAlgorithmException | NoSuchPaddingException | InvalidAlgorithmParameterException | InvalidKeyException e) {
+ e.printStackTrace();
+ }
+ }
+
+ SocketManager.tenant = mTenantView.getText().toString();
+
+ SocketManager.loginCallback = new LoginCallback() {
+ @Override
+ public void doCallback() {
+ Log.e("LOGIN_CALLBACK", "LoginCallback aufgerufen. Ist verbunden und ruft die ChatActivity nun auf.");
+
+ Intent kontaktChatActivity = new Intent(LoginActivity.this, KontaktChatActivity.class);
+ LoginActivity.this.startActivity(kontaktChatActivity);
+ }
+ };
+
+ SocketManager.connectToServer();
+ } else {
+ showProgress(false);
+
+ switch(abc) {
+ case "WrongTenant":
+ showLoginUIErrors(false, true, false, false);
+ break;
+ case "WrongCredentials":
+ showLoginUIErrors(false, false, true, true);
+ break;
+ case "Unauthorized":
+ Toast.makeText(getApplicationContext(), "Sie sind nicht zum Chatten autorisiert. Bitte wenden Sie sich an Ihren Administrator.", Toast.LENGTH_LONG).show();
+ break;
+ default:
+ Toast.makeText(getApplicationContext(), "Ein unbekannter Fehler ist aufgetreten. Bitte versuchen Sie es später erneut.", Toast.LENGTH_LONG).show();
+ break;
}
}
-
- SocketManager.tenant = mTenantView.getText().toString();
-
- SocketManager.loginCallback = new LoginCallback() {
- @Override
- public void doCallback() {
- Log.e("LOGIN_CALLBACK", "LoginCallback aufgerufen. Ist verbunden und ruft die ChatActivity nun auf.");
-
- Intent kontaktChatActivity = new Intent(LoginActivity.this, KontaktChatActivity.class);
- LoginActivity.this.startActivity(kontaktChatActivity);
- }
- };
-
- SocketManager.connectToServer();
}
else {
showProgress(false);
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatMessage.java b/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatMessage.java
index 130ba942a..eb0cf3ece 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatMessage.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/entities/ChatMessage.java
@@ -45,16 +45,14 @@ public class ChatMessage {
@Override
public String toString() {
- String asString = "";
-
- asString += "Id: " + Id;
- asString += "\nSenderPersonOid: " + SenderPersonOid;
- asString += "\nRecipientPersonOid: " + RecipientPersonOid;
- asString += "\nInsTs: " + getInsTsAsString();
- asString += "\nChatText: " + ChatText;
- asString += "\nIsDelivered: " + IsDelivered;
- asString += "\nServerseitigeOid: " + ServerseitigeOid;
- asString += "\nIsTeam: " + IsTeam;
+ String asString = "Id: " + Id;
+ asString += "\nSenderPersonOid: " + SenderPersonOid;
+ asString += "\nRecipientPersonOid: " + RecipientPersonOid;
+ asString += "\nInsTs: " + getInsTsAsString();
+ asString += "\nChatText: " + ChatText;
+ asString += "\nIsDelivered: " + IsDelivered;
+ asString += "\nServerseitigeOid: " + ServerseitigeOid;
+ asString += "\nIsTeam: " + IsTeam;
return asString;
}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java b/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java
index 2bc5ed252..8770df27f 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/soapConnection/SoapCalls.java
@@ -12,24 +12,24 @@ public class SoapCalls {
public static String KEEP_ALIVE = "KeepAlive";
//TODO: "app4.bewoplaner.de";//
-// public static String DESTINATION_ADDRESS = "app4.bewoplaner.de";
-// public static int DESTINATION_PORT = 5000;
-//
-// public static String TOKEN_CHECK_URL = "https://" + DESTINATION_ADDRESS + "/mobil/main/checktoken?token=";
-//
-// 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 = "https://" + DESTINATION_ADDRESS + "/BeWoPlanerAndroid/AndroidSoapService.asmx";
-
-
- public static String DESTINATION_ADDRESS = "192.168.1.103";
+ public static String DESTINATION_ADDRESS = "app4.bewoplaner.de";
public static int DESTINATION_PORT = 5000;
- public static String TOKEN_CHECK_URL = "http://" + DESTINATION_ADDRESS + "/bewoplanermobil/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 + "/bewoplanermobil/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";
+
+
+// public static String DESTINATION_ADDRESS = "192.168.1.103";
+// public static int DESTINATION_PORT = 5000;
+//
+// public static String TOKEN_CHECK_URL = "http://" + DESTINATION_ADDRESS + "/bewoplanermobil/main/checktoken?token=";
+//
+// public static String WEB_DOKU_URL = "http://" + DESTINATION_ADDRESS + "/bewoplanermobil/login/demo";
+//
+// static String WSDL_TARGET_NAME = "bliblablubb.org/";
+// static String SOAP_ADDRESS = "http://" + DESTINATION_ADDRESS + "/BeWoPlanerAndroid/AndroidSoapService.asmx";
}
diff --git a/Android/BewoMitarbeiterApp/app/src/main/java/tcpConnection/SocketManager.java b/Android/BewoMitarbeiterApp/app/src/main/java/tcpConnection/SocketManager.java
index e0c76f7d0..727b9a482 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/java/tcpConnection/SocketManager.java
+++ b/Android/BewoMitarbeiterApp/app/src/main/java/tcpConnection/SocketManager.java
@@ -1,7 +1,6 @@
package tcpConnection;
import android.util.Log;
-import android.widget.ImageView;
import java.io.DataOutputStream;
import java.io.IOException;
@@ -25,7 +24,6 @@ import entities.NotificationLog;
import soapConnection.DataIdentifier;
import soapConnection.Packet;
import soapConnection.SoapCalls;
-import soapConnection.SoapConnectionManager;
import util.Util;
/**
@@ -33,7 +31,7 @@ import util.Util;
*/
public class SocketManager {
- private static final String TAG = "SOCKET_MANAGER";
+ private static final String LOGTAG = "SOCKET_MANAGER";
private static DatabaseHandler databaseHandler = DatabaseHandler.getInstance(BeWoChatApplication.getInstance());
@@ -216,7 +214,7 @@ public class SocketManager {
}
if(chatPacket.ChatDataIdentifier.equals(DataIdentifier.LOGIN_SUCCESS) && loginCallback != null) {
- Log.i(TAG, "Der Login war erfolgreich");
+ Log.i(LOGTAG, "Der Login war erfolgreich");
loginCallback.doCallback();
}
@@ -225,6 +223,8 @@ public class SocketManager {
switch (chatPacket.ChatDataIdentifier) {
case MESSAGE:
+ Log.i(LOGTAG, "Empfange Nacahricht");
+
databaseHandler.addChatMessage(new ChatMessage(chatPacket.SenderPersonOid, chatPacket.RecipientPersonOid, chatPacket.MessageTimeStamp, chatPacket.ChatMessage, true, chatPacket.ServerseitigeOid, false));
break;
@@ -249,17 +249,6 @@ public class SocketManager {
SocketManager.onlinePersonOids.add(chatPacket.SenderPersonOid);
}
- //if(!SocketManager.onlineEntities.)
-
- /*
- for(Map.Entry entry : SocketManager.notificationEntities.entrySet()) {
- if(!(entry.getKey().equals(chatEntity) && entry.getValue().equals(notificationLog))) {
- mNotifyMgr.cancel(entry.getValue().getNotificationId());
- entities2remove.add(entry.getKey());
- }
- }
- */
-
boolean isAlreadyLoggedIn = false;
for(ChatEntity entity : SocketManager.onlineEntities)
{
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off.png
new file mode 100644
index 000000000..6630b6028
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off_disabled.png
new file mode 100644
index 000000000..d5d350ddd
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off_pressed.png
new file mode 100644
index 000000000..366874575
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_on.png
new file mode 100644
index 000000000..e5f0353ce
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_on_disabled.png
new file mode 100644
index 000000000..31bdb8972
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off.png
new file mode 100644
index 000000000..6630b6028
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off_disabled.png
new file mode 100644
index 000000000..d5d350ddd
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off_pressed.png
new file mode 100644
index 000000000..366874575
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_on.png
new file mode 100644
index 000000000..e5f0353ce
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_on_disabled.png
new file mode 100644
index 000000000..31bdb8972
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off.png
new file mode 100644
index 000000000..6630b6028
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off_disabled.png
new file mode 100644
index 000000000..d5d350ddd
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off_pressed.png
new file mode 100644
index 000000000..366874575
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_on.png
new file mode 100644
index 000000000..e5f0353ce
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_on_disabled.png
new file mode 100644
index 000000000..31bdb8972
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off.png
new file mode 100644
index 000000000..8a7e53495
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off_disabled.png
new file mode 100644
index 000000000..8e5177784
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off_pressed.png
new file mode 100644
index 000000000..5687ff02b
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_on.png
new file mode 100644
index 000000000..0e7527e19
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_on_disabled.png
new file mode 100644
index 000000000..d137af153
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off.png
new file mode 100644
index 000000000..8a7e53495
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off_disabled.png
new file mode 100644
index 000000000..8e5177784
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off_pressed.png
new file mode 100644
index 000000000..5687ff02b
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_on.png
new file mode 100644
index 000000000..0e7527e19
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_on_disabled.png
new file mode 100644
index 000000000..d137af153
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off.png
new file mode 100644
index 000000000..8a7e53495
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off_disabled.png
new file mode 100644
index 000000000..8e5177784
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off_pressed.png
new file mode 100644
index 000000000..5687ff02b
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_on.png
new file mode 100644
index 000000000..0e7527e19
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_on_disabled.png
new file mode 100644
index 000000000..d137af153
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off.png
new file mode 100644
index 000000000..8bd174f44
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off_disabled.png
new file mode 100644
index 000000000..319ff8a60
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off_pressed.png
new file mode 100644
index 000000000..8974d130f
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_on.png
new file mode 100644
index 000000000..b1c4d3c69
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_on_disabled.png
new file mode 100644
index 000000000..33c2f2228
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off.png
new file mode 100644
index 000000000..8bd174f44
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off_disabled.png
new file mode 100644
index 000000000..319ff8a60
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off_pressed.png
new file mode 100644
index 000000000..8974d130f
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_on.png
new file mode 100644
index 000000000..b1c4d3c69
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_on_disabled.png
new file mode 100644
index 000000000..33c2f2228
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off.png
new file mode 100644
index 000000000..8bd174f44
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off_disabled.png
new file mode 100644
index 000000000..319ff8a60
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off_pressed.png
new file mode 100644
index 000000000..8974d130f
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_on.png
new file mode 100644
index 000000000..b1c4d3c69
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_on_disabled.png
new file mode 100644
index 000000000..33c2f2228
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off.png
new file mode 100644
index 000000000..9e71eafe1
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off_disabled.png
new file mode 100644
index 000000000..3fbe09e77
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off_pressed.png
new file mode 100644
index 000000000..08a64d491
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_on.png
new file mode 100644
index 000000000..4438d87f6
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_on_disabled.png
new file mode 100644
index 000000000..489a5e2b3
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off.png
new file mode 100644
index 000000000..9e71eafe1
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off_disabled.png
new file mode 100644
index 000000000..3fbe09e77
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off_pressed.png
new file mode 100644
index 000000000..08a64d491
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_on.png
new file mode 100644
index 000000000..4438d87f6
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_on_disabled.png
new file mode 100644
index 000000000..489a5e2b3
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off.png
new file mode 100644
index 000000000..9e71eafe1
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off_disabled.png
new file mode 100644
index 000000000..3fbe09e77
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off_pressed.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off_pressed.png
new file mode 100644
index 000000000..08a64d491
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off_pressed.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_on.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_on.png
new file mode 100644
index 000000000..4438d87f6
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_on.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_on_disabled.png b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_on_disabled.png
new file mode 100644
index 000000000..489a5e2b3
Binary files /dev/null and b/Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_on_disabled.png differ
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable/bewo_btn.xml b/Android/BewoMitarbeiterApp/app/src/main/res/drawable/bewo_checkbox.xml
similarity index 61%
rename from Android/BewoMitarbeiterApp/app/src/main/res/drawable/bewo_btn.xml
rename to Android/BewoMitarbeiterApp/app/src/main/res/drawable/bewo_checkbox.xml
index c607d28e2..97780be54 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/res/drawable/bewo_btn.xml
+++ b/Android/BewoMitarbeiterApp/app/src/main/res/drawable/bewo_checkbox.xml
@@ -2,44 +2,44 @@
+ android:drawable="@drawable/chk_on" />
+ android:drawable="@drawable/chk_off" />
+ android:drawable="@drawable/chk_on" />
+ android:drawable="@drawable/chk_off_pressed" />
+ android:drawable="@drawable/chk_on" />
+ android:drawable="@drawable/chk_off" />
+ android:drawable="@drawable/chk_off" />
+ android:drawable="@drawable/chk_on" />
-
+
+ android:drawable="@drawable/chk_on_disabled" />
+ android:drawable="@drawable/chk_off_disabled" />
+ android:drawable="@drawable/chk_on_disabled" />
+ android:drawable="@drawable/chk_off_disabled" />
-
+
\ No newline at end of file
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/drawable/orange_button.xml b/Android/BewoMitarbeiterApp/app/src/main/res/drawable/orange_button.xml
index b2530ba38..ccb979374 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/res/drawable/orange_button.xml
+++ b/Android/BewoMitarbeiterApp/app/src/main/res/drawable/orange_button.xml
@@ -3,12 +3,12 @@
-
+ android:color="#FF9B60" />
+ android:width="0dp"
+ android:color="#FF5E00" />
+ android:radius="30dp" />
+ android:color="#FF5E00" />
+ android:onClick="rememberMeOnClick"
+ android:button="@drawable/bewo_checkbox"
+ />
+ android:textStyle="bold"
+ android:maxLines="1"/>
+ android:textStyle="normal"
+ android:maxLines="1"/>
+
+
diff --git a/Android/BewoMitarbeiterApp/app/src/main/res/values/styles.xml b/Android/BewoMitarbeiterApp/app/src/main/res/values/styles.xml
index c108b71f6..d16ed5395 100644
--- a/Android/BewoMitarbeiterApp/app/src/main/res/values/styles.xml
+++ b/Android/BewoMitarbeiterApp/app/src/main/res/values/styles.xml
@@ -3,6 +3,11 @@
+
+