Jelajahi Sumber

modifs mineures

François Gautrais 7 tahun lalu
induk
melakukan
3ca8e87c6b

+ 1 - 0
app/app.iml

@@ -84,6 +84,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/applicationId" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/build-info" />

TEMPAT SAMPAH
app/src/main/assets/accueil.jpg


TEMPAT SAMPAH
app/src/main/assets/bib.jpg


+ 81 - 52
app/src/main/assets/game_medium

@@ -20,13 +20,13 @@
 				"indices" : [
 					{
 						"type" : "text",
-						"text" : "On y emprunte des livres",
+						"text" : "On ne peut hélas toujours pas rentrer en vélo dans ces structures...",
 						"penality": 1
 					},
 					{
 						"type" : "text",
 						"penality": 1,
-						"text" : "b I bliothèque" 
+						"text" : "Encore moins dans la bibliothèque !" 
 					}
 				]
 			}
@@ -47,14 +47,16 @@
 				"resource" : "mpg",
 				"indices" : [
 					{
-						"type" : "text",
-						"text" : "C'est un très bon endroit pour grandir",
+						"text" : "Un endroit Merveilleux où les enfants et ados sont Joyeux !",
 						"penality": 1
 					},
 					{
-						"type" : "text",
 						"penality": 1,
-						"text" : "Les maternelles, primaires et collégiens y sont très très très heureux (inscriptions au 05 45.... " 
+						"text" : "[...] [...] Loisirs." 
+					},
+					{
+						"penality": 1,
+						"text" : "Ne pas sonner SVP !" 
 					}
 				]
 			},
@@ -202,27 +204,6 @@
 					"resource" : "question",
 					 "penality": 1,
                      "mandatory" : false
-                 },
-                 {
-                    "type" : "QCM",
-                    "name" : "a8",
-                    "question" : "La septième réponse",
-                    "answer" : "L France",
-                    "choices" : [
-									"Le Blosne RPZ 35 BZH !!!!",
-									"C'est quoi la question ?", 
-									"Bob Marley", 
-									"Zinedine Zidane", 
-									"42",
-									"Ma Campagne",
-									"D",
-									"La France",
-									"W"
-								],
-                    "bad_message" : "T'es nul !",
-					"resource" : "question",
-					 "penality": 1,
-                     "mandatory" : false
                  }
 		]
 },
@@ -238,11 +219,13 @@
 				"resource" : "ludo",
 				"indices" : [
 					{
-						"text" : "Je vais emprunter un Uno ou Jungle Speed",
+						"type" : "text",
+						"text" : "La pelouse est trop verte pour être vrai...",
 						"penality": 1
 					},
 					{
-						"text" : "Ne pas sonner SVP !",
+						"type" : "text",
+						"text" : "Alors comme ca on est pas du genre à lever les yeux au ciel ?",
 						 "penality": 1
 					}
 				]
@@ -251,20 +234,26 @@
 				"type": "Question",
 				"name" : "QuestionLudo",
 				"bad_message" : "Non !",
-				"question" : "Devant la porte (proche du QR Code) vous devriez trouver une enigme avec des place de parking. Sur quelle place est garée la voiture ?",
+				"question" : "Et maintenant, un petit test de raisonnement : Regardez sur la porte à votre gauche. Vous pouvez essayer de deviner sur quelle place est garé la voiture, mais ca m’étonnerais que vous trouviez !",
 				"good_message" : "Brillant !",
 				"resource" : "ludo",
 				"answer" : "97",
 				"indices" : [
 					{
-						"type" : "text",
 						"penality" : 1,
 						"text": "Question de point de vu..."
 					},
 					{
-						"type" : "text",
 						"penality" : 1,
-						"text": "Sans dessus dessous"
+						"text": "Ces places sont bien dans l’ordre !"
+					},
+					{
+						"penality" : 1,
+						"text": "C’est à vous mettre la tête à l’envers hein ?"
+					},
+					{
+						"penality" : 1,
+						"text": "Bon, regardez à l’envers."
 					}
 				],
 				"penality" : 1
@@ -282,15 +271,26 @@
 				"type" : "Question",
 				"name" : "JardinHiverQuestion",
 				"bad_message" : "Non !",
+				"resource" : "jardin", 
+				"question" : "Rentrez par la porte en face de vous et allez dans le 'jardin d’hiver' de la MJC. Un mot de X lettres est caché dans ce dernier, mais bonne chance pour le découvrir !",
 				"good_message" : "Bravo !",
 				"answer" : "ABBA",
