package cs495.pocketdslr;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.DngCreator;
import android.hardware.camera2.TotalCaptureResult;
import android.media.Image;
import android.media.ImageReader;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.Toast;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
/**
* Created by Chris on 3/11/2015.
*/
public class UserContext {
protected Context context;
protected ManualCameraSettings cameraSettings;
public UserContext(Activity activity) {
this.context = activity;
this.cameraSettings = new ManualCameraSettings(activity.getPreferences(Activity.MODE_PRIVATE));
}
public ManualCameraSettings getCameraSettings() {
return this.cameraSettings;
}
public void saveImage(CameraCharacteristics cameraCharacteristics, TotalCaptureResult totalCaptureResult, ImageReader imageReader) {
File appDirectory = new File(Environment.getExternalStorageDirectory()+ "/pocketDSLR/");
if (!appDirectory.exists()){
appDirectory.mkdir();
}
SimpleDateFormat simpleDateFormatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss_");
Date currentDate = new Date();
Random randomGenerator = new Random();
final String imageFileName = simpleDateFormatter.format(currentDate) + randomGenerator.nextInt(1000) + ".dng";
File imageFile = new File(appDirectory, imageFileName);
Log.v("pocketDSLR!!~~", imageFile.toString());
try {
FileOutputStream imageFileStream = new FileOutputStream(imageFile);
DngCreator dngImageCreator = new DngCreator(cameraCharacteristics, totalCaptureResult);
dngImageCreator.writeImage(imageFileStream, imageReader.acquireNextImage());
dngImageCreator.close();
imageFileStream.flush();
imageFileStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void viewImage(String fileLocation) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(fileLocation), "image/*");
this.context.startActivity(intent);
}
}