Blob Blame Raw
package com.icystar.findnumber;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputType;
import android.widget.EditText;
import android.widget.TextView;

public class DoubleActivity extends Activity implements Game.Listener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SoundPlayer.initSounds(getApplication());
        setContentView(R.layout.activity_double);
    }

    @Override
    protected void onResume() {
        Game.games[0].setListener(this);
        Game.games[0].setNumberTextView( (TextView)findViewById(R.id.TextView1) );
        Game.games[0].setTimeTextView( (TextView)findViewById(R.id.TextView2) );
        Game.games[0].setPlayerNameTextView( (TextView)findViewById(R.id.TextView4) );
        Game.games[0].setNumbersView( (NumbersView)findViewById(R.id.NumbersView1) );
        Game.games[0].setLockView( findViewById(R.id.frameLock) );

        Game.games[1].setListener(this);
        Game.games[1].setNumberTextView( (TextView)findViewById(R.id.TextView3) );
        Game.games[1].setTimeTextView(null);
        Game.games[1].setPlayerNameTextView( (TextView)findViewById(R.id.TextView5) );
        Game.games[1].setNumbersView( (NumbersView)findViewById(R.id.NumbersView2) );
        Game.games[1].setLockView(null);

        ((NumbersView)findViewById(R.id.NumbersView1)).setGameIndex(0);
        ((NumbersView)findViewById(R.id.NumbersView2)).setGameIndex(1);

		for(Game g : Game.games) g.setPaused(false);

		super.onResume();
    }
    
    @Override
    protected void onPause() {
		for(Game g : Game.games) g.setPaused(true);
		
		Game.saveState(getApplication());
		
		((NumbersView)findViewById(R.id.NumbersView1)).setGameIndex(-1);
    	((NumbersView)findViewById(R.id.NumbersView2)).setGameIndex(-1);

    	Game.games[0].setListener(null);
        Game.games[0].setNumberTextView(null);
        Game.games[0].setTimeTextView(null);
        Game.games[0].setPlayerNameTextView(null);
        Game.games[0].setNumbersView(null);
        Game.games[0].setLockView(null);

    	Game.games[1].setListener(null);
        Game.games[1].setNumberTextView(null);
        Game.games[1].setTimeTextView(null);
        Game.games[1].setPlayerNameTextView(null);
        Game.games[1].setNumbersView(null);
        Game.games[1].setLockView(null);

        super.onPause();
    }
    
	@Override
	public void onWin(Game game, float time) {
		for(Game g : Game.games) if (game != g) g.lose();

		SoundPlayer.playSound(R.raw.sound_win);
		
		final int count = game.getCount();
		final int secs = Math.round(time);
		final int gameIndex = game == Game.games[0] ? 0 : 1;
		final int rank = ScoreboardActivity.isRecord(count, secs); 
		final Activity activity = this;
		final String defaultPlayerName = getString(gameIndex == 0 ? R.string.defaultPlayer1Name : R.string.defaultPlayer2Name);
				
		if (rank > 0) {
			String name = Game.getPlayerName(gameIndex + 1);
			if (name.length() == 0) name = defaultPlayerName;
			ScoreboardActivity.addNewRecord(count, secs, name);
			Game.saveState(getApplication());
			
			final EditText edit = new EditText(this);
			edit.setInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME);
			edit.setText(name);
			
			final Intent intent = new Intent(activity, ScoreboardActivity.class);
			intent.putExtra("count", count);
			intent.putExtra("rank", rank);			
			
			new AlertDialog.Builder(this)
				.setTitle(R.string.dialogDoubleRecordTitle)
				.setIcon(R.drawable.ic_dialog_win)
				.setMessage(getString(R.string.dialogDoubleRecordMessage, defaultPlayerName, rank, count, secs))
				.setView(edit)
				.setPositiveButton(R.string.dialogSubmit, new OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						String name = edit.getText().toString();
						ScoreboardActivity.updateRecord(count, secs, name);
						Game.setPlayerName(gameIndex + 1, name);
						Game.saveState(getApplication());
						startActivity(intent);
						activity.finish();
					}
				})
				.setOnCancelListener(new OnCancelListener() {
					@Override
					public void onCancel(DialogInterface dialog) {
						String name = edit.getText().toString();
						ScoreboardActivity.updateRecord(count, secs, name);
						Game.setPlayerName(gameIndex + 1, name);
						Game.saveState(getApplication());
						startActivity(intent);
						activity.finish();
					}
				})
				.show();
		} else {
			new AlertDialog.Builder(this)
				.setTitle(R.string.dialogDoubleWinTitle)
				.setIcon(R.drawable.ic_dialog_win)
				.setMessage(getString(R.string.dialogDoubleWinMessage, defaultPlayerName))
				.setPositiveButton(R.string.dialogOk, new OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) { activity.finish(); }
				})
				.setOnCancelListener(new OnCancelListener() {
					@Override
					public void onCancel(DialogInterface dialog) { activity.finish(); }
				})
				.show();
		}
	}

	@Override
	public void onTouchNumber(Game game, int touchedNumber, int maxNumber, boolean win) {
		if (!win) {
			if (game == Game.games[0]) SoundPlayer.playSound(R.raw.sound_player1_clicked);
			if (game == Game.games[1]) SoundPlayer.playSound(R.raw.sound_player2_clicked);
		}
	}

	@Override
	public void onLock(Game game) {
		SoundPlayer.playSound(R.raw.sound_lock);
	}
}