-				"resource" : "jardin",
-				"question" : "Trouver blabla...",
 				"indices" : [
 					{
-						"type" : "text",
 						"penality" : 1,
-						"text": "Des lettres rouges ?"
+						"text": "J’ai bien dit X lettres !"
+					},
+					{
+						"penality" : 1,
+						"text": "A force de chercher sans trouver, vous allez finir par voir rouge…"
+					},
+					{
+						"penality" : 1,
+						"text": "Les affiches sont intéressantes ?"
+					},
+					{
+						"penality" : 1,
+						"text": "Des LETTRES en ROUGE sur les AFFICHES"
 					}
 				],
 				"penality" : 1
@@ -308,14 +308,25 @@
 				"name" : "accueilQuestion",
 				"bad_message" : "Non !",
 				"good_message" : "Bravo !",
-				"answer" : "Trop cuite",
 				"resource" : "accueil",
-				"question" : "Trouver blabla...",
+				"question" : "Comment est votre blanquette ?\nDemandez donc aux personnes les mieux renseignés de la bibliothèque ET de la MJC. Et au passage, la plaquette de la MJC et le facebook de la bibliothèque pourrait être utile !",
+				"answer" : "Trop cuite",
 				"indices" : [
 					{
-						"type" : "text",
 						"penality" : 1,
-						"text": "2 personnes, 2 accueils"
+						"text": "Allez ne faites pas les timides, allez demander !"
+					},
+					{
+						"penality" : 1,
+						"text": "Quand on a une question, on la pose à l’accueil non ?"
+					},
+					{
+						"penality" : 1,
+						"text": "Il va falloir la poser à deux endroits !"
+					},
+					{
+						"penality" : 1,
+						"text": "Poser la question \"Comment est votre blanquette ?\" à l’accueil de la MJC ET à l’accueil de la bibliothèque..."
 					}
 				],
 				"penality" : 1
@@ -331,19 +342,30 @@
 			{
 				"type" : "QRCodeTreasure",
 				"name" : "ProspectusQr",
+				"question" : "J'espère que vous avez bien récupérer les documents, car des fois il faut aussi savoir se débrouiller soit-même pour avoir sa réponse... Trouvez la vous même et montrez la moi avec votre caméra !",
 				"bad_message" : "Non !",
+				"resource" : "prospect",
 				"qr_value" : "1",
-				"resource" : "propsect",
 				"indices" : [
 					{
-						"type" : "text",
 						"penality" : 1,
-						"text": "1 entier vaut mieux que 2 moitiés"
+						"text": "Je vous avais bien dit de prendre la plaquette et le facebook de la bibliothèque."
 					},
 					{
-						"type" : "text",
 						"penality" : 1,
-						"text": "Rejoignez nous sur Facebook @MediathquesDeQuartierDAngouleme"
+						"text": "Deux moitiés ça fait un entier  non ?"
+					},
+					{
+						"penality" : 1,
+						"text": "QR quoi ?"
+					},
+					{
+						"penality" : 1,
+						"text": "Le meilleur pour la fin… de la plaquette."
+					},
+					{
+						"penality" : 1,
+						"text": "Une moitié de QR code sur la feuille facebook et une à la fin de la plaquette..."
 					}
 				],
 				"penality" : 1
@@ -359,22 +381,29 @@
 			{
 				"type" : "Question",
 				"name" : "accueilQuestion",
-				"question" : "Trouver blabla...",
 				"bad_message" : "Non !",
 				"good_message" : "Bravo !",
-				"answer" : "Trop cuite",
-				"resource" : "accueil",
+				"resource" : "livre",
+				"question" : "Allez chercher ce roman policier un message codé se trouve à l'intérieur..",
+				"answer" : "Dindon",
 				"indices" : [
 					{
-						"type" : "text",
 						"penality" : 1,
-						"text": "2 personnes, 2 accueils"
+						"text": "C’est écrit par Sylvie Granotier, le titre est “Double je”"
+					},
+					{
+						"penality" : 1,
+						"text": "La Côte est POL GRA"
+					},
+					{
+						"penality" : 1,
+						"text": "Page 150, il y a des nombres... Que peuvent-ils bien signifier, des pages ? des chapitres, des mots ?"
 					}
 				],
 				"penality" : 1
 			}
 		],
