Hoi zäme,
Im Anhang findet ihr ein APK eines ansatzweise funktionierenden
Clients. Man kann sich registrieren und ein Spiel mit einem bekannten
Usernamen starten (im Moment tut der Client automatisch alle Requests
akzeptieren). Das Spiel dauert im Moment noch ewig, weil die
GameOver-Handler usw. vom der Logik ignoriert werden. Random-Match
funktioniert auch noch nicht. Und auch sonst wird vermutlich einiges
crashen.
## GUI-Team:
Habe den Service endlich fertig gemacht. Habe ihn bereits testweise
mal verdrahtet.
Um den Service nutzen zu können, müsst ihr ihn jetzt binden mit
bindService(). Schaut euch am besten den Code im Git-Branch an:
https://github.com/WooDyDooKs/VS_Sudoku/blob/wiring-experimental/src/ds/sudoku/gui/MainActivity.java
Wichtig ist halt, dass ihr den Service erst nutzen könnt, wenn er
"gebunden" ist. Das heisst z.B. dass ihr den SudokuHandler erst
verwenden könnt, nach dem ServiceConnection.onServiceConnected(..)
aufgerufen wurde.
Im wiring-experimental Branch hat es jetzt ein Eclipse-Projekt für das
GUI. Falls ihr trotzdem weiterhin euer eigenes Projekt-File verwendet,
müsst ihr unbedingt die AndroidManifest.xml von mir übernehmen, denn
da ist der Service und die Internet-Permissions eingetragen. Ohne die
geht gar nichts.
Falls irgendwas unklar, fragt einfach.
## Communication Team
Ihr habt eine NullPointerException beim Deserialisieren der
InviteMessage, habs im GitHub eingetragen und im wiring-experimental
Branch grob selber gefixt. Wäre aber froh wenn ihr eh die
InviteMessage aufsplitted, wie wir es besprochen haben. Wichtig dabei
ist, dass der Server bei der geplanten InviteDirect-Message sowohl
Sender als auch Receiver setzen kann. client.invite(user) und
server.invite(user) setzen im Moment jeweils nur eins der beiden
Felder, das ist serverseitig ungünstig. Zumindest für den Server
sollte ein client.invite(from, to) existieren.
## Logic
Ich bräuchte da von dir vor eine aktuelle Version vom SudokuHandler,
die Version im GitHub ist alt und buggy. Zudem wichtig:
server.setField() muss 1-basierte Indizes haben, in der alten
Implementierung werden 0-basierte geschickt.
Gruess
/wicki