Affichage des parties déjà jouées

This commit is contained in:
ynerant 2019-12-06 01:15:59 +01:00
parent 1047c06b79
commit 9388b57447
17 changed files with 645 additions and 104 deletions

View File

@ -7,8 +7,8 @@ android {
applicationId "fr.ynerant.tarot"
minSdkVersion 24
targetSdkVersion 29
versionCode 3
versionName "0.1.0"
versionCode 4
versionName "0.2.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {

View File

@ -2,7 +2,8 @@ package fr.ynerant.tarot;
import android.annotation.SuppressLint;
import android.preference.PreferenceManager;
import android.util.SparseArray;
import androidx.annotation.NonNull;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@ -20,6 +21,7 @@ import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@ -28,9 +30,12 @@ import java.util.concurrent.Executors;
public class Game {
private static final Gson GSON;
private static final SparseArray<Game> GAMES = new SparseArray<>();
@SuppressLint("UseSparseArrays")
private static final Map<Integer, Game> GAMES = new HashMap<>();
@SuppressWarnings("unused")
private int id;
@SuppressWarnings("unused")
private Date date;
private GameType gameType;
@SuppressWarnings("unused")
@ -100,7 +105,7 @@ public class Game {
}
}).registerTypeAdapter(Date.class, new TypeAdapter<Date>() {
@SuppressLint("SimpleDateFormat")
final DateFormat FORMAT = new SimpleDateFormat("yyyy-mm-dd HH:MM:ss");
final DateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public void write(JsonWriter out, Date value) throws IOException {
@ -271,8 +276,6 @@ public class Game {
else if (chelem_realized)
score += 200;
attack_score = score;
Map<Player, Integer> scores = new HashMap<>();
for (int i = 0; i < getGameType().getNbPlayers(); ++i) {
@ -314,57 +317,31 @@ public class Game {
return GSON.toJson(this);
}
public enum GameType {
THREE_PLAYERS(2, 0), FOUR_PLAYERS(3, 0), FIVE_PLAYERS(2, 1), SIX_PLAYERS(3, 1);
private final int attackMultiplier;
private final int followMultiplier;
GameType(int attack, int follow) {
this.attackMultiplier = attack;
this.followMultiplier = follow;
@NonNull
@Override
public String toString() {
SimpleDateFormat format = new SimpleDateFormat("dd MMMM yyyy HH:mm:ss");
String str = "Partie à " + getGameType().getNbPlayers() + " joueurs : ";
for (Player player : getPlayers())
str += player.getName() + ", ";
str += getBet().toString() + " de " + getAttacker().getName() + " " + (getAttackScore() >= (ends == 0 ? 56 : ends == 1 ? 51 : ends == 2 ? 41 : 36) ? "gagnée" : "chutée") + ", ";
str += format.format(getDate());
return str;
}
public int getAttackMultiplier() {
return attackMultiplier;
public static Game getGameById(int id) {
return GAMES.get(id);
}
public int getFollowMultiplier() {
return followMultiplier;
}
public int getNbPlayers() {
return ordinal() + 3;
}
public static GameType getGameType(int players) {
switch (players) {
case 3:
return THREE_PLAYERS;
case 4:
return FOUR_PLAYERS;
case 5:
return FIVE_PLAYERS;
case 6:
return SIX_PLAYERS;
default:
throw new IllegalArgumentException("A game must have between 3 and 6 players");
}
}
}
public enum Bet {
SMALL(1), GUARD(2), GUARD_WITHOUT(4), GUARD_AGAINST(6);
private final int multiplier;
Bet(int multiplier) {
this.multiplier = multiplier;
}
public int getMultiplier() {
return multiplier;
public static List<Game> getAllGames() {
List<Game> list = new ArrayList<>(GAMES.values());
list.sort(new Comparator<Game>() {
@Override
public int compare(Game o1, Game o2) {
return o2.getDate().compareTo(o1.getDate());
}
});
return list;
}
public static void updateGames() {
@ -440,4 +417,74 @@ public class Game {
}
});
}
public enum GameType {
THREE_PLAYERS(2, 0), FOUR_PLAYERS(3, 0), FIVE_PLAYERS(2, 1), SIX_PLAYERS(3, 1);
private final int attackMultiplier;
private final int followMultiplier;
GameType(int attack, int follow) {
this.attackMultiplier = attack;
this.followMultiplier = follow;
}
public int getAttackMultiplier() {
return attackMultiplier;
}
public int getFollowMultiplier() {
return followMultiplier;
}
public int getNbPlayers() {
return ordinal() + 3;
}
public static GameType getGameType(int players) {
switch (players) {
case 3:
return THREE_PLAYERS;
case 4:
return FOUR_PLAYERS;
case 5:
return FIVE_PLAYERS;
case 6:
return SIX_PLAYERS;
default:
throw new IllegalArgumentException("A game must have between 3 and 6 players");
}
}
}
public enum Bet {
SMALL(1), GUARD(2), GUARD_WITHOUT(4), GUARD_AGAINST(6);
private final int multiplier;
Bet(int multiplier) {
this.multiplier = multiplier;
}
public int getMultiplier() {
return multiplier;
}
@NonNull
@Override
public String toString() {
switch (this) {
case SMALL:
return "Petite";
case GUARD:
return "Garde";
case GUARD_WITHOUT:
return "Garde sans";
case GUARD_AGAINST:
return "Garde contre";
default:
return "null";
}
}
}
}

View File

@ -37,7 +37,7 @@ public class MainActivity extends AppCompatActivity {
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
mAppBarConfiguration = new AppBarConfiguration.Builder(
R.id.nav_new_game, R.id.nav_personal_stats)
R.id.nav_new_game)
.setDrawerLayout(drawer)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);

View File

@ -0,0 +1,111 @@
package fr.ynerant.tarot.ui.games;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import fr.ynerant.tarot.Game;
import fr.ynerant.tarot.MainActivity;
import fr.ynerant.tarot.Player;
import fr.ynerant.tarot.R;
import fr.ynerant.tarot.ui.home.HomeFragment;
public class GameInfoFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, final Bundle savedInstanceState) {
ViewModelProviders.of(this).get(GameInfoModel.class);
final View root = inflater.inflate(R.layout.fragment_game_info, container, false);
if (PreferenceManager.getDefaultSharedPreferences(MainActivity.INSTANCE).getString("token", null) == null) {
//noinspection ConstantConditions
getFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new HomeFragment(), "Se connecter").commit();
return root;
}
Game game = Game.getGameById(getArguments().getInt("gameId"));
TextView points1 = root.findViewById(R.id.player1_points);
TextView points2 = root.findViewById(R.id.player2_points);
TextView points3 = root.findViewById(R.id.player3_points);
TextView points4 = root.findViewById(R.id.player4_points);
TextView points5 = root.findViewById(R.id.player5_points);
TextView points6 = root.findViewById(R.id.player6_points);
TextView[] points = new TextView[]{points1, points2, points3, points4, points5, points6};
TextView points1Text = root.findViewById(R.id.player1_points_text);
TextView points2Text = root.findViewById(R.id.player2_points_text);
TextView points3Text = root.findViewById(R.id.player3_points_text);
TextView points4Text = root.findViewById(R.id.player4_points_text);
TextView points5Text = root.findViewById(R.id.player5_points_text);
TextView points6Text = root.findViewById(R.id.player6_points_text);
TextView[] pointsText = new TextView[]{points1Text, points2Text, points3Text, points4Text, points5Text, points6Text};
for (int i = 0; i < game.getGameType().getNbPlayers(); ++i) {
System.out.println(i + ", " + game.getGameType());
pointsText[i].setVisibility(View.VISIBLE);
pointsText[i].setText(game.getPlayers().get(i).getName());
points[i].setVisibility(View.VISIBLE);
points[i].setText(String.valueOf(game.getPoints(i)));
}
TextView attacker = root.findViewById(R.id.attacker);
TextView follower = root.findViewById(R.id.follower);
LinearLayout followerLayout = root.findViewById(R.id.follower_layout);
attacker.setText(game.getAttacker().getName());
if (game.getGameType() == Game.GameType.FIVE_PLAYERS || game.getGameType() == Game.GameType.SIX_PLAYERS) {
followerLayout.setVisibility(View.VISIBLE);
follower.setText(game.getFollower().getName());
}
TextView bet = root.findViewById(R.id.bet);
bet.setText(game.getBet().toString());
TextView ends = root.findViewById(R.id.ends);
ends.setText(game.getEnds() + " bout" + (game.getEnds() >= 2 ? "s" : ""));
TextView attackScore = root.findViewById(R.id.attack_score);
attackScore.setText(String.valueOf(game.getAttackScore()));
TextView chelem = root.findViewById(R.id.chelem);
chelem.setText((game.isChelemAnnounced() ? "" : "non ") + "annoncé, " + (game.isChelemRealized() ? "" : "non ") + "réalisé");
TextView littleEnd = root.findViewById(R.id.little_end);
littleEnd.setText(game.getLittleEnd() == 0 ? "Non" : game.getPlayers().get(game.getLittleEnd() - 1).getName());
TextView handles = root.findViewById(R.id.handles);
String handlesStr = "";
for (int i = 0; i < game.getGameType().getNbPlayers(); ++i) {
if (game.getHandles().get(i) > 0)
handlesStr += game.getPlayers().get(i) + " (" + (game.getHandles().get(i) == 1 ? "simple" : game.getHandles().get(i) == 2 ? "double" : "triple") + "), ";
}
if (handlesStr.isEmpty())
handlesStr = "Pas de poignée";
else
handlesStr = handlesStr.substring(0, handlesStr.length() - 2);
handles.setText(handlesStr);
TextView miseries = root.findViewById(R.id.miseries);
String miseriesStr = "";
for (int i = 0; i < game.getGameType().getNbPlayers(); ++i) {
if (game.getMiseries().get(i))
miseriesStr += game.getPlayers().get(i) + ", ";
}
if (miseriesStr.isEmpty())
miseriesStr = "Pas de misère";
else
miseriesStr = miseriesStr.substring(0, miseriesStr.length() - 2);
miseries.setText(miseriesStr);
return root;
}
}

View File

@ -0,0 +1,6 @@
package fr.ynerant.tarot.ui.games;
import androidx.lifecycle.ViewModel;
public class GameInfoModel extends ViewModel {
}

View File

@ -0,0 +1,57 @@
package fr.ynerant.tarot.ui.games;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import fr.ynerant.tarot.Game;
import fr.ynerant.tarot.MainActivity;
import fr.ynerant.tarot.Player;
import fr.ynerant.tarot.R;
import fr.ynerant.tarot.ui.home.HomeFragment;
import fr.ynerant.tarot.ui.stats.PersonalStatsFragment;
public class GamesMenuFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, final Bundle savedInstanceState) {
ViewModelProviders.of(this).get(GamesMenuModel.class);
final View root = inflater.inflate(R.layout.fragment_games_menu, container, false);
if (PreferenceManager.getDefaultSharedPreferences(MainActivity.INSTANCE).getString("token", null) == null) {
//noinspection ConstantConditions
getFragmentManager().beginTransaction().replace(R.id.nav_games, new HomeFragment(), "Se connecter").commit();
return root;
}
ListView gameList = root.findViewById(R.id.game_list);
final ListAdapter adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_expandable_list_item_1, Game.getAllGames());
gameList.setAdapter(adapter);
gameList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Game game = (Game) adapter.getItem(position);
GameInfoFragment fragment = new GameInfoFragment();
Bundle bundle = new Bundle();
bundle.putInt("gameId", game.getId());
fragment.setArguments(bundle);
//noinspection ConstantConditions
getFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, fragment, "Détails d'une partie")
.addToBackStack("Détails d'une partie").commit();
}
});
return root;
}
}

