/**
* Copyright (C) 2012 The FreeCol-Android Team
*
* This file is part of FreeCol-Android.
*
* FreeCol-Android is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* FreeCol is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with FreeCol-Android. If not, see <http://www.gnu.org/licenses/>.
*/
package org.freecolandroid.ui.menu;
import java.io.IOException;
import net.sf.freecol.client.control.ConnectController;
import net.sf.freecol.common.io.FreeColTcFile;
import net.sf.freecol.common.model.NationOptions.Advantages;
import net.sf.freecol.common.model.Specification;
import org.freecolandroid.R;
import org.freecolandroid.ui.FreeColFragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Spinner;
public class NewGameFragment extends FreeColFragment {
private Specification specification;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.frag_new_game, container, false);
}
public void setSpecification(Specification specification) {
if (specification == null) {
FreeColTcFile tcData;
try {
tcData = new FreeColTcFile("classic");
specification = tcData.getSpecification();
} catch (IOException e) {
Log.w(getTag(), e);
}
}
this.specification = specification;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final Spinner spinner = (Spinner) getView().findViewById(R.id.difficulty);
Button btn = (Button) getView().findViewById(R.id.ok);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int level = spinner.getSelectedItemPosition();
startGame(level);
}
});
}
private void startGame(final int difficulityLevel) {
new Thread(new Runnable() {
@Override
public void run() {
ConnectController connectController = mClient.getConnectController();
specification.applyDifficultyLevel(difficulityLevel);
connectController.startSingleplayerGame(specification, "Player Name",
Advantages.FIXED);
}
}).start();
}
}