package com.cs169.android.assassins;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class CreateGame extends AuthenticationActivity {
/** Called when the activity is first created. */
Button createGameBtn;
Context context;
EditText gameNameEt, maxNumEt, locationEt;
Spinner visibilitySp;
String gameName, maxNum, location, privacy;
//Toast toast;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.creategamescreen);
context = this;
createGameBtn = (Button) findViewById(R.id.createGameBtn);
createGameBtn.setOnClickListener(createGameOnClickListener);
gameNameEt = (EditText) findViewById(R.id.gameNameEt);
maxNumEt = (EditText) findViewById(R.id.maxNumEt);
locationEt = (EditText) findViewById(R.id.locationEt);
visibilitySp = (Spinner) findViewById(R.id.visibilitySpinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_spinner_item,
new String[] {"Public", "Private"});
//adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
visibilitySp.setAdapter(adapter);
}
private View.OnClickListener createGameOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
gameName = gameNameEt.getText().toString();
maxNum = maxNumEt.getText().toString();
location = locationEt.getText().toString();
if(TextUtils.isEmpty(gameName)){
Toast.makeText(context, "Please fill in the game name.", Toast.LENGTH_SHORT).show();
}
else if(TextUtils.isEmpty(maxNum)){
Toast.makeText(context, "Please fill in the max players.", Toast.LENGTH_SHORT).show();
}
else if(TextUtils.isEmpty(location)){
Toast.makeText(context, "Please fill in the location.", Toast.LENGTH_SHORT).show();
}
else{
int pos = visibilitySp.getSelectedItemPosition();
privacy = "True";
if(pos == 0){
privacy = "True";
}
else if(pos == 1){
privacy = "False";
}
else{
Toast.makeText(context, "Please choose game privacy.", Toast.LENGTH_SHORT).show();
}
//access_token, name, maxplayers, public (‘True’ or ‘False’)
String url=InGameService.BASE_URL+"game/create/";
//We need to refactor POST and GET to utility methods, this is all boilerplate code
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("name",gameName));
nameValuePairs.add(new BasicNameValuePair("access_token",app.getAccessToken()));
nameValuePairs.add(new BasicNameValuePair("maxplayers",maxNum));
nameValuePairs.add(new BasicNameValuePair("public",privacy));
//TODO: The following request throws an error
HttpPost httppost = new HttpPost(url);
try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String response=InGameService.request(url,false,httppost);
Log.v("Response", response);
Intent waitingIntent = new Intent(context, WaitingRoom.class);
waitingIntent.putExtra("Game Name", gameName);
startActivity(waitingIntent);
}
}
};
}