Hier eine kleine Auflistung von Besonderheiten in der Programmierung der App. Details können dem Code und dem Javadoc entnommen werden.
Jeder Activity ist ein View zugeordnet, was ihr die Möglichkeit bietet mit dem Nutzer zu interagieren. Im Ordner „res/layout“ befinden sich die zu den jeweiligen Activities zugehörigen Layouts. Diese Layout Dateien werden beim Aufruf der entsprechenden Activity durch die „setContentView“ Methode als View sichtbar auf dem Handybildschirm.
Da Android Fehler wirft, wenn ein Vorgang eine längere Zeit benötigt und somit den Main Thread blockiert, müssen zusätzliche Threads erstellt werden. Diese führen Vorgänge parallel zum Main Thread aus, hindern diesen aber nicht an seiner Arbeit. Diesbezüglich haben wir eine Klasse "NetworkThread" erstellt, welche sich um Anfragen an den Server und das Einlesen von Dateien kümmert. Hat NetworkThread seine Arbeit beendet, also eine Antwort vom Server erhalten, wird diese an das "ResponseInterface" weitergegeben.
CameraTestActivity, AdminCameraActivity und CameraPreview integrieren den ZBar Barcode Scanner in die App.
(ProductAdapter, UserAdapter, BillAdapter, HistoryAdapter)
Jedem dieser Adapter wird eine ArrayList<Type> übergeben. Type ist in diesem
Fall eine Klasse aus dem "object" Package: Product, User, Bill, oder History.
Um die Datenzuweisung zu kontrollieren und um mehrere Views zu unterstützen, wird
ein Adapter benötigt. Dieser findet die relevanten Views in dem
"custom_row.xml" Layout und setzt dessen Inhalt basierend auf dem Input.
Hier werden die gesuchten Informationen eines Typs in eine Zeile der Liste konvertiert.
Hier hat der Admin Zugang zu einer Liste aller Nutzer der App, welche ihm Name,
E-Mail und den zu bezahlenden Geldbetrag pro Nutzer anzeigt. Berührt man
den "Searchbutton", kann man nach der E-Mail Adresse oder nach dem Namen
eines Nutzers suchen.
Klickt man auf ein Listitem, bietet sich die Möglichkeit den Nutzer zu
löschen oder eine Rechnung per Mail zu senden. Wurde die Mail erfolgreich
abgesendet, wird die zugehörige Rechnung in einer Liste des
"Bills"-Screen angezeigt. Hat der Nutzer bezahlt, kann die Rechnung aus der
Billliste bestätigt und diese somit gelöscht werden.
Auf "Change Products" kann man neue Produkte hinzufügen, indem
man auf den "Addbutton" der Actionbar klickt. Außerdem kann man
ein bereits vorhandenes Produkt ändern oder löschen, wenn man dieses in
der Liste auswählt. Außerdem bietet die Nutzerverwaltung einen
weiteren Barcode Scanner. Nachdem der Barcode eines Produkts gescannt wurde,
besteht hier die Möglichkeit dieses der Datenbank direkt hinzuzufügen.
Wichtig dabei ist, zu überprüfen, ob der Code richtig gescannt wurde!
Beim Einloggen in der LoginActivity wird ein Timer gestartet, welcher nach 10 Minuten den Nutzer automatisch ausloggt.