diff --git a/app/src/main/.DS_Store b/app/src/main/.DS_Store index c5079b0..5247983 100644 Binary files a/app/src/main/.DS_Store and b/app/src/main/.DS_Store differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1b23741..c34e894 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,7 +11,11 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> + + + + @@ -19,9 +23,6 @@ - - - \ No newline at end of file diff --git a/app/src/main/java/com/stod/projectandroid/DialogFragment.java b/app/src/main/java/com/stod/projectandroid/DialogFragment.java index 1d54e2f..997a0f0 100644 --- a/app/src/main/java/com/stod/projectandroid/DialogFragment.java +++ b/app/src/main/java/com/stod/projectandroid/DialogFragment.java @@ -3,6 +3,7 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; +import android.content.Intent; import android.os.Bundle; public class DialogFragment extends androidx.fragment.app.DialogFragment { @@ -16,10 +17,19 @@ public void onClick(DialogInterface dialog, int which) { // The 'which' argument contains the index position // of the selected item if (which == 0) { + Intent intent = new Intent(getActivity(), QuestionFlascardActivity.class); + intent.putExtra("difficulty", "easy"); + startActivityForResult(intent, 0); } else if (which == 1) { + Intent intent = new Intent(getActivity(), QuestionFlascardActivity.class); + intent.putExtra("difficulty", "medium"); + startActivityForResult(intent, 1); } else if (which == 2) { + Intent intent = new Intent(getActivity(), QuestionFlascardActivity.class); + intent.putExtra("difficulty", "hard"); + startActivityForResult(intent, 2); } } diff --git a/app/src/main/java/com/stod/projectandroid/Flashcard.java b/app/src/main/java/com/stod/projectandroid/Flashcard.java new file mode 100644 index 0000000..dec06d4 --- /dev/null +++ b/app/src/main/java/com/stod/projectandroid/Flashcard.java @@ -0,0 +1,72 @@ +package com.stod.projectandroid; + +import com.stod.projectandroid.api.AnswersData; + +import java.util.ArrayList; +import java.util.List; + +public class Flashcard { + String resPokemon ; + String resType ; + String resAnimated ; + String difficulty ; + AnswersData[] answers ; + List answersPurposeList = new ArrayList(); + + public Flashcard(String resPokemon, String resType, String resAnimated, String difficulty, AnswersData[] answers, List answersPurposeList) { + this.resPokemon = resPokemon; + this.resType = resType; + this.resAnimated = resAnimated; + this.difficulty = difficulty; + this.answers = answers; + this.answersPurposeList = answersPurposeList; + } + + public String getResPokemon() { + return resPokemon; + } + + public void setResPokemon(String resPokemon) { + this.resPokemon = resPokemon; + } + + public String getResType() { + return resType; + } + + public void setResType(String resType) { + this.resType = resType; + } + + public String getResAnimated() { + return resAnimated; + } + + public void setResAnimated(String resAnimated) { + this.resAnimated = resAnimated; + } + + public String getDifficulty() { + return difficulty; + } + + public void setDifficulty(String difficulty) { + this.difficulty = difficulty; + } + + public AnswersData[] getAnswers() { + return answers; + } + + public void setAnswers(AnswersData[] answers) { + this.answers = answers; + } + + public List getAnswersPurposeList() { + return answersPurposeList; + } + + public void setAnswersPurposeList(List answersPurposeList) { + this.answersPurposeList = answersPurposeList; + } +} diff --git a/app/src/main/java/com/stod/projectandroid/HomeActivity.java b/app/src/main/java/com/stod/projectandroid/HomeActivity.java index f931ef2..9a01a95 100644 --- a/app/src/main/java/com/stod/projectandroid/HomeActivity.java +++ b/app/src/main/java/com/stod/projectandroid/HomeActivity.java @@ -2,15 +2,17 @@ import androidx.appcompat.app.AppCompatActivity; +import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; public class HomeActivity extends AppCompatActivity { - + public String selec; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -29,22 +31,38 @@ public void onClick(View v) { newFragment.show(getSupportFragmentManager(), "difficulty"); Log.i("HomeActivity", "Click"); + selec = getIntent().getParcelableExtra("selection"); + + if(selec != null) { + Intent intent = new Intent(HomeActivity.this, QuestionFlascardActivity.class); + intent.putExtra("selection", selec+""); + startActivityForResult(intent, 1); + Log.i("HomeActivity", "navigation flashCard"); + } + } }); + apropos.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Log.i("HomeActivity", "Click"); - + Intent intent = new Intent(HomeActivity.this, About.class); + startActivity(intent); } }); + solutions.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("HomeActivity", "Click"); + + Intent intent = new Intent(HomeActivity.this, ListQuestionsRecyclerView.class); + startActivity(intent); + } }); } + } diff --git a/app/src/main/java/com/stod/projectandroid/QuestionFlascardActivity.java b/app/src/main/java/com/stod/projectandroid/QuestionFlascardActivity.java index f7999a1..a34ede1 100644 --- a/app/src/main/java/com/stod/projectandroid/QuestionFlascardActivity.java +++ b/app/src/main/java/com/stod/projectandroid/QuestionFlascardActivity.java @@ -6,6 +6,7 @@ import android.content.DialogInterface; import android.content.Intent; +import android.content.res.Resources; import android.os.Bundle; import android.util.Log; import android.view.View; @@ -15,7 +16,26 @@ import android.widget.RadioGroup; import android.widget.TextView; -public class QuestionFlascardActivity extends AppCompatActivity { +import com.stod.projectandroid.api.AnswersData; +import com.stod.projectandroid.api.AnwsersDifficultyWrapper; +import com.stod.projectandroid.api.ExchangeApi; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; + +public class QuestionFlascardActivity extends AppCompatActivity implements View.OnClickListener { + + private static final String TAG = "QuestionFlascardActivi"; + private QuestionsAdapter adapter; + private List questions = new ArrayList<>(); + private Pokemon pokemon; private String goodAnswer; private String difficulty; @@ -32,23 +52,94 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_question_flascard); - //pokemon = getIntent().getParcelableExtra("pokemon"); Intent intent = getIntent(); compteur = intent.getIntExtra("numQuestion",1); numQuestion = compteur; final TextView noQuestion = findViewById(R.id.noQuestionText); - noQuestion.setText("Question "+numQuestion); + compteur+=1; - nom="bulbizare"; - imageId=R.drawable.pikachu; final ImageView pokemonImage = findViewById(R.id.pokemonImageView); - pokemonImage.setImageResource(imageId); goodAnswer = nom; final Button validate = findViewById(R.id.validateButton); final RadioGroup radioGroup = findViewById(R.id.answerRadioGroup); - + + // HTTP REQUEST + + // Création du client retrofit + // il va donc taper sur la baseUrl donnée + // et parser le résultat en JSON + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://gryt.tech:8080/") + .addConverterFactory(GsonConverterFactory.create()) + .build(); + + // Génération de notre API + // à partir du client retrofit + ExchangeApi api = retrofit.create(ExchangeApi.class); + + String difficulty = getDifficulty(); + + // Création de la requête + Call> call = api.getQuestions(difficulty); + + + + // Exécution de la requête en asynchrone + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + for (AnwsersDifficultyWrapper a: response.body()) { + String resPokemon = a.asset; + String resType = a.asset_type; + String resAnimated = a.detail_image; + String difficulty = a.difficulty; + AnswersData[] answers = a.answers; + List answersPurposeList = new ArrayList(); + + int resourceId = Resources.getSystem().getIdentifier(resPokemon, "drawable", "com.stod.projectandroid"); + + for (AnswersData i : a.answers) { + answersPurposeList.add(new AnswersQuestions(i.sentence, i.isRight)); + + } + + questions.add(new Questions(resourceId, resType, resAnimated, difficulty,answersPurposeList)); + } + + + + } + + @Override + public void onFailure(Call> call, Throwable t) { + Log.e("CurrencyListActivity", "onFailure: ", t); + } + }); + + //END HTTP REQUEST + + for (Questions quest : questions) { + + pokemonImage.setImageResource(quest.getResPokemon()); + List responses = quest.getAnswers(); + for (AnswersQuestions answQuest: responses) { + for (int i=0; i questions) { static class ViewHolder extends RecyclerView.ViewHolder { final TextView questionTextView; - final ImageView flag; + final ImageView pofpokemon; public ViewHolder(@NonNull View itemView) { super(itemView); - flag = itemView.findViewById(R.id.imageView); + pofpokemon = itemView.findViewById(R.id.imageView); questionTextView = itemView.findViewById(R.id.questionTextView); } } @@ -56,10 +56,11 @@ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public void onBindViewHolder(@NonNull ViewHolder holder, int position) { // on récupère la donnée associée à cet index Questions question = questions.get(position); + String questionPurpose = "Quel est ce pokémon ?"; // on met à jour l'UI en passant par le ViewHolder - //holder.flag.setImageResource(question.i); - //holder.questionTextView.setText(question.questionTextView + ""); + holder.pofpokemon.setImageResource(R.drawable.p_of_pokemon); + holder.questionTextView.setText(questionPurpose); } @Override diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..2408e30 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/p_of_pokemon.png b/app/src/main/res/drawable/p_of_pokemon.png new file mode 100644 index 0000000..1bdb881 Binary files /dev/null and b/app/src/main/res/drawable/p_of_pokemon.png differ diff --git a/app/src/main/res/drawable/pokeball.png b/app/src/main/res/drawable/pokeball.png new file mode 100644 index 0000000..fdc161c Binary files /dev/null and b/app/src/main/res/drawable/pokeball.png differ diff --git a/app/src/main/res/layout/activity_question_flascard.xml b/app/src/main/res/layout/activity_question_flascard.xml index eeabde2..68dab6a 100644 --- a/app/src/main/res/layout/activity_question_flascard.xml +++ b/app/src/main/res/layout/activity_question_flascard.xml @@ -51,7 +51,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/questionText"> - - - + android:text="RadioButton3" />--> @@ -91,5 +85,15 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> + + + + \ No newline at end of file