package br.com.livrowebservices.carros.utils;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.content.FileProvider;
import android.util.Log;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import livroandroid.lib.utils.ImageResizeUtils;
import livroandroid.lib.utils.SDCardUtils;
/**
* Created by ricardo on 26/08/15.
*/
public class CameraUtil {
private static final String TAG = "camera";
private File file;
public void onCreate(Bundle savedInstanceState) {
if (savedInstanceState != null) {
// Se girou a tela recupera o estado
file = (File) savedInstanceState.getSerializable("file");
}
}
public Intent open(Context context, String fileName) {
// Cria o arquivo no sdcard para tirar a foto
file = SDCardUtils.getPublicFile(fileName);
// Intent da Camera
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Cria a Uri do arquivo.
Uri uri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".provider", file);
i.putExtra(MediaStore.EXTRA_OUTPUT, uri);
return i;
}
public File getFile() {
return file;
}
public void onSaveInstanceState(Bundle outState) {
if (file != null) {
outState.putSerializable("file", file);
}
}
public Bitmap getBitmap(int w, int h) {
if (file != null && file.exists()) {
Log.d(TAG, file.getAbsolutePath());
// Resize
Uri uri = Uri.fromFile(file);
Bitmap bitmap = ImageResizeUtils.getResizedImage(uri, w, h, false);
Log.d(TAG, "w/h: " + bitmap.getWidth() + "/" + bitmap.getHeight());
return bitmap;
}
return null;
}
// Salva o bitmap alterado no arquivo
public void save(Bitmap bitmap) {
if (file != null) {
OutputStream out = null;
try {
out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.close();
Log.d("foto", "file compress ok: " + file.getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}