View File

@ -0,0 +1,6 @@
package fr.ynerant.tarot.ui.games;
import androidx.lifecycle.ViewModel;
public class GamesMenuModel extends ViewModel {
}

View File

@ -47,6 +47,14 @@ public class NewGameFragment extends Fragment {
return root;
}
while (Player.getAllPlayers().isEmpty()) {
try {
Thread.sleep(500L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
TextView textView = root.findViewById(R.id.text_new_game);
textView.setText(R.string.menu_new_game);
@ -86,7 +94,6 @@ public class NewGameFragment extends Fragment {
final Spinner attacker = root.findViewById(R.id.attacker);
final Spinner follower = root.findViewById(R.id.follower);
final LinearLayout follower_layout = root.findViewById(R.id.follower_layout);
final Spinner dealer = root.findViewById(R.id.dealer);
final SeekBar attack_points = root.findViewById(R.id.attack_score);
final SeekBar bet = root.findViewById(R.id.bet);
final SeekBar nb_ends = root.findViewById(R.id.nb_ends);
@ -198,7 +205,6 @@ public class NewGameFragment extends Fragment {
ArrayAdapter<Player> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, new ArrayList<>(players));
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
attacker.setAdapter(adapter);
dealer.setAdapter(adapter);
follower.setAdapter(adapter);
for (int i = 0; i < 6; ++i) {
@ -240,7 +246,6 @@ public class NewGameFragment extends Fragment {
}
attacker.setOnItemSelectedListener(justUpdate);
follower.setOnItemSelectedListener(justUpdate);
dealer.setOnItemSelectedListener(justUpdate);
nb_players.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override

View File

@ -67,7 +67,7 @@ public class PersonalStatsMenuFragment extends Fragment {
fragment.setArguments(bundle);
//noinspection ConstantConditions
getFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, fragment, "Statistiques individuelles de " + player.getName())
.addToBackStack("Statistiques individuelles").commit();
.addToBackStack("Statistiques individuelles de " + player.getName()).commit();
}
});

View File

@ -0,0 +1,302 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:textAlignment="center">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/player1_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp" />
<TextView
android:id="@+id/player2_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp" />
<TextView
android:id="@+id/player3_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp" />
<TextView
android:id="@+id/player4_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:visibility="gone" />
<TextView
android:id="@+id/player5_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:visibility="gone" />
<TextView
android:id="@+id/player6_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:visibility="gone" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/player1_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp" />
<TextView
android:id="@+id/player2_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp" />
<TextView
android:id="@+id/player3_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp" />
<TextView
android:id="@+id/player4_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:visibility="gone" />
<TextView
android:id="@+id/player5_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:visibility="gone" />
<TextView
android:id="@+id/player6_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:visibility="gone" />
</TableRow>
</TableLayout>
</HorizontalScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Preneur :"
android:textSize="18sp" />
<TextView
android:id="@+id/attacker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:id="@id/follower_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Suiveur :"
android:textSize="18sp" />
<TextView
android:id="@+id/follower"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Mise :"
android:textSize="18sp" />
<TextView
android:id="@+id/bet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Nombre de bouts :"
android:textSize="18sp" />
<TextView
android:id="@+id/ends"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Points en attaque :"
android:textSize="18sp" />
<TextView
android:id="@+id/attack_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Chelem :"
android:textSize="18sp" />
<TextView
android:id="@+id/chelem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Petit au bout :"
android:textSize="18sp" />
<TextView
android:id="@+id/little_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Poignées :"
android:textSize="18sp" />
<TextView
android:id="@+id/handles"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Misères :"
android:textSize="18sp" />
<TextView
android:id="@+id/miseries"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/game_list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

View File

@ -202,24 +202,6 @@
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Dealer :" />
<Spinner
android:id="@+id/dealer"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -628,38 +610,38 @@
android:id="@+id/player1_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player2_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player3_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player4_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player5_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:visibility="gone" />
<TextView
android:id="@+id/player6_points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:visibility="gone" />
</TableRow>
@ -671,38 +653,38 @@
android:id="@+id/player1_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player2_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player3_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player4_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player5_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:visibility="gone" />
<TextView
android:id="@+id/player6_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:visibility="gone" />
</TableRow>
@ -714,38 +696,38 @@
android:id="@+id/player1_total_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player2_total_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player3_total_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player4_total_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/player5_total_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:visibility="gone" />
<TextView
android:id="@+id/player6_total_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:visibility="gone" />
</TableRow>

View File

@ -12,14 +12,14 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:text="Points à 3 joueurs :"/>
<TextView
android:id="@+id/points3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:textAlignment="textEnd"/>
</TableRow>
@ -27,13 +27,13 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:text="Points à 4 joueurs :" />
<TextView
android:id="@+id/points4"
android:layout_width="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:layout_height="wrap_content" />
</TableRow>
@ -41,13 +41,13 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:text="Points à 5 joueurs :" />
<TextView
android:id="@+id/points5"
android:layout_width="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:layout_height="wrap_content" />
</TableRow>
@ -55,13 +55,13 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:text="Points à 6 joueurs :" />
<TextView
android:id="@+id/points6"
android:layout_width="wrap_content"
android:textSize="24sp"
android:textSize="18sp"
android:layout_height="wrap_content" />
</TableRow>

View File

@ -13,6 +13,11 @@
android:id="@+id/nav_personal_stats"
android:icon="@drawable/ic_launcher_foreground"
android:title="@string/personal_stats" />
<item
android:id="@+id/nav_games"
android:icon="@drawable/ic_launcher_foreground"
android:title="@string/games" />
</group>
</menu>

View File

@ -22,4 +22,10 @@
android:name="fr.ynerant.tarot.ui.stats.PersonalStatsMenuFragment"
android:label="@string/personal_stats"
tools:layout="@layout/fragment_personal_stats_menu" />
<fragment
android:id="@+id/nav_games"
android:name="fr.ynerant.tarot.ui.games.GamesMenuFragment"
android:label="@string/games"
tools:layout="@layout/fragment_games_menu" />
</navigation>

View File

@ -34,4 +34,5 @@
<string name="nobody">Personne</string>
<string name="yes">Oui</string>
<string name="little">Petite</string>
<string name="games">Parties</string>
</resources>

View File

@ -34,4 +34,5 @@
<string name="nobody">Nobody</string>
<string name="yes">Yes</string>
<string name="little">Little</string>
<string name="games">Parties</string>
</resources>