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 org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.cs169.android.assassins.R; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; public class VoteActivity extends AuthenticationActivity { /** Called when the activity is first created. */ int i=0; JSONArray array; String verdictID; String response; ImageView truePic,questionPic; TextView valid; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.vote); i=0; Button yesBtn = (Button) findViewById(R.id.yesbtn); Button noBtn = (Button) findViewById(R.id.nobtn); Button bBtn = (Button) findViewById(R.id.bbtn); valid=(TextView) findViewById(R.id.valid); truePic= (ImageView) findViewById(R.id.truepic); questionPic= (ImageView) findViewById(R.id.picquestion); yesBtn.setOnClickListener(yonClickListener); noBtn.setOnClickListener(nonClickListener); bBtn.setOnClickListener(bonClickListener); String url=InGameService.BASE_URL+"ingame/getvoteinfo/?access_token="+app.getAccessToken(); Log.v("VoteActivity", url); response=InGameService.request(url,true,null); //valid.setText(response); changeUI(); } public void onResume(Bundle savedInstanceState) { } private void changeUI(){ try { array=new JSONArray(response); if (array.length()>0 &&!(i>array.length())){ if(i==array.length()){ truePic.setImageResource(R.drawable.xxx); questionPic.setImageResource(R.drawable.xxx); valid.setText("no more votes "); return; } valid.setText("valid Kill?"); JSONObject someString=new JSONObject(array.getString(i)); verdictID=someString.getString("pk"); Log.v("verdict ID", verdictID); JSONObject targetJ=new JSONObject(someString.getString("fields")); Log.v("VoteActivity", targetJ.toString()); String q=targetJ.getString("photo_file"); String qUrl=InGameService.BASE_URL_MEDIA+q; questionPic.setImageDrawable(InGameService.getDrawable(qUrl)); String tG=targetJ.getString("target"); String url2=InGameService.BASE_URL+"player/getfromkey/?player_key="+tG+"&access_token="+app.getAccessToken(); String response2=InGameService.request(url2,true,null); JSONArray array2=new JSONArray(response2); JSONObject tGJ=new JSONObject(array2.getString(0)); Log.v("VoteActivity","tGj:"+ tGJ.toString()); JSONObject fields2=new JSONObject(tGJ.getString("fields")); Log.v("VoteActivity","fields2:"+ tGJ.toString()); String original=fields2.getString("photo_file"); String oUrl=InGameService.BASE_URL_MEDIA+original; truePic.setImageDrawable(InGameService.getDrawable(oUrl)); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void castVote(boolean bool){ if( i==array.length()){ return; } String vote; if (bool){ vote="yes"; } else { vote= "no"; } String url=InGameService.BASE_URL+"ingame/castvote/"; HttpPost httpPost=new HttpPost(url); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("access_token",app.getAccessToken())); nameValuePairs.add(new BasicNameValuePair("decision",vote )); nameValuePairs.add(new BasicNameValuePair("verdict_id",verdictID )); Log.v("VoteActivity","pairs:"+ nameValuePairs.get(0)); Log.v("VoteActivity","pairs:"+ nameValuePairs.get(1)); Log.v("VoteActivity","pairs:"+ nameValuePairs.get(2)); try { httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } Log.v("VoteActivity","http:"+ httpPost.toString()); Log.v("VoteActivity","url from post:"+ url); InGameService.request(url, false, httpPost); i++; changeUI(); } private View.OnClickListener yonClickListener = new View.OnClickListener() { @Override public void onClick(View v) { castVote(true); } }; private View.OnClickListener nonClickListener = new View.OnClickListener() { @Override public void onClick(View v) { castVote(false); } }; private View.OnClickListener bonClickListener = new View.OnClickListener() { @Override public void onClick(View v) { //startActivity(new Intent(context, EndOfContestActivity.class)); try { startActivity(new Intent( createPackageContext("com.cs169.android.assassins",CONTEXT_INCLUDE_CODE),GameActivity.class)); } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; }