package eu.tpmusielak.securephoto.container; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import eu.tpmusielak.securephoto.R; import eu.tpmusielak.securephoto.container.wrapper.SPRWrapper; import eu.tpmusielak.securephoto.tools.FileHandling; import java.io.File; import java.io.IOException; /** * Created by IntelliJ IDEA. * User: Tomasz P. Musielak * Date: 25/03/12 * Time: 17:13 */ public class SPImageRollHandler implements SPFileHandler { private VerifierProvider verifierProvider; private File rollFile; private SPImageRoll spImageRoll; public SPImageRollHandler(VerifierProvider provider) { this.verifierProvider = provider; } @Override public SPRWrapper saveFile(byte[] bytes) { SPImage image = SPImage.getInstance(bytes, verifierProvider.getVerifiers(), spImageRoll.getCurrentHash()); int index = spImageRoll.addImage(image); return new SPRWrapper(rollFile, spImageRoll.getHeader(), image.getFrameHash(), image.getUniqueFrameID(), index); } @Override public void onInitialize(final Context context) { final File[] rolls = FileHandling.getFiles(SPImageRoll.DEFAULT_EXTENSION); final String[] names = new String[rolls.length]; for (int i = 0; i < rolls.length; i++) { names[i] = rolls[i].getName(); } AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(R.string.select_roll); builder.setItems(names, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { rollFile = rolls[i]; try { spImageRoll = SPImageRoll.fromFile(rollFile); // TODO: Exception handling } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }); builder.setCancelable(true); AlertDialog alert = builder.create(); alert.show(); } }