package com.adamnickle.deck; import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import com.adamnickle.deck.Game.Game; import com.adamnickle.deck.Game.PresetGames; import java.util.ArrayList; import de.keyboardsurfer.android.widget.crouton.Style; import dev.dworks.libs.awizard.WizardActivity; import dev.dworks.libs.awizard.model.PageList; import dev.dworks.libs.awizard.model.WizardModel; import dev.dworks.libs.awizard.model.page.BranchPage; import dev.dworks.libs.awizard.model.page.Page; import dev.dworks.libs.awizard.model.page.ReviewPage; public class GameCreatorWizardActivity extends WizardActivity { public static final String EXTRA_GAME = "game"; private ArrayList<Game> mGames; @Override public void onCreate( Bundle savedInstanceState ) { super.onCreate( savedInstanceState ); mGames = PresetGames.getGames(); mGames.addAll( Game.getSavedCustomGames( GameCreatorWizardActivity.this ) ); setWizardModel( new WizardModel( this ) { @Override protected PageList onNewRootPageList() { final ReviewPage reviewPage = new ReviewPage( this, "Game Setup Review" ); final BranchPage gameSelection = new BranchPage( this, "Choose Game" ); gameSelection.setRequired( true ); for( Game game : mGames ) { gameSelection.addBranch( game.GameName ); } gameSelection.addBranch( "Custom Game", new GameSetupPage( this, "Card Piles Setup" ) .setRequired( true ) ); return new PageList( gameSelection, reviewPage ); } } ); getSupportActionBar().setDisplayHomeAsUpEnabled( true ); } @Override public void onConfirmClick() { handleWizardDone(); } @Override public void onDoneClick() { handleWizardDone(); } private void handleWizardDone() { final Page gamePage = onGetPage( "Choose Game" ); final GameSetupPage gameSetupPage = (GameSetupPage) onGetPage( "Custom Game:Card Piles Setup" ); final String selectedGame = gamePage.getData().getString( Page.SIMPLE_DATA_KEY ); if( selectedGame.startsWith( "Custom" ) ) { final Game game = new Game(); game.GameName = gameSetupPage.getGameName(); game.DrawPiles = gameSetupPage.getDrawPiles(); game.DiscardPiles = gameSetupPage.getDiscardPiles(); final Intent result = new Intent(); result.putExtra( GameCreatorWizardActivity.EXTRA_GAME, game ); setResult( Activity.RESULT_OK, result ); DialogHelper .createBlankAlertDialog( this, "Save Game?" ) .setMessage( "Would you like to save this Custom Game to be played later?" ) .setPositiveButton( "Yes", new DialogInterface.OnClickListener() { @Override public void onClick( DialogInterface dialogInterface, int i ) { if( Game.saveGame( GameCreatorWizardActivity.this, game ) ) { DialogHelper .displayNotification( GameCreatorWizardActivity.this, "Custom Game Save Successful", Style.CONFIRM ); } else { DialogHelper .displayNotification( GameCreatorWizardActivity.this, "Custom Game Save Unsuccessful", Style.ALERT ); } finish(); } } ) .setNegativeButton( "No", new DialogInterface.OnClickListener() { @Override public void onClick( DialogInterface dialogInterface, int i ) { finish(); } } ) .show(); } else { Game ret = null; for( Game game : mGames ) { if( game.GameName.equals( selectedGame ) ) { ret = game; } } final Intent result = new Intent(); result.putExtra( GameCreatorWizardActivity.EXTRA_GAME, ret ); setResult( Activity.RESULT_OK, result ); finish(); } } }