diff --git a/code/PtiClic/.classpath b/code/PtiClic/.classpath
index f9bbbf0..609aa00 100644
--- a/code/PtiClic/.classpath
+++ b/code/PtiClic/.classpath
@@ -3,6 +3,5 @@
-
diff --git a/code/PtiClic/res/layout/info.xml b/code/PtiClic/res/layout/info.xml
deleted file mode 100644
index eff3047..0000000
--- a/code/PtiClic/res/layout/info.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/code/PtiClic/res/layout/main.xml b/code/PtiClic/res/layout/main.xml
deleted file mode 100644
index 3a8402c..0000000
--- a/code/PtiClic/res/layout/main.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/code/PtiClic/src/org/pticlic/FrontPage.java b/code/PtiClic/src/org/pticlic/FrontPage.java
deleted file mode 100644
index e7a1343..0000000
--- a/code/PtiClic/src/org/pticlic/FrontPage.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.pticlic;
-
-import org.pticlic.js.JavaScriptInterface;
-import org.pticlic.model.Constant;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.util.Log;
-import android.webkit.WebView;
-
-public class FrontPage extends Activity {
-
- private WebView webView;
- private JavaScriptInterface js = null;
-
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.frontpage);
-
- webView = (WebView) findViewById(R.id.webview);
- webView.getSettings().setJavaScriptEnabled(true);
-
- js = new JavaScriptInterface(this, webView);
- webView.addJavascriptInterface(js, "PtiClicAndroid");
- Log.i("[INFO]", Constant.SERVER + Constant.SERVER_URL);
- webView.loadUrl(Constant.SERVER + Constant.SERVER_URL);
- }
-
- @Override
- public void onBackPressed() {
- webView.goBack();
- }
-
-}
diff --git a/code/PtiClic/src/org/pticlic/Information.java b/code/PtiClic/src/org/pticlic/Information.java
deleted file mode 100644
index 015ce2c..0000000
--- a/code/PtiClic/src/org/pticlic/Information.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.pticlic;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import android.app.Activity;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.widget.TextView;
-
-public class Information extends Activity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.info);
-
- ((TextView)findViewById(R.id.infoVersion)).setText("version : " + getString(R.string.version));
- InputStream in = getResources().openRawResource(R.raw.info);
- WebView webview = (WebView)findViewById(R.id.textContent);
- webview.setBackgroundColor(Color.WHITE);
- webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
- WebSettings webSettings = webview.getSettings();
- webSettings.setJavaScriptEnabled(true);
-
- if (in != null) {
-
- InputStreamReader tmp = new InputStreamReader(in);
- BufferedReader reader = new BufferedReader(tmp);
- String html;
- StringBuffer buf = new StringBuffer();
-
- try {
- while ((html = reader.readLine()) != null) {
- buf.append(html + "\n");
- }
-
- in.close();
- webview.loadData(html, "text/html", "UTF-8");
-
- } catch (IOException e) {
- //TODO : Ajouter un boite de dialog indiquant qu'une erreur est arrivee.
- }
- }
- }
-}
diff --git a/code/PtiClic/src/org/pticlic/Preference.java b/code/PtiClic/src/org/pticlic/Preference.java
deleted file mode 100644
index 82b3fa4..0000000
--- a/code/PtiClic/src/org/pticlic/Preference.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.pticlic;
-
-import org.pticlic.model.Constant;
-import org.pticlic.model.Network;
-
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.os.Bundle;
-import android.preference.PreferenceActivity;
-import android.widget.Toast;
-
-public class Preference extends PreferenceActivity implements OnSharedPreferenceChangeListener {
-
- /* (non-Javadoc)
- * @see android.preference.PreferenceActivity#onCreate(android.os.Bundle)
- */
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.prefs);
-
- SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
- prefs.registerOnSharedPreferenceChangeListener(this);
-
- }
-
- @Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- if (key.equals("passwd")) {
-
- SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putBoolean(Constant.SERVER_AUTH, false);
- editor.commit();
-
- if (Network.isConnected(this)) {
- if (Network.isLoginCorrect(this)) {
- Toast.makeText(this,
- getString(R.string.preferences_loginmdp_valid),
- Toast.LENGTH_LONG).show();
-
- } else {
- Toast.makeText(this,
- getString(R.string.preferences_loginmdp_notvalid),
- Toast.LENGTH_LONG).show();
- }
- } else {
- Toast.makeText(this,
- getString(R.string.preferences_nonetworks),
- Toast.LENGTH_LONG).show();
- }
- }
-
- }
-
-
-}
diff --git a/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java b/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java
index 807a2ce..19e16c3 100644
--- a/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java
+++ b/code/PtiClic/src/org/pticlic/js/JavaScriptInterface.java
@@ -65,6 +65,10 @@ public class JavaScriptInterface {
webView.reload();
}
+ public boolean isAndroid() {
+ return true;
+ }
+
/** Permet de quitter l'application
*
*/
diff --git a/code/PtiClic/src/org/pticlic/model/Constant.java b/code/PtiClic/src/org/pticlic/model/Constant.java
index 896540f..b49c839 100644
--- a/code/PtiClic/src/org/pticlic/model/Constant.java
+++ b/code/PtiClic/src/org/pticlic/model/Constant.java
@@ -1,7 +1,7 @@
package org.pticlic.model;
public class Constant {
- public static final String SERVER_URL = "unstable/code/serveur/php/jeu.html";
+ public static final String SERVER_URL = "jeu.html";
public static final String SERVER_AUTH = "SERVER_AUTH";
public static final String SERVER = "http://www.pticlic.fr/";
diff --git a/code/PtiClic/src/org/pticlic/model/HttpClient.java b/code/PtiClic/src/org/pticlic/model/HttpClient.java
deleted file mode 100644
index 3c089a2..0000000
--- a/code/PtiClic/src/org/pticlic/model/HttpClient.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.pticlic.model;
-
-/***
-Copyright (c) 2009
-Author: Stefan Klumpp
-Web: http://stefanklumpp.com
-
-Licensed under the Apache License, Version 2.0 (the "License"); you may
-not use this file except in compliance with the License. You may obtain
-a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
- */
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.zip.GZIPInputStream;
-
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.DefaultHttpClient;
-
-import android.util.Log;
-
-public class HttpClient {
- private static final String TAG = "HttpClient";
-
- public static String SendHttpPost(String URL) {
-
- try {
- DefaultHttpClient httpclient = new DefaultHttpClient();
- HttpGet httpPostRequest = new HttpGet(URL);
-
- //StringEntity se;
- //se = new StringEntity(str);
-
- // Set HTTP parameters
- //httpPostRequest.setEntity(se);
- httpPostRequest.setHeader("Accept", "application/json");
- httpPostRequest.setHeader("Content-type", "application/json");
- httpPostRequest.setHeader("Accept-Encoding", "gzip"); // only set this parameter if you would like to use gzip compression
-
- long t = System.currentTimeMillis();
- HttpResponse response = (HttpResponse) httpclient.execute(httpPostRequest);
- Log.i(TAG, "HTTPResponse received in [" + (System.currentTimeMillis()-t) + "ms]");
-
- // Get hold of the response entity (-> the data):
- HttpEntity entity = response.getEntity();
-
- if (entity != null) {
- // Read the content stream
- InputStream instream = entity.getContent();
- Header contentEncoding = response.getFirstHeader("Content-Encoding");
- if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
- instream = new GZIPInputStream(instream);
- }
-
- // convert content stream to a String
- BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
- StringBuilder sb = new StringBuilder();
-
- String line = null;
- try {
- while ((line = reader.readLine()) != null) {
- sb.append(line + "\n");
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- instream.close();
- instream = null;
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return sb.toString();
- } else {
- return null;
- }
-
- }
- catch (Exception e)
- {
- // More about HTTP exception handling in another tutorial.
- // For now we just print the stack trace.
- e.printStackTrace();
- return null;
- }
- }
-}
\ No newline at end of file
diff --git a/code/PtiClic/src/org/pticlic/model/Network.java b/code/PtiClic/src/org/pticlic/model/Network.java
deleted file mode 100644
index afe7c29..0000000
--- a/code/PtiClic/src/org/pticlic/model/Network.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.pticlic.model;
-
-import java.io.Serializable;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.net.ConnectivityManager;
-import android.preference.PreferenceManager;
-
-import com.google.gson.Gson;
-
-
-
-/**
- * @author Bertrand BRUN
- *
- * Cette classe permet de dialoguer avec le serveur de PtiClic pour récupérée soit des parties
- * soit le score qu'a réalisé un utilisateur.
- * Elle permet aussi d'envoyer au serveur les parties realiser par l'utilisateur pour que le serveur
- * puisse insérer la contribution de l'utilisateur, mais aussi pouvoir calculer le score de celui-ci.
- *
- */
-public class Network {
-
- public static class Check implements Serializable {
- private static final long serialVersionUID = 1L;
- private boolean loginOk = false;
-
- public boolean isLoginOk() {
- return loginOk;
- }
-
- public void setLoginOk(boolean loginOk) {
- this.loginOk = loginOk;
- }
- }
-
- String newGameJson = null;
-
- public enum Action {
- CHECK_LOGIN(3);
-
- private final int value;
-
- Action(int value) {
- this.value = value;
- }
-
- private String value() { return String.valueOf(value); }
- }
-
- /**
- * Permet de savoir si l'application a access a internet ou non
- *
- * @param context l'activite permettant de tester l'access a internet
- * @return true
si on a access a internet false
sinon
- */
- public static boolean isConnected(Context context) {
- ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
- if (cm != null && (cm.getActiveNetworkInfo() == null
- || !cm.getActiveNetworkInfo().isConnected())) {
- return false;
- }
- return true;
- }
-
- /**
- * Permet de verifier que la combinaison login/mdp est correct
- *
- * @param context l'activite permettant de tester l'access a internet
- * @param id l'identifiant de l'utilisateur
- * @param passwd le mot de passe de l'utilisateur
- * @return true
si la combinaison login/mdp est correct false
sinon
- */
- public static boolean isLoginCorrect(Context context) {
-
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
- String serverURL = sp.getString(Constant.SERVER_URL, Constant.SERVER) + "/server.php";
- String id = sp.getString(Constant.USER_ID, "joueur");
- String passwd = sp.getString(Constant.USER_PASSWD, "");
- Boolean auth = sp.getBoolean(Constant.SERVER_AUTH, false);
-
- if (auth) {
- return auth;
- }
-
- Gson gson = null;
- String json = null;
- boolean res = false;
-
- String urlS = serverURL
- + "?action=" + Action.CHECK_LOGIN.value()
- + "&user=" + id
- + "&passwd=" + passwd;
-
- gson = new Gson();
- json = HttpClient.SendHttpPost(urlS);
-
- Check check = gson.fromJson(json, Check.class);
- res = check.isLoginOk();
-
- SharedPreferences.Editor editor = sp.edit();
- editor.putBoolean(Constant.SERVER_AUTH, res);
- editor.commit();
-
- return res;
- }
-}
diff --git a/rapport/rapport.tex b/rapport/rapport.tex
index 6bd8ab0..8cf2498 100644
--- a/rapport/rapport.tex
+++ b/rapport/rapport.tex
@@ -634,7 +634,7 @@ La connexion entre les contrôlleurs et le vues est réalisé grâce à la metho
L'ADT est un plugin développé par Google pour faciliter le developpement d'application \android{} avec Eclipse. Il propose un menu permettant de créer des projets de type \android{} déjà parametré selon les besoins. Mais aussi un gestionnaire d'emulateur, une disposition (au sens d'Eclipse) DDMS permettant de contrôler l'emulateur\dots{}
\section{Revirement des choix de developpement} % TODO : Devrait peut etre etre deplacé
-A la fin de la première iteration, nous avons décidé de ne plus utiliser le système de création de vue proposé par le SDK d'\android{}, car, pour nous, la création de vue en passant par le format proposé nous prennait énormement de temps. \android{} supportant le framework WebKit ainsi que javascript dans son integralité et notre groupe ayant un peu plus d'expérience dans le développement d'application web (de part notre formation), nous avons décidé de développer les vues de l'application PtiClic en HTML5/Javascript. De ce faite, l'application à été simplifié (une seul Activité) et une classe \verb!JavascriptInterface! réalisant un pont entre le code javascript et les fonctionnalitées du téléphone.
+A la fin de la première iteration, nous avons décidé de ne plus utiliser le système de création de vue proposé par le SDK d'\android{}, car, pour nous, la création de vue en passant par le format proposé nous prennait énormement de temps. \android{} supportant le framework WebKit ainsi que javascript dans son integralité et notre groupe ayant un peu plus d'expérience dans le développement d'application web (de part notre formation), nous avons décidé de développer les vues de l'application PtiClic en HTML5/Javascript. De ce faite, l'application à été simplifié (une seul Activité) et une classe \verb!JavascriptInterface! réalisant un pont entre le code javascript et les fonctionnalitées du téléphone à été ajouté.
Un autre avantage à l'utilisation d'une application web pour développer PtiClic est le publique visé. En effet, le but de ce jeu étant de récupère des données d'un grand nombres d'utilisateur, fournir l'application à d'autres personnes que celles disposant d'un smartphone sous \android{} nous a semblé interressante. C'est pourquoi avec la version 2 nous avons aussi une application jouable à partir d'un navigateur internet <>, ce qui permet à un plus grand nombres de personnes de pouvoir jouer à PtiClic.
\section{Discussion}