commit bb96b13792d08e7c657c3504d84b4f5136c85f15
parent 0b7423048092b9f4de369dd19747f14065cf12c6
Author: Bertrand BRUN <bertrand0brun@gmail.com>
Date: Tue, 1 Feb 2011 03:59:34 +0100
Modification de la classe Network pour qu'elle prenne en compte le serveur. Et ajout de la permission d'acces a Internet
Diffstat:
2 files changed, 50 insertions(+), 19 deletions(-)
diff --git a/code/PtiClic/AndroidManifest.xml b/code/PtiClic/AndroidManifest.xml
@@ -17,4 +17,5 @@
</application>
+<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
diff --git a/code/PtiClic/src/org/pticlic/model/Network.java b/code/PtiClic/src/org/pticlic/model/Network.java
@@ -1,10 +1,12 @@
package org.pticlic.model;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import com.google.gson.Gson;
+import com.google.gson.stream.JsonReader;
public class Network {
@@ -32,7 +34,8 @@ public class Network {
this.serverURL = serverURL;
}
- public Game getGames(int nbGames) {
+ public Game getGames(int nbGames) {
+ Game game = null;
try {
URL url = new URL(this.serverURL);
URLConnection connection = url.openConnection();
@@ -41,32 +44,59 @@ public class Network {
connection.addRequestProperty("mode", mode.value());
Gson gson = new Gson();
-// JsonReader reader = new JsonReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
-// Game game = gson.fromJson(reader, Game[].class);
+ JsonReader reader = new JsonReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
- // TODO : A enlever sert juste pour les tests
- String json =
- "{" +
- " id: 1234," +
- " cat1: 11," +
- " cat2: 23," +
- " cat3: -1," +
- " cat4: -1, " +
- " center: { id: 555, name: \"chat\" }, " +
- " cloud: [" +
- " { id: 123, name: \"souris\" }," +
- " { id: 111, name: \"lait\" }," +
- " { id: 345, name: \"machine à laver\" }" +
- " ]" +
- "}";
- Game game = gson.fromJson(json, Game.class);
+ // FIXME : Attention lorsque l'on pourra vraiment recupere plusieur partie, il faudra changer ce qui suit.
+ reader.beginArray();
+ while (reader.hasNext()) {
+ game = makeGame(reader, gson);
+ }
+ reader.endArray();
+ reader.close();
return game;
+
} catch (IOException e) {
+ e.printStackTrace();
+
return null;
}
}
+ private Game makeGame(JsonReader reader, Gson gson) throws IOException {
+ int id = -1;
+ int cat1 = -1;
+ int cat2 = -1;
+ int cat3 = -1;
+ int cat4 = -1;
+ Game.Word center = null;
+ Game.Word[] cloud = null;
+
+ reader.beginObject();
+ while (reader != null && reader.hasNext()) {
+ String name = reader.nextName();
+ if (name.equals("id")) {
+ id = reader.nextInt();
+ } else if (name.equals("cat1")) {
+ cat1 = reader.nextInt();
+ } else if (name.equals("cat2")) {
+ cat2 = reader.nextInt();
+ } else if (name.equals("cat3")) {
+ cat3 = reader.nextInt();
+ } else if (name.equals("cat4")) {
+ cat4 = reader.nextInt();
+ } else if (name.equals("center")) {
+ center = gson.fromJson(reader, Game.Word.class);
+ } else if (name.equals("cloud")) {
+ cloud = gson.fromJson(reader, Game.Word[].class);
+ } else {
+ reader.skipValue();
+ }
+ }
+ reader.endObject();
+ return new Game(id, cat1, cat2, cat3, cat4, center, cloud);
+ }
+
public boolean sendGame(Game game) {
throw new UnsupportedOperationException();
}