@Override public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); if (item.getItemId() == MENU_ITEM_HELP) { startActivity(new Intent(this, Help.class)); } if (item.getItemId() == MENU_ITEM_PREFERENCES) { startActivity(new Intent(this, Settings.class)); } if (item.getItemId() == MENU_ITEM_HISTORY) { Log.d(tag, "" + game.game); } if (item.getItemId() == MENU_ITEM_REPLAY) { GameView old = game; newgame(); Log.d(tag, "replay # moves : " + old.game.moves.size()); game.replay(old.game.moves); } if (item.getItemId() == MENU_ITEM_BACK) { List<Move> moves = game.game.moves; int length = moves.size(); if (length >= 4) { length -= 4; } moves = moves.subList(0, length); newgame(); Log.i(tag, "replay # moves : " + length); game.replay(moves); } if (item.getItemId() == MENU_ITEM_NEW) { new AlertDialog.Builder(this) .setMessage(rs.getString(R.string.new_game) + "?") .setCancelable(false) .setPositiveButton( R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { newgame(); } }) .setNegativeButton( R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }) .create() .show(); } if (item.getItemId() == MENU_ITEM_THINK) { think(0); } if (item.getItemId() == MENU_ITEM_PASS_TURN) { turn = (turn + 1) % 4; game.showPieces(turn); game.invalidate(); } if (item.getItemId() == MENU_ITEM_FLIP) { PieceUI piece = game.selected; if (piece != null) piece.flip(); } return false; }