From 53bd940a47c9e8dffbf7565e3a031ecf2f39773e Mon Sep 17 00:00:00 2001 From: Adrien Date: Mon, 21 Dec 2020 17:40:49 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20partie=20"Liste=20de=20cartes?= =?UTF-8?q?"=20disponible=20depuis=20l'accueil.=20Avec=20:=20-=20Image=20-?= =?UTF-8?q?=20Nb=20Attaque=20et=20Nb=20PVs=20-=20Lien=20clickable=20(reste?= =?UTF-8?q?=20qu'=C3=A0=20ajouter=20une=20barre=20de=20recherche)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../myapplication/CardListActivity.java | 113 ++++++++++++++++++ .../myapplication/DeckPickDialogueList.java | 35 ++++++ .../main/res/layout/activity_card_list.xml | 33 +++++ 3 files changed, 181 insertions(+) create mode 100644 app/src/main/java/com/iutlaval/myapplication/CardListActivity.java create mode 100644 app/src/main/java/com/iutlaval/myapplication/DeckPickDialogueList.java create mode 100644 app/src/main/res/layout/activity_card_list.xml diff --git a/app/src/main/java/com/iutlaval/myapplication/CardListActivity.java b/app/src/main/java/com/iutlaval/myapplication/CardListActivity.java new file mode 100644 index 0000000..6c05a46 --- /dev/null +++ b/app/src/main/java/com/iutlaval/myapplication/CardListActivity.java @@ -0,0 +1,113 @@ +package com.iutlaval.myapplication; + +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.method.LinkMovementMethod; +import android.text.util.Linkify; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.constraintlayout.widget.ConstraintLayout; + +import com.iutlaval.myapplication.Game.Cards.Card; +import com.iutlaval.myapplication.Game.Cards.CardRegistery; +import com.iutlaval.myapplication.Game.Cards.Mythes.Mythes_Perséphone; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; + +public class CardListActivity extends AppCompatActivity { + + TextView test; + LinearLayout linearLayout; + int inf; + int sup; + ImageView cardPicture; + private TextView cardName; + private int screenHeight; + private int screenWidth; + private TextView cardStats; + private TextView cardLink; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_card_list); + test = findViewById(R.id.textViewDeck); + linearLayout = findViewById(R.id.linearLayout); + + + //récupération de la taille de l'écran + WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); + final DisplayMetrics displayMetrics = new DisplayMetrics(); + wm.getDefaultDisplay().getMetrics(displayMetrics); + screenHeight = displayMetrics.heightPixels; + screenWidth = displayMetrics.widthPixels; + + SharedPreferences chosenOne = PreferenceManager.getDefaultSharedPreferences(this); + int deckIndex = chosenOne.getInt("deckIndex", 0); + + String[] mTestArray = getResources().getStringArray(R.array.decks); + + test.setText(mTestArray[deckIndex]); + + switch (deckIndex) { + case 0 : + inf = 0; + sup = 30; + break; + case 1 : + inf = 30; + sup = 60; + break; + case 2 : + inf = 60; + sup = 90; + break; + } + showDeckCards(inf, sup); + } + + public void showDeckCards(int inf, int sup) { + + + for(int i = inf; i < sup; i++) { + try { + Class c = CardRegistery.get(i); + Constructor con = c.getConstructor(String.class, Context.class); + Card card = (Card) con.newInstance(null, null); + cardPicture = new ImageView(this); + cardPicture.setBackgroundResource(card.getCardPicture()); + cardPicture.setLayoutParams(new ViewGroup.LayoutParams((int) (screenWidth / 1.2), (int) (screenHeight / 1.4))); + linearLayout.addView(cardPicture); + + cardName = new TextView(this); + cardName.setText(card.getName()+"\n"); + linearLayout.addView(cardName); + + cardStats = new TextView(this); + cardStats.setText("Attaque : "+card.getAttack()+" Vie : "+card.getHealth()+"\n"); + linearLayout.addView(cardStats); + + cardLink = new TextView(this); + cardLink.setText("Lien : "+card.getWikipediaLink()+"\n\n\n"); + Linkify.addLinks(cardLink, Linkify.ALL); + linearLayout.addView(cardLink); + + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/app/src/main/java/com/iutlaval/myapplication/DeckPickDialogueList.java b/app/src/main/java/com/iutlaval/myapplication/DeckPickDialogueList.java new file mode 100644 index 0000000..c0cbb75 --- /dev/null +++ b/app/src/main/java/com/iutlaval/myapplication/DeckPickDialogueList.java @@ -0,0 +1,35 @@ +package com.iutlaval.myapplication; + +import android.app.Dialog; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; + +import androidx.annotation.NonNull; + +public class DeckPickDialogueList extends DeckPickDialogueGame { + public DeckPickDialogueList(@NonNull Context context) { + super(context); + } + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + return super.onCreateDialog(savedInstanceState); + } + + @Override + public void startActivity(String[] mTestArray, int which) { + Intent cardListActivity = new Intent(context, CardListActivity.class); + cardListActivity.putExtra("DECK", mTestArray[which]); + cardListActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + + SharedPreferences chosenOne = PreferenceManager.getDefaultSharedPreferences(context);; + SharedPreferences.Editor editor = chosenOne.edit(); + editor.putInt("deckIndex", which); + editor.apply(); + + startActivity(cardListActivity); + } +} diff --git a/app/src/main/res/layout/activity_card_list.xml b/app/src/main/res/layout/activity_card_list.xml new file mode 100644 index 0000000..0fb3cc6 --- /dev/null +++ b/app/src/main/res/layout/activity_card_list.xml @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file