From fbb6db4dd2e66c7611a76e3f317bfb60c79d1a56 Mon Sep 17 00:00:00 2001 From: staccatomamba Date: Fri, 30 Sep 2016 10:19:11 +0200 Subject: [PATCH] Bessere Sortierung der Chatnachrichten --- Android/BewoMitarbeiterApp/app/app.iml | 16 +-- .../main/java/Database/DatabaseHandler.java | 51 +++++++- .../BeWoChatApplication.java | 14 +++ .../bewomitarbeiterapp/ChatActivity.java | 53 +++++---- .../bewomitarbeiterapp/ContactListItem.java | 19 +++ .../bewomitarbeiterapp/KontaktAdapter.java | 26 +++-- .../KontaktChatActivity.java | 103 +++++++++++++--- .../bewomitarbeiterapp/LoginActivity.java | 110 +++++++++++------- .../src/main/java/entities/ChatMessage.java | 18 ++- .../main/java/soapConnection/SoapCalls.java | 30 ++--- .../java/tcpConnection/SocketManager.java | 19 +-- .../main/res/drawable-hdpi-v11/chk_off.png | Bin 0 -> 255 bytes .../drawable-hdpi-v11/chk_off_disabled.png | Bin 0 -> 254 bytes .../res/drawable-hdpi-v11/chk_off_pressed.png | Bin 0 -> 252 bytes .../src/main/res/drawable-hdpi-v11/chk_on.png | Bin 0 -> 654 bytes .../res/drawable-hdpi-v11/chk_on_disabled.png | Bin 0 -> 718 bytes .../src/main/res/drawable-hdpi-v9/chk_off.png | Bin 0 -> 255 bytes .../res/drawable-hdpi-v9/chk_off_disabled.png | Bin 0 -> 254 bytes .../res/drawable-hdpi-v9/chk_off_pressed.png | Bin 0 -> 252 bytes .../src/main/res/drawable-hdpi-v9/chk_on.png | Bin 0 -> 654 bytes .../res/drawable-hdpi-v9/chk_on_disabled.png | Bin 0 -> 718 bytes .../src/main/res/drawable-hdpi/chk_off.png | Bin 0 -> 255 bytes .../res/drawable-hdpi/chk_off_disabled.png | Bin 0 -> 254 bytes .../res/drawable-hdpi/chk_off_pressed.png | Bin 0 -> 252 bytes .../app/src/main/res/drawable-hdpi/chk_on.png | Bin 0 -> 654 bytes .../res/drawable-hdpi/chk_on_disabled.png | Bin 0 -> 718 bytes .../main/res/drawable-mdpi-v11/chk_off.png | Bin 0 -> 252 bytes .../drawable-mdpi-v11/chk_off_disabled.png | Bin 0 -> 257 bytes .../res/drawable-mdpi-v11/chk_off_pressed.png | Bin 0 -> 250 bytes .../src/main/res/drawable-mdpi-v11/chk_on.png | Bin 0 -> 529 bytes .../res/drawable-mdpi-v11/chk_on_disabled.png | Bin 0 -> 588 bytes .../src/main/res/drawable-mdpi-v9/chk_off.png | Bin 0 -> 252 bytes .../res/drawable-mdpi-v9/chk_off_disabled.png | Bin 0 -> 257 bytes .../res/drawable-mdpi-v9/chk_off_pressed.png | Bin 0 -> 250 bytes .../src/main/res/drawable-mdpi-v9/chk_on.png | Bin 0 -> 529 bytes .../res/drawable-mdpi-v9/chk_on_disabled.png | Bin 0 -> 588 bytes .../src/main/res/drawable-mdpi/chk_off.png | Bin 0 -> 252 bytes .../res/drawable-mdpi/chk_off_disabled.png | Bin 0 -> 257 bytes .../res/drawable-mdpi/chk_off_pressed.png | Bin 0 -> 250 bytes .../app/src/main/res/drawable-mdpi/chk_on.png | Bin 0 -> 529 bytes .../res/drawable-mdpi/chk_on_disabled.png | Bin 0 -> 588 bytes .../main/res/drawable-xhdpi-v11/chk_off.png | Bin 0 -> 296 bytes .../drawable-xhdpi-v11/chk_off_disabled.png | Bin 0 -> 300 bytes .../drawable-xhdpi-v11/chk_off_pressed.png | Bin 0 -> 292 bytes .../main/res/drawable-xhdpi-v11/chk_on.png | Bin 0 -> 908 bytes .../drawable-xhdpi-v11/chk_on_disabled.png | Bin 0 -> 1013 bytes .../main/res/drawable-xhdpi-v9/chk_off.png | Bin 0 -> 296 bytes .../drawable-xhdpi-v9/chk_off_disabled.png | Bin 0 -> 300 bytes .../res/drawable-xhdpi-v9/chk_off_pressed.png | Bin 0 -> 292 bytes .../src/main/res/drawable-xhdpi-v9/chk_on.png | Bin 0 -> 908 bytes .../res/drawable-xhdpi-v9/chk_on_disabled.png | Bin 0 -> 1013 bytes .../src/main/res/drawable-xhdpi/chk_off.png | Bin 0 -> 296 bytes .../res/drawable-xhdpi/chk_off_disabled.png | Bin 0 -> 300 bytes .../res/drawable-xhdpi/chk_off_pressed.png | Bin 0 -> 292 bytes .../src/main/res/drawable-xhdpi/chk_on.png | Bin 0 -> 908 bytes .../res/drawable-xhdpi/chk_on_disabled.png | Bin 0 -> 1013 bytes .../main/res/drawable-xxhdpi-v11/chk_off.png | Bin 0 -> 289 bytes .../drawable-xxhdpi-v11/chk_off_disabled.png | Bin 0 -> 272 bytes .../drawable-xxhdpi-v11/chk_off_pressed.png | Bin 0 -> 286 bytes .../main/res/drawable-xxhdpi-v11/chk_on.png | Bin 0 -> 932 bytes .../drawable-xxhdpi-v11/chk_on_disabled.png | Bin 0 -> 938 bytes .../main/res/drawable-xxhdpi-v9/chk_off.png | Bin 0 -> 289 bytes .../drawable-xxhdpi-v9/chk_off_disabled.png | Bin 0 -> 272 bytes .../drawable-xxhdpi-v9/chk_off_pressed.png | Bin 0 -> 286 bytes .../main/res/drawable-xxhdpi-v9/chk_on.png | Bin 0 -> 932 bytes .../drawable-xxhdpi-v9/chk_on_disabled.png | Bin 0 -> 938 bytes .../src/main/res/drawable-xxhdpi/chk_off.png | Bin 0 -> 289 bytes .../res/drawable-xxhdpi/chk_off_disabled.png | Bin 0 -> 272 bytes .../res/drawable-xxhdpi/chk_off_pressed.png | Bin 0 -> 286 bytes .../src/main/res/drawable-xxhdpi/chk_on.png | Bin 0 -> 932 bytes .../res/drawable-xxhdpi/chk_on_disabled.png | Bin 0 -> 938 bytes .../{bewo_btn.xml => bewo_checkbox.xml} | 28 ++--- .../src/main/res/drawable/orange_button.xml | 12 +- .../src/main/res/layout/activity_login.xml | 4 +- .../main/res/layout/contact_listview_item.xml | 19 ++- .../app/src/main/res/values/styles.xml | 5 + BeWo/View/HomeDragPanelView.xaml.cs | 22 +++- BeWoChatServer/Server.cs | 4 +- BeWoPlanerAndroid/AndroidSoapService.asmx.cs | 35 ++++-- .../Service/SoapHibernateSessionManager.cs | 10 ++ Data/Access/SearchDAO.cs | 21 +++- Data/Entities/ChatMessage.cs | 78 +++++-------- Data/Mappings/ChatMessage.hbm.xml | 2 +- .../ChatMessageDC_ChatMessage.cs | 4 +- .../OperationsServiceImp.cs | 2 +- Shared/BeWoEntityEnums.cs | 8 ++ 86 files changed, 465 insertions(+), 248 deletions(-) create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v11/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi-v9/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-hdpi/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v11/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi-v9/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-mdpi/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v11/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi-v9/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xhdpi/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v11/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi-v9/chk_on_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off_disabled.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_off_pressed.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_on.png create mode 100644 Android/BewoMitarbeiterApp/app/src/main/res/drawable-xxhdpi/chk_on_disabled.png rename Android/BewoMitarbeiterApp/app/src/main/res/drawable/{bewo_btn.xml => bewo_checkbox.xml} (61%) 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 0000000000000000000000000000000000000000..6630b6028a1d50a5a85d86e4e89e5f6eb4303e77 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&+{QF|(^+2H>PZ!6KjC*fyY~*b=5Mj8eoTS9^ zQXqH(zv}J{t{RRek!_Pie@x41DOtbmqy27X70*eNLND_A-adO^X5~8m4KlyK?cZ!* z^=JEmqu&lxq$kS$`M~+7uXc8k-~BCjMJiW?8y{d`<}pAeD%|D@+;RVRTScnD)cruv ji=^vK>7J9m%;64X5{kHT{M}BVyBIuO{an^LB{Ts5GJ;ys literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d5d350dddb96297c555be08144c09a2864d6de37 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C)SROv92H&CeC)5S3)Wo^>MsBO@RZ&CKY!&F8W@;3&Gi6Q9cJ1D(a->FVdQ&MBb@0K^eiNdN!< literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..366874575db1bccb02c4a5e9f9f21d4fd52efbbe GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&+#iLkhCs3%<)5S3)Mj}wwOG( zkSjWUV+mjM_6veB$Na(>gcQ`uO&`^(m^93sIWw|M@oRH=BJ;dM#ia)X%ihgsU3r*a zl&_5C*^JiON5}XJ+U9P3^5wnI{`&9VtrZ*^7#NvYI0WE~3(M@7ZI<|9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e5f0353ce5f890a9b3f3effdeeaae752a1db6be4 GIT binary patch literal 654 zcmV;90&)F`P)Ji1_dZ(zCUk zEz8%?Gs@@poLOJc-6tMOeDiq@T@G5|eAL#_`-<;hIMqNVv%q04BiQnHwsLsz-zE|@ z42%8%S0^B?lxv7S-fI4-yG!mgQ7R;{2N*l*V~E5 zX*v-+yK{<>;gW>)!h9l$p<|@eR3*6IpLawk{edQl;r5{3OC-MVC$g&Y|0@wMH*LAj oKx$5)D7N^Nh=_=Yh=~84pSD?f!%}@;TL1t607*qoM6N<$f@hN}9smFU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..31bdb8972331581cbf62069df3450c7a1fefb6b5 GIT binary patch literal 718 zcmV;<0x|uGP)yP0|@>mb&pFe+TLqKrzygo=>DaGd7 zWffAP5<=ZwO)y0WGDL_9qe7O7(!)wKZ#$S^5Vk0wc!_(=LY33d8F)u%-k`OE(Y* z1iUFAO_R1zEA8P{epr_G1ll8E{C*!@J-w`x(mMjSZF4zvf%39aqTLVq_I=(vN64}) zLM>;h*tC(}M^BhbrMy$bmSxd=`Xp7Al{_7a^KSM%LI`gNShh`L!!fFNY-jZOI8)Oz zj>7*F0i_i62li7}Tf>W&Q;bbaVj9k4xGIpzWZ1Q{nj`fGdHv=sgNb3JX?mlPWiqgB zYZa%O8u{??6Mc{Sky7TpuWJHZHdoNne1^|oz7p%{D@b_90!k^AQdzGrFE8U#YYX!W z3*3u!=XK`u7EnrY^zb209B;tNqU8ttemX9OSX^A>ZnSG{40Ar8kKmr&G_4{bO_M8a z5fFmT2eGV#bDp7cHZ}|f;z^WJ)CFrm2nOQGKc4CKNEpA*N9X-0>2z^E;v7|yl#-$3 z2*8pA{3c=BHXV_$<>&pIsQ=C&+{QF|(^+2H>PZ!6KjC*fyY~*b=5Mj8eoTS9^ zQXqH(zv}J{t{RRek!_Pie@x41DOtbmqy27X70*eNLND_A-adO^X5~8m4KlyK?cZ!* z^=JEmqu&lxq$kS$`M~+7uXc8k-~BCjMJiW?8y{d`<}pAeD%|D@+;RVRTScnD)cruv ji=^vK>7J9m%;64X5{kHT{M}BVyBIuO{an^LB{Ts5GJ;ys literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d5d350dddb96297c555be08144c09a2864d6de37 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C)SROv92H&CeC)5S3)Wo^>MsBO@RZ&CKY!&F8W@;3&Gi6Q9cJ1D(a->FVdQ&MBb@0K^eiNdN!< literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..366874575db1bccb02c4a5e9f9f21d4fd52efbbe GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&+#iLkhCs3%<)5S3)Mj}wwOG( zkSjWUV+mjM_6veB$Na(>gcQ`uO&`^(m^93sIWw|M@oRH=BJ;dM#ia)X%ihgsU3r*a zl&_5C*^JiON5}XJ+U9P3^5wnI{`&9VtrZ*^7#NvYI0WE~3(M@7ZI<|9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e5f0353ce5f890a9b3f3effdeeaae752a1db6be4 GIT binary patch literal 654 zcmV;90&)F`P)Ji1_dZ(zCUk zEz8%?Gs@@poLOJc-6tMOeDiq@T@G5|eAL#_`-<;hIMqNVv%q04BiQnHwsLsz-zE|@ z42%8%S0^B?lxv7S-fI4-yG!mgQ7R;{2N*l*V~E5 zX*v-+yK{<>;gW>)!h9l$p<|@eR3*6IpLawk{edQl;r5{3OC-MVC$g&Y|0@wMH*LAj oKx$5)D7N^Nh=_=Yh=~84pSD?f!%}@;TL1t607*qoM6N<$f@hN}9smFU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..31bdb8972331581cbf62069df3450c7a1fefb6b5 GIT binary patch literal 718 zcmV;<0x|uGP)yP0|@>mb&pFe+TLqKrzygo=>DaGd7 zWffAP5<=ZwO)y0WGDL_9qe7O7(!)wKZ#$S^5Vk0wc!_(=LY33d8F)u%-k`OE(Y* z1iUFAO_R1zEA8P{epr_G1ll8E{C*!@J-w`x(mMjSZF4zvf%39aqTLVq_I=(vN64}) zLM>;h*tC(}M^BhbrMy$bmSxd=`Xp7Al{_7a^KSM%LI`gNShh`L!!fFNY-jZOI8)Oz zj>7*F0i_i62li7}Tf>W&Q;bbaVj9k4xGIpzWZ1Q{nj`fGdHv=sgNb3JX?mlPWiqgB zYZa%O8u{??6Mc{Sky7TpuWJHZHdoNne1^|oz7p%{D@b_90!k^AQdzGrFE8U#YYX!W z3*3u!=XK`u7EnrY^zb209B;tNqU8ttemX9OSX^A>ZnSG{40Ar8kKmr&G_4{bO_M8a z5fFmT2eGV#bDp7cHZ}|f;z^WJ)CFrm2nOQGKc4CKNEpA*N9X-0>2z^E;v7|yl#-$3 z2*8pA{3c=BHXV_$<>&pIsQ=C&+{QF|(^+2H>PZ!6KjC*fyY~*b=5Mj8eoTS9^ zQXqH(zv}J{t{RRek!_Pie@x41DOtbmqy27X70*eNLND_A-adO^X5~8m4KlyK?cZ!* z^=JEmqu&lxq$kS$`M~+7uXc8k-~BCjMJiW?8y{d`<}pAeD%|D@+;RVRTScnD)cruv ji=^vK>7J9m%;64X5{kHT{M}BVyBIuO{an^LB{Ts5GJ;ys literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d5d350dddb96297c555be08144c09a2864d6de37 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C)SROv92H&CeC)5S3)Wo^>MsBO@RZ&CKY!&F8W@;3&Gi6Q9cJ1D(a->FVdQ&MBb@0K^eiNdN!< literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..366874575db1bccb02c4a5e9f9f21d4fd52efbbe GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&+#iLkhCs3%<)5S3)Mj}wwOG( zkSjWUV+mjM_6veB$Na(>gcQ`uO&`^(m^93sIWw|M@oRH=BJ;dM#ia)X%ihgsU3r*a zl&_5C*^JiON5}XJ+U9P3^5wnI{`&9VtrZ*^7#NvYI0WE~3(M@7ZI<|9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e5f0353ce5f890a9b3f3effdeeaae752a1db6be4 GIT binary patch literal 654 zcmV;90&)F`P)Ji1_dZ(zCUk zEz8%?Gs@@poLOJc-6tMOeDiq@T@G5|eAL#_`-<;hIMqNVv%q04BiQnHwsLsz-zE|@ z42%8%S0^B?lxv7S-fI4-yG!mgQ7R;{2N*l*V~E5 zX*v-+yK{<>;gW>)!h9l$p<|@eR3*6IpLawk{edQl;r5{3OC-MVC$g&Y|0@wMH*LAj oKx$5)D7N^Nh=_=Yh=~84pSD?f!%}@;TL1t607*qoM6N<$f@hN}9smFU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..31bdb8972331581cbf62069df3450c7a1fefb6b5 GIT binary patch literal 718 zcmV;<0x|uGP)yP0|@>mb&pFe+TLqKrzygo=>DaGd7 zWffAP5<=ZwO)y0WGDL_9qe7O7(!)wKZ#$S^5Vk0wc!_(=LY33d8F)u%-k`OE(Y* z1iUFAO_R1zEA8P{epr_G1ll8E{C*!@J-w`x(mMjSZF4zvf%39aqTLVq_I=(vN64}) zLM>;h*tC(}M^BhbrMy$bmSxd=`Xp7Al{_7a^KSM%LI`gNShh`L!!fFNY-jZOI8)Oz zj>7*F0i_i62li7}Tf>W&Q;bbaVj9k4xGIpzWZ1Q{nj`fGdHv=sgNb3JX?mlPWiqgB zYZa%O8u{??6Mc{Sky7TpuWJHZHdoNne1^|oz7p%{D@b_90!k^AQdzGrFE8U#YYX!W z3*3u!=XK`u7EnrY^zb209B;tNqU8ttemX9OSX^A>ZnSG{40Ar8kKmr&G_4{bO_M8a z5fFmT2eGV#bDp7cHZ}|f;z^WJ)CFrm2nOQGKc4CKNEpA*N9X-0>2z^E;v7|yl#-$3 z2*8pA{3c=BHXV_$<>&pIsQ=C&wxOZpqXP{80r;B4q#NoHo422vF1YGAAFp54m zxbkjsxwLs2c=n&UToqcve<(V^ zoa2duxK`T4)6xcdpH24ou79ad8da(MS+pi!+~jI;T(pamO+=N rOFoVD^Eoj8v`c=?lIx!|T{@UU{e{%qGit8@9mU}3>gTe~DWM4f8Kzlr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8e5177784b2db9f5e03a861daa0418a32046b01e GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&w?Kao;3qYYhPZ!6Kh{MSV60D08M0gAmRF)(h z+A=eehli(LW6Sd>$FN_5IYK@z5qaki9Qe@Bbh=eSLgG<@=O%#*f7%-x6U%`LWQua< z8{{stU}kpK)T>leI+L)-;K$6&OpBulR~Q%bNt7N~!R#h$@QOi9=?aJA>X0;}w-XMe t^DDB)G@Ge;X?}UK_2RMT8WOBKfWFcdDfqVhbPdpD44$rjF6*2UngD1gRCxdZ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5687ff02b41f5af91a0a87dd41ea4a42fef4014f GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&wGB;<|TcA+8r;B4q#NoHoHVQT<2(XB6VN`y5 z%unOMoxGl$!+ah&Cj^C^1&_-ge_~eqBf9N@e2aknV=wlg1O~HYw-V#mp%?8r-Z$P= zxWM4NE<#){|G=ZPW!qnBUSLXI_fG!HhhzEc_T}WcF$qm*U{O(Mykt@4P~3OrRjOP0 o^kAWm=SGH7@{(I?xF$YkIF>KCy1jw_570>rp00i_>zopr0FB{RO#lD@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0e7527e19072dbbcef8692b9e783f314cc5abc32 GIT binary patch literal 529 zcmV+s0`C2ZP)aO%?WW`4bN-yq$_=2y(5w+{3A7Oi%FmS^|^j zDWKfLxz~KHGgW0xvSUGR)gQdh+zb;3(&>A}vKR@R>UY}%37~<}6KEB{$jXg&>a+~VlB6%r;c~V`fH^(@Hk*i$T z!R+VEK1w&a5cf_neT8pdSe4zuL4vwlcj9|$@}ScW)RrC-jf_P;DIT8%3bex?_9S38 TmkW_u00000NkvXXu0mjfxU}r2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d137af15326aa8212a3bf9a758e61f78ba7177e0 GIT binary patch literal 588 zcmV-S0<-;zP)&z5w;6BXBa&0>LBv@3(=)zii9}5 z4ipJNTk}1>{a9dj?t50}whItK(AnO~Ml8ms*{`@jnO}Lq% z`gL@atu}X?8t|5t5gwbsFx>VEIA2^$u=PH=uK%~sQc9{S{ao;R8F)2}l+t>1xd?mv z`)q8+=y@3YCs!#YHPuzz@c9@Td5sYHrD-aH$+y!iE-e#m`_qY3D#i6{SMgU=@G>++ zBALv8c+HRux0`n#BCM{h)7=@M((j}3_Du$dM@b}-rq(SJbSrP_<>&pIsQ=C&wxOZpqXP{80r;B4q#NoHo422vF1YGAAFp54m zxbkjsxwLs2c=n&UToqcve<(V^ zoa2duxK`T4)6xcdpH24ou79ad8da(MS+pi!+~jI;T(pamO+=N rOFoVD^Eoj8v`c=?lIx!|T{@UU{e{%qGit8@9mU}3>gTe~DWM4f8Kzlr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8e5177784b2db9f5e03a861daa0418a32046b01e GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&w?Kao;3qYYhPZ!6Kh{MSV60D08M0gAmRF)(h z+A=eehli(LW6Sd>$FN_5IYK@z5qaki9Qe@Bbh=eSLgG<@=O%#*f7%-x6U%`LWQua< z8{{stU}kpK)T>leI+L)-;K$6&OpBulR~Q%bNt7N~!R#h$@QOi9=?aJA>X0;}w-XMe t^DDB)G@Ge;X?}UK_2RMT8WOBKfWFcdDfqVhbPdpD44$rjF6*2UngD1gRCxdZ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5687ff02b41f5af91a0a87dd41ea4a42fef4014f GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&wGB;<|TcA+8r;B4q#NoHoHVQT<2(XB6VN`y5 z%unOMoxGl$!+ah&Cj^C^1&_-ge_~eqBf9N@e2aknV=wlg1O~HYw-V#mp%?8r-Z$P= zxWM4NE<#){|G=ZPW!qnBUSLXI_fG!HhhzEc_T}WcF$qm*U{O(Mykt@4P~3OrRjOP0 o^kAWm=SGH7@{(I?xF$YkIF>KCy1jw_570>rp00i_>zopr0FB{RO#lD@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0e7527e19072dbbcef8692b9e783f314cc5abc32 GIT binary patch literal 529 zcmV+s0`C2ZP)aO%?WW`4bN-yq$_=2y(5w+{3A7Oi%FmS^|^j zDWKfLxz~KHGgW0xvSUGR)gQdh+zb;3(&>A}vKR@R>UY}%37~<}6KEB{$jXg&>a+~VlB6%r;c~V`fH^(@Hk*i$T z!R+VEK1w&a5cf_neT8pdSe4zuL4vwlcj9|$@}ScW)RrC-jf_P;DIT8%3bex?_9S38 TmkW_u00000NkvXXu0mjfxU}r2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d137af15326aa8212a3bf9a758e61f78ba7177e0 GIT binary patch literal 588 zcmV-S0<-;zP)&z5w;6BXBa&0>LBv@3(=)zii9}5 z4ipJNTk}1>{a9dj?t50}whItK(AnO~Ml8ms*{`@jnO}Lq% z`gL@atu}X?8t|5t5gwbsFx>VEIA2^$u=PH=uK%~sQc9{S{ao;R8F)2}l+t>1xd?mv z`)q8+=y@3YCs!#YHPuzz@c9@Td5sYHrD-aH$+y!iE-e#m`_qY3D#i6{SMgU=@G>++ zBALv8c+HRux0`n#BCM{h)7=@M((j}3_Du$dM@b}-rq(SJbSrP_<>&pIsQ=C&wxOZpqXP{80r;B4q#NoHo422vF1YGAAFp54m zxbkjsxwLs2c=n&UToqcve<(V^ zoa2duxK`T4)6xcdpH24ou79ad8da(MS+pi!+~jI;T(pamO+=N rOFoVD^Eoj8v`c=?lIx!|T{@UU{e{%qGit8@9mU}3>gTe~DWM4f8Kzlr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8e5177784b2db9f5e03a861daa0418a32046b01e GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&w?Kao;3qYYhPZ!6Kh{MSV60D08M0gAmRF)(h z+A=eehli(LW6Sd>$FN_5IYK@z5qaki9Qe@Bbh=eSLgG<@=O%#*f7%-x6U%`LWQua< z8{{stU}kpK)T>leI+L)-;K$6&OpBulR~Q%bNt7N~!R#h$@QOi9=?aJA>X0;}w-XMe t^DDB)G@Ge;X?}UK_2RMT8WOBKfWFcdDfqVhbPdpD44$rjF6*2UngD1gRCxdZ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5687ff02b41f5af91a0a87dd41ea4a42fef4014f GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsQ=C&wGB;<|TcA+8r;B4q#NoHoHVQT<2(XB6VN`y5 z%unOMoxGl$!+ah&Cj^C^1&_-ge_~eqBf9N@e2aknV=wlg1O~HYw-V#mp%?8r-Z$P= zxWM4NE<#){|G=ZPW!qnBUSLXI_fG!HhhzEc_T}WcF$qm*U{O(Mykt@4P~3OrRjOP0 o^kAWm=SGH7@{(I?xF$YkIF>KCy1jw_570>rp00i_>zopr0FB{RO#lD@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0e7527e19072dbbcef8692b9e783f314cc5abc32 GIT binary patch literal 529 zcmV+s0`C2ZP)aO%?WW`4bN-yq$_=2y(5w+{3A7Oi%FmS^|^j zDWKfLxz~KHGgW0xvSUGR)gQdh+zb;3(&>A}vKR@R>UY}%37~<}6KEB{$jXg&>a+~VlB6%r;c~V`fH^(@Hk*i$T z!R+VEK1w&a5cf_neT8pdSe4zuL4vwlcj9|$@}ScW)RrC-jf_P;DIT8%3bex?_9S38 TmkW_u00000NkvXXu0mjfxU}r2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d137af15326aa8212a3bf9a758e61f78ba7177e0 GIT binary patch literal 588 zcmV-S0<-;zP)&z5w;6BXBa&0>LBv@3(=)zii9}5 z4ipJNTk}1>{a9dj?t50}whItK(AnO~Ml8ms*{`@jnO}Lq% z`gL@atu}X?8t|5t5gwbsFx>VEIA2^$u=PH=uK%~sQc9{S{ao;R8F)2}l+t>1xd?mv z`)q8+=y@3YCs!#YHPuzz@c9@Td5sYHrD-aH$+y!iE-e#m`_qY3D#i6{SMgU=@G>++ zBALv8c+HRux0`n#BCM{h)7=@M((j}3_Du$dM@b}-rq(SJbSrP_X` zN)C>{Zy8dT@FRE9@gs-7dzN{cy_bvW{ZlyoNnOsX!&k1?XPs}>TR7*i@vNYkt-=lr zj4T59i3hHK?b#)ED{S=JB)@CU2iBwOnL{KuO#5{7p*|x6L&ZU1X9uy`i^~s90J?_3 M)78&qol`;+06jcqI{*Lx literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8974d130f303e208f808f618d091c3bdfc0d5330 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNr#Pp$`c|=R>_DN7o-U3d6}R5r+AY`=AmVzFIax3) z$w^g3#NFSmO-wMU`RDED3rLsOHhTYXJtG6djEAiAPD)<C7a|@2m}IwKp+qZ1gefqu{S6@Y!E{!h-CyTGTR)P%tbW`1b=N3LMFtO zOiqBP$OjIkD0nDL_JXL|Yd{d7V&A-gnU_;{=@b&b;swZ1doj=L<@v9;$}($8Mu6Hn*6rek zMRD(*Y|(qFmwERxIvl&a-+wLJpsjcT#kSB0s{WW`6mh ztQ#{*bt&)=HJgk?{&;cKF7 ze7NaZo(lg}+L73stz zplK=vLIoo$T_BWFQrm4IMW~HQwUMQ1vedXNyUaP>*m_eV?9MJT?s@LdoO$1Q&zW~V zK%>!UG#ZUYqtR$Inu^0H_5h!M@#Re*?Ex(&aO$&9KUvtypnwbFo7^zcB_7-A08!+G zX%C4n2vO;KfHuIdC$5yD%C@m~>_911@NoiuHNZ3j#JV~F=pPzpEt{>Z1RQH`V`ptG zmSrJ?sH_A;BS&d!s3)J#bGmPUKQkE&!}$LvKuXEMHxJO%P){zGM`#j=e7ocp&~{cN8H6SFT;>O7a?J zz}?V#(g39tHBUXs@n{4g1PhBx#1j*)UU|Gj%BDAV9Md$p{p%g#i3x1Ws*Gm= z+qU_r=Ok6O&GO1!&I}9|)%AU4fFm7xx;v?^ew=iAm4S1^n5J3MIX!b56hhE@qMMzy zHDoeteBIYiE|)9Gx-UrrHa0d2j_Ue)j>re?Jp0VkWV2aL_YagsylVyo0s&%OQJ&jf zhm>;5<0D7f*xT5E<2dx68{z)_KguHB6$7M{ydDnGSigr8(GS_Tw`tQR;@Xg>5sg;$oiFd^SAq11tGbHEc5ke3-(zdB2D5Yq5EzH|*wESIhC-{9ik_ani;1b}hbF{2JJ|QazbC$kztvBW<~Xn%APlv3=e ztD`G&6vHr>{qZV`Ki}FG@va+S{YMg%Qqf$Au!y$w)SXf+Q^!&Id3Rp>- z;CJyc3?LNT&%3P$0a#A0@Wc3|XXX` zN)C>{Zy8dT@FRE9@gs-7dzN{cy_bvW{ZlyoNnOsX!&k1?XPs}>TR7*i@vNYkt-=lr zj4T59i3hHK?b#)ED{S=JB)@CU2iBwOnL{KuO#5{7p*|x6L&ZU1X9uy`i^~s90J?_3 M)78&qol`;+06jcqI{*Lx literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8974d130f303e208f808f618d091c3bdfc0d5330 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNr#Pp$`c|=R>_DN7o-U3d6}R5r+AY`=AmVzFIax3) z$w^g3#NFSmO-wMU`RDED3rLsOHhTYXJtG6djEAiAPD)<C7a|@2m}IwKp+qZ1gefqu{S6@Y!E{!h-CyTGTR)P%tbW`1b=N3LMFtO zOiqBP$OjIkD0nDL_JXL|Yd{d7V&A-gnU_;{=@b&b;swZ1doj=L<@v9;$}($8Mu6Hn*6rek zMRD(*Y|(qFmwERxIvl&a-+wLJpsjcT#kSB0s{WW`6mh ztQ#{*bt&)=HJgk?{&;cKF7 ze7NaZo(lg}+L73stz zplK=vLIoo$T_BWFQrm4IMW~HQwUMQ1vedXNyUaP>*m_eV?9MJT?s@LdoO$1Q&zW~V zK%>!UG#ZUYqtR$Inu^0H_5h!M@#Re*?Ex(&aO$&9KUvtypnwbFo7^zcB_7-A08!+G zX%C4n2vO;KfHuIdC$5yD%C@m~>_911@NoiuHNZ3j#JV~F=pPzpEt{>Z1RQH`V`ptG zmSrJ?sH_A;BS&d!s3)J#bGmPUKQkE&!}$LvKuXEMHxJO%P){zGM`#j=e7ocp&~{cN8H6SFT;>O7a?J zz}?V#(g39tHBUXs@n{4g1PhBx#1j*)UU|Gj%BDAV9Md$p{p%g#i3x1Ws*Gm= z+qU_r=Ok6O&GO1!&I}9|)%AU4fFm7xx;v?^ew=iAm4S1^n5J3MIX!b56hhE@qMMzy zHDoeteBIYiE|)9Gx-UrrHa0d2j_Ue)j>re?Jp0VkWV2aL_YagsylVyo0s&%OQJ&jf zhm>;5<0D7f*xT5E<2dx68{z)_KguHB6$7M{ydDnGSigr8(GS_Tw`tQR;@Xg>5sg;$oiFd^SAq11tGbHEc5ke3-(zdB2D5Yq5EzH|*wESIhC-{9ik_ani;1b}hbF{2JJ|QazbC$kztvBW<~Xn%APlv3=e ztD`G&6vHr>{qZV`Ki}FG@va+S{YMg%Qqf$Au!y$w)SXf+Q^!&Id3Rp>- z;CJyc3?LNT&%3P$0a#A0@Wc3|XXX` zN)C>{Zy8dT@FRE9@gs-7dzN{cy_bvW{ZlyoNnOsX!&k1?XPs}>TR7*i@vNYkt-=lr zj4T59i3hHK?b#)ED{S=JB)@CU2iBwOnL{KuO#5{7p*|x6L&ZU1X9uy`i^~s90J?_3 M)78&qol`;+06jcqI{*Lx literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8974d130f303e208f808f618d091c3bdfc0d5330 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNr#Pp$`c|=R>_DN7o-U3d6}R5r+AY`=AmVzFIax3) z$w^g3#NFSmO-wMU`RDED3rLsOHhTYXJtG6djEAiAPD)<C7a|@2m}IwKp+qZ1gefqu{S6@Y!E{!h-CyTGTR)P%tbW`1b=N3LMFtO zOiqBP$OjIkD0nDL_JXL|Yd{d7V&A-gnU_;{=@b&b;swZ1doj=L<@v9;$}($8Mu6Hn*6rek zMRD(*Y|(qFmwERxIvl&a-+wLJpsjcT#kSB0s{WW`6mh ztQ#{*bt&)=HJgk?{&;cKF7 ze7NaZo(lg}+L73stz zplK=vLIoo$T_BWFQrm4IMW~HQwUMQ1vedXNyUaP>*m_eV?9MJT?s@LdoO$1Q&zW~V zK%>!UG#ZUYqtR$Inu^0H_5h!M@#Re*?Ex(&aO$&9KUvtypnwbFo7^zcB_7-A08!+G zX%C4n2vO;KfHuIdC$5yD%C@m~>_911@NoiuHNZ3j#JV~F=pPzpEt{>Z1RQH`V`ptG zmSrJ?sH_A;BS&d!s3)J#bGmPUKQkE&!}$LvKuXEMHxJO%P){zGM`#j=e7ocp&~{cN8H6SFT;>O7a?J zz}?V#(g39tHBUXs@n{4g1PhBx#1j*)UU|Gj%BDAV9Md$p{p%g#i3x1Ws*Gm= z+qU_r=Ok6O&GO1!&I}9|)%AU4fFm7xx;v?^ew=iAm4S1^n5J3MIX!b56hhE@qMMzy zHDoeteBIYiE|)9Gx-UrrHa0d2j_Ue)j>re?Jp0VkWV2aL_YagsylVyo0s&%OQJ&jf zhm>;5<0D7f*xT5E<2dx68{z)_KguHB6$7M{ydDnGSigr8(GS_Tw`tQR;@Xg>5sg;$oiFd^SAq11tGbHEc5ke3-(zdB2D5Yq5EzH|*wESIhC-{9ik_ani;1b}hbF{2JJ|QazbC$kztvBW<~Xn%APlv3=e ztD`G&6vHr>{qZV`Ki}FG@va+S{YMg%Qqf$Au!y$w)SXf+Q^!&Id3Rp>- z;CJyc3?LNT&%3P$0a#A0@Wc3|XXF!Z|@xBZBP(ka5M-@ z`Lg`(=gT)HT}xnEF?}Xe!<|FZrvMd#!Gc|Ps+u$7)+HEgKi`~HGynhq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3fbe09e77043e7ada5ec8f74f76d82788d4a8b5e GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4$};usi0S?fK4BAf*t zk;M!Q+`=Ht$S`Y;1W=H@#M9T6{Q;*qhaS_%kk+$6p}C$ejv*Dd-rhOL+n~VX5UB7j z>(R+Ti}B=%b$Y8NBTyj-IFwg@Vg9;n{?)cJx$5mZMGyCHJ-f|tqMJ_0 z#^#MI0uBr;0t}2S4h)QBF&o}jKTVo;IkgUA8N&g2)5yELZz3K{E(D2qy85}Sb4q9e E0H-xXP5=M^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..08a64d4912dfb868ff3a64b35f17e432d9afdfaf GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4$};usi0S?fK4BAf*t zk;M!Q+`=Ht$S`Y;1W=H@#M9T6{Q;*qhpq}oN$_W&&}vT?$B>F!Z|_{>ZBXEGIOrtf z9bRaWmZ(4HAWOiBy9^V)T#Q!&ssn=syG?#ImAT)}Ni&_gqe^xf@BgivpC=xlVygYv zJhx4dUyFUdkOKpwfCB@I00ScndCY(Lr}`sj*Trr-!ghr>JZY0Ho0o%!`5;4THA02F{I z00kflz(BhiVcT&>A0kz&JcaEIP!zO&&Rzl?L5PHP2E;`{6_lT{=geHa1jWs|QmAOQ z=hsi6wbGGizXBL*4SNNSkBLAK$=*tuXvmS3!eC%o&|PS|lNX;5#9R(20g?>i?jG46GDR#WyQ2_9lerM3A!%WNoT<&+0JAm>1&hU4* zSQ6KMCwT*ytlw!Whk;&W57~tP9Qudslys==jOuqrp=FON{f@Z-l%9nBZQ%3AKGeW9 zSW{%*)Nus*?-_s6rp9&g%TCyH`+?YPgbeF<3_JsTkh9btH&t4VWGv1E1N$8V1BgJ| z0eIdL6+!?4t+NZk(0<3z_kal8s2&$W<;+7cxZg4ODkw%F7~by~ei=H;5IoTDcwi$o z!w@{u?|5VvudBz@HF8haffG z+8;!RkiFP*{f-9%z`A~KKWJ~#qC*%Hs_{g>pqhS)6 zJ|Uw36o4oI1>lsP1YENoJ#9opL_|bHL_|bHL_|cyBYp!@Z4*PyCwI&M00004LA)yJ+wl0(rDjI~&%$=F@TlID^ZU3h;oqLi3L_|bHL_|bHL_|bH zL_|bHL|J!8=@+H+|uz-C7{7UvnDmdf%nG}P6~>-_vYUV_we&gn!;(`9)*Ju`#nFGCDK z4W~~PqqDsglJs*dvvc$44)h|KN-+SX9WN?^?^-)7IXM7;Z{HWu|m1eiwaLea~-DU#-tgNi!;ghFWP9(SwP+DGYE^glN z!r>?c0IaXCqst$_;?fc~VoI}EEbw)9;Mmb40DxpN34d=N<`x#X6IT2~OA@^8Z74o@ z0sxRsr_u8wi0Q90tRmFV+U$YzY>B)M#|AL<`HMDR2D1&{)7XG=*Lisz9~{ES=$LkA zqnUwvJFd$8PAZkstltqffJ?P*v|VXdY_m1h0Uf1R~z4!{1QTVD4C z!&y7FX#I|mXFy?rU4C5QDn(n1Co9JlvELCgfWA-!@5d*8hfwA^@a0ItS&-tP#18+wos^w967KKOyL;-_g}hcrPL7 zt>4jI74feS^w{qRxf9+?2sx63iZYiR0sz=;Hr@3*x(r}zv$nNK+aAJ}P=8Dp{f_P~ zL75?pPk#90`GLXL7@e4e(Fj>bXVw-YW8)Ycegh*C_D_1jNE85&YqcWOAA?Z|{V&O2 zBr4YpMkV~GOX;xRF;oCX#{d`r10V)KL_|bHL_|bHL_|bHL_`Ys0XKF!Z|@xBZBP(ka5M-@ z`Lg`(=gT)HT}xnEF?}Xe!<|FZrvMd#!Gc|Ps+u$7)+HEgKi`~HGynhq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3fbe09e77043e7ada5ec8f74f76d82788d4a8b5e GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4$};usi0S?fK4BAf*t zk;M!Q+`=Ht$S`Y;1W=H@#M9T6{Q;*qhaS_%kk+$6p}C$ejv*Dd-rhOL+n~VX5UB7j z>(R+Ti}B=%b$Y8NBTyj-IFwg@Vg9;n{?)cJx$5mZMGyCHJ-f|tqMJ_0 z#^#MI0uBr;0t}2S4h)QBF&o}jKTVo;IkgUA8N&g2)5yELZz3K{E(D2qy85}Sb4q9e E0H-xXP5=M^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..08a64d4912dfb868ff3a64b35f17e432d9afdfaf GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4$};usi0S?fK4BAf*t zk;M!Q+`=Ht$S`Y;1W=H@#M9T6{Q;*qhpq}oN$_W&&}vT?$B>F!Z|_{>ZBXEGIOrtf z9bRaWmZ(4HAWOiBy9^V)T#Q!&ssn=syG?#ImAT)}Ni&_gqe^xf@BgivpC=xlVygYv zJhx4dUyFUdkOKpwfCB@I00ScndCY(Lr}`sj*Trr-!ghr>JZY0Ho0o%!`5;4THA02F{I z00kflz(BhiVcT&>A0kz&JcaEIP!zO&&Rzl?L5PHP2E;`{6_lT{=geHa1jWs|QmAOQ z=hsi6wbGGizXBL*4SNNSkBLAK$=*tuXvmS3!eC%o&|PS|lNX;5#9R(20g?>i?jG46GDR#WyQ2_9lerM3A!%WNoT<&+0JAm>1&hU4* zSQ6KMCwT*ytlw!Whk;&W57~tP9Qudslys==jOuqrp=FON{f@Z-l%9nBZQ%3AKGeW9 zSW{%*)Nus*?-_s6rp9&g%TCyH`+?YPgbeF<3_JsTkh9btH&t4VWGv1E1N$8V1BgJ| z0eIdL6+!?4t+NZk(0<3z_kal8s2&$W<;+7cxZg4ODkw%F7~by~ei=H;5IoTDcwi$o z!w@{u?|5VvudBz@HF8haffG z+8;!RkiFP*{f-9%z`A~KKWJ~#qC*%Hs_{g>pqhS)6 zJ|Uw36o4oI1>lsP1YENoJ#9opL_|bHL_|bHL_|cyBYp!@Z4*PyCwI&M00004LA)yJ+wl0(rDjI~&%$=F@TlID^ZU3h;oqLi3L_|bHL_|bHL_|bH zL_|bHL|J!8=@+H+|uz-C7{7UvnDmdf%nG}P6~>-_vYUV_we&gn!;(`9)*Ju`#nFGCDK z4W~~PqqDsglJs*dvvc$44)h|KN-+SX9WN?^?^-)7IXM7;Z{HWu|m1eiwaLea~-DU#-tgNi!;ghFWP9(SwP+DGYE^glN z!r>?c0IaXCqst$_;?fc~VoI}EEbw)9;Mmb40DxpN34d=N<`x#X6IT2~OA@^8Z74o@ z0sxRsr_u8wi0Q90tRmFV+U$YzY>B)M#|AL<`HMDR2D1&{)7XG=*Lisz9~{ES=$LkA zqnUwvJFd$8PAZkstltqffJ?P*v|VXdY_m1h0Uf1R~z4!{1QTVD4C z!&y7FX#I|mXFy?rU4C5QDn(n1Co9JlvELCgfWA-!@5d*8hfwA^@a0ItS&-tP#18+wos^w967KKOyL;-_g}hcrPL7 zt>4jI74feS^w{qRxf9+?2sx63iZYiR0sz=;Hr@3*x(r}zv$nNK+aAJ}P=8Dp{f_P~ zL75?pPk#90`GLXL7@e4e(Fj>bXVw-YW8)Ycegh*C_D_1jNE85&YqcWOAA?Z|{V&O2 zBr4YpMkV~GOX;xRF;oCX#{d`r10V)KL_|bHL_|bHL_|bHL_`Ys0XKF!Z|@xBZBP(ka5M-@ z`Lg`(=gT)HT}xnEF?}Xe!<|FZrvMd#!Gc|Ps+u$7)+HEgKi`~HGynhq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3fbe09e77043e7ada5ec8f74f76d82788d4a8b5e GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4$};usi0S?fK4BAf*t zk;M!Q+`=Ht$S`Y;1W=H@#M9T6{Q;*qhaS_%kk+$6p}C$ejv*Dd-rhOL+n~VX5UB7j z>(R+Ti}B=%b$Y8NBTyj-IFwg@Vg9;n{?)cJx$5mZMGyCHJ-f|tqMJ_0 z#^#MI0uBr;0t}2S4h)QBF&o}jKTVo;IkgUA8N&g2)5yELZz3K{E(D2qy85}Sb4q9e E0H-xXP5=M^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..08a64d4912dfb868ff3a64b35f17e432d9afdfaf GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4$};usi0S?fK4BAf*t zk;M!Q+`=Ht$S`Y;1W=H@#M9T6{Q;*qhpq}oN$_W&&}vT?$B>F!Z|_{>ZBXEGIOrtf z9bRaWmZ(4HAWOiBy9^V)T#Q!&ssn=syG?#ImAT)}Ni&_gqe^xf@BgivpC=xlVygYv zJhx4dUyFUdkOKpwfCB@I00ScndCY(Lr}`sj*Trr-!ghr>JZY0Ho0o%!`5;4THA02F{I z00kflz(BhiVcT&>A0kz&JcaEIP!zO&&Rzl?L5PHP2E;`{6_lT{=geHa1jWs|QmAOQ z=hsi6wbGGizXBL*4SNNSkBLAK$=*tuXvmS3!eC%o&|PS|lNX;5#9R(20g?>i?jG46GDR#WyQ2_9lerM3A!%WNoT<&+0JAm>1&hU4* zSQ6KMCwT*ytlw!Whk;&W57~tP9Qudslys==jOuqrp=FON{f@Z-l%9nBZQ%3AKGeW9 zSW{%*)Nus*?-_s6rp9&g%TCyH`+?YPgbeF<3_JsTkh9btH&t4VWGv1E1N$8V1BgJ| z0eIdL6+!?4t+NZk(0<3z_kal8s2&$W<;+7cxZg4ODkw%F7~by~ei=H;5IoTDcwi$o z!w@{u?|5VvudBz@HF8haffG z+8;!RkiFP*{f-9%z`A~KKWJ~#qC*%Hs_{g>pqhS)6 zJ|Uw36o4oI1>lsP1YENoJ#9opL_|bHL_|bHL_|cyBYp!@Z4*PyCwI&M00004LA)yJ+wl0(rDjI~&%$=F@TlID^ZU3h;oqLi3L_|bHL_|bHL_|bH zL_|bHL|J!8=@+H+|uz-C7{7UvnDmdf%nG}P6~>-_vYUV_we&gn!;(`9)*Ju`#nFGCDK z4W~~PqqDsglJs*dvvc$44)h|KN-+SX9WN?^?^-)7IXM7;Z{HWu|m1eiwaLea~-DU#-tgNi!;ghFWP9(SwP+DGYE^glN z!r>?c0IaXCqst$_;?fc~VoI}EEbw)9;Mmb40DxpN34d=N<`x#X6IT2~OA@^8Z74o@ z0sxRsr_u8wi0Q90tRmFV+U$YzY>B)M#|AL<`HMDR2D1&{)7XG=*Lisz9~{ES=$LkA zqnUwvJFd$8PAZkstltqffJ?P*v|VXdY_m1h0Uf1R~z4!{1QTVD4C z!&y7FX#I|mXFy?rU4C5QDn(n1Co9JlvELCgfWA-!@5d*8hfwA^@a0ItS&-tP#18+wos^w967KKOyL;-_g}hcrPL7 zt>4jI74feS^w{qRxf9+?2sx63iZYiR0sz=;Hr@3*x(r}zv$nNK+aAJ}P=8Dp{f_P~ zL75?pPk#90`GLXL7@e4e(Fj>bXVw-YW8)Ycegh*C_D_1jNE85&YqcWOAA?Z|{V&O2 zBr4YpMkV~GOX;xRF;oCX#{d`r10V)KL_|bHL_|bHL_|bHL_`Ys0XK + 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" + />