package com.cs169.android.assassins;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.Color;
import android.hardware.Camera;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.ByteArrayBody;
import org.apache.http.entity.mime.content.ContentBody;
import org.apache.http.entity.mime.content.StringBody;
import java.io.IOException;
public class KillActivity extends AuthenticationActivity implements SurfaceHolder.Callback {
private static final String TAG = "CameraDemo";
Camera mCamera;
Button buttonClick, bBtn;
SurfaceView mSurfaceView;
SurfaceHolder mSurfaceHolder;
private boolean mPreviewRunning = false;
private Context mContext = this;
static final int FOTO_MODE = 0;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kill);
//preview = new Preview(this,camera);
//((SurfaceView) findViewById(R.id.preview)).addView(preview);
mSurfaceView = (SurfaceView) findViewById(R.id.preview);
mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
buttonClick = (Button) findViewById(R.id.ki);
bBtn = (Button) findViewById(R.id.bbtn);
buttonClick.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//preview.camera.takePicture(shutterCallback, rawCallback,jpegCallback);
}
});
buttonClick.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
buttonClick.setTextColor(Color.GRAY);
buttonClick.setBackgroundColor(Color.BLACK);
Long time=System.currentTimeMillis();
mCamera.takePicture(null, mPictureCallback, mPictureCallback);
buttonClick.setTextColor(Color.BLACK);
buttonClick.setBackgroundColor(0xff990000);
}
});
bBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
startActivity(new Intent(createPackageContext("com.cs169.android.assassins", CONTEXT_INCLUDE_CODE), GameActivity.class));
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
Log.d(TAG, "onCreate'd");
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
if (mPreviewRunning) {
mCamera.stopPreview();
}
Camera.Parameters p = mCamera.getParameters();
p.setPreviewSize(width, height);
mCamera.setParameters(p);
try {
mCamera.setPreviewDisplay(holder);
} catch (IOException e) {
e.printStackTrace();
}
mCamera.startPreview();
mPreviewRunning = true;
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
mCamera = Camera.open();
mCamera.setDisplayOrientation(90);
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
mCamera.stopPreview();
mPreviewRunning = false;
mCamera.release();
}
Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] imageData, Camera c) {
Log.v("camera info:", "got there:" + (imageData == null));
if (imageData != null) {
Intent mIntent = new Intent();
AssassinsApplication app = new AssassinsApplication();
// Bitmap bitmap=
// BitmapFactory.decodeByteArray(imageData,0,imageData.length);
// String imageString=Base64.encodeToString(imageData
// ,Base64.DEFAULT);
String url = InGameService.BASE_URL + "ingame/killrequest/";
HttpPost httppost = new HttpPost(url);
// Log.v("camera info:","string respresentation:"
// +imageString.toString() );
// List<NameValuePair> nameValuePairs = new
// ArrayList<NameValuePair>();
// nameValuePairs.add(new
// BasicNameValuePair("access_token",facebook.getAccessToken()));
// nameValuePairs.add(new
// BasicNameValuePair("picture",imageString));
// Log.v("taking pic, ",httppost.toString());
// Log.v("camera info:","value pairs 0 :"
// +nameValuePairs.get(0).toString());
// Log.v("camera info:","value pairs 1 :"
// +nameValuePairs.get(1).toString());
// Log.v("camera info:","value pairs :"
// +nameValuePairs.toString());
MultipartEntity mp = new MultipartEntity();
ContentBody cb = new ByteArrayBody(imageData, "image/jpeg", "picture.jpg");
mp.addPart("picture", cb);
try {
ContentBody token = new StringBody(
app.getAccessToken());
mp.addPart("access_token", token);
httppost.setEntity(mp);
InGameService.request(url, false, httppost);
} catch (Exception/** UnsupportedEncodingException **/
e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mCamera.startPreview();
setResult(FOTO_MODE, mIntent);
}
}
};
}