-	"resources" : ["fin"],
+	"resources" : [],
 	"charIndex" : 6
 }	],
 	"credits" : 

TEMPAT SAMPAH
app/src/main/assets/jardin.jpg


TEMPAT SAMPAH
app/src/main/assets/livre.jpg


TEMPAT SAMPAH
app/src/main/assets/ludo.jpg


TEMPAT SAMPAH
app/src/main/assets/mpg.jpg


TEMPAT SAMPAH
app/src/main/assets/propsect.jpg


TEMPAT SAMPAH
app/src/main/assets/prospect.jpg


+ 3 - 2
app/src/main/assets/ressources.res

@@ -26,6 +26,7 @@
 	"ludo" :  {"type" : "Image"},
 	"jardin" :  {"type" : "Image"},
 	"accueil" :  {"type" : "Image"},
-	"propsect" :  {"type" : "Image"},
-	"error" : {"type" : "Image"}
+	"prospect" :  {"type" : "Image"},
+	"error" : {"type" : "Image"},
+	"livre" : {"type" : "Image"}
 }

+ 1 - 0
app/src/main/java/app/mar/activities/ChallengeDriver.java

@@ -10,6 +10,7 @@ import app.mar.game.challenges.Challenge;
 
 public interface ChallengeDriver extends ChallengeFragment.OnFragmentInteractionListener {
     public void challengeValidate(Challenge c, Game g, ChallengeDriver cd);
+    public void challengePassed(Challenge c, Game g, ChallengeDriver cd);
     public Challenge currentChallenge();
     public void setFragment(Challenge c);
     public void onFragmentInteraction(Uri uri);

+ 26 - 9
app/src/main/java/app/mar/activities/HostActivity.java

@@ -177,12 +177,20 @@ public class HostActivity extends Activity implements ChallengeDriver{
         if(mCurrentFragment!=null)
         {
             if(mCurrentFragment.check())
-            {
-                challengeValidate(mCurrentFragment.getChallenge(),  mGame, this);
-            }else if(!mCurrentFragment.getChallenge().isMandatory())
-            {
-                mGame.getBomb().addTime(-mCurrentFragment.getChallenge().getPenality());
+            { //bonne réponse
                 challengeValidate(mCurrentFragment.getChallenge(),  mGame, this);
+            }else
+            { //mauvaise réponse
+                //réponse facultative
+                if(!mCurrentFragment.getChallenge().isMandatory())
+                {
+                    mCurrentFragment.onChallengePassed();
+                    mGame.getBomb().addTime(-mCurrentFragment.getChallenge().getPenality());
+                    challengeValidate(mCurrentFragment.getChallenge(),  mGame, this);
+                }else //réponse obligatoire
+                {
+                    mCurrentFragment.onChallengeFailed();
+                }
             }
         }
     }
@@ -279,10 +287,8 @@ public class HostActivity extends Activity implements ChallengeDriver{
         startActivityForResult(intent, AndroidResources.getViewerRequestCode(r));
     }
 
-
-    @Override
-    public void challengeValidate(Challenge c, Game g, ChallengeDriver dri) {
-        mGame.getBomb().addKnownCharacter(c.getCharIndex());
+    public void _challengeValidate(Challenge c, Game g, ChallengeDriver dri, boolean ok) {
+        if(ok) mGame.getBomb().addKnownCharacter(c.getCharIndex());
         updateCode();
         nextChallenge();
 
@@ -290,6 +296,17 @@ public class HostActivity extends Activity implements ChallengeDriver{
         save();
     }
 
+    @Override
+    public void challengeValidate(Challenge c, Game g, ChallengeDriver dri) {
+        _challengeValidate(c,g,dri,true);
+    }
+
+    @Override
+    public void challengePassed(Challenge c, Game g, ChallengeDriver dri)
+    {
+        _challengeValidate(c,g,dri,false);
+    }
+
     public Challenge currentChallenge() {
         return mCurrentChallenge;
     }

+ 10 - 0
app/src/main/java/app/mar/activities/fragments/ChallengeFragment.java

@@ -50,6 +50,16 @@ public abstract class ChallengeFragment extends Fragment {
         if(c!=null) setImageResource(c.getResourceName());
     }
 
+    public void onChallengeFailed()
+    {
+
+    }
+
+    public void onChallengePassed()
+    {
+
+    }
+
     public boolean onBackPressed()
     {
         return true;

+ 5 - 3
app/src/main/java/app/mar/activities/fragments/QCMFragment.java

@@ -71,18 +71,20 @@ public class QCMFragment extends ChallengeFragment {
 
         if(x<0 || x>=mChoices.size())
         {
-            Toast.makeText(getActivity(), "Vous devez sélectionner une réponse ! "+x, Toast.LENGTH_LONG).show();
+            Toast.makeText(getActivity(), "Vous devez sélectionner une réponse ! "+x, Toast.LENGTH_SHORT).show();
             return false;
         }else
         {
             String resp = mChoices.get(x);
             if(mQCM.checkAnswer(resp))
             {
-                Toast.makeText(getActivity(), mQCM.getGoodMessage(), Toast.LENGTH_LONG).show();
+                if(mQCM.getGoodMessage()!=null)
+                    Toast.makeText(getActivity(), mQCM.getGoodMessage(), Toast.LENGTH_SHORT).show();
                 return true;
             }else
             {
-                Toast.makeText(getActivity(), mQCM.getBadMessage(), Toast.LENGTH_LONG).show();
+                if(mQCM.getBadMessage()!=null)
+                    Toast.makeText(getActivity(), mQCM.getBadMessage(), Toast.LENGTH_SHORT).show();
                 return false;
             }
         }

+ 13 - 5
app/src/main/java/app/mar/activities/fragments/QRCodeFragment.java

@@ -144,12 +144,17 @@ public class QRCodeFragment extends ChallengeFragment  implements
 
         capture = new CaptureManager(getActivity(), barcodeScannerView);
         capture.initializeFromIntent(getActivity().getIntent(), savedInstanceState);
-
         barcodeScannerView.decodeContinuous(this);
+        capture.onPause();
         return v;
     }
 
-
+    @Override
+    public void onChallengeFailed()
+    {
+        setPrimaryView();
+        capture.onPause();
+    }
 
     @Override
     public void onResume() {
@@ -210,17 +215,18 @@ public class QRCodeFragment extends ChallengeFragment  implements
     public void barcodeResult(final BarcodeResult result) {
         beepManager.playBeepSoundAndVibrate();
 
-        Toast.makeText(getActivity(),"Text: '"+result.getText()+"'", Toast.LENGTH_LONG).show();
 
         if(result.getText().compareTo(mQr.getQRValue())==0)
         {
-            Log.i("-----", "Challenge '"+mQr.getName()+"' validated !");
+            if(mQr.getGoodMessage()!=null)
+                Toast.makeText(getActivity(),mQr.getGoodMessage(), Toast.LENGTH_LONG).show();
             barcodeScannerView.pause();
             Activity act = getActivity();
             getDriver().challengeValidate(mChallenge, mGame, (ChallengeDriver)getActivity());
         }else
         {
-            Toast.makeText(getActivity(), mQr.getBadQRMessage(), Toast.LENGTH_LONG).show();
+            if(mQr.getBadQRMessage()!=null)
+                Toast.makeText(getActivity(), mQr.getBadQRMessage(), Toast.LENGTH_LONG).show();
             barcodeScannerView.decodeContinuous(this);
         }
 
@@ -243,6 +249,7 @@ public class QRCodeFragment extends ChallengeFragment  implements
     public boolean onBackPressed(){
         if(state==STATE_PRESENTATION) return true;
         setPrimaryView();
+        capture.onPause();
         return false;
     }
 
@@ -283,6 +290,7 @@ public class QRCodeFragment extends ChallengeFragment  implements
         if(v==goToScan && state==STATE_PRESENTATION)
         {
             setSecondaryView();
+            capture.onResume();
         }
     }
 }

+ 11 - 2
app/src/main/java/app/mar/activities/fragments/QuestionFragment.java

@@ -2,6 +2,7 @@ package app.mar.activities.fragments;
 
 import android.os.Bundle;
 import android.app.Fragment;
+import android.text.InputType;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -57,17 +58,24 @@ public class QuestionFragment extends ChallengeFragment  {
         String resp = mUIResponse.getText().toString();
         if(mQuestion.checkAnswer(resp))
         {
-            Toast.makeText(getActivity(), mQuestion.getGoodMessage(), Toast.LENGTH_LONG).show();
+            if(mQuestion.getGoodMessage()!=null)
+                Toast.makeText(getActivity(), mQuestion.getGoodMessage(), Toast.LENGTH_SHORT).show();
             mUIResponse.getText().clear();
             return true;
         }else
         {
-            Toast.makeText(getActivity(), mQuestion.getBadMessage(), Toast.LENGTH_LONG).show();
+            if(mQuestion.getBadMessage()!=null)
+                Toast.makeText(getActivity(), mQuestion.getBadMessage(), Toast.LENGTH_LONG).show();
             mUIResponse.getText().clear();
             return false;
         }
     }
 
+    public void onChallengeFailed()
+    {
+        mUIResponse.clearFocus();
+    }
+
 
     @Override
     protected void onInitChallenge(Challenge c) {
@@ -89,5 +97,6 @@ public class QuestionFragment extends ChallengeFragment  {
         mUIResponse.setText("");
         mUIResponse.setHint("Entrer votre réponse");
         getDriver().setVisibilityView(R.id.btn_valid, View.VISIBLE);
+        mUIResponse.clearFocus();
     }
 }

+ 14 - 0
app/src/main/java/app/mar/game/challenges/Challenge.java

@@ -26,6 +26,8 @@ public abstract class Challenge implements Serializable{
 
     protected String mType=CHALLENGE_NULL;
     protected String mName="null";
+    protected String mGoodMessage="";
+    protected String mBadMessage="";
 
     protected Class  mStartWith = null;
     protected ArrayList<Indice> mIndices = new ArrayList<Indice>();
@@ -116,6 +118,10 @@ public abstract class Challenge implements Serializable{
             mPenality = root.getInt("penality");
         } catch(JSONException e){mPenality=0;}
 
+
+        try {mGoodMessage = root.getString("good_message"); } catch (JSONException e) {mGoodMessage=null;}
+        try {mBadMessage = root.getString("bad_message"); } catch (JSONException e) {mBadMessage=null;}
+
     }
 
 
@@ -226,4 +232,12 @@ public abstract class Challenge implements Serializable{
     public Class getStartWith(){
         return mStartWith;
     }
+
+    public String getGoodMessage() {
+        return mGoodMessage;
+    }
+
+    public String getBadMessage() {
+        return mBadMessage;
+    }
 }

+ 0 - 9
app/src/main/java/app/mar/game/challenges/QRCodeTreasure.java

@@ -12,7 +12,6 @@ import app.mar.game.Game;
 public class QRCodeTreasure extends Challenge {
 
     protected String mQRValue;
-    protected String mBadQRMessage;
     protected String mComment;
 
 
@@ -31,11 +30,6 @@ public class QRCodeTreasure extends Challenge {
             throw new BadChallengeConfigException("Bad parameter 'qr_value'");
         }
 
-        try {
-            mBadQRMessage = root.getString("bad_message");
-        } catch (JSONException e) {
-            mBadQRMessage="";
-        }
 
         try {
             mComment = root.getString("comment");
@@ -52,7 +46,4 @@ public class QRCodeTreasure extends Challenge {
     public String getQRValue() {
         return mQRValue;
     }
-    public String getBadQRMessage() {
-        return mBadQRMessage;
-    }
 }

+ 0 - 11
app/src/main/java/app/mar/game/challenges/Question.java

@@ -17,8 +17,6 @@ public class Question extends Challenge {
 
     protected String mQuestion;
     protected ArrayList<String> mAnswer = new ArrayList<String>();
-    protected String mGoodMessage="";
-    protected String mBadMessage="";
     public static final int REQUEST_CODE=2004;
 
 
@@ -53,8 +51,6 @@ public class Question extends Challenge {
         }
 
 
-        try {mGoodMessage = root.getString("good_message"); } catch (JSONException e) {mGoodMessage="";}
-        try {mBadMessage = root.getString("bad_message"); } catch (JSONException e) {mBadMessage="";}
     }
 
 
@@ -82,11 +78,4 @@ public class Question extends Challenge {
         return mAnswer;
     }
 
-    public String getGoodMessage() {
-        return mGoodMessage;
-    }
-
-    public String getBadMessage() {
-        return mBadMessage;
-    }
 }

+ 0 - 1
app/src/main/java/app/mar/ui/MediaView.java

@@ -120,7 +120,6 @@ public class MediaView extends SurfaceView implements View.OnClickListener,Surfa
         return mPlayer.getDuration();
     }
 
-
     public int getTime()
     {
         return mPlayer.getCurrentPosition();