From e6e4d6b213e504a980099b2e2b12746074563eb2 Mon Sep 17 00:00:00 2001 From: Peter Osterlund Date: Sat, 7 Apr 2012 15:45:34 +0000 Subject: [PATCH] DroidFish: Added support for default player name. --- DroidFish/res/values/strings.xml | 4 ++ DroidFish/res/xml/preferences.xml | 14 ++++- .../src/org/petero/droidfish/DroidFish.java | 54 ++++++++++++++++++- .../org/petero/droidfish/GUIInterface.java | 3 ++ .../gamelogic/DroidChessController.java | 8 +-- 5 files changed, 78 insertions(+), 5 deletions(-) diff --git a/DroidFish/res/values/strings.xml b/DroidFish/res/values/strings.xml index 062f160..150711f 100644 --- a/DroidFish/res/values/strings.xml +++ b/DroidFish/res/values/strings.xml @@ -357,10 +357,14 @@ you are not actively using the program.\ About / Help Playing Options + Player Name + Default player name in new games Flip Board View board from black side Auto Swap Sides Automatically swap sides when new game started. Also overrides Flip Board setting + Flip Board: Player + Use Player Name to flip board automatically Engine Settings Strength Only supported by internal engines diff --git a/DroidFish/res/xml/preferences.xml b/DroidFish/res/xml/preferences.xml index 6a1c276..268881b 100644 --- a/DroidFish/res/xml/preferences.xml +++ b/DroidFish/res/xml/preferences.xml @@ -3,6 +3,12 @@ xmlns:android="http://schemas.android.com/apk/res/android"> + + - + + + headers = new TreeMap(); + ctrl.getHeaders(headers); + int whiteMatch = nameMatchScore(headers.get("White"), playerName); + int blackMatch = nameMatchScore(headers.get("Black"), playerName); + if (( flipped && (whiteMatch > blackMatch)) || + (!flipped && (whiteMatch < blackMatch))) { + flipped = !flipped; + boardFlipped = flipped; + Editor editor = settings.edit(); + editor.putBoolean("boardFlipped", boardFlipped); + editor.commit(); + } + } if (autoSwapSides) { if (gameMode.analysisMode()) { flipped = !cb.pos.whiteMove; @@ -1002,6 +1047,11 @@ public class DroidFish extends Activity implements GUIInterface { return getApplicationContext(); } + @Override + public String playerName() { + return playerName; + } + /** Report a move made that is a candidate for GUI animation. */ public void setAnimMove(Position sourcePos, Move move, boolean forward) { if (animateMoves && (move != null)) @@ -1178,6 +1228,7 @@ public class DroidFish extends Activity implements GUIInterface { String fenPgn = clipboard.getText().toString(); try { ctrl.setFENOrPGN(fenPgn); + setBoardFlip(true); } catch (ChessParseError e) { Toast.makeText(getApplicationContext(), getParseErrString(e), Toast.LENGTH_SHORT).show(); } @@ -1550,6 +1601,7 @@ public class DroidFish extends Activity implements GUIInterface { editor.commit(); gameMode = new GameMode(gameModeType); ctrl.setGameMode(gameMode); + setBoardFlip(true); } } }); diff --git a/DroidFish/src/org/petero/droidfish/GUIInterface.java b/DroidFish/src/org/petero/droidfish/GUIInterface.java index cbfa105..0b66540 100644 --- a/DroidFish/src/org/petero/droidfish/GUIInterface.java +++ b/DroidFish/src/org/petero/droidfish/GUIInterface.java @@ -91,4 +91,7 @@ public interface GUIInterface { /** Return application context. */ public Context getContext(); + + /** Get the default player name. */ + public String playerName(); } diff --git a/DroidFish/src/org/petero/droidfish/gamelogic/DroidChessController.java b/DroidFish/src/org/petero/droidfish/gamelogic/DroidChessController.java index 674e1e2..83ad435 100644 --- a/DroidFish/src/org/petero/droidfish/gamelogic/DroidChessController.java +++ b/DroidFish/src/org/petero/droidfish/gamelogic/DroidChessController.java @@ -522,7 +522,8 @@ public class DroidChessController { /** Get PGN header tags and values. */ public final synchronized void getHeaders(Map headers) { - game.tree.getHeaders(headers); + if (game != null) + game.tree.getHeaders(headers); } /** Set PGN header tags and values. */ @@ -833,8 +834,9 @@ public class DroidChessController { if (strength < 1000) engine += String.format(" (%.1f%%)", strength * 0.1); } - String white = gameMode.playerWhite() ? "Player" : engine; - String black = gameMode.playerBlack() ? "Player" : engine; + String player = gui.playerName(); + String white = gameMode.playerWhite() ? player : engine; + String black = gameMode.playerBlack() ? player : engine; game.tree.setPlayerNames(white, black